From f7e7555149b38da1ee709e180fafee6b7acbe484 Mon Sep 17 00:00:00 2001 From: zknpr <96851588+zknpr@users.noreply.github.com> Date: Fri, 23 Oct 2026 23:12:34 +0200 Subject: [PATCH 1/3] fix: rebuild on the SQLite 3.54.1 engines with scoped native exports; release 0.3.2 Sync the viewer from the extension's desktop-dev-port branch at e597c1d. That branch merges extension dev, which holds the 1.8.2 release and the extension's unreleased runtime and NUL-text fixes, into the desktop port: - Both engines move from SQLite 3.51.2 (native) and 3.49.1 (WebAssembly) to 3.54.1, fixing CVE-2025-7709, CVE-2026-11822, CVE-2026-11824 and CVE-2025-6965 as described in the extension's 1.8.2 notes. - The native runtime (zknpr/txiki.js 9875455) refuses SQL-level ATTACH, DETACH and VACUUM INTO in C. Desktop exports now go through the runtime's statement-scoped vacuumInto; with the old shim, exports fail with "authorization denied" (live_export_route_end_to_end fails on the port's merge commit and passes on the pinned commit). - TEXT containing NUL is read and written whole by both engines; the grid keeps showing it as bytes. Third-party inventory and notices: txiki.js 62b02dc -> 9875455 and sql.js 424163d -> 7245c26. Their LICENSE, AUTHORS and embedded notice texts are unchanged except the sqlite3.c amalgamation header (version and check-in line), whose notice and hash are updated. viewerSource and the README pin follow e597c1d. --- README.md | 6 +- THIRD_PARTY_NOTICES.txt | 30 +-- package-lock.json | 4 +- package.json | 2 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/tauri.conf.json | 2 +- third-party/inventory.json | 30 +-- viewer-dist/manifest.json | 14 +- viewer-dist/native/native-worker-desktop.js | 44 ++--- viewer-dist/native/tjs | Bin 3303072 -> 3352960 bytes viewer-dist/sql-wasm.js | 206 ++++++++++---------- viewer-dist/sql-wasm.wasm | Bin 778089 -> 806401 bytes viewer-dist/worker.js | 42 ++-- 14 files changed, 192 insertions(+), 192 deletions(-) diff --git a/README.md b/README.md index dd1da72..b7f85f0 100644 --- a/README.md +++ b/README.md @@ -100,12 +100,12 @@ On that target, the checked-in viewer is enough to build the shell. For any other target, first sync from a checkout containing the exact source commit: ```sh -git clone --branch desktop-v1.8.1-port https://github.com/zknpr/SQLite-Explorer ../SQLite-Explorer -node scripts/sync-viewer.mjs --source ../SQLite-Explorer --ref d503473a7dd6a3ed3d77aad1b506b45379d1da2a +git clone --branch desktop-dev-port https://github.com/zknpr/SQLite-Explorer ../SQLite-Explorer +node scripts/sync-viewer.mjs --source ../SQLite-Explorer --ref e597c1d5c8fe32aa91603b9040eb590e773284d3 node scripts/sync-viewer.mjs --verify ``` -The pin is on the extension repository's `desktop-v1.8.1-port` branch. +The pin is on the extension repository's `desktop-dev-port` branch. Substituting the extension's `v1.8.1` tag omits the desktop fixes validated here. Build on the destination OS and CPU: diff --git a/THIRD_PARTY_NOTICES.txt b/THIRD_PARTY_NOTICES.txt index 36ee712..e276f6a 100644 --- a/THIRD_PARTY_NOTICES.txt +++ b/THIRD_PARTY_NOTICES.txt @@ -75681,9 +75681,9 @@ library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ============================================================================== -txiki.js 62b02dc97461662abc5a34cc1b97ddd49e43c808 +txiki.js 9875455640b8ae62f52200a9fa7fa2a66d079dc7 ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808 +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7 --- LICENSE --- The MIT License (MIT) @@ -75711,7 +75711,7 @@ SOFTWARE. ============================================================================== txiki embedded src/js/core/path.js ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/core/path.js +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/core/path.js --- src/js/core/path.js --- // Copyright Joyent, Inc. and other Node contributors. @@ -75742,7 +75742,7 @@ Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49 ============================================================================== txiki embedded src/js/stdlib/utils.js ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/stdlib/utils.js +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/stdlib/utils.js --- src/js/stdlib/utils.js --- // Code from https://github.com/browserify/node-util @@ -75773,7 +75773,7 @@ Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49 ============================================================================== txiki embedded src/js/run-repl/repl.js ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/run-repl/repl.js +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/run-repl/repl.js --- src/js/run-repl/repl.js --- /* global tjs */ @@ -75810,7 +75810,7 @@ Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49 ============================================================================== txiki embedded src/js/polyfills/text-encode-transform.js ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/polyfills/text-encode-transform.js +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/polyfills/text-encode-transform.js --- src/js/polyfills/text-encode-transform.js --- // Adapted from: @@ -75834,7 +75834,7 @@ Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49 ============================================================================== deps/miniz/miniz.c ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/deps/miniz/miniz.c +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/deps/miniz/miniz.c --- deps/miniz/miniz.c --- /************************************************************************** @@ -75866,12 +75866,12 @@ Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49 ============================================================================== deps/sqlite3/sqlite3.c ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/deps/sqlite3/sqlite3.c +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/deps/sqlite3/sqlite3.c --- deps/sqlite3/sqlite3.c --- /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.51.2. By combining all the individual C code files into this +** version 3.54.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -75889,7 +75889,7 @@ Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49 ** separate file. This file contains only code for the core SQLite library. ** ** The content in this amalgamation comes from Fossil check-in -** b270f8339eb13b504d0b2ba154ebca966b7d with changes in files: +** 555e07ef33f69a0957d24d8e555b702464a1 with changes in files: ** ** */ @@ -75897,7 +75897,7 @@ Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49 ============================================================================== miniz header public-domain attribution ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/deps/miniz/miniz.h +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/deps/miniz/miniz.h --- deps/miniz/miniz.h header --- #ifndef MINIZ_EXPORT @@ -75911,7 +75911,7 @@ Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49 ============================================================================== formdata-polyfill adapted in txiki.js ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/polyfills/form-data.js +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/polyfills/form-data.js --- LICENSE (https://github.com/jimmywarting/FormData/blob/master/LICENSE) --- MIT License @@ -75939,7 +75939,7 @@ SOFTWARE. ============================================================================== event-target-shim adapted in txiki.js ============================================================================== -Source: https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/polyfills/event-target.js +Source: https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/polyfills/event-target.js --- LICENSE (https://github.com/mysticatea/event-target-shim/blob/master/LICENSE) --- The MIT License (MIT) @@ -75965,9 +75965,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ============================================================================== -sql.js 424163d6c9c34acec7bac07eb2cecedd86185a60 +sql.js 7245c26ebdd0905b11a2a16d1f7a555abd768eec ============================================================================== -Source: https://github.com/zknpr/sql.js/tree/424163d6c9c34acec7bac07eb2cecedd86185a60 +Source: https://github.com/zknpr/sql.js/tree/7245c26ebdd0905b11a2a16d1f7a555abd768eec --- LICENSE --- MIT license diff --git a/package-lock.json b/package-lock.json index 1193c59..927a86a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "sqlite-explorer-desktop", - "version": "0.3.1", + "version": "0.3.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "sqlite-explorer-desktop", - "version": "0.3.1", + "version": "0.3.2", "license": "MIT", "devDependencies": { "@tauri-apps/cli": "^2.11.4", diff --git a/package.json b/package.json index daa0bc6..1c5f0cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sqlite-explorer-desktop", - "version": "0.3.1", + "version": "0.3.2", "description": "SQLite Explorer desktop shell (Tauri v2) around the extension's desktop viewer artifacts", "type": "module", "scripts": { diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 4b7d677..52d5067 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -3154,7 +3154,7 @@ dependencies = [ [[package]] name = "sqlite-explorer-desktop" -version = "0.3.1" +version = "0.3.2" dependencies = [ "libc", "objc2", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 294146b..ae8cd92 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sqlite-explorer-desktop" -version = "0.3.1" +version = "0.3.2" description = "SQLite Explorer desktop shell" edition = "2021" license = "MIT" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 570a050..7cde192 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "SQLite Explorer", - "version": "0.3.1", + "version": "0.3.2", "identifier": "xyz.zknpr.sqlite-explorer", "build": { "frontendDist": "../viewer-dist" diff --git a/third-party/inventory.json b/third-party/inventory.json index d4718b4..32af3b6 100644 --- a/third-party/inventory.json +++ b/third-party/inventory.json @@ -1,6 +1,6 @@ { "format": 1, - "viewerSource": "d503473a7dd6a3ed3d77aad1b506b45379d1da2a", + "viewerSource": "e597c1d5c8fe32aa91603b9040eb590e773284d3", "components": [ { "component": "@vscode/codicons 0.0.45", @@ -7532,8 +7532,8 @@ ] }, { - "component": "txiki.js 62b02dc97461662abc5a34cc1b97ddd49e43c808", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808", + "component": "txiki.js 9875455640b8ae62f52200a9fa7fa2a66d079dc7", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7", "notices": [ { "file": "LICENSE", @@ -7543,7 +7543,7 @@ }, { "component": "txiki embedded src/js/core/path.js", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/core/path.js", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/core/path.js", "notices": [ { "file": "src/js/core/path.js", @@ -7553,7 +7553,7 @@ }, { "component": "txiki embedded src/js/stdlib/utils.js", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/stdlib/utils.js", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/stdlib/utils.js", "notices": [ { "file": "src/js/stdlib/utils.js", @@ -7563,7 +7563,7 @@ }, { "component": "txiki embedded src/js/run-repl/repl.js", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/run-repl/repl.js", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/run-repl/repl.js", "notices": [ { "file": "src/js/run-repl/repl.js", @@ -7573,7 +7573,7 @@ }, { "component": "txiki embedded src/js/polyfills/text-encode-transform.js", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/polyfills/text-encode-transform.js", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/polyfills/text-encode-transform.js", "notices": [ { "file": "src/js/polyfills/text-encode-transform.js", @@ -7583,7 +7583,7 @@ }, { "component": "deps/miniz/miniz.c", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/deps/miniz/miniz.c", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/deps/miniz/miniz.c", "notices": [ { "file": "deps/miniz/miniz.c", @@ -7593,17 +7593,17 @@ }, { "component": "deps/sqlite3/sqlite3.c", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/deps/sqlite3/sqlite3.c", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/deps/sqlite3/sqlite3.c", "notices": [ { "file": "deps/sqlite3/sqlite3.c", - "sha256": "d90e59d2250b0332fa54d86167501d36946531f554d3af5692a017e8299d05f4" + "sha256": "ef19dbfe4b78ee575b369622d42742f439d1035deabeb271716affda5d26a8b6" } ] }, { "component": "miniz header public-domain attribution", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/deps/miniz/miniz.h", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/deps/miniz/miniz.h", "notices": [ { "file": "deps/miniz/miniz.h header", @@ -7613,7 +7613,7 @@ }, { "component": "formdata-polyfill adapted in txiki.js", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/polyfills/form-data.js", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/polyfills/form-data.js", "notices": [ { "file": "LICENSE", @@ -7624,7 +7624,7 @@ }, { "component": "event-target-shim adapted in txiki.js", - "source": "https://github.com/zknpr/txiki.js/tree/62b02dc97461662abc5a34cc1b97ddd49e43c808/src/js/polyfills/event-target.js", + "source": "https://github.com/zknpr/txiki.js/tree/9875455640b8ae62f52200a9fa7fa2a66d079dc7/src/js/polyfills/event-target.js", "notices": [ { "file": "LICENSE", @@ -7634,8 +7634,8 @@ ] }, { - "component": "sql.js 424163d6c9c34acec7bac07eb2cecedd86185a60", - "source": "https://github.com/zknpr/sql.js/tree/424163d6c9c34acec7bac07eb2cecedd86185a60", + "component": "sql.js 7245c26ebdd0905b11a2a16d1f7a555abd768eec", + "source": "https://github.com/zknpr/sql.js/tree/7245c26ebdd0905b11a2a16d1f7a555abd768eec", "notices": [ { "file": "LICENSE", diff --git a/viewer-dist/manifest.json b/viewer-dist/manifest.json index 8c46726..ca94755 100644 --- a/viewer-dist/manifest.json +++ b/viewer-dist/manifest.json @@ -1,18 +1,18 @@ { "source": "SQLite-Explorer desktop/ build target", - "ref": "d503473a7dd6a3ed3d77aad1b506b45379d1da2a", + "ref": "e597c1d5c8fe32aa91603b9040eb590e773284d3", "target": "aarch64-macos", - "syncedAt": "2026-09-22T11:27:39.793Z", + "syncedAt": "2026-10-23T21:12:09.379Z", "files": { "viewer.html": "0a94f34a9565b29e6830463387dfc0747acece8bc5b0e98848007c5b7d4e0699", - "worker.js": "218b81bddc56b8dbf8b9ed1ffb64f3277f92f9bdda824661e33dca85678464cb", - "sql-wasm.js": "8d044434bd1ed032816b7fe3559fa77421033b175c080bd9f6190df166bd846a", - "sql-wasm.wasm": "10013ab296e8adfa5df66c86e3fc5b10726078185646c7f31d11b527bbbca063", + "worker.js": "468533c20b15fa95a28f0480581cb68ec9670be7716ca8f71874193aaf62868f", + "sql-wasm.js": "989bc91af3221aa85ba53d5ae5c8f72da42c6a5a769c0f31f74337223f2ae73c", + "sql-wasm.wasm": "ea94cafe49733bd55b8b2481d5cf0f07c5e006728c94b04999be04582b19a1e7", "dev-harness.html": "baf76f7b3494a2e76ff156aed1297d28e8cedd44f0ca383fa9f917ce8a869c2f", "codicons/codicon.css": "04fca10892d8f2be5104c920b640d9a58ddcf87f4902ea300fcf08de6634f3f6", "codicons/codicon.ttf": "2bb558cb693451e73c28c33fe64aa89bc19b1a4b70f95948322c243f93476920", - "native/native-worker-desktop.js": "cb9e0869ac442e56b5f33fee3b8d6b030d5091908092ba6ce689b6c55431ad87", + "native/native-worker-desktop.js": "93c1bb05145bcaad8e1a0fdd4506eb726db3d929748c6a37cfa9b9c35fd16fb1", "native/query-plan.dylib": "3a51dcd0ebc627e63d664e9b9c317667cb356f197e0d5645262bc3b5ef7b8c3c", - "native/tjs": "2927d5dfe7d240310d53d1ad583497ac9fc5f17c84354d43ee020d42e8ba6dfa" + "native/tjs": "833325341cd47a1887fadc69cf637a26c0b120fcaa1b52ce486537bab2bc3325" } } diff --git a/viewer-dist/native/native-worker-desktop.js b/viewer-dist/native/native-worker-desktop.js index 8e6ac1d..6d4ddaa 100644 --- a/viewer-dist/native/native-worker-desktop.js +++ b/viewer-dist/native/native-worker-desktop.js @@ -1,16 +1,16 @@ -/*! sqlite-explorer-native-worker-sha256:4f04906e50ce0d015db247162a29ae5c09ce666924a595122b40e35d002da284 */ -var M=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};function sl(e,t){let n=Ro[t];return n!==void 0&&String(e).trim()===n.text}function ll(e){let t=[];for(let n=0;ni.kind==="word");if(!r||!al.has(r.value.toUpperCase())||n.some(i=>i.kind==="word"&&i.value.toUpperCase()==="WITH"))return null;let o=[];for(let i=0;i=dl)))break}return o}function ml(e){let t=xo(e),n=t.find(s=>s.kind==="word");if(!n||n.value.toUpperCase()!=="CREATE")return;let r=-1;for(let s=0;s=fl||typeof t.viewSql!="function")continue;let a=i.toLowerCase();if(r.has(a))continue;r.add(a);let s=ml(t.viewSql(i)??"");if(!s)continue;let l=Io(s);if(!(!l||l.length===0))for(let u of Ao(l,t,n+1,r))o.includes(u)||o.push(u)}return o}function _o(e,t,n,r){if(!sl(t,e))return;let o=Ro[e];if(e===1&&n&&r){let a=Io(n);if(a&&a.length>0){let s=Ao(a,r);if(s.length>0)return s.map(l=>`no such table: ${l}`).join("; ")}}let i=o.detail?`: ${o.detail}`:"";return`${o.text} (${o.name}${i})`}var Ro,al,cl,ul,Vn,dl,fl,No=M(()=>{"use strict";_();Ro=Object.freeze({1:{name:"SQLITE_ERROR",text:"SQL logic error",detail:"a misspelled name, a syntax error, or a misused construct \u2014 the native engine cannot report SQLite\u2019s detailed message"},3:{name:"SQLITE_PERM",text:"access permission denied",detail:""},4:{name:"SQLITE_ABORT",text:"query aborted",detail:"the statement was rolled back before it finished"},5:{name:"SQLITE_BUSY",text:"database is locked",detail:"another connection holds a write lock on this file"},6:{name:"SQLITE_LOCKED",text:"database table is locked",detail:"a table is locked by another statement on this same connection"},7:{name:"SQLITE_NOMEM",text:"out of memory",detail:""},8:{name:"SQLITE_READONLY",text:"attempt to write a readonly database",detail:""},9:{name:"SQLITE_INTERRUPT",text:"interrupted",detail:"the query deadline elapsed or the run was cancelled"},10:{name:"SQLITE_IOERR",text:"disk I/O error",detail:""},11:{name:"SQLITE_CORRUPT",text:"database disk image is malformed",detail:""},12:{name:"SQLITE_NOTFOUND",text:"unknown operation",detail:""},13:{name:"SQLITE_FULL",text:"database or disk is full",detail:""},14:{name:"SQLITE_CANTOPEN",text:"unable to open database file",detail:""},15:{name:"SQLITE_PROTOCOL",text:"locking protocol",detail:""},17:{name:"SQLITE_SCHEMA",text:"database schema has changed",detail:""},18:{name:"SQLITE_TOOBIG",text:"string or blob too big",detail:"a value exceeded SQLite\u2019s maximum length for this build"},19:{name:"SQLITE_CONSTRAINT",text:"constraint failed",detail:"a NOT NULL, UNIQUE, CHECK, PRIMARY KEY or FOREIGN KEY constraint rejected the row"},20:{name:"SQLITE_MISMATCH",text:"datatype mismatch",detail:"a value does not fit the target column (an INTEGER PRIMARY KEY only accepts integers)"},21:{name:"SQLITE_MISUSE",text:"bad parameter or other API misuse",detail:""},23:{name:"SQLITE_AUTH",text:"authorization denied",detail:""},25:{name:"SQLITE_RANGE",text:"column index out of range",detail:""},26:{name:"SQLITE_NOTADB",text:"file is not a database",detail:""}});al=new Set(["SELECT","INSERT","REPLACE","UPDATE","DELETE","VALUES"]);cl=new Set(["FROM","JOIN","INTO","UPDATE"]),ul=new Set(["SELECT","VALUES","WITH"]),Vn=/[A-Za-z0-9_$\u0080-\uffff]/,dl=4,fl=4});function Rl(e){let t=new Error(`${e.toUpperCase()} is blocked on the native engine: it can open or create a database file outside the path this session is bound to, which would defeat the desktop path sandbox. Only the bound database is reachable.`);return t.code=Tl,t}function xl(){let e=new Error("VACUUM ... INTO is blocked on the native engine: it writes a full copy of the database to an arbitrary path outside the one this session is bound to, defeating the desktop path sandbox. Plain VACUUM (in place) is allowed.");return e.code=Cl,e}function Wn(e){let t=0;for(;;){let n=t;for(;t{let r=/^(.*):\d+$/.exec(n);return r!==null&&t.has(r[1])})}function Ol(e,t){return typeof e=="bigint"&&!t?Number(e):e}function kt(e,t,n,r){if(n>=t.length)return null;let o=t.slice(n),i=Wn(o),a=hl.exec(i);if(a)throw Rl(a[0]);let s;try{s=e.prepare(o)}catch(d){throw jn(d,o,r)}let l;try{l=String(s)}catch(d){throw Y(s),d}if(l==="")return Y(s),null;let u=_l(o,l);if(u<0)throw Y(s),new Error("Unable to determine the SQL statement boundary: the compiled statement text does not align with its source");let c=o.slice(0,u);if(El.test(i)&&Sl.test(c))throw Y(s),xl();return{compiled:s,source:c,expanded:l,end:n+u}}function Y(e){try{e?.finalize?.()}catch{}}function Ll(e,t,n){let r=0;for(;;){let o=kt(e,t,r,n);if(o===null)return;r=o.end,Y(o.compiled)}}function Fn(e,t,n,r){let o=t,i,a=null,s,l=null,u=-1,c=n===r?n:r,d=()=>{if(e.assertUsable(),o===null)throw new Error("Statement closed")},f=()=>{if(s!==void 0)return s;let g=e.probeColumnNames(c);return s=g&&n!==r&&Nl(g)?null:g,s},m=()=>{if(a!==null)return a;let g;try{g=i===void 0?o.all():o.all(i)}catch(R){throw jn(R,n,e.describeError)}let S=g.length>0?Object.keys(g[0]):[],w=g.map(R=>S.map(x=>R[x]));if(s&&g.length>0&&s.length!==S.length){let R=n===r?e.readRowsThroughView(c):null;if(R)return a=R,a;s=S,l=S}return a={columns:s??S,values:w},a},E=()=>{if(l!==null)return l;if(a!==null)return l=a.columns,l;let g=f();return g?(l=g,l):yl.test(Wn(c))?(l=m().columns,l):[]},y={bind(g){return d(),i=g??void 0,a=null,u=-1,!0},step(){return d(),m(),u+=1,u=a.values.length)return[];let w=S?.useBigInt===!0;return a.values[u].map(R=>Ol(R,w))},getColumnNames(){return d(),E().slice()},run(g){return d(),g!=null&&y.bind(g),y.step(),y.reset()},reset(){return d(),i=void 0,a=null,u=-1,!0},getSQL(){return n},free(){if(o===null)return!1;let g=o;return o=null,e.forget(y),Y(g),!0}};return e.register(y),y}function Lo(e={},t={}){let n=t.sqlite;if(typeof n?.Database!="function")throw new Error("createShimDatabase requires deps.sqlite.Database");if(e.content!==void 0)throw new Error("createShimDatabase: opening from bytes is not supported by the native engine; open by path ({ path, readOnly }) or use the WASM engine");let r=e.readOnly===!0,o=e.path===void 0||e.path===null?new n.Database(":memory:"):new n.Database(e.path,r?{readOnly:!0}:{create:!0}),i=!1,a=new Set,s=null,l=null,u=()=>{if(l!==null)throw l;if(i)throw new Error("Database closed")},c=(p,b)=>{try{t.onCleanupFailure?.(p,b)}catch{}},d=p=>{let b=o.prepare(p);try{let k=b.all()[0];return k===void 0?void 0:k[Object.keys(k)[0]]}finally{Y(b)}},f=()=>{try{o.exec("PRAGMA query_only = 1")}catch(p){throw st(new Error(`Unable to enforce read-only mode: ${p?.message??p}`),p)}if(Number(d("PRAGMA query_only"))!==1)throw new Error("Unable to enforce read-only mode: PRAGMA query_only did not take")};if(r)try{f()}catch(p){throw o.close(),p}let m=!1,E=p=>{if(!r)return p();if(l!==null)throw l;if(m)throw new Error("Internal error: read-only write lift is not re-entrant");o.exec("PRAGMA query_only = 0"),m=!0;let b=null,N;try{N=p()}catch(k){b=k}try{o.exec("PRAGMA query_only = 1")}catch(k){l=st(new Error("Read-only enforcement could not be restored (PRAGMA query_only); this connection is no longer trustworthy and has been disabled"),k),l.cause=k,b?b.cause===void 0&&(b.cause=k):b=l}finally{m=!1}if(b)throw b;return N},y=(p,b)=>{let N=Wn(p);if(N==="")return null;let k=`_sqlx_shim_cols_${++pl}`,U=`"${k}"`,j=`'${k}'`;try{E(()=>{let F=o.prepare(`CREATE TEMP VIEW ${U} AS ${N}`);try{F.run()}finally{Y(F)}})}catch(F){if(l!==null)throw l;if(Al(F)&&wl.test(N))throw st(new Error(`Column names are unavailable: this connection refuses writes (PRAGMA query_only is armed) but was not opened read-only, so the probe cannot create the temporary view it reads them from. Close and reopen the database to clear it. (A session made read-only after opening must be escalated through enforceReadOnly(), which is what lets the probe lift query_only. SQLite: ${F?.message??F})`),F);return null}try{return b({quoted:U,literal:j})}catch{if(l!==null)throw l;return null}finally{try{E(()=>o.exec(`DROP VIEW IF EXISTS temp.${U}`))}catch(F){c(F,"drop column-probe view")}}},g=p=>{let b;try{b=o.prepare(`SELECT 1 FROM "${String(p).replace(/"/g,'""')}" WHERE 0`)}catch{return!1}return Y(b),!0},S=p=>{let b;try{b=o.prepare("SELECT count(*) AS c FROM (SELECT name FROM sqlite_schema UNION ALL SELECT name FROM sqlite_temp_schema) WHERE name = ? COLLATE NOCASE")}catch{return!0}try{return Number(b.all([String(p)])[0]?.c??1)>0}catch{return!0}finally{Y(b)}},w=p=>{let b;try{b=o.prepare("SELECT sql FROM (SELECT name, type, sql FROM sqlite_schema UNION ALL SELECT name, type, sql FROM sqlite_temp_schema) WHERE type = 'view' AND name = ? COLLATE NOCASE LIMIT 1")}catch{return}try{let N=b.all([String(p)])[0]?.sql;return typeof N=="string"?N:void 0}catch{return}finally{Y(b)}},R=(p,b)=>_o(p.errno,p.message,b,{resolves:g,inCatalog:S,viewSql:w}),x={assertUsable:()=>{if(l!==null)throw l},describeError:R,register:p=>a.add(p),forget:p=>a.delete(p),probeColumnNames:p=>y(p,({literal:b})=>{let N=o.prepare(`SELECT name FROM pragma_table_info(${b})`);try{let k=N.all().map(U=>U.name);return k.length>0?k:null}finally{Y(N)}}),readRowsThroughView:p=>y(p,({quoted:b})=>{let N=o.prepare(`SELECT * FROM ${b}`);try{let k=N.all();if(k.length===0)return null;let U=Object.keys(k[0]);return{columns:U,values:k.map(j=>U.map(F=>j[F]))}}finally{Y(N)}})},T=p=>{let b=kt(o,p,0,R);if(b===null)throw new Error("Nothing to prepare");return Fn(x,b.compiled,b.source,b.expanded)},A=()=>{let p=t.fs;if(!p||typeof p.makeTempDir!="function"||typeof p.readFile!="function"||typeof p.remove!="function")throw new Error("export() requires deps.fs with makeTempDir/readFile/remove");return p},$=null,O=p=>E(()=>{let b=o.prepare("VACUUM INTO ?");try{b.run([p])}finally{Y(b)}}),D={exec(p,b,N){u();let k=[],U=0;for(;;){let j=kt(o,p,U,R);if(j===null)break;U=j.end;let F=Fn(x,j.compiled,j.source,j.expanded);try{b!=null&&F.bind(b),F.getColumnNames();let re=null,Lt=[];for(;F.step();)re===null&&(re=F.getColumnNames()),Lt.push(F.get(null,N));re!==null&&k.push({columns:re,values:Lt})}finally{F.free()}}return k},run(p,b){if(u(),b!=null){let N=T(p);try{N.bind(b),N.step()}finally{N.free()}}else{bl.test(p)&&Ll(o,p,R);try{o.exec(p)}catch(N){throw jn(N,p,R)}}return D},prepare(p,b){u();let N=T(p);return b!=null&&N.bind(b),N},iterateStatements(p){u();let b=0,N=null,k=!1;return{next(){if(N!==null&&(N.free(),N=null),k)return{done:!0};u();let U;try{U=kt(o,p,b,R)}catch(j){throw k=!0,j}return U===null?(k=!0,{done:!0}):(b=U.end,N=Fn(x,U.compiled,U.source,U.expanded),{value:N,done:!1})},getRemainingSQL(){return p.slice(b)},[Symbol.iterator](){return this}}},getRowsModified(){return u(),s??=o.prepare("SELECT changes() AS c"),Number(s.all()[0].c)},export(){u();let p=A(),b=p.makeTempDir();if(typeof b?.then=="function")throw new Error("export() requires a synchronous deps.fs; use exportAsync() on runtimes whose filesystem API is promise-based (tjs)");try{let N=`${b}/export.sqlite`;O(N);let k=p.readFile(N);if(typeof k?.then=="function")throw new Error("export() requires a synchronous deps.fs.readFile; use exportAsync()");return k}finally{try{p.remove(b)}catch(N){c(N,"remove export temp directory")}}},async exportAsync(){u();let p=A(),b=await p.makeTempDir();try{let N=`${b}/export.sqlite`;return O(N),await p.readFile(N)}finally{try{await p.remove(b)}catch(N){c(N,"remove export temp directory")}}},async exportToPath(p){if(u(),typeof p!="string"||p.length===0)throw new Error("exportToPath requires a non-empty target path");O(p)},progress_handler(p,b){u(),$=b==null?null:{interval:p,callback:b}},get progressHandler(){return $},setQueryDeadline(p){u(),o.setQueryDeadline?.(p)},clearQueryDeadline(){u(),o.clearQueryDeadline?.()},interrupt(){u(),o.interrupt?.()},get inTransaction(){return u(),o.inTransaction===!0},enforceReadOnly(){if(u(),r)return!0;if(m)throw new Error("Internal error: cannot escalate to read-only while an internal write lift is open");try{f()}catch(p){throw l=st(new Error(`Read-only enforcement could not be armed (${p?.message??p}); this connection is no longer trustworthy and has been disabled`),p),l.cause=p,l}return r=!0,!0},close(){if(!i){i=!0;for(let p of[...a])p.free();a.clear(),Y(s),s=null,o.close()}},get backingDatabase(){return o}};return D}var pl,gl,yl,hl,El,wl,Sl,bl,Tl,Cl,Oo,Il,$o=M(()=>{"use strict";_();No();pl=0,gl=/^(?:\?\d*|[:@$][A-Za-z0-9_$\u0080-\uffff]+(?:\([^()]*\))?)/,yl=/^explain\b/i,hl=/^(?:attach|detach)\b/i,El=/^vacuum\b/i,wl=/^(?:select|values|with)\b/i,Sl=/\binto\b/i,bl=/\b(?:attach|detach|vacuum)\b/i,Tl="ERR_NATIVE_SQL_ATTACH_BLOCKED",Cl="ERR_NATIVE_SQL_VACUUM_INTO_BLOCKED";Oo="NULL";Il=8});function Kn(e){return Number.isNaN(e)?ko:e>0?vo:Qn}function zn(e){return e.startsWith("~")?`~${e}`:e}function Xn(e){return e.startsWith("~~")?e.slice(1):e===vo?Number.POSITIVE_INFINITY:e===Qn?Number.NEGATIVE_INFINITY:e===ko?Number.NaN:e}var Hn,vo,Qn,ko,$l,Pt=M(()=>{"use strict";_();Hn="~sqlite-explorer-non-finite:",vo=`${Hn}Infinity`,Qn=`${Hn}-Infinity`,ko=`${Hn}NaN`,$l=Qn.length+2});function Vo(e,t,n){return new at({code:vl,direction:e,actualBytes:t,limitBytes:n,message:`Native frame rejected: ${e} payload is ${t} bytes and exceeds the ${n}-byte frame limit.`})}function Dt(e,t){return new at({code:kl,direction:"incoming",message:`Native frame rejected: ${e}`,cause:t})}function Ul(e,t){return new at({code:Pl,direction:"incoming",actualBytes:e,limitBytes:t,fatal:!0,message:`Native frame stream desynchronised: header declares ${e} bytes, beyond the ${t}-byte recoverable-drain limit. The stream is no longer framed; reading has stopped.`})}function Fo(e){if(e===void 0)return Uo;if(!Number.isSafeInteger(e)||e<1||e>Po)throw new RangeError(`Native frame limit must be an integer in [1, ${Po}], got ${e}`);return e}function ql(e,t){if(e===void 0)return t*qo;if(!Number.isSafeInteger(e)||eMt)throw new RangeError(`Native frame drain limit must be an integer in [${t}, ${Mt}], got ${e}`);return e}function Gn(e){if(e.length===0)return"";let t=[];for(let n=0;nMt)throw new RangeError(`Native frame header must be an integer in [0, ${Mt}], got ${e}`);return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function Wl(e,t=0){if(!e||e.length>>0}function Mo(e){return e.length<=Bo?e:`${e.slice(0,Bo)}\u2026 [truncated]`}function Ut(e){if(!e||typeof e!="object")return{name:"Error",message:Mo(typeof e=="string"?e:String(e))};let t={name:typeof e.name=="string"?e.name:"Error",message:Mo(typeof e.message=="string"?e.message:String(e))};return typeof e.code=="string"&&(t.code=e.code),Number.isSafeInteger(e.errno)&&(t.errno=e.errno),t}function jl(e){if(!e||typeof e!="object"||typeof e.message!="string")return;let t=new Error(e.message);return typeof e.name=="string"&&(t.name=e.name),typeof e.code=="string"&&(t.code=e.code),Number.isSafeInteger(e.errno)&&(t.errno=e.errno),t}function Yn(e){return!!e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"}function Hl(e){return Jn(e,new WeakSet)}function Jn(e,t){if(typeof e=="bigint")return{__type:"BigInt",decimal:e.toString()};if(typeof e=="number")return Number.isFinite(e)?e:Kn(e);if(typeof e=="string")return zn(e);if(e instanceof Uint8Array)return{__type:"Uint8Array",base64:Gn(e)};if(ArrayBuffer.isView(e))return{__type:"Uint8Array",base64:Gn(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))};if(e instanceof ArrayBuffer)return{__type:"Uint8Array",base64:Gn(new Uint8Array(e))};if(e instanceof Error)return{__type:"Error",error:Ut(e)};if(e===null||typeof e!="object")return e;if(t.has(e))throw new TypeError("Native frame value: circular reference");t.add(e);try{if(Array.isArray(e))return e.map(r=>Jn(r,t));if(!Yn(e))return e;let n={};for(let r of Object.keys(e))Wo(n,r,Jn(e[r],t));return n}finally{t.delete(e)}}function Bt(e,t,n){return t.length===2&&t.includes("__type")&&t.includes(n)}function Wo(e,t,n){if(t==="__proto__"){Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0});return}e[t]=n}function Zn(e){if(typeof e=="string")return Xn(e);if(Array.isArray(e))return e.map(Zn);if(!Yn(e))return e;let t=Object.keys(e);if(e.__type==="BigInt"&&typeof e.decimal=="string"&&Bt(e,t,"decimal")){if(!Ml.test(e.decimal))throw new TypeError(`Native frame value: invalid BigInt marker payload ${JSON.stringify(e.decimal)}`);return BigInt(e.decimal)}if(e.__type==="Uint8Array"&&typeof e.base64=="string"&&Bt(e,t,"base64"))return Vl(e.base64);if(e.__type==="Uint8Array"&&Array.isArray(e.data)&&Bt(e,t,"data"))return new Uint8Array(e.data);if(e.__type==="Error"&&Yn(e.error)&&Bt(e,t,"error")){let r=jl(e.error);if(!r)throw new TypeError("Native frame value: invalid Error marker payload");return r}let n={};for(let r of t)Wo(n,r,Zn(e[r]));return n}function Ql(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function er(e,t){let n=Fo(t?.maxFrameBytes),r=JSON.stringify(Hl(e));if(typeof r!="string")throw new TypeError("Native frame: message is not JSON-serialisable");if(r.length*3>n){let a=Ql(r);if(a>n)throw Vo("outgoing",a,n)}let o=Dl.encode(r),i=new Uint8Array(Oe+o.length);return i.set(Fl(o.length),0),i.set(o,Oe),i}function jo(e,t,n){let r=Fo(n?.maxFrameBytes),o=ql(n?.maxDrainBytes,r),i=[],a=0,s=0,l=-1,u=0,c=!1,d=!1,f=g=>{s-=g;let S=g;for(;S>0;){let R=i[0].length-a;R>S?(a+=S,S=0):(S-=R,i.shift(),a=0)}},m=g=>{if(g===0)return new Uint8Array(0);let S=i[0];if(S.length-a>=g){let x=S.subarray(a,a+g);return f(g),x}let w=new Uint8Array(g),R=0;for(;R{let S;try{S=Bl.decode(g)}catch(x){t(Dt(`payload is not valid UTF-8 (${g.length} bytes)`,x));return}let w;try{w=JSON.parse(S)}catch(x){t(Dt(`payload is not valid JSON (${g.length} bytes)`,x));return}let R;try{R=Zn(w)}catch(x){t(Dt(`payload carries an invalid tagged value: ${x?.message??x}`,x));return}e(R)},y=()=>{for(;;){if(u>0){let S=Math.min(u,s);if(S>0&&(f(S),u-=S),u>0)return;continue}if(l<0){if(so){d=!0,i.length=0,a=0,s=0,u=0,t(Ul(S,o));return}if(S>r){u=S,t(Vo("incoming",S,r));continue}l=S}if(s0||l>=0))){let g=l>=0?l-s:null;t(Dt(g===null?`stream ended with a truncated frame header (${s} of ${Oe} bytes)`:`stream ended with a truncated frame payload (${g} of ${l} bytes missing)`))}},get bufferedBytes(){return s},get skipRemainingBytes(){return u},get fatal(){return d}}}function qe(e,t=null){let n=Ut(e);return{channel:"rpc",content:{kind:"response",messageId:t,success:!1,errorMessage:n.message,error:n}}}var Oe,Uo,qo,hf,Po,Mt,vl,kl,Pl,Dl,Bl,Ml,Do,Bo,at,tr=M(()=>{"use strict";_();Pt();Oe=4,Uo=16*1024*1024,qo=4,hf=Uo*qo,Po=268435456,Mt=4294967295,vl="ERR_NATIVE_FRAME_TOO_LARGE",kl="ERR_NATIVE_FRAME_MALFORMED",Pl="ERR_NATIVE_FRAME_DESYNC",Dl=new TextEncoder,Bl=new TextDecoder("utf-8",{fatal:!0}),Ml=/^-?(?:0|[1-9][0-9]*)$/,Do=32768,Bo=512,at=class extends Error{constructor(t){super(t.message,t.cause===void 0?void 0:{cause:t.cause}),this.name="NativeFrameError",this.code=t.code,this.direction=t.direction,this.actualBytes=t.actualBytes,this.limitBytes=t.limitBytes,this.fatal=t.fatal===!0}}});function Ho(e={}){let t=e.stdin??globalThis.tjs?.stdin,n=e.stdout??globalThis.tjs?.stdout;if(!t||typeof t.getReader!="function")throw new TypeError("stdio transport requires a WHATWG readable stdin (getReader)");if(!n||typeof n.getWriter!="function")throw new TypeError("stdio transport requires a WHATWG writable stdout (getWriter)");let r={};e.maxFrameBytes!==void 0&&(r.maxFrameBytes=e.maxFrameBytes),e.maxDrainBytes!==void 0&&(r.maxDrainBytes=e.maxDrainBytes);let o=e.maxFrameBytes===void 0?void 0:{maxFrameBytes:e.maxFrameBytes},i=t.getReader(),a=n.getWriter(),s=null,l=!1,u=!1,c=null,d=Promise.resolve(),f=(w,R,x)=>{try{R(x)}catch(T){console.error(`[stdio-transport] ${w} callback threw`,T)}},m=w=>{e.onTransportError?f("onTransportError",e.onTransportError,w):console.error("[stdio-transport]",w)},E=w=>{let R=d.then(()=>a.write(w));return d=R.then(()=>{},()=>{}),R.catch(m),R},y=jo(w=>{if(!s){m(new Error("stdio transport received a frame before onmessage was installed"));return}f("onmessage",s,{data:w})},w=>{try{E(er(qe(w),o))}catch(R){m(R)}w?.fatal===!0&&(c=w)},r),g=w=>{u||(u=!0,e.onEof&&f("onEof",e.onEof,w))},S=async()=>{let w={kind:"eof"};try{for(;;){let R=await i.read();if(R.done)break;let x=R.value;if(x&&x.length>0&&y.push(x),c){w={kind:"fatal",error:c};break}}}catch(R){m(R),w={kind:"stream-error",error:R}}finally{y.end(),g(w)}};return{get onmessage(){return s},set onmessage(w){s=w},postMessage(w){return E(er(w,o))},start(){if(l)throw new Error("stdio transport already started");return l=!0,S()},flush(){return d}}}var Qo=M(()=>{"use strict";_();tr()});function Ko(e){return e.startsWith("--path-utf8=")?decodeURIComponent(e.slice(12)):e}var zo=M(()=>{"use strict";_()});import{Database as Kl}from"tjs:sqlite";import Xo from"tjs:path";async function Zl(e){let t=Xo.dirname(tjs.exePath);for(let n of["query-plan.dylib","query-plan.so","query-plan.dll"]){let r=Xo.join(t,n);try{await tjs.stat(r)}catch(o){if(o?.code==="ENOENT")continue;throw o}e.backingDatabase.loadExtension(r,"sqlite3_sqliteexplorer_init");return}throw new Error("Missing bundled query-plan reader beside the native runtime.")}async function B(e){if(Ve=null,e?.path!==qt)throw new Error(`refusing to open a database other than the one this sidecar was bound to at spawn (got ${JSON.stringify(e?.path??null)})`);let t=e.readOnlyMode===!0;if(Gl&&!t)throw new Error("refusing a writable open: this sidecar was spawned for a read-only session");let n=Lo({path:qt,readOnly:t},Jl);try{await Zl(n)}catch(i){throw n.close(),new Error(`Unable to initialize the bounded query-plan reader: ${i?.message??i}`,{cause:i})}let r=Number.isFinite(e.queryTimeout)&&e.queryTimeout>0?e.queryTimeout:zl,o=n.progress_handler.bind(n);return n.progress_handler=(i,a)=>{o(i,a),i!=null&&typeof a=="function"?n.setQueryDeadline(r):n.clearQueryDeadline()},Ve=n,{SQL:Object.freeze({engine:"tjs-native",queryPlanReaderActive:!0}),db:n}}async function nc(e,t){let n=`__shell_export_${++ec}_${Math.random().toString(36).slice(2)}`,r=null;Vt.set(n,o=>{r=o});try{if(typeof globalThis.onmessage!="function")throw new Error("worker method layer is not loaded (no onmessage handler)");await globalThis.onmessage({data:{channel:"rpc",content:{kind:"invoke",messageId:n,targetMethod:e,payload:t}}})}finally{Vt.delete(n)}if(r===null)throw new Error(`in-process ${e} completed without posting a response`);if(r.success!==!0){let o=new Error(r.errorMessage||`${e} failed`);throw typeof r.error?.code=="string"&&(o.code=r.error.code),Number.isSafeInteger(r.error?.errno)&&(o.errno=r.error.errno),o}return r.data}async function rc(e){try{if(!Ve)throw new Error("No database initialized");let t=await Ve.exportAsync();We({channel:"rpc",content:{kind:"response",messageId:e,success:!0,data:t}})}catch(t){We(qe(t,e))}}async function oc(e){let t=typeof e?.messageId=="string"||typeof e?.messageId=="number"?e.messageId:null;if(t===null){console.error("[native-worker] shell export request without a messageId; dropped");return}try{let n=e.method,r=e.tempPath;if(n!=="exportDatabase"&&n!=="exportTable")throw new Error(`unknown shell export method ${JSON.stringify(n??null)}`);if(typeof r!="string"||r.length===0)throw new Error("shell export request carries no tempPath");let o;if(n==="exportDatabase"){if(!Ve)throw new Error("No database initialized");await Ve.exportToPath(r),o=(await tjs.stat(r)).size}else{if(!Array.isArray(e.args))throw new Error("shell exportTable request carries no args array");let a=(await nc("exportTable",e.args))?.contentChunks;if(!Array.isArray(a))throw new Error("exportTable returned no contentChunks array");o=await ic(r,a)}We({channel:"shell",content:{kind:"export-result",messageId:t,success:!0,bytesWritten:o}})}catch(n){We({channel:"shell",content:{kind:"export-result",messageId:t,success:!1,error:Ut(n)}})}}async function ic(e,t){let n=await tjs.open(e,"wx"),r=0,o=null;try{let i=new TextEncoder;for(let a of t){let s;if(typeof a=="string")s=i.encode(a);else if(a instanceof Uint8Array)s=a;else throw new Error(`exportTable produced an unwritable chunk (${typeof a})`);for(;s.length>0;){let l=await n.write(s);if(!Number.isInteger(l)||l<=0)throw new Error(`short write to export temp file (wrote ${l})`);r+=l,s=s.subarray(l)}}return await n.sync(),r}catch(i){throw o=i,i}finally{try{await n.close()}catch(i){if(o===null)throw i;console.error(`[native-worker] failed to close export temp file: ${i?.message??i}`)}}}var Jo,Zo,ei,Go,zl,Xl,Le,qt,Gl,Yl,Jl,Ve,ti,ni,Fe,ri,We,Vt,ec,tc,Yo,nr=M(()=>{"use strict";_();$o();Qo();tr();zo();Jo=0,Zo=1,ei=2,Go=3,zl=3e4,Xl=1e3,Le=tjs.args.slice(3);(Le.length!==2||Le[0]===""||Le[1]!=="ro"&&Le[1]!=="rw")&&(console.error(`[native-worker] bad argv ${JSON.stringify(Le)}; usage: tjs run native-worker-desktop.js ro|rw`),tjs.exit(ei));try{if(qt=Ko(Le[0]),!qt)throw new Error("database path is empty")}catch(e){console.error(`[native-worker] invalid bound path: ${e.message}`),tjs.exit(ei)}Gl=Le[1]==="ro",Yl=(tjs.env.TMPDIR??tjs.env.TEMP??tjs.env.TMP??"/tmp").replace(/[\\/]+$/,""),Jl={sqlite:{Database:Kl},fs:{makeTempDir:()=>tjs.makeTempDir(`${Yl}/sqlite-explorer-export-XXXXXX`),readFile:e=>tjs.readFile(e),remove:e=>tjs.remove(e,{recursive:!0})},onCleanupFailure:(e,t)=>{console.error(`[native-worker] cleanup failed (${t}): ${e?.message??e}`)}},Ve=null;ti={kind:"eof"},ni=()=>ti,Fe=Ho({onEof:e=>{ti=e},onTransportError:e=>{console.error(`[native-worker] transport error: ${e?.message??e}`)}}),ri=e=>{let t=e?.content?.messageId;return typeof t=="string"||typeof t=="number"?t:null},We=e=>{try{Fe.postMessage(e)}catch(t){try{Fe.postMessage(qe(t,ri(e)))}catch(n){console.error(`[native-worker] failed to send bounded error response: ${n?.message??n}`)}}};globalThis.postMessage=(e,t)=>{tc(e)||We(e)};Vt=new Map,ec=0,tc=e=>{if(e?.channel!=="rpc"||e?.content?.kind!=="response")return!1;let t=Vt.get(e.content.messageId);return t===void 0?!1:(Vt.delete(e.content.messageId),t(e.content),!0)};Fe.onmessage=async e=>{let t=e?.data;try{if(t?.channel==="shell"){t.content?.kind==="export"?await oc(t.content):console.error(`[native-worker] unknown shell message kind ${JSON.stringify(t.content?.kind??null)}; dropped`);return}let n=t?.channel==="rpc"?t.content:void 0;if(n?.kind==="invoke"&&n.targetMethod==="exportDatabase"){await rc(n.messageId);return}await globalThis.onmessage?.(e)}catch(n){We(qe(n,ri(t)))}};Yo=tjs.ppid;setInterval(()=>{tjs.ppid!==Yo&&(console.error(`[native-worker] parent process ${Yo} vanished without closing stdin (ppid now ${tjs.ppid}); exiting (code ${Go})`),tjs.exit(Go))},Xl)});var _=M(()=>{"use strict";nr()});function ge(e){if(e==="utf-8")return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});let t=e==="utf-16le";return{decode(n){if(n.length%2!==0)throw new TypeError(`Invalid ${e}: odd byte length`);let r=a=>t?n[a]|n[a+1]<<8:n[a]<<8|n[a+1],o=[],i="";for(let a=0;a=55296&&s<=56319){let l=a+257343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s,l),a+=2}else{if(s>=56320&&s<=57343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s)}i.length>=8192&&(o.push(i),i="")}return o.push(i),o.join("")}}}var Ft=M(()=>{"use strict";_()});function C(e){return`"${e.replace(/"/g,'""')}"`}function L(e){return`main.${C(e)}`}function z(e,t="Identifier"){if(typeof e!="string"||e.length===0)throw new Error(`${t} is required`);if(e.includes("\0"))throw new Error(`${t} cannot contain NUL characters`)}function rr(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function oi(e){if(e==null)return"NULL";if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();if(typeof e=="string"){if(e.includes("\0")){let n=new TextEncoder().encode(e);return`CAST(X'${Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}' AS TEXT)`}return`'${e.replace(/'/g,"''")}'`}return e instanceof Uint8Array?`X'${Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}'`:`'${String(e).replace(/'/g,"''")}'`}function lt(e,t="\\"){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`[${n}%_]`,"g");return e.replace(r,o=>t+o)}function H(e){let t=typeof e;if(t!=="string"&&t!=="number"&&t!=="bigint")throw new Error(`Invalid rowid: ${e}`);if(typeof e=="number"){if(!Number.isSafeInteger(e))throw new Error(`Invalid rowid: ${e}`);return e}let n=typeof e=="string"?e.trim():e.toString();if(!/^[+-]?\d+$/.test(n))throw new Error(`Invalid rowid: ${e}`);let r=BigInt(n);if(rac)throw new Error(`Invalid rowid: ${e}`);let o=Number(r);return Number.isSafeInteger(o)?o:r.toString()}var sc,ac,J=M(()=>{"use strict";_();sc=-9223372036854775808n,ac=9223372036854775807n});function ii(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function li(e){let t=[],n=0;for(;nt.toLowerCase())}function je(e,t){if(!ye(e[t]))throw new Error("Expected an SQL identifier");return t+1}function lc(e,t){return t=je(e,t),e[t]?.kind==="symbol"&&e[t].value==="."&&(t=je(e,t+1)),t}function jt(e){let t=li(e),n=[],r,o=0,i=d=>{if(!X(t[o],d))throw new Error(`Expected ${d} in stored CREATE TRIGGER SQL`);o++};if(i("CREATE"),(X(t[o],"TEMP")||X(t[o],"TEMPORARY"))&&o++,i("TRIGGER"),X(t[o],"IF")&&(o++,i("NOT"),i("EXISTS")),o=lc(t,o),X(t[o],"BEFORE")||X(t[o],"AFTER")?o++:X(t[o],"INSTEAD")&&(o++,i("OF")),X(t[o],"INSERT"))r="insert",o++;else if(X(t[o],"DELETE"))r="delete",o++;else if(X(t[o],"UPDATE")){if(r="update",o++,X(t[o],"OF")){if(o++,!ye(t[o]))throw new Error("Expected an SQL identifier after UPDATE OF");for(n.push(t[o]),o=je(t,o);t[o]?.kind==="symbol"&&t[o].value===",";){if(o++,!ye(t[o]))throw new Error("Expected an SQL identifier in UPDATE OF column list");n.push(t[o]),o=je(t,o)}}}else throw new Error("Expected a trigger event in stored CREATE TRIGGER SQL");i("ON");let a=o,s=t[o];o=je(t,o);let l;t[o]?.kind==="symbol"&&t[o].value==="."&&(l=s.value,o=je(t,o+1));let u=o,c=t.findIndex((d,f)=>f>=o&&X(d,"BEGIN"));if(c<0)throw new Error("Expected BEGIN in stored CREATE TRIGGER SQL");return{tokens:t,event:r,targetSchema:l,targetStartIndex:a,updateOfColumns:n,referenceStartIndex:u,bodyStartIndex:c+1}}function ir(e){let t=jt(e);return{event:t.event,targetSchema:t.targetSchema,updateOfColumns:t.updateOfColumns.map(n=>n.value)}}function Ht(e,t,n,r){let o=ir(e),i=`${C(t)}.${C(n)}`;if(o.event==="insert")return`EXPLAIN INSERT INTO ${i} DEFAULT VALUES`;if(o.event==="delete")return`EXPLAIN DELETE FROM ${i} WHERE 0`;let a=new Map(r.map(c=>[he(c),c])),s=o.updateOfColumns.map(c=>a.get(he(c))).find(c=>c!==void 0);if(o.updateOfColumns.length>0&&s===void 0)return;let l=s??r[0];if(l===void 0)throw new Error(`Trigger target ${t}.${n} has no writable column to probe`);let u=C(l);return`EXPLAIN UPDATE ${i} SET ${u} = ${u} WHERE 0`}function cc(e){return jt(e).targetSchema}function oe(e){return`main.${C(e)}`}function ci(e,t){let n=`-- TRIGGER ${t}`;return e.some(r=>r.some(o=>o===n))}function ui(e,t){if(t.length!==Wt.length)throw new Error(`View trigger definition fetch was incomplete for ${e}`);let n=[],r=[],o=[];return Wt.forEach((i,a)=>{t[a].forEach(s=>{if(typeof s[0]!="string"||typeof s[1]!="string")throw new Error(`View trigger definition is unavailable for ${e}`);if(i.temporary){let l=s[2]===1||s[2]===1n;if(s[2]!==0&&s[2]!==0n&&!l)throw new Error(`Temporary view shadow state is unavailable for ${e}`);let u;try{u=cc(s[1])}catch(c){let d=c instanceof Error?c.message:String(c);throw new Error(`Unable to determine the target of temporary trigger ${s[0]}: ${d}`)}if(u!==void 0&&he(u)!=="main")return;if(u===void 0){o.push({identifier:s[0],sql:s[1],temporary:!0});return}}n.push(i.temporary?{identifier:s[0],sql:s[1],temporary:!0}:{identifier:s[0],sql:s[1]})})}),{triggers:n,ambiguousTemporaryTriggerNames:r,unqualifiedTemporaryTriggers:o}}function Qt(e){let t=e.ambiguousTemporaryTriggerNames??[];if(t.length===0)return;let n=t.map(r=>`"${r}"`).join(", ");throw new Error(`Cannot modify main view "${e.identifier}" because temporary trigger target ownership is ambiguous for ${n}. Each named trigger uses an unqualified ON target whose historical schema cannot be proven. Drop the TEMP trigger, or recreate it with an explicitly schema-qualified target, before editing or dropping the main view.`)}function Ee(e){let t=e.trim();if(!t)throw new Error("View SELECT definition is required");let n=-1,r,o=!1,i=!1;for(let a=0;a=0&&t[n]===";"?(t.slice(0,n).trimEnd()+t.slice(n+1)).trim():t}function di(e){let t=0,n=-1,r=-1;for(let o of li(e)){if(o.kind==="symbol"&&o.value==="("){t===0&&n===-1&&(n=o.start),t++;continue}if(o.kind==="symbol"&&o.value===")"){t===1&&n!==-1&&r===-1&&(r=o.end),t=Math.max(0,t-1);continue}if(t===0&&X(o,"AS"))return{selectStart:o.end,columnListSql:n!==-1&&r!==-1?e.slice(n,r):void 0}}throw new Error("Unable to locate the SELECT body in the stored view definition")}function fi(e){let{selectStart:t}=di(e);return Ee(e.slice(t))}function sr(e){return di(e).columnListSql}function ct(e,t,n,r){let o=n??(r?.length?`(${r.map(i=>C(i)).join(", ")})`:void 0);return`CREATE VIEW ${C(e)}${o?` ${o}`:""} AS ${t}`}function ar(e,t){let n=jt(e);if(n.targetSchema===void 0){let r=n.tokens[n.targetStartIndex];return`${e.slice(0,r.start)}main.${e.slice(r.start)}`}if(he(n.targetSchema)!=="main")throw new Error(`Unable to recreate temporary trigger ${t}: target is not in main`);return e}function lr(e){if(!e.temporary)return e.sql;let t=/^(\s*CREATE\s+)(?:(?:TEMP|TEMPORARY)\s+)?(TRIGGER\b)/i;if(!t.test(e.sql))throw new Error(`Unable to recreate temporary trigger ${e.identifier}: stored SQL is not a CREATE TRIGGER statement`);return ar(e.sql,e.identifier).replace(t,"$1TEMP $2")}function or(e,t){return e.push({parent:t,aliases:new Set,hasAmbiguousSource:!1}),e.length-1}function fc(e){let{tokens:t,referenceStartIndex:n,bodyStartIndex:r}=e,o=[],i=new Array(t.length),a=new Map,s=[],l=[or(o)],u=!1;for(let c=n;c1&&l.pop()}else d.kind==="symbol"&&d.value===";"&&l.length===1&&(u=!0)}return{scopes:o,tokenScopes:i,matchingParentheses:a}}function mc(e,t){t&&/^(?:NEW|OLD)$/i.test(t)&&e.aliases.add(he(t))}function si(e,t,n,r){let o=r.scopes[n],i=t,a;if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}else if(ye(e[i])){if(a=e[i].value,i++,e[i]?.kind==="symbol"&&e[i].value==="."){if(!ye(e[i+1]))return o.hasAmbiguousSource=!0,i+1;a=e[i+1].value,i+=2}if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}}else return o.hasAmbiguousSource=!0,i+1;let s;if(X(e[i],"AS")){if(!ye(e[i+1]))return o.hasAmbiguousSource=!0,i+1;s=e[i+1].value,i+=2}else if(ye(e[i])){let l=e[i];l.kind==="word"&&uc.has(l.value.toUpperCase())||(s=l.value,i++)}return mc(o,s??a),i}function pc(e,t){let n=new Map;for(let r=e.referenceStartIndex;r{let o=t[r];return n.identifier===o.identifier&&n.sql===o.sql&&n.temporary===!0==(o.temporary===!0)})}function Kt(e,t,n,r){if(e!==void 0&&!yc(e,t)||!hc(n,r))throw new Error(gi)}function yi(e,t){if(e===null||t===null){if(e!==t)throw new Error(gi);return}Kt(e.sql,t.sql,e.triggers,t.triggers)}var Wt,uc,dc,gi,ut=M(()=>{"use strict";_();J();Wt=[{sql:"SELECT name, sql FROM main.sqlite_schema WHERE type = 'trigger' AND tbl_name = ? COLLATE NOCASE ORDER BY rowid",params:e=>[e],temporary:!1},{sql:"SELECT temp_trigger.name, temp_trigger.sql, EXISTS (SELECT 1 FROM sqlite_temp_schema AS temp_view WHERE temp_view.type = 'view' AND temp_view.name = ? COLLATE NOCASE) FROM sqlite_temp_schema AS temp_trigger WHERE temp_trigger.type = 'trigger' AND temp_trigger.tbl_name = ? COLLATE NOCASE ORDER BY temp_trigger.rowid",params:e=>[e,e],temporary:!0}];uc=new Set(["AS","CROSS","END","EXCEPT","FULL","GROUP","HAVING","INDEXED","INNER","INTERSECT","JOIN","LEFT","LIMIT","NATURAL","NOT","OFFSET","ON","ORDER","OUTER","RETURNING","RIGHT","SET","UNION","USING","VALUES","WHERE","WINDOW"]),dc=new Set(["END","EXCEPT","GROUP","HAVING","INTERSECT","LIMIT","OFFSET","ON","ORDER","RETURNING","SET","UNION","USING","VALUES","WHERE","WINDOW"]);gi="The view changed outside this editor. Reload before saving; the view was not modified."});function dr(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function ur(e){return JSON.stringify(e.map(dr))}function cr(e,t,n,r,o){let i=[e,t,n];return ur(r===void 0||o===void 0?i:[...i,r,o])}function hi(e){let t=e instanceof Error?e.message:String(e);return t.length>500?`${t.slice(0,500)}...`:t}function Xt(e,t,n){if(!(e<=t))throw new Error(`View dependency validation refused to inspect ${e} ${n}; the fail-closed limit is ${t}`)}async function wc(e){let t=await e.queryRows("PRAGMA database_list"),n=[],r=new Set;for(let o of t){if(typeof o[1]!="string")throw new Error("SQLite returned invalid database-list metadata during view validation");let i=dr(o[1]);r.has(i)||(r.add(i),n.push(o[1]))}return r.has("temp")||n.unshift("temp"),Xt(n.length,Ec,"database schemas"),n}async function Sc(e,t){let n=[];for(let r of t){let o=zt-n.length;o<0&&Xt(n.length,zt,"schema objects");let i=await e.queryRows(`SELECT type, name, tbl_name, sql FROM ${C(r)}.sqlite_schema WHERE type IN ('view', 'trigger') ORDER BY type, name LIMIT ${o+1}`);for(let a of i){let[s,l,u,c]=a;if(s!=="view"&&s!=="trigger"||typeof l!="string"||typeof c!="string"||s==="trigger"&&typeof u!="string")throw new Error(`SQLite returned invalid ${r} schema metadata during view validation`);n.push({schema:r,kind:s,identifier:l,targetIdentifier:s==="trigger"?u:void 0,sql:c})}Xt(n.length,zt,"schema objects")}return n}async function bc(e,t,n){return(await e.queryRows(`SELECT 1 FROM ${C(t)}.sqlite_schema WHERE type IN ('table', 'view') AND name = ? COLLATE NOCASE LIMIT 1`,[n])).length>0}async function Tc(e,t,n){let r=ir(n.sql);if(r.targetSchema!==void 0)return[r.targetSchema];if(dr(n.schema)!=="temp")return[n.schema];let o=[];for(let i of t)await bc(e,i,n.targetIdentifier)&&o.push(i);return o.length>0?o:["main"]}async function Cc(e,t,n){let r=await e.queryRows(`PRAGMA ${C(t)}.table_xinfo(${C(n)})`),o=[];for(let i of r){if(typeof i[1]!="string")throw new Error(`SQLite returned invalid column metadata for ${t}.${n}`);let a=i[6];a!==2&&a!==2n&&a!==3&&a!==3n&&o.push(i[1])}return o}async function Ei(e){let t=await wc(e),n=await Sc(e,t),r=new Map,o=[],i=new Map;for(let s of n){if(s.kind==="view"){o.push({key:cr("view",s.schema,s.identifier),kind:"view",schema:s.schema,identifier:s.identifier,sql:`EXPLAIN SELECT * FROM ${C(s.schema)}.${C(s.identifier)}`});continue}let l;try{l=await Tc(e,t,s)}catch(u){let c=cr("trigger",s.schema,s.identifier);r.set(c,{key:c,kind:"trigger",schema:s.schema,identifier:s.identifier,valid:!1,error:hi(u)});continue}for(let u of l){let c=s.targetIdentifier,d=cr("trigger",s.schema,s.identifier,u,c);try{let f=ur([u,c]),m=i.get(f);m||(m=Cc(e,u,c),i.set(f,m));let E=Ht(s.sql,u,c,await m);if(E===void 0){r.set(d,{key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,valid:!0});continue}o.push({key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,sql:E})}catch(f){r.set(d,{key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,valid:!1,error:hi(f)})}}}Xt(o.length+r.size,zt,"view and trigger probes");let a=await e.compileStatements(o.map(s=>s.sql));if(a.length!==o.length)throw new Error("View dependency validation returned an incomplete probe result set");return o.forEach((s,l)=>{let u=a[l];r.set(s.key,{key:s.key,kind:s.kind,schema:s.schema,identifier:s.identifier,targetSchema:s.targetSchema,targetIdentifier:s.targetIdentifier,valid:u===void 0,...u===void 0?{}:{error:u}})}),r}function we(e,t){for(let n of e.values()){if(!n.valid)continue;let r=t.get(n.key);if(!r||r.valid)continue;let o=r.targetSchema&&r.targetIdentifier?` on ${r.targetSchema}.${r.targetIdentifier}`:"";throw new Error(`Schema change would break existing ${r.kind} "${r.schema}.${r.identifier}"${o}: ${r.error??"SQLite rejected it"}`)}}var Ec,zt,wi=M(()=>{"use strict";_();J();ut();Ec=32,zt=1024});function dt(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function Rc(e){return/[A-Za-z_\u0080-\uFFFF]/.test(e)}function xc(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Ic(e,t,n){let r=t+1,o="";for(;rSi)throw new Error(`Cannot inspect index dependency: definition exceeds ${Si} characters`);let t=[],n=o=>{if(t.push(o),t.length>bi)throw new Error(`Cannot inspect index dependency: definition exceeds ${bi} tokens`)},r=0;for(;rs.kind==="word"&&s.value.toUpperCase()==="INDEX"),r=t.findIndex((s,l)=>l>n&&s.kind==="word"&&s.value.toUpperCase()==="ON"),o=t.findIndex((s,l)=>l>r&&s.kind==="symbol"&&s.value==="(");if(n<0||r<0||o<0)throw new Error("Cannot inspect index dependency: unsupported CREATE INDEX definition");let i=t.filter((s,l)=>l>=o&&s.kind==="symbol"&&s.value===";");if(i.length>1||i.length===1&&t.at(-1)!==i[0])throw new Error("Cannot inspect index dependency: multiple statements are not allowed");let a=i[0]?.start??e.length;return e.slice(t[o].start,a).trim()}function Ti(e,t){let n=[...t],r=`${e}_dummy`,o=new Set(t.map(dt));for(;o.has(dt(r));)r+="_";return n.push(r),`CREATE TEMP TABLE ${C(e)} (${n.map(C).join(", ")})`}function Ci(e,t){let n=new Set(t.map(dt));return e.filter(r=>n.has(dt(r)))}function Ri(e,t,n){let r=_c(n);return`CREATE INDEX temp.${C(t)} ON ${C(e)} ${r}`}function xi(e,t,n={}){if(z(e,"Table name"),t.length===0)throw new Error("At least one column is required");if(!n||typeof n!="object"||Array.isArray(n)||n.withoutRowid!==void 0&&typeof n.withoutRowid!="boolean")throw new Error("Invalid Create Table options");let r=t.filter(s=>s.primaryKey);if(n.withoutRowid&&r.length===0)throw new Error("WITHOUT ROWID requires a primary key");let o=r.length>1,i=new Set,a=t.map(s=>{if(typeof s=="string")throw new Error("Legacy string column definitions not supported for security");z(s.name,"Column name"),rr(s.type);let l=dt(s.name);if(i.has(l))throw new Error(`Column ${JSON.stringify(s.name)} is defined more than once`);i.add(l);let u=`${C(s.name)} ${s.type}`;return s.primaryKey&&!o&&(u+=" PRIMARY KEY"),s.notNull&&(u+=" NOT NULL"),u+=Nc(s.defaultValue),u});return o&&a.push(`PRIMARY KEY (${r.map(s=>C(s.name)).join(", ")})`),`CREATE TABLE ${L(e)} (${a.join(", ")})${n.withoutRowid?" WITHOUT ROWID":""}`}function Nc(e){return e==null||e===""?"":e.toLowerCase()==="null"?" DEFAULT NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e)?` DEFAULT ${e}`:` DEFAULT '${e.replace(/'/g,"''")}'`}var Si,bi,fr=M(()=>{"use strict";_();J();Si=1024*1024,bi=2e5});function Ii(){return{dangerousPrefix:!1,prefixOpen:!0,needsQuotes:!1}}function Ai(e,t){if((t.includes(",")||t.includes('"')||t.includes(` -`)||t.includes("\r"))&&(e.needsQuotes=!0),!!e.prefixOpen)for(let n of t){if(Oc.has(n)){e.dangerousPrefix=!0,e.needsQuotes=!0,e.prefixOpen=!1;return}if(!Lc.test(n)){e.prefixOpen=!1;return}}}function $c(e){let t=Ii();Ai(t,e);let n=t.dangerousPrefix?`'${e}`:e;return t.needsQuotes?`"${n.replace(/"/g,'""')}"`:n}function vc(e,t){return e==="sql"?{prefix:"CAST(X'",suffix:"' AS TEXT)",byteEncoding:"hex"}:e==="json"?{prefix:`{"$sqliteExplorerTextBytes":{"encoding":${JSON.stringify(t)},"base64":"`,suffix:'"}}',byteEncoding:"base64"}:{prefix:`[SQLite TEXT bytes; encoding=${t}; base64=`,suffix:"]",byteEncoding:"base64"}}function _i(e){let t="",n=0;for(;n+2>>18&63]+Se[o>>>12&63]+Se[o>>>6&63]+Se[o&63]}let r=e.length-n;if(r===1){let o=e[n]<<16;t+=Se[o>>>18&63]+Se[o>>>12&63]+"=="}else if(r===2){let o=e[n]<<16|e[n+1]<<8;t+=Se[o>>>18&63]+Se[o>>>12&63]+Se[o>>>6&63]+"="}return t}function mr(e){let t=typeof e=="bigint"?e.toString():typeof e=="string"?e:void 0;if(t===void 0)throw new Error("SQLite returned invalid exact INTEGER text for export");try{if(BigInt(t).toString()!==t)throw new Error}catch{throw new Error("SQLite returned non-canonical INTEGER text for export")}return t}function kc(e){if(!(e instanceof Uint8Array))throw new Error("SQLite returned invalid BLOB data for export");return e}function pr(e,t){let n=e.unrepresentableTextBytes;if(n===void 0)return;if(e.storageClass!=="text"||!(n instanceof Uint8Array)||!e.textEncoding)throw new Error("SQLite returned invalid unrepresentable TEXT export metadata");let r=vc(t,e.textEncoding),o=r.byteEncoding==="hex"?Array.from(n,i=>i.toString(16).padStart(2,"0")).join(""):_i(n);return r.prefix+o+r.suffix}function gr(e){let t=pr(e,"csv");return t!==void 0?t:e.storageClass==="null"?"":e.storageClass==="blob"?"[BLOB]":e.storageClass==="integer"?mr(e.value):e.storageClass==="text"?$c(String(e.value)):String(e.value)}function Ni(e){let t=pr(e,"json");return t!==void 0?t:e.storageClass==="integer"?mr(e.value):e.storageClass==="blob"?JSON.stringify(_i(kc(e.value))):JSON.stringify(e.value)??"null"}function Oi(e){let t=pr(e,"sql");return t!==void 0?t:e.storageClass==="integer"?mr(e.value):oi(e.value)}var Oc,Lc,Se,yr=M(()=>{"use strict";_();J();Oc=new Set(["=","+","-","@","\uFF1D","\uFF0B","\uFF0D","\uFF20"]),Lc=/^(?:\p{White_Space}|\p{Cc}|\p{Cf})$/u;Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"});function Pi(e,t){if(e.length!==0){if(e.length!==1||e[0].length<1||typeof e[0][0]!="string")throw new Error(`SQLite returned invalid rowid-alias metadata for ${t}`);return e[0][0]}}function Yt(e){return e.replace(/[A-Z]/g,t=>String.fromCharCode(t.charCodeAt(0)+32))}function He(e,t){return Yt(e)===Yt(t)}function Di(e,t){let n=BigInt(Number.MAX_SAFE_INTEGER),r=BigInt(Number.MIN_SAFE_INTEGER);return e.some(o=>{let i=o[t];return typeof i=="bigint"&&(i>n||i`${Dc}${f}`),r=Array.from({length:t},(d,f)=>`${Bc}${f}`),o=C(Pc),i=n.map(C),a=t*2<=Uc,s=i.map((d,f)=>`CASE WHEN typeof(${d}) = 'real' THEN CAST(${d} AS TEXT) END AS ${C(r[f])}`),l=a?[...i,...s]:i,u=a?[...n,...r]:n,c={sql:`WITH ${o} (${i.join(", ")}) AS ( +/*! sqlite-explorer-native-worker-sha256:25265904edaa2243bf54f1d223f20ec8702506a167eb55993baf24d2cba9efba */ +var M=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};function al(e,t){let n=Ro[t];return n!==void 0&&String(e).trim()===n.text}function cl(e){let t=[];for(let n=0;ni.kind==="word");if(!r||!ll.has(r.value.toUpperCase())||n.some(i=>i.kind==="word"&&i.value.toUpperCase()==="WITH"))return null;let o=[];for(let i=0;i=fl)))break}return o}function pl(e){let t=xo(e),n=t.find(s=>s.kind==="word");if(!n||n.value.toUpperCase()!=="CREATE")return;let r=-1;for(let s=0;s=ml||typeof t.viewSql!="function")continue;let a=i.toLowerCase();if(r.has(a))continue;r.add(a);let s=pl(t.viewSql(i)??"");if(!s)continue;let l=Io(s);if(!(!l||l.length===0))for(let u of Ao(l,t,n+1,r))o.includes(u)||o.push(u)}return o}function _o(e,t,n,r){if(!al(t,e))return;let o=Ro[e];if(e===1&&n&&r){let a=Io(n);if(a&&a.length>0){let s=Ao(a,r);if(s.length>0)return s.map(l=>`no such table: ${l}`).join("; ")}}let i=o.detail?`: ${o.detail}`:"";return`${o.text} (${o.name}${i})`}var Ro,ll,ul,dl,Vn,fl,ml,No=M(()=>{"use strict";_();Ro=Object.freeze({1:{name:"SQLITE_ERROR",text:"SQL logic error",detail:"a misspelled name, a syntax error, or a misused construct \u2014 the native engine cannot report SQLite\u2019s detailed message"},3:{name:"SQLITE_PERM",text:"access permission denied",detail:""},4:{name:"SQLITE_ABORT",text:"query aborted",detail:"the statement was rolled back before it finished"},5:{name:"SQLITE_BUSY",text:"database is locked",detail:"another connection holds a write lock on this file"},6:{name:"SQLITE_LOCKED",text:"database table is locked",detail:"a table is locked by another statement on this same connection"},7:{name:"SQLITE_NOMEM",text:"out of memory",detail:""},8:{name:"SQLITE_READONLY",text:"attempt to write a readonly database",detail:""},9:{name:"SQLITE_INTERRUPT",text:"interrupted",detail:"the query deadline elapsed or the run was cancelled"},10:{name:"SQLITE_IOERR",text:"disk I/O error",detail:""},11:{name:"SQLITE_CORRUPT",text:"database disk image is malformed",detail:""},12:{name:"SQLITE_NOTFOUND",text:"unknown operation",detail:""},13:{name:"SQLITE_FULL",text:"database or disk is full",detail:""},14:{name:"SQLITE_CANTOPEN",text:"unable to open database file",detail:""},15:{name:"SQLITE_PROTOCOL",text:"locking protocol",detail:""},17:{name:"SQLITE_SCHEMA",text:"database schema has changed",detail:""},18:{name:"SQLITE_TOOBIG",text:"string or blob too big",detail:"a value exceeded SQLite\u2019s maximum length for this build"},19:{name:"SQLITE_CONSTRAINT",text:"constraint failed",detail:"a NOT NULL, UNIQUE, CHECK, PRIMARY KEY or FOREIGN KEY constraint rejected the row"},20:{name:"SQLITE_MISMATCH",text:"datatype mismatch",detail:"a value does not fit the target column (an INTEGER PRIMARY KEY only accepts integers)"},21:{name:"SQLITE_MISUSE",text:"bad parameter or other API misuse",detail:""},23:{name:"SQLITE_AUTH",text:"authorization denied",detail:""},25:{name:"SQLITE_RANGE",text:"column index out of range",detail:""},26:{name:"SQLITE_NOTADB",text:"file is not a database",detail:""}});ll=new Set(["SELECT","INSERT","REPLACE","UPDATE","DELETE","VALUES"]);ul=new Set(["FROM","JOIN","INTO","UPDATE"]),dl=new Set(["SELECT","VALUES","WITH"]),Vn=/[A-Za-z0-9_$\u0080-\uffff]/,fl=4,ml=4});function xl(e){let t=new Error(`${e.toUpperCase()} is blocked on the native engine: it can open or create a database file outside the path this session is bound to, which would defeat the desktop path sandbox. Only the bound database is reachable.`);return t.code=Cl,t}function Il(){let e=new Error("VACUUM ... INTO is blocked on the native engine: it writes a full copy of the database to an arbitrary path outside the one this session is bound to, defeating the desktop path sandbox. Plain VACUUM (in place) is allowed.");return e.code=Rl,e}function Wn(e){let t=0;for(;;){let n=t;for(;t{let r=/^(.*):\d+$/.exec(n);return r!==null&&t.has(r[1])})}function Ll(e,t){return typeof e=="bigint"&&!t?Number(e):e}function kt(e,t,n,r){if(n>=t.length)return null;let o=t.slice(n),i=Wn(o),a=El.exec(i);if(a)throw xl(a[0]);let s;try{s=e.prepare(o)}catch(d){throw jn(d,o,r)}let l;try{l=String(s)}catch(d){throw Z(s),d}if(l==="")return Z(s),null;let u=Nl(o,l);if(u<0)throw Z(s),new Error("Unable to determine the SQL statement boundary: the compiled statement text does not align with its source");let c=o.slice(0,u);if(wl.test(i)&&bl.test(c))throw Z(s),Il();return{compiled:s,source:c,expanded:l,end:n+u}}function Z(e){try{e?.finalize?.()}catch{}}function $l(e,t,n){let r=0;for(;;){let o=kt(e,t,r,n);if(o===null)return;r=o.end,Z(o.compiled)}}function Fn(e,t,n,r){let o=t,i,a=null,s,l=null,u=-1,c=n===r?n:r,d=()=>{if(e.assertUsable(),o===null)throw new Error("Statement closed")},f=()=>{if(s!==void 0)return s;let g=e.probeColumnNames(c);return s=g&&n!==r&&Ol(g)?null:g,s},m=()=>{if(a!==null)return a;let g;try{g=i===void 0?o.all():o.all(i)}catch(R){throw jn(R,n,e.describeError)}let S=g.length>0?Object.keys(g[0]):[],w=g.map(R=>S.map(I=>R[I]));if(s&&g.length>0&&s.length!==S.length){let R=n===r?e.readRowsThroughView(c):null;if(R)return a=R,a;s=S,l=S}return a={columns:s??S,values:w},a},E=()=>{if(l!==null)return l;if(a!==null)return l=a.columns,l;let g=f();return g?(l=g,l):hl.test(Wn(c))?(l=m().columns,l):[]},y={bind(g){return d(),i=g??void 0,a=null,u=-1,!0},step(){return d(),m(),u+=1,u=a.values.length)return[];let w=S?.useBigInt===!0;return a.values[u].map(R=>Ll(R,w))},getColumnNames(){return d(),E().slice()},run(g){return d(),g!=null&&y.bind(g),y.step(),y.reset()},reset(){return d(),i=void 0,a=null,u=-1,!0},getSQL(){return n},free(){if(o===null)return!1;let g=o;return o=null,e.forget(y),Z(g),!0}};return e.register(y),y}function Lo(e={},t={}){let n=t.sqlite;if(typeof n?.Database!="function")throw new Error("createShimDatabase requires deps.sqlite.Database");if(e.content!==void 0)throw new Error("createShimDatabase: opening from bytes is not supported by the native engine; open by path ({ path, readOnly }) or use the WASM engine");let r=e.readOnly===!0,o=e.path===void 0||e.path===null?new n.Database(":memory:"):new n.Database(e.path,r?{readOnly:!0}:{create:!0}),i=!1,a=new Set,s=null,l=null,u=()=>{if(l!==null)throw l;if(i)throw new Error("Database closed")},c=(p,b)=>{try{t.onCleanupFailure?.(p,b)}catch{}},d=p=>{let b=o.prepare(p);try{let k=b.all()[0];return k===void 0?void 0:k[Object.keys(k)[0]]}finally{Z(b)}},f=()=>{try{o.exec("PRAGMA query_only = 1")}catch(p){throw st(new Error(`Unable to enforce read-only mode: ${p?.message??p}`),p)}if(Number(d("PRAGMA query_only"))!==1)throw new Error("Unable to enforce read-only mode: PRAGMA query_only did not take")};if(r)try{f()}catch(p){throw o.close(),p}let m=!1,E=p=>{if(!r)return p();if(l!==null)throw l;if(m)throw new Error("Internal error: read-only write lift is not re-entrant");o.exec("PRAGMA query_only = 0"),m=!0;let b=null,N;try{N=p()}catch(k){b=k}try{o.exec("PRAGMA query_only = 1")}catch(k){l=st(new Error("Read-only enforcement could not be restored (PRAGMA query_only); this connection is no longer trustworthy and has been disabled"),k),l.cause=k,b?b.cause===void 0&&(b.cause=k):b=l}finally{m=!1}if(b)throw b;return N},y=(p,b)=>{let N=Wn(p);if(N==="")return null;let k=`_sqlx_shim_cols_${++gl}`,U=`"${k}"`,j=`'${k}'`;try{E(()=>{let F=o.prepare(`CREATE TEMP VIEW ${U} AS ${N}`);try{F.run()}finally{Z(F)}})}catch(F){if(l!==null)throw l;if(_l(F)&&Sl.test(N))throw st(new Error(`Column names are unavailable: this connection refuses writes (PRAGMA query_only is armed) but was not opened read-only, so the probe cannot create the temporary view it reads them from. Close and reopen the database to clear it. (A session made read-only after opening must be escalated through enforceReadOnly(), which is what lets the probe lift query_only. SQLite: ${F?.message??F})`),F);return null}try{return b({quoted:U,literal:j})}catch{if(l!==null)throw l;return null}finally{try{E(()=>o.exec(`DROP VIEW IF EXISTS temp.${U}`))}catch(F){c(F,"drop column-probe view")}}},g=p=>{let b;try{b=o.prepare(`SELECT 1 FROM "${String(p).replace(/"/g,'""')}" WHERE 0`)}catch{return!1}return Z(b),!0},S=p=>{let b;try{b=o.prepare("SELECT count(*) AS c FROM (SELECT name FROM sqlite_schema UNION ALL SELECT name FROM sqlite_temp_schema) WHERE name = ? COLLATE NOCASE")}catch{return!0}try{return Number(b.all([String(p)])[0]?.c??1)>0}catch{return!0}finally{Z(b)}},w=p=>{let b;try{b=o.prepare("SELECT sql FROM (SELECT name, type, sql FROM sqlite_schema UNION ALL SELECT name, type, sql FROM sqlite_temp_schema) WHERE type = 'view' AND name = ? COLLATE NOCASE LIMIT 1")}catch{return}try{let N=b.all([String(p)])[0]?.sql;return typeof N=="string"?N:void 0}catch{return}finally{Z(b)}},R=(p,b)=>_o(p.errno,p.message,b,{resolves:g,inCatalog:S,viewSql:w}),I={assertUsable:()=>{if(l!==null)throw l},describeError:R,register:p=>a.add(p),forget:p=>a.delete(p),probeColumnNames:p=>y(p,({literal:b})=>{let N=o.prepare(`SELECT name FROM pragma_table_info(${b})`);try{let k=N.all().map(U=>U.name);return k.length>0?k:null}finally{Z(N)}}),readRowsThroughView:p=>y(p,({quoted:b})=>{let N=o.prepare(`SELECT * FROM ${b}`);try{let k=N.all();if(k.length===0)return null;let U=Object.keys(k[0]);return{columns:U,values:k.map(j=>U.map(F=>j[F]))}}finally{Z(N)}})},T=p=>{let b=kt(o,p,0,R);if(b===null)throw new Error("Nothing to prepare");return Fn(I,b.compiled,b.source,b.expanded)},A=()=>{let p=t.fs;if(!p||typeof p.makeTempDir!="function"||typeof p.readFile!="function"||typeof p.remove!="function")throw new Error("export() requires deps.fs with makeTempDir/readFile/remove");return p},$=null,O=p=>E(()=>{o.vacuumInto(p)}),D={exec(p,b,N){u();let k=[],U=0;for(;;){let j=kt(o,p,U,R);if(j===null)break;U=j.end;let F=Fn(I,j.compiled,j.source,j.expanded);try{b!=null&&F.bind(b),F.getColumnNames();let re=null,Lt=[];for(;F.step();)re===null&&(re=F.getColumnNames()),Lt.push(F.get(null,N));re!==null&&k.push({columns:re,values:Lt})}finally{F.free()}}return k},run(p,b){if(u(),b!=null){let N=T(p);try{N.bind(b),N.step()}finally{N.free()}}else{Tl.test(p)&&$l(o,p,R);try{o.exec(p)}catch(N){throw jn(N,p,R)}}return D},prepare(p,b){u();let N=T(p);return b!=null&&N.bind(b),N},iterateStatements(p){u();let b=0,N=null,k=!1;return{next(){if(N!==null&&(N.free(),N=null),k)return{done:!0};u();let U;try{U=kt(o,p,b,R)}catch(j){throw k=!0,j}return U===null?(k=!0,{done:!0}):(b=U.end,N=Fn(I,U.compiled,U.source,U.expanded),{value:N,done:!1})},getRemainingSQL(){return p.slice(b)},[Symbol.iterator](){return this}}},getRowsModified(){return u(),s??=o.prepare("SELECT changes() AS c"),Number(s.all()[0].c)},export(){u();let p=A(),b=p.makeTempDir();if(typeof b?.then=="function")throw new Error("export() requires a synchronous deps.fs; use exportAsync() on runtimes whose filesystem API is promise-based (tjs)");try{let N=`${b}/export.sqlite`;O(N);let k=p.readFile(N);if(typeof k?.then=="function")throw new Error("export() requires a synchronous deps.fs.readFile; use exportAsync()");return k}finally{try{p.remove(b)}catch(N){c(N,"remove export temp directory")}}},async exportAsync(){u();let p=A(),b=await p.makeTempDir();try{let N=`${b}/export.sqlite`;return O(N),await p.readFile(N)}finally{try{await p.remove(b)}catch(N){c(N,"remove export temp directory")}}},async exportToPath(p){if(u(),typeof p!="string"||p.length===0)throw new Error("exportToPath requires a non-empty target path");O(p)},progress_handler(p,b){u(),$=b==null?null:{interval:p,callback:b}},get progressHandler(){return $},setQueryDeadline(p){u(),o.setQueryDeadline?.(p)},clearQueryDeadline(){u(),o.clearQueryDeadline?.()},interrupt(){u(),o.interrupt?.()},get inTransaction(){return u(),o.inTransaction===!0},enforceReadOnly(){if(u(),r)return!0;if(m)throw new Error("Internal error: cannot escalate to read-only while an internal write lift is open");try{f()}catch(p){throw l=st(new Error(`Read-only enforcement could not be armed (${p?.message??p}); this connection is no longer trustworthy and has been disabled`),p),l.cause=p,l}return r=!0,!0},close(){if(!i){i=!0;for(let p of[...a])p.free();a.clear(),Z(s),s=null,o.close()}},get backingDatabase(){return o}};return D}var gl,yl,hl,El,wl,Sl,bl,Tl,Cl,Rl,Oo,Al,$o=M(()=>{"use strict";_();No();gl=0,yl=/^(?:\?\d*|[:@$][A-Za-z0-9_$\u0080-\uffff]+(?:\([^()]*\))?)/,hl=/^explain\b/i,El=/^(?:attach|detach)\b/i,wl=/^vacuum\b/i,Sl=/^(?:select|values|with)\b/i,bl=/\binto\b/i,Tl=/\b(?:attach|detach|vacuum)\b/i,Cl="ERR_NATIVE_SQL_ATTACH_BLOCKED",Rl="ERR_NATIVE_SQL_VACUUM_INTO_BLOCKED";Oo="NULL";Al=8});function Kn(e){return Number.isNaN(e)?ko:e>0?vo:Qn}function zn(e){return e.startsWith("~")?`~${e}`:e}function Xn(e){return e.startsWith("~~")?e.slice(1):e===vo?Number.POSITIVE_INFINITY:e===Qn?Number.NEGATIVE_INFINITY:e===ko?Number.NaN:e}var Hn,vo,Qn,ko,vl,Pt=M(()=>{"use strict";_();Hn="~sqlite-explorer-non-finite:",vo=`${Hn}Infinity`,Qn=`${Hn}-Infinity`,ko=`${Hn}NaN`,vl=Qn.length+2});function Vo(e,t,n){return new at({code:kl,direction:e,actualBytes:t,limitBytes:n,message:`Native frame rejected: ${e} payload is ${t} bytes and exceeds the ${n}-byte frame limit.`})}function Dt(e,t){return new at({code:Pl,direction:"incoming",message:`Native frame rejected: ${e}`,cause:t})}function ql(e,t){return new at({code:Dl,direction:"incoming",actualBytes:e,limitBytes:t,fatal:!0,message:`Native frame stream desynchronised: header declares ${e} bytes, beyond the ${t}-byte recoverable-drain limit. The stream is no longer framed; reading has stopped.`})}function Fo(e){if(e===void 0)return Uo;if(!Number.isSafeInteger(e)||e<1||e>Po)throw new RangeError(`Native frame limit must be an integer in [1, ${Po}], got ${e}`);return e}function Vl(e,t){if(e===void 0)return t*qo;if(!Number.isSafeInteger(e)||eMt)throw new RangeError(`Native frame drain limit must be an integer in [${t}, ${Mt}], got ${e}`);return e}function Gn(e){if(e.length===0)return"";let t=[];for(let n=0;nMt)throw new RangeError(`Native frame header must be an integer in [0, ${Mt}], got ${e}`);return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function jl(e,t=0){if(!e||e.length>>0}function Mo(e){return e.length<=Bo?e:`${e.slice(0,Bo)}\u2026 [truncated]`}function Ut(e){if(!e||typeof e!="object")return{name:"Error",message:Mo(typeof e=="string"?e:String(e))};let t={name:typeof e.name=="string"?e.name:"Error",message:Mo(typeof e.message=="string"?e.message:String(e))};return typeof e.code=="string"&&(t.code=e.code),Number.isSafeInteger(e.errno)&&(t.errno=e.errno),t}function Hl(e){if(!e||typeof e!="object"||typeof e.message!="string")return;let t=new Error(e.message);return typeof e.name=="string"&&(t.name=e.name),typeof e.code=="string"&&(t.code=e.code),Number.isSafeInteger(e.errno)&&(t.errno=e.errno),t}function Yn(e){return!!e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"}function Ql(e){return Jn(e,new WeakSet)}function Jn(e,t){if(typeof e=="bigint")return{__type:"BigInt",decimal:e.toString()};if(typeof e=="number")return Number.isFinite(e)?e:Kn(e);if(typeof e=="string")return zn(e);if(e instanceof Uint8Array)return{__type:"Uint8Array",base64:Gn(e)};if(ArrayBuffer.isView(e))return{__type:"Uint8Array",base64:Gn(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))};if(e instanceof ArrayBuffer)return{__type:"Uint8Array",base64:Gn(new Uint8Array(e))};if(e instanceof Error)return{__type:"Error",error:Ut(e)};if(e===null||typeof e!="object")return e;if(t.has(e))throw new TypeError("Native frame value: circular reference");t.add(e);try{if(Array.isArray(e))return e.map(r=>Jn(r,t));if(!Yn(e))return e;let n={};for(let r of Object.keys(e))Wo(n,r,Jn(e[r],t));return n}finally{t.delete(e)}}function Bt(e,t,n){return t.length===2&&t.includes("__type")&&t.includes(n)}function Wo(e,t,n){if(t==="__proto__"){Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0});return}e[t]=n}function Zn(e){if(typeof e=="string")return Xn(e);if(Array.isArray(e))return e.map(Zn);if(!Yn(e))return e;let t=Object.keys(e);if(e.__type==="BigInt"&&typeof e.decimal=="string"&&Bt(e,t,"decimal")){if(!Ul.test(e.decimal))throw new TypeError(`Native frame value: invalid BigInt marker payload ${JSON.stringify(e.decimal)}`);return BigInt(e.decimal)}if(e.__type==="Uint8Array"&&typeof e.base64=="string"&&Bt(e,t,"base64"))return Fl(e.base64);if(e.__type==="Uint8Array"&&Array.isArray(e.data)&&Bt(e,t,"data"))return new Uint8Array(e.data);if(e.__type==="Error"&&Yn(e.error)&&Bt(e,t,"error")){let r=Hl(e.error);if(!r)throw new TypeError("Native frame value: invalid Error marker payload");return r}let n={};for(let r of t)Wo(n,r,Zn(e[r]));return n}function Kl(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function er(e,t){let n=Fo(t?.maxFrameBytes),r=JSON.stringify(Ql(e));if(typeof r!="string")throw new TypeError("Native frame: message is not JSON-serialisable");if(r.length*3>n){let a=Kl(r);if(a>n)throw Vo("outgoing",a,n)}let o=Bl.encode(r),i=new Uint8Array(Oe+o.length);return i.set(Wl(o.length),0),i.set(o,Oe),i}function jo(e,t,n){let r=Fo(n?.maxFrameBytes),o=Vl(n?.maxDrainBytes,r),i=[],a=0,s=0,l=-1,u=0,c=!1,d=!1,f=g=>{s-=g;let S=g;for(;S>0;){let R=i[0].length-a;R>S?(a+=S,S=0):(S-=R,i.shift(),a=0)}},m=g=>{if(g===0)return new Uint8Array(0);let S=i[0];if(S.length-a>=g){let I=S.subarray(a,a+g);return f(g),I}let w=new Uint8Array(g),R=0;for(;R{let S;try{S=Ml.decode(g)}catch(I){t(Dt(`payload is not valid UTF-8 (${g.length} bytes)`,I));return}let w;try{w=JSON.parse(S)}catch(I){t(Dt(`payload is not valid JSON (${g.length} bytes)`,I));return}let R;try{R=Zn(w)}catch(I){t(Dt(`payload carries an invalid tagged value: ${I?.message??I}`,I));return}e(R)},y=()=>{for(;;){if(u>0){let S=Math.min(u,s);if(S>0&&(f(S),u-=S),u>0)return;continue}if(l<0){if(so){d=!0,i.length=0,a=0,s=0,u=0,t(ql(S,o));return}if(S>r){u=S,t(Vo("incoming",S,r));continue}l=S}if(s0||l>=0))){let g=l>=0?l-s:null;t(Dt(g===null?`stream ended with a truncated frame header (${s} of ${Oe} bytes)`:`stream ended with a truncated frame payload (${g} of ${l} bytes missing)`))}},get bufferedBytes(){return s},get skipRemainingBytes(){return u},get fatal(){return d}}}function qe(e,t=null){let n=Ut(e);return{channel:"rpc",content:{kind:"response",messageId:t,success:!1,errorMessage:n.message,error:n}}}var Oe,Uo,qo,Ef,Po,Mt,kl,Pl,Dl,Bl,Ml,Ul,Do,Bo,at,tr=M(()=>{"use strict";_();Pt();Oe=4,Uo=16*1024*1024,qo=4,Ef=Uo*qo,Po=268435456,Mt=4294967295,kl="ERR_NATIVE_FRAME_TOO_LARGE",Pl="ERR_NATIVE_FRAME_MALFORMED",Dl="ERR_NATIVE_FRAME_DESYNC",Bl=new TextEncoder,Ml=new TextDecoder("utf-8",{fatal:!0}),Ul=/^-?(?:0|[1-9][0-9]*)$/,Do=32768,Bo=512,at=class extends Error{constructor(t){super(t.message,t.cause===void 0?void 0:{cause:t.cause}),this.name="NativeFrameError",this.code=t.code,this.direction=t.direction,this.actualBytes=t.actualBytes,this.limitBytes=t.limitBytes,this.fatal=t.fatal===!0}}});function Ho(e={}){let t=e.stdin??globalThis.tjs?.stdin,n=e.stdout??globalThis.tjs?.stdout;if(!t||typeof t.getReader!="function")throw new TypeError("stdio transport requires a WHATWG readable stdin (getReader)");if(!n||typeof n.getWriter!="function")throw new TypeError("stdio transport requires a WHATWG writable stdout (getWriter)");let r={};e.maxFrameBytes!==void 0&&(r.maxFrameBytes=e.maxFrameBytes),e.maxDrainBytes!==void 0&&(r.maxDrainBytes=e.maxDrainBytes);let o=e.maxFrameBytes===void 0?void 0:{maxFrameBytes:e.maxFrameBytes},i=t.getReader(),a=n.getWriter(),s=null,l=!1,u=!1,c=null,d=Promise.resolve(),f=(w,R,I)=>{try{R(I)}catch(T){console.error(`[stdio-transport] ${w} callback threw`,T)}},m=w=>{e.onTransportError?f("onTransportError",e.onTransportError,w):console.error("[stdio-transport]",w)},E=w=>{let R=d.then(()=>a.write(w));return d=R.then(()=>{},()=>{}),R.catch(m),R},y=jo(w=>{if(!s){m(new Error("stdio transport received a frame before onmessage was installed"));return}f("onmessage",s,{data:w})},w=>{try{E(er(qe(w),o))}catch(R){m(R)}w?.fatal===!0&&(c=w)},r),g=w=>{u||(u=!0,e.onEof&&f("onEof",e.onEof,w))},S=async()=>{let w={kind:"eof"};try{for(;;){let R=await i.read();if(R.done)break;let I=R.value;if(I&&I.length>0&&y.push(I),c){w={kind:"fatal",error:c};break}}}catch(R){m(R),w={kind:"stream-error",error:R}}finally{y.end(),g(w)}};return{get onmessage(){return s},set onmessage(w){s=w},postMessage(w){return E(er(w,o))},start(){if(l)throw new Error("stdio transport already started");return l=!0,S()},flush(){return d}}}var Qo=M(()=>{"use strict";_();tr()});function Ko(e){return e.startsWith("--path-utf8=")?decodeURIComponent(e.slice(12)):e}var zo=M(()=>{"use strict";_()});import{Database as zl}from"tjs:sqlite";import Xo from"tjs:path";async function ec(e){let t=Xo.dirname(tjs.exePath);for(let n of["query-plan.dylib","query-plan.so","query-plan.dll"]){let r=Xo.join(t,n);try{await tjs.stat(r)}catch(o){if(o?.code==="ENOENT")continue;throw o}e.backingDatabase.loadExtension(r,"sqlite3_sqliteexplorer_init");return}throw new Error("Missing bundled query-plan reader beside the native runtime.")}async function B(e){if(Ve=null,e?.path!==qt)throw new Error(`refusing to open a database other than the one this sidecar was bound to at spawn (got ${JSON.stringify(e?.path??null)})`);let t=e.readOnlyMode===!0;if(Yl&&!t)throw new Error("refusing a writable open: this sidecar was spawned for a read-only session");let n=Lo({path:qt,readOnly:t},Zl);try{await ec(n)}catch(i){throw n.close(),new Error(`Unable to initialize the bounded query-plan reader: ${i?.message??i}`,{cause:i})}let r=Number.isFinite(e.queryTimeout)&&e.queryTimeout>0?e.queryTimeout:Xl,o=n.progress_handler.bind(n);return n.progress_handler=(i,a)=>{o(i,a),i!=null&&typeof a=="function"?n.setQueryDeadline(r):n.clearQueryDeadline()},Ve=n,{SQL:Object.freeze({engine:"tjs-native",queryPlanReaderActive:!0}),db:n}}async function rc(e,t){let n=`__shell_export_${++tc}_${Math.random().toString(36).slice(2)}`,r=null;Vt.set(n,o=>{r=o});try{if(typeof globalThis.onmessage!="function")throw new Error("worker method layer is not loaded (no onmessage handler)");await globalThis.onmessage({data:{channel:"rpc",content:{kind:"invoke",messageId:n,targetMethod:e,payload:t}}})}finally{Vt.delete(n)}if(r===null)throw new Error(`in-process ${e} completed without posting a response`);if(r.success!==!0){let o=new Error(r.errorMessage||`${e} failed`);throw typeof r.error?.code=="string"&&(o.code=r.error.code),Number.isSafeInteger(r.error?.errno)&&(o.errno=r.error.errno),o}return r.data}async function oc(e){try{if(!Ve)throw new Error("No database initialized");let t=await Ve.exportAsync();We({channel:"rpc",content:{kind:"response",messageId:e,success:!0,data:t}})}catch(t){We(qe(t,e))}}async function ic(e){let t=typeof e?.messageId=="string"||typeof e?.messageId=="number"?e.messageId:null;if(t===null){console.error("[native-worker] shell export request without a messageId; dropped");return}try{let n=e.method,r=e.tempPath;if(n!=="exportDatabase"&&n!=="exportTable")throw new Error(`unknown shell export method ${JSON.stringify(n??null)}`);if(typeof r!="string"||r.length===0)throw new Error("shell export request carries no tempPath");let o;if(n==="exportDatabase"){if(!Ve)throw new Error("No database initialized");await Ve.exportToPath(r),o=(await tjs.stat(r)).size}else{if(!Array.isArray(e.args))throw new Error("shell exportTable request carries no args array");let a=(await rc("exportTable",e.args))?.contentChunks;if(!Array.isArray(a))throw new Error("exportTable returned no contentChunks array");o=await sc(r,a)}We({channel:"shell",content:{kind:"export-result",messageId:t,success:!0,bytesWritten:o}})}catch(n){We({channel:"shell",content:{kind:"export-result",messageId:t,success:!1,error:Ut(n)}})}}async function sc(e,t){let n=await tjs.open(e,"wx"),r=0,o=null;try{let i=new TextEncoder;for(let a of t){let s;if(typeof a=="string")s=i.encode(a);else if(a instanceof Uint8Array)s=a;else throw new Error(`exportTable produced an unwritable chunk (${typeof a})`);for(;s.length>0;){let l=await n.write(s);if(!Number.isInteger(l)||l<=0)throw new Error(`short write to export temp file (wrote ${l})`);r+=l,s=s.subarray(l)}}return await n.sync(),r}catch(i){throw o=i,i}finally{try{await n.close()}catch(i){if(o===null)throw i;console.error(`[native-worker] failed to close export temp file: ${i?.message??i}`)}}}var Jo,Zo,ei,Go,Xl,Gl,Le,qt,Yl,Jl,Zl,Ve,ti,ni,Fe,ri,We,Vt,tc,nc,Yo,nr=M(()=>{"use strict";_();$o();Qo();tr();zo();Jo=0,Zo=1,ei=2,Go=3,Xl=3e4,Gl=1e3,Le=tjs.args.slice(3);(Le.length!==2||Le[0]===""||Le[1]!=="ro"&&Le[1]!=="rw")&&(console.error(`[native-worker] bad argv ${JSON.stringify(Le)}; usage: tjs run native-worker-desktop.js ro|rw`),tjs.exit(ei));try{if(qt=Ko(Le[0]),!qt)throw new Error("database path is empty")}catch(e){console.error(`[native-worker] invalid bound path: ${e.message}`),tjs.exit(ei)}Yl=Le[1]==="ro",Jl=(tjs.env.TMPDIR??tjs.env.TEMP??tjs.env.TMP??"/tmp").replace(/[\\/]+$/,""),Zl={sqlite:{Database:zl},fs:{makeTempDir:()=>tjs.makeTempDir(`${Jl}/sqlite-explorer-export-XXXXXX`),readFile:e=>tjs.readFile(e),remove:e=>tjs.remove(e,{recursive:!0})},onCleanupFailure:(e,t)=>{console.error(`[native-worker] cleanup failed (${t}): ${e?.message??e}`)}},Ve=null;ti={kind:"eof"},ni=()=>ti,Fe=Ho({onEof:e=>{ti=e},onTransportError:e=>{console.error(`[native-worker] transport error: ${e?.message??e}`)}}),ri=e=>{let t=e?.content?.messageId;return typeof t=="string"||typeof t=="number"?t:null},We=e=>{try{Fe.postMessage(e)}catch(t){try{Fe.postMessage(qe(t,ri(e)))}catch(n){console.error(`[native-worker] failed to send bounded error response: ${n?.message??n}`)}}};globalThis.postMessage=(e,t)=>{nc(e)||We(e)};Vt=new Map,tc=0,nc=e=>{if(e?.channel!=="rpc"||e?.content?.kind!=="response")return!1;let t=Vt.get(e.content.messageId);return t===void 0?!1:(Vt.delete(e.content.messageId),t(e.content),!0)};Fe.onmessage=async e=>{let t=e?.data;try{if(t?.channel==="shell"){t.content?.kind==="export"?await ic(t.content):console.error(`[native-worker] unknown shell message kind ${JSON.stringify(t.content?.kind??null)}; dropped`);return}let n=t?.channel==="rpc"?t.content:void 0;if(n?.kind==="invoke"&&n.targetMethod==="exportDatabase"){await oc(n.messageId);return}await globalThis.onmessage?.(e)}catch(n){We(qe(n,ri(t)))}};Yo=tjs.ppid;setInterval(()=>{tjs.ppid!==Yo&&(console.error(`[native-worker] parent process ${Yo} vanished without closing stdin (ppid now ${tjs.ppid}); exiting (code ${Go})`),tjs.exit(Go))},Gl)});var _=M(()=>{"use strict";nr()});function ge(e){if(e==="utf-8")return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});let t=e==="utf-16le";return{decode(n){if(n.length%2!==0)throw new TypeError(`Invalid ${e}: odd byte length`);let r=a=>t?n[a]|n[a+1]<<8:n[a]<<8|n[a+1],o=[],i="";for(let a=0;a=55296&&s<=56319){let l=a+257343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s,l),a+=2}else{if(s>=56320&&s<=57343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s)}i.length>=8192&&(o.push(i),i="")}return o.push(i),o.join("")}}}var Ft=M(()=>{"use strict";_()});function C(e){return`"${e.replace(/"/g,'""')}"`}function L(e){return`main.${C(e)}`}function z(e,t="Identifier"){if(typeof e!="string"||e.length===0)throw new Error(`${t} is required`);if(e.includes("\0"))throw new Error(`${t} cannot contain NUL characters`)}function rr(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function oi(e){if(e==null)return"NULL";if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();if(typeof e=="string"){if(e.includes("\0")){let n=new TextEncoder().encode(e);return`CAST(X'${Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}' AS TEXT)`}return`'${e.replace(/'/g,"''")}'`}return e instanceof Uint8Array?`X'${Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}'`:`'${String(e).replace(/'/g,"''")}'`}function lt(e,t="\\"){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`[${n}%_]`,"g");return e.replace(r,o=>t+o)}function H(e){let t=typeof e;if(t!=="string"&&t!=="number"&&t!=="bigint")throw new Error(`Invalid rowid: ${e}`);if(typeof e=="number"){if(!Number.isSafeInteger(e))throw new Error(`Invalid rowid: ${e}`);return e}let n=typeof e=="string"?e.trim():e.toString();if(!/^[+-]?\d+$/.test(n))throw new Error(`Invalid rowid: ${e}`);let r=BigInt(n);if(rlc)throw new Error(`Invalid rowid: ${e}`);let o=Number(r);return Number.isSafeInteger(o)?o:r.toString()}var ac,lc,Y=M(()=>{"use strict";_();ac=-9223372036854775808n,lc=9223372036854775807n});function ii(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function li(e){let t=[],n=0;for(;nt.toLowerCase())}function je(e,t){if(!ye(e[t]))throw new Error("Expected an SQL identifier");return t+1}function cc(e,t){return t=je(e,t),e[t]?.kind==="symbol"&&e[t].value==="."&&(t=je(e,t+1)),t}function jt(e){let t=li(e),n=[],r,o=0,i=d=>{if(!X(t[o],d))throw new Error(`Expected ${d} in stored CREATE TRIGGER SQL`);o++};if(i("CREATE"),(X(t[o],"TEMP")||X(t[o],"TEMPORARY"))&&o++,i("TRIGGER"),X(t[o],"IF")&&(o++,i("NOT"),i("EXISTS")),o=cc(t,o),X(t[o],"BEFORE")||X(t[o],"AFTER")?o++:X(t[o],"INSTEAD")&&(o++,i("OF")),X(t[o],"INSERT"))r="insert",o++;else if(X(t[o],"DELETE"))r="delete",o++;else if(X(t[o],"UPDATE")){if(r="update",o++,X(t[o],"OF")){if(o++,!ye(t[o]))throw new Error("Expected an SQL identifier after UPDATE OF");for(n.push(t[o]),o=je(t,o);t[o]?.kind==="symbol"&&t[o].value===",";){if(o++,!ye(t[o]))throw new Error("Expected an SQL identifier in UPDATE OF column list");n.push(t[o]),o=je(t,o)}}}else throw new Error("Expected a trigger event in stored CREATE TRIGGER SQL");i("ON");let a=o,s=t[o];o=je(t,o);let l;t[o]?.kind==="symbol"&&t[o].value==="."&&(l=s.value,o=je(t,o+1));let u=o,c=t.findIndex((d,f)=>f>=o&&X(d,"BEGIN"));if(c<0)throw new Error("Expected BEGIN in stored CREATE TRIGGER SQL");return{tokens:t,event:r,targetSchema:l,targetStartIndex:a,updateOfColumns:n,referenceStartIndex:u,bodyStartIndex:c+1}}function ir(e){let t=jt(e);return{event:t.event,targetSchema:t.targetSchema,updateOfColumns:t.updateOfColumns.map(n=>n.value)}}function Ht(e,t,n,r){let o=ir(e),i=`${C(t)}.${C(n)}`;if(o.event==="insert")return`EXPLAIN INSERT INTO ${i} DEFAULT VALUES`;if(o.event==="delete")return`EXPLAIN DELETE FROM ${i} WHERE 0`;let a=new Map(r.map(c=>[he(c),c])),s=o.updateOfColumns.map(c=>a.get(he(c))).find(c=>c!==void 0);if(o.updateOfColumns.length>0&&s===void 0)return;let l=s??r[0];if(l===void 0)throw new Error(`Trigger target ${t}.${n} has no writable column to probe`);let u=C(l);return`EXPLAIN UPDATE ${i} SET ${u} = ${u} WHERE 0`}function uc(e){return jt(e).targetSchema}function oe(e){return`main.${C(e)}`}function ci(e,t){let n=`-- TRIGGER ${t}`;return e.some(r=>r.some(o=>o===n))}function ui(e,t){if(t.length!==Wt.length)throw new Error(`View trigger definition fetch was incomplete for ${e}`);let n=[],r=[],o=[];return Wt.forEach((i,a)=>{t[a].forEach(s=>{if(typeof s[0]!="string"||typeof s[1]!="string")throw new Error(`View trigger definition is unavailable for ${e}`);if(i.temporary){let l=s[2]===1||s[2]===1n;if(s[2]!==0&&s[2]!==0n&&!l)throw new Error(`Temporary view shadow state is unavailable for ${e}`);let u;try{u=uc(s[1])}catch(c){let d=c instanceof Error?c.message:String(c);throw new Error(`Unable to determine the target of temporary trigger ${s[0]}: ${d}`)}if(u!==void 0&&he(u)!=="main")return;if(u===void 0){o.push({identifier:s[0],sql:s[1],temporary:!0});return}}n.push(i.temporary?{identifier:s[0],sql:s[1],temporary:!0}:{identifier:s[0],sql:s[1]})})}),{triggers:n,ambiguousTemporaryTriggerNames:r,unqualifiedTemporaryTriggers:o}}function Qt(e){let t=e.ambiguousTemporaryTriggerNames??[];if(t.length===0)return;let n=t.map(r=>`"${r}"`).join(", ");throw new Error(`Cannot modify main view "${e.identifier}" because temporary trigger target ownership is ambiguous for ${n}. Each named trigger uses an unqualified ON target whose historical schema cannot be proven. Drop the TEMP trigger, or recreate it with an explicitly schema-qualified target, before editing or dropping the main view.`)}function Ee(e){let t=e.trim();if(!t)throw new Error("View SELECT definition is required");let n=-1,r,o=!1,i=!1;for(let a=0;a=0&&t[n]===";"?(t.slice(0,n).trimEnd()+t.slice(n+1)).trim():t}function di(e){let t=0,n=-1,r=-1;for(let o of li(e)){if(o.kind==="symbol"&&o.value==="("){t===0&&n===-1&&(n=o.start),t++;continue}if(o.kind==="symbol"&&o.value===")"){t===1&&n!==-1&&r===-1&&(r=o.end),t=Math.max(0,t-1);continue}if(t===0&&X(o,"AS"))return{selectStart:o.end,columnListSql:n!==-1&&r!==-1?e.slice(n,r):void 0}}throw new Error("Unable to locate the SELECT body in the stored view definition")}function fi(e){let{selectStart:t}=di(e);return Ee(e.slice(t))}function sr(e){return di(e).columnListSql}function ct(e,t,n,r){let o=n??(r?.length?`(${r.map(i=>C(i)).join(", ")})`:void 0);return`CREATE VIEW ${C(e)}${o?` ${o}`:""} AS ${t}`}function ar(e,t){let n=jt(e);if(n.targetSchema===void 0){let r=n.tokens[n.targetStartIndex];return`${e.slice(0,r.start)}main.${e.slice(r.start)}`}if(he(n.targetSchema)!=="main")throw new Error(`Unable to recreate temporary trigger ${t}: target is not in main`);return e}function lr(e){if(!e.temporary)return e.sql;let t=/^(\s*CREATE\s+)(?:(?:TEMP|TEMPORARY)\s+)?(TRIGGER\b)/i;if(!t.test(e.sql))throw new Error(`Unable to recreate temporary trigger ${e.identifier}: stored SQL is not a CREATE TRIGGER statement`);return ar(e.sql,e.identifier).replace(t,"$1TEMP $2")}function or(e,t){return e.push({parent:t,aliases:new Set,hasAmbiguousSource:!1}),e.length-1}function mc(e){let{tokens:t,referenceStartIndex:n,bodyStartIndex:r}=e,o=[],i=new Array(t.length),a=new Map,s=[],l=[or(o)],u=!1;for(let c=n;c1&&l.pop()}else d.kind==="symbol"&&d.value===";"&&l.length===1&&(u=!0)}return{scopes:o,tokenScopes:i,matchingParentheses:a}}function pc(e,t){t&&/^(?:NEW|OLD)$/i.test(t)&&e.aliases.add(he(t))}function si(e,t,n,r){let o=r.scopes[n],i=t,a;if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}else if(ye(e[i])){if(a=e[i].value,i++,e[i]?.kind==="symbol"&&e[i].value==="."){if(!ye(e[i+1]))return o.hasAmbiguousSource=!0,i+1;a=e[i+1].value,i+=2}if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}}else return o.hasAmbiguousSource=!0,i+1;let s;if(X(e[i],"AS")){if(!ye(e[i+1]))return o.hasAmbiguousSource=!0,i+1;s=e[i+1].value,i+=2}else if(ye(e[i])){let l=e[i];l.kind==="word"&&dc.has(l.value.toUpperCase())||(s=l.value,i++)}return pc(o,s??a),i}function gc(e,t){let n=new Map;for(let r=e.referenceStartIndex;r{let o=t[r];return n.identifier===o.identifier&&n.sql===o.sql&&n.temporary===!0==(o.temporary===!0)})}function Kt(e,t,n,r){if(e!==void 0&&!hc(e,t)||!Ec(n,r))throw new Error(gi)}function yi(e,t){if(e===null||t===null){if(e!==t)throw new Error(gi);return}Kt(e.sql,t.sql,e.triggers,t.triggers)}var Wt,dc,fc,gi,ut=M(()=>{"use strict";_();Y();Wt=[{sql:"SELECT name, sql FROM main.sqlite_schema WHERE type = 'trigger' AND tbl_name = ? COLLATE NOCASE ORDER BY rowid",params:e=>[e],temporary:!1},{sql:"SELECT temp_trigger.name, temp_trigger.sql, EXISTS (SELECT 1 FROM sqlite_temp_schema AS temp_view WHERE temp_view.type = 'view' AND temp_view.name = ? COLLATE NOCASE) FROM sqlite_temp_schema AS temp_trigger WHERE temp_trigger.type = 'trigger' AND temp_trigger.tbl_name = ? COLLATE NOCASE ORDER BY temp_trigger.rowid",params:e=>[e,e],temporary:!0}];dc=new Set(["AS","CROSS","END","EXCEPT","FULL","GROUP","HAVING","INDEXED","INNER","INTERSECT","JOIN","LEFT","LIMIT","NATURAL","NOT","OFFSET","ON","ORDER","OUTER","RETURNING","RIGHT","SET","UNION","USING","VALUES","WHERE","WINDOW"]),fc=new Set(["END","EXCEPT","GROUP","HAVING","INTERSECT","LIMIT","OFFSET","ON","ORDER","RETURNING","SET","UNION","USING","VALUES","WHERE","WINDOW"]);gi="The view changed outside this editor. Reload before saving; the view was not modified."});function dr(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function ur(e){return JSON.stringify(e.map(dr))}function cr(e,t,n,r,o){let i=[e,t,n];return ur(r===void 0||o===void 0?i:[...i,r,o])}function hi(e){let t=e instanceof Error?e.message:String(e);return t.length>500?`${t.slice(0,500)}...`:t}function Xt(e,t,n){if(!(e<=t))throw new Error(`View dependency validation refused to inspect ${e} ${n}; the fail-closed limit is ${t}`)}async function Sc(e){let t=await e.queryRows("PRAGMA database_list"),n=[],r=new Set;for(let o of t){if(typeof o[1]!="string")throw new Error("SQLite returned invalid database-list metadata during view validation");let i=dr(o[1]);r.has(i)||(r.add(i),n.push(o[1]))}return r.has("temp")||n.unshift("temp"),Xt(n.length,wc,"database schemas"),n}async function bc(e,t){let n=[];for(let r of t){let o=zt-n.length;o<0&&Xt(n.length,zt,"schema objects");let i=await e.queryRows(`SELECT type, name, tbl_name, sql FROM ${C(r)}.sqlite_schema WHERE type IN ('view', 'trigger') ORDER BY type, name LIMIT ${o+1}`);for(let a of i){let[s,l,u,c]=a;if(s!=="view"&&s!=="trigger"||typeof l!="string"||typeof c!="string"||s==="trigger"&&typeof u!="string")throw new Error(`SQLite returned invalid ${r} schema metadata during view validation`);n.push({schema:r,kind:s,identifier:l,targetIdentifier:s==="trigger"?u:void 0,sql:c})}Xt(n.length,zt,"schema objects")}return n}async function Tc(e,t,n){return(await e.queryRows(`SELECT 1 FROM ${C(t)}.sqlite_schema WHERE type IN ('table', 'view') AND name = ? COLLATE NOCASE LIMIT 1`,[n])).length>0}async function Cc(e,t,n){let r=ir(n.sql);if(r.targetSchema!==void 0)return[r.targetSchema];if(dr(n.schema)!=="temp")return[n.schema];let o=[];for(let i of t)await Tc(e,i,n.targetIdentifier)&&o.push(i);return o.length>0?o:["main"]}async function Rc(e,t,n){let r=await e.queryRows(`PRAGMA ${C(t)}.table_xinfo(${C(n)})`),o=[];for(let i of r){if(typeof i[1]!="string")throw new Error(`SQLite returned invalid column metadata for ${t}.${n}`);let a=i[6];a!==2&&a!==2n&&a!==3&&a!==3n&&o.push(i[1])}return o}async function Ei(e){let t=await Sc(e),n=await bc(e,t),r=new Map,o=[],i=new Map;for(let s of n){if(s.kind==="view"){o.push({key:cr("view",s.schema,s.identifier),kind:"view",schema:s.schema,identifier:s.identifier,sql:`EXPLAIN SELECT * FROM ${C(s.schema)}.${C(s.identifier)}`});continue}let l;try{l=await Cc(e,t,s)}catch(u){let c=cr("trigger",s.schema,s.identifier);r.set(c,{key:c,kind:"trigger",schema:s.schema,identifier:s.identifier,valid:!1,error:hi(u)});continue}for(let u of l){let c=s.targetIdentifier,d=cr("trigger",s.schema,s.identifier,u,c);try{let f=ur([u,c]),m=i.get(f);m||(m=Rc(e,u,c),i.set(f,m));let E=Ht(s.sql,u,c,await m);if(E===void 0){r.set(d,{key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,valid:!0});continue}o.push({key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,sql:E})}catch(f){r.set(d,{key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,valid:!1,error:hi(f)})}}}Xt(o.length+r.size,zt,"view and trigger probes");let a=await e.compileStatements(o.map(s=>s.sql));if(a.length!==o.length)throw new Error("View dependency validation returned an incomplete probe result set");return o.forEach((s,l)=>{let u=a[l];r.set(s.key,{key:s.key,kind:s.kind,schema:s.schema,identifier:s.identifier,targetSchema:s.targetSchema,targetIdentifier:s.targetIdentifier,valid:u===void 0,...u===void 0?{}:{error:u}})}),r}function we(e,t){for(let n of e.values()){if(!n.valid)continue;let r=t.get(n.key);if(!r||r.valid)continue;let o=r.targetSchema&&r.targetIdentifier?` on ${r.targetSchema}.${r.targetIdentifier}`:"";throw new Error(`Schema change would break existing ${r.kind} "${r.schema}.${r.identifier}"${o}: ${r.error??"SQLite rejected it"}`)}}var wc,zt,wi=M(()=>{"use strict";_();Y();ut();wc=32,zt=1024});function dt(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function xc(e){return/[A-Za-z_\u0080-\uFFFF]/.test(e)}function Ic(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Ac(e,t,n){let r=t+1,o="";for(;rSi)throw new Error(`Cannot inspect index dependency: definition exceeds ${Si} characters`);let t=[],n=o=>{if(t.push(o),t.length>bi)throw new Error(`Cannot inspect index dependency: definition exceeds ${bi} tokens`)},r=0;for(;rs.kind==="word"&&s.value.toUpperCase()==="INDEX"),r=t.findIndex((s,l)=>l>n&&s.kind==="word"&&s.value.toUpperCase()==="ON"),o=t.findIndex((s,l)=>l>r&&s.kind==="symbol"&&s.value==="(");if(n<0||r<0||o<0)throw new Error("Cannot inspect index dependency: unsupported CREATE INDEX definition");let i=t.filter((s,l)=>l>=o&&s.kind==="symbol"&&s.value===";");if(i.length>1||i.length===1&&t.at(-1)!==i[0])throw new Error("Cannot inspect index dependency: multiple statements are not allowed");let a=i[0]?.start??e.length;return e.slice(t[o].start,a).trim()}function Ti(e,t){let n=[...t],r=`${e}_dummy`,o=new Set(t.map(dt));for(;o.has(dt(r));)r+="_";return n.push(r),`CREATE TEMP TABLE ${C(e)} (${n.map(C).join(", ")})`}function Ci(e,t){let n=new Set(t.map(dt));return e.filter(r=>n.has(dt(r)))}function Ri(e,t,n){let r=Nc(n);return`CREATE INDEX temp.${C(t)} ON ${C(e)} ${r}`}function xi(e,t,n={}){if(z(e,"Table name"),t.length===0)throw new Error("At least one column is required");if(!n||typeof n!="object"||Array.isArray(n)||n.withoutRowid!==void 0&&typeof n.withoutRowid!="boolean")throw new Error("Invalid Create Table options");let r=t.filter(s=>s.primaryKey);if(n.withoutRowid&&r.length===0)throw new Error("WITHOUT ROWID requires a primary key");let o=r.length>1,i=new Set,a=t.map(s=>{if(typeof s=="string")throw new Error("Legacy string column definitions not supported for security");z(s.name,"Column name"),rr(s.type);let l=dt(s.name);if(i.has(l))throw new Error(`Column ${JSON.stringify(s.name)} is defined more than once`);i.add(l);let u=`${C(s.name)} ${s.type}`;return s.primaryKey&&!o&&(u+=" PRIMARY KEY"),s.notNull&&(u+=" NOT NULL"),u+=Oc(s.defaultValue),u});return o&&a.push(`PRIMARY KEY (${r.map(s=>C(s.name)).join(", ")})`),`CREATE TABLE ${L(e)} (${a.join(", ")})${n.withoutRowid?" WITHOUT ROWID":""}`}function Oc(e){return e==null||e===""?"":e.toLowerCase()==="null"?" DEFAULT NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e)?` DEFAULT ${e}`:` DEFAULT '${e.replace(/'/g,"''")}'`}var Si,bi,fr=M(()=>{"use strict";_();Y();Si=1024*1024,bi=2e5});function Ii(){return{dangerousPrefix:!1,prefixOpen:!0,needsQuotes:!1}}function Ai(e,t){if((t.includes(",")||t.includes('"')||t.includes(` +`)||t.includes("\r"))&&(e.needsQuotes=!0),!!e.prefixOpen)for(let n of t){if(Lc.has(n)){e.dangerousPrefix=!0,e.needsQuotes=!0,e.prefixOpen=!1;return}if(!$c.test(n)){e.prefixOpen=!1;return}}}function vc(e){let t=Ii();Ai(t,e);let n=t.dangerousPrefix?`'${e}`:e;return t.needsQuotes?`"${n.replace(/"/g,'""')}"`:n}function kc(e,t){return e==="sql"?{prefix:"CAST(X'",suffix:"' AS TEXT)",byteEncoding:"hex"}:e==="json"?{prefix:`{"$sqliteExplorerTextBytes":{"encoding":${JSON.stringify(t)},"base64":"`,suffix:'"}}',byteEncoding:"base64"}:{prefix:`[SQLite TEXT bytes; encoding=${t}; base64=`,suffix:"]",byteEncoding:"base64"}}function _i(e){let t="",n=0;for(;n+2>>18&63]+Se[o>>>12&63]+Se[o>>>6&63]+Se[o&63]}let r=e.length-n;if(r===1){let o=e[n]<<16;t+=Se[o>>>18&63]+Se[o>>>12&63]+"=="}else if(r===2){let o=e[n]<<16|e[n+1]<<8;t+=Se[o>>>18&63]+Se[o>>>12&63]+Se[o>>>6&63]+"="}return t}function mr(e){let t=typeof e=="bigint"?e.toString():typeof e=="string"?e:void 0;if(t===void 0)throw new Error("SQLite returned invalid exact INTEGER text for export");try{if(BigInt(t).toString()!==t)throw new Error}catch{throw new Error("SQLite returned non-canonical INTEGER text for export")}return t}function Pc(e){if(!(e instanceof Uint8Array))throw new Error("SQLite returned invalid BLOB data for export");return e}function pr(e,t){let n=e.unrepresentableTextBytes;if(n===void 0)return;if(e.storageClass!=="text"||!(n instanceof Uint8Array)||!e.textEncoding)throw new Error("SQLite returned invalid unrepresentable TEXT export metadata");let r=kc(t,e.textEncoding),o=r.byteEncoding==="hex"?Array.from(n,i=>i.toString(16).padStart(2,"0")).join(""):_i(n);return r.prefix+o+r.suffix}function gr(e){let t=pr(e,"csv");return t!==void 0?t:e.storageClass==="null"?"":e.storageClass==="blob"?"[BLOB]":e.storageClass==="integer"?mr(e.value):e.storageClass==="text"?vc(String(e.value)):String(e.value)}function Ni(e){let t=pr(e,"json");return t!==void 0?t:e.storageClass==="integer"?mr(e.value):e.storageClass==="blob"?JSON.stringify(_i(Pc(e.value))):JSON.stringify(e.value)??"null"}function Oi(e){let t=pr(e,"sql");return t!==void 0?t:e.storageClass==="integer"?mr(e.value):oi(e.value)}var Lc,$c,Se,yr=M(()=>{"use strict";_();Y();Lc=new Set(["=","+","-","@","\uFF1D","\uFF0B","\uFF0D","\uFF20"]),$c=/^(?:\p{White_Space}|\p{Cc}|\p{Cf})$/u;Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"});function Pi(e,t){if(e.length!==0){if(e.length!==1||e[0].length<1||typeof e[0][0]!="string")throw new Error(`SQLite returned invalid rowid-alias metadata for ${t}`);return e[0][0]}}function Yt(e){return e.replace(/[A-Z]/g,t=>String.fromCharCode(t.charCodeAt(0)+32))}function He(e,t){return Yt(e)===Yt(t)}function Di(e,t){let n=BigInt(Number.MAX_SAFE_INTEGER),r=BigInt(Number.MIN_SAFE_INTEGER);return e.some(o=>{let i=o[t];return typeof i=="bigint"&&(i>n||i`${Bc}${f}`),r=Array.from({length:t},(d,f)=>`${Mc}${f}`),o=C(Dc),i=n.map(C),a=t*2<=qc,s=i.map((d,f)=>`CASE WHEN typeof(${d}) = 'real' THEN CAST(${d} AS TEXT) END AS ${C(r[f])}`),l=a?[...i,...s]:i,u=a?[...n,...r]:n,c={sql:`WITH ${o} (${i.join(", ")}) AS ( SELECT * FROM ( ${e} ) LIMIT -1 OFFSET 0 ) -SELECT ${l.join(", ")} FROM ${o}`,transportColumns:u};return a&&(c.valueColumnCount=t),c}function Bi(e,t,n){if(t.length<2||t[0].toLowerCase()!=="rowid"||n.length===0)return[];let r=t.slice(1),o=[];for(let i=0;ii+d+1),l=s.map(c=>`${Mc}${c}`),u=a.map((c,d)=>{let f=C(c);return`CASE WHEN typeof(${f}) = 'real' THEN CAST(${f} AS TEXT) END AS ${C(l[d])}`});for(let c=0;ctypeof m=="bigint"?m.toString():m);o.push({sql:`SELECT rowid AS ${C(Li)}, ${u.join(", ")} FROM ${L(e)} WHERE rowid IN (${d.map(()=>"?").join(", ")})`,params:f,transportColumns:[Li,...l],columnIndices:s})}}return o}function Mi(e,t){if(t.length===0)return;let n=new Map;e.forEach((o,i)=>{let a=o[0];if(!["bigint","number","string"].includes(typeof a))throw new Error(`Invalid rowid identity at source row ${i}`);let s=String(a);if(n.has(s))throw new Error(`Duplicate rowid identity at source row ${i}`);n.set(s,i)});let r;for(let{query:o,rows:i}of t)for(let a of i){if(a.length{let c=a[u+1];if(c==null)return;if(typeof c!="string")throw new Error(`Rowid exact REAL text at row ${s}, column ${l} is not text`);let d=e[s]?.[l];if(d===void 0)throw new Error(`Rowid exact REAL text is outside row ${s}, column ${l}`);c!==String(d)&&(r??={},r[s]??={},r[s][l]=c)})}return r}function Qe(e,t,n,r){let o,i=(s,l,u)=>{o??={},o[s]??={},o[s][l]=u},a=e.map((s,l)=>{let u=t??s.length;if(t!==void 0&&s.length{let f=c;if(typeof c=="bigint"){let m=Number(c);if(Number.isSafeInteger(m))f=m;else{let E=c.toString();d===r?f=E:(i(l,d,E),f=m)}}if(t!==void 0){let m=s[t+d];if(m!=null){if(typeof m!="string")throw new Error(`Exact numeric text at row ${l}, column ${d} is not text`);m!==String(f)&&i(l,d,m)}}return f})});if(n)for(let[s,l]of Object.entries(n)){let u=Number(s);if(!Number.isInteger(u)||u<0||l===null||typeof l!="object")throw new Error(`Invalid exact numeric text row index: ${s}`);for(let[c,d]of Object.entries(l)){let f=Number(c);if(!Number.isInteger(f)||f<0||typeof d!="string")throw new Error(`Invalid exact numeric text entry at row ${s}, column ${c}`);let m=a[u]?.[f];if(m===void 0)throw new Error(`Exact numeric text entry is outside row ${s}, column ${c}`);d!==String(m)&&i(u,f,d)}}return o?{rows:a,exactIntegerTexts:o}:{rows:a}}var Pc,Dc,Bc,Li,Mc,Uc,$i,Gt,ft,vi,ki,pt=M(()=>{"use strict";_();J();Pc="__sqlite_explorer_numeric_source",Dc="__sqlite_explorer_numeric_value_",Bc="__sqlite_explorer_numeric_text_",Li="__sqlite_explorer_numeric_rowid",Mc="__sqlite_explorer_numeric_rowid_text_",Uc=2e3,$i=999,Gt=32766,ft=`SELECT 1 FROM pragma.pragma_table_list AS target WHERE "schema" = 'main' AND "name" = ? AND (("type" IN ('table', 'shadow') AND "wr" = 0) OR "type" = 'virtual') AND (NOT EXISTS (SELECT 1 FROM pragma.pragma_table_info(?, 'main') WHERE lower("name") = 'rowid') OR ("type" = 'table' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND EXISTS (SELECT 1 FROM pragma.pragma_table_info(target."name", 'main') WHERE lower("name") = 'rowid' AND lower(trim("type")) = 'integer' AND "pk" = 1) AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk'))) LIMIT 1`,vi=`SELECT info."name" FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_info(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? AND target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') LIMIT 2`,ki=`SELECT info."cid", info."name", info."type", info."notnull", info."dflt_value", info."pk", info."hidden", CASE WHEN target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') THEN 1 ELSE 0 END AS is_rowid_alias FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_xinfo(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? ORDER BY info."cid"`});function yt(e){return new Error(`An UPDATE trigger changed or removed the rowid identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function Fi(e,t){if(e.length!==1||e[0].length<1)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);let n=e[0][0],r=typeof n=="bigint"?Number(n):n;if(!Number.isSafeInteger(r)||Number(r)<0)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);return Number(r)}function $e(e){let t=typeof e=="bigint"?Number(e):e;return Number.isSafeInteger(t)?Number(t):void 0}function Wi(e,t,n,r="rowid"){if(!Number.isSafeInteger(t)||t<0)throw new Error(`SQLite returned invalid table root-page metadata for ${e}`);let o=!1,i=-1,a=0,s=!1,l,u=()=>{if(!l||l.isUserTrigger||!l.hasWrite)return;let c=l.prologueParameters,d=l.parametersAfterWrite,f=c.filter((E,y)=>y%2===1);c.length>0&&c.length%2===0&&f.every(E=>d.has(E))||(s=!0)};for(let c=0;c1?{isUserTrigger:m,hasWrite:!1,prologueParameters:[],parametersAfterWrite:new Set,prologueComplete:!1}:void 0;continue}if(l){if(d[1]==="Param"){let m=$e(d[2]);if(m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);l.hasWrite?l.parametersAfterWrite.add(m):l.prologueComplete||l.prologueParameters.push(m);continue}d[1]==="OpenWrite"||d[1]==="Clear"?(l.prologueComplete=!0,l.hasWrite=!0):d[1].startsWith("Open")&&(l.prologueComplete=!0)}}if(u(),o)throw i<0?new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`):n.slice(i).some(d=>{if(d[1]==="OpenWrite"){let f=$e(d[3]),m=$e(d[4]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}if(d[1]==="Clear"){let f=$e(d[2]),m=$e(d[3]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}return!1})?new Error(`SQLite Explorer cannot prove whether an applicable UPDATE trigger changed or removed the ${r} identity in ${e}; the trigger can write the target table, so the edit was rolled back because SQLite cannot expose a trustworthy post-trigger ${r} identity.`):new Error(`Cannot update ${e} while an applicable UPDATE trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);if(s)throw new Error(`Cannot update ${e} while a mutating foreign-key UPDATE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function ji(e,t,n){let r=0,o=!1;for(let i of n){if(i.length<6||typeof i[1]!="string")throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);let a=$e(i[0]);if(a===void 0)throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);if(i[1]==="Init"&&a===0){if(r+=1,typeof i[5]=="string"&&i[5].startsWith("-- TRIGGER "))throw new Error(`Cannot ${e.toLowerCase()} ${t} while an applicable ${e} trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);continue}e==="DELETE"&&r>1&&(i[1]==="OpenWrite"||i[1]==="Clear")&&(o=!0)}if(o)throw new Error(`Cannot delete from ${t} while a mutating foreign-key DELETE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function qc(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function Vc(e){let t=new Uint8Array(e.length/2);for(let n=0;n4096)throw new Error("Read-only primary-key reason must contain 1 through 4096 characters");if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid read-only primary-key row ordinal: ${t}`);return Jt+encodeURIComponent(JSON.stringify({v:Ui,r:t,m:e}))}function Wc(e){let t;try{t=JSON.parse(decodeURIComponent(e.slice(Jt.length)))}catch{throw new Error("Invalid read-only primary-key identity encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Ui||!Number.isSafeInteger(t.r)||Number(t.r)<0||typeof t.m!="string"||String(t.m).length<1||String(t.m).length>4096)throw new Error("Invalid read-only primary-key identity payload");let n=t;if(Jt+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Read-only primary-key identity is not canonical");return n}function ve(e){if(Fc(e))throw new Error(Wc(e).m)}function Ke(e,t){if(e.length===0||e.length!==t.length)throw new Error("Primary-key identity column/value count mismatch");let n={v:Er,c:e.map((r,o)=>[r.identifier,Zt(t[o])])};return gt+encodeURIComponent(JSON.stringify(n))}function Ki(e){if(!ie(e))throw new Error(`Invalid primary-key identity: ${String(e)}`);let t,n;try{t=decodeURIComponent(e.slice(gt.length)),n=JSON.parse(t)}catch{throw new Error("Invalid primary-key identity encoding")}if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||n.v!==Er||!Array.isArray(n.c))throw new Error("Invalid primary-key identity payload");let r=n.c;if(r.length===0)throw new Error("Primary-key identity has no columns");let o=new Set,i=[],a=[],s=[],l=[];for(let c of r){if(!Array.isArray(c)||c.length!==2||typeof c[0]!="string")throw new Error("Invalid primary-key identity member");if(o.has(c[0]))throw new Error(`Duplicate primary-key identity column: ${c[0]}`);o.add(c[0]),i.push(c[0]);let d=Hi(c[1]);a.push(d.value),s.push(d.storageClass),l.push(c[1])}if(gt+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Primary-key identity is not canonical");return{columns:i,values:a,storageClasses:s,encodedValues:l}}function zi(e){let{columns:t,values:n}=Ki(e);return{columns:t,values:n}}function en(e,t){ve(e);let n=Ki(e),r=t.columns.map(o=>o.identifier);if(n.columns.length!==r.length||n.columns.some((o,i)=>o!==r[i]))throw new Error(`Primary-key identity columns do not match the declared key (${r.join(", ")})`);return n}function wr(e,t,n){let r=en(e,t),o=new Map,i=new Set(t.columns.map(s=>s.identifier));for(let s of n){if(!i.has(s.column))throw new Error(`Primary-key replacement column is not declared: ${s.column}`);if(o.has(s.column))throw new Error(`Duplicate primary-key replacement column: ${s.column}`);o.set(s.column,s.value)}let a={v:Er,c:t.columns.map((s,l)=>[s.identifier,o.has(s.identifier)?Zt(o.get(s.identifier)):r.encodedValues[l]])};return gt+encodeURIComponent(JSON.stringify(a))}function hr(e){return e==="integer"?"CAST(? AS INTEGER)":"?"}function Q(e,t){if(ve(e),t.kind==="rowid")return{sql:"rowid = ?",params:[H(e)]};let n=en(e,t),r=t.columns.map(i=>i.identifier),o=r.map((i,a)=>hr(n.storageClasses[a]));return{sql:r.map((i,a)=>`${C(i)} = ${o[a]}`).join(" AND "),params:n.values,primaryKey:{columns:n.columns,values:n.values},primaryKeyIntegerCasts:o.map(i=>i!=="?")}}function jc(e,t){if(e.length===0)throw new Error("At least one row identity is required");if(t.kind==="rowid"){let a=e.map(s=>Q(s,t));return{sql:`rowid IN (${a.map(()=>"?").join(", ")})`,params:a.flatMap(s=>s.params)}}let n=e.map(a=>en(a,t)),r=t.columns.map(a=>C(a.identifier)),o=n.flatMap(a=>a.values);if(r.length===1)return{sql:`${r[0]} IN (${n.map(a=>hr(a.storageClasses[0])).join(", ")})`,params:o};let i=n.map(a=>`(${a.storageClasses.map(s=>hr(s)).join(", ")})`);return{sql:`(${r.join(", ")}) IN (VALUES ${i.join(", ")})`,params:o}}function ze(e,t){if(e.length===0)throw new Error("At least one row identity is required");let n=new Set;for(let a of e){let s;if(t.kind==="rowid"?s=`rowid:${String(H(a))}`:(en(a,t),s=`primaryKey:${String(a)}`),n.has(s))throw new Error("Duplicate row identities are not allowed");n.add(s)}let r=t.kind==="rowid"?1:t.columns.length,o=Math.max(1,Math.floor((Gt-1)/r)),i=[];for(let a=0;at.primaryKeyPosition>0).map(t=>({identifier:t.identifier,declaredType:t.declaredType,position:t.primaryKeyPosition})).sort((t,n)=>t.position-n.position)}var gt,Er,Jt,Ui,qi,Vi,Et=M(()=>{"use strict";_();pt();J();gt="pk:",Er=1,Jt="readonly-pk:",Ui=1,qi=` +SELECT ${l.join(", ")} FROM ${o}`,transportColumns:u};return a&&(c.valueColumnCount=t),c}function Bi(e,t,n){if(t.length<2||t[0].toLowerCase()!=="rowid"||n.length===0)return[];let r=t.slice(1),o=[];for(let i=0;ii+d+1),l=s.map(c=>`${Uc}${c}`),u=a.map((c,d)=>{let f=C(c);return`CASE WHEN typeof(${f}) = 'real' THEN CAST(${f} AS TEXT) END AS ${C(l[d])}`});for(let c=0;ctypeof m=="bigint"?m.toString():m);o.push({sql:`SELECT rowid AS ${C(Li)}, ${u.join(", ")} FROM ${L(e)} WHERE rowid IN (${d.map(()=>"?").join(", ")})`,params:f,transportColumns:[Li,...l],columnIndices:s})}}return o}function Mi(e,t){if(t.length===0)return;let n=new Map;e.forEach((o,i)=>{let a=o[0];if(!["bigint","number","string"].includes(typeof a))throw new Error(`Invalid rowid identity at source row ${i}`);let s=String(a);if(n.has(s))throw new Error(`Duplicate rowid identity at source row ${i}`);n.set(s,i)});let r;for(let{query:o,rows:i}of t)for(let a of i){if(a.length{let c=a[u+1];if(c==null)return;if(typeof c!="string")throw new Error(`Rowid exact REAL text at row ${s}, column ${l} is not text`);let d=e[s]?.[l];if(d===void 0)throw new Error(`Rowid exact REAL text is outside row ${s}, column ${l}`);c!==String(d)&&(r??={},r[s]??={},r[s][l]=c)})}return r}function Qe(e,t,n,r){let o,i=(s,l,u)=>{o??={},o[s]??={},o[s][l]=u},a=e.map((s,l)=>{let u=t??s.length;if(t!==void 0&&s.length{let f=c;if(typeof c=="bigint"){let m=Number(c);if(Number.isSafeInteger(m))f=m;else{let E=c.toString();d===r?f=E:(i(l,d,E),f=m)}}if(t!==void 0){let m=s[t+d];if(m!=null){if(typeof m!="string")throw new Error(`Exact numeric text at row ${l}, column ${d} is not text`);m!==String(f)&&i(l,d,m)}}return f})});if(n)for(let[s,l]of Object.entries(n)){let u=Number(s);if(!Number.isInteger(u)||u<0||l===null||typeof l!="object")throw new Error(`Invalid exact numeric text row index: ${s}`);for(let[c,d]of Object.entries(l)){let f=Number(c);if(!Number.isInteger(f)||f<0||typeof d!="string")throw new Error(`Invalid exact numeric text entry at row ${s}, column ${c}`);let m=a[u]?.[f];if(m===void 0)throw new Error(`Exact numeric text entry is outside row ${s}, column ${c}`);d!==String(m)&&i(u,f,d)}}return o?{rows:a,exactIntegerTexts:o}:{rows:a}}var Dc,Bc,Mc,Li,Uc,qc,$i,Gt,ft,vi,ki,pt=M(()=>{"use strict";_();Y();Dc="__sqlite_explorer_numeric_source",Bc="__sqlite_explorer_numeric_value_",Mc="__sqlite_explorer_numeric_text_",Li="__sqlite_explorer_numeric_rowid",Uc="__sqlite_explorer_numeric_rowid_text_",qc=2e3,$i=999,Gt=32766,ft=`SELECT 1 FROM pragma.pragma_table_list AS target WHERE "schema" = 'main' AND "name" = ? AND (("type" IN ('table', 'shadow') AND "wr" = 0) OR "type" = 'virtual') AND (NOT EXISTS (SELECT 1 FROM pragma.pragma_table_info(?, 'main') WHERE lower("name") = 'rowid') OR ("type" = 'table' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND EXISTS (SELECT 1 FROM pragma.pragma_table_info(target."name", 'main') WHERE lower("name") = 'rowid' AND lower(trim("type")) = 'integer' AND "pk" = 1) AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk'))) LIMIT 1`,vi=`SELECT info."name" FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_info(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? AND target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') LIMIT 2`,ki=`SELECT info."cid", info."name", info."type", info."notnull", info."dflt_value", info."pk", info."hidden", CASE WHEN target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') THEN 1 ELSE 0 END AS is_rowid_alias FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_xinfo(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? ORDER BY info."cid"`});function yt(e){return new Error(`An UPDATE trigger changed or removed the rowid identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function Fi(e,t){if(e.length!==1||e[0].length<1)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);let n=e[0][0],r=typeof n=="bigint"?Number(n):n;if(!Number.isSafeInteger(r)||Number(r)<0)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);return Number(r)}function $e(e){let t=typeof e=="bigint"?Number(e):e;return Number.isSafeInteger(t)?Number(t):void 0}function Wi(e,t,n,r="rowid"){if(!Number.isSafeInteger(t)||t<0)throw new Error(`SQLite returned invalid table root-page metadata for ${e}`);let o=!1,i=-1,a=0,s=!1,l,u=()=>{if(!l||l.isUserTrigger||!l.hasWrite)return;let c=l.prologueParameters,d=l.parametersAfterWrite,f=c.filter((E,y)=>y%2===1);c.length>0&&c.length%2===0&&f.every(E=>d.has(E))||(s=!0)};for(let c=0;c1?{isUserTrigger:m,hasWrite:!1,prologueParameters:[],parametersAfterWrite:new Set,prologueComplete:!1}:void 0;continue}if(l){if(d[1]==="Param"){let m=$e(d[2]);if(m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);l.hasWrite?l.parametersAfterWrite.add(m):l.prologueComplete||l.prologueParameters.push(m);continue}d[1]==="OpenWrite"||d[1]==="Clear"?(l.prologueComplete=!0,l.hasWrite=!0):d[1].startsWith("Open")&&(l.prologueComplete=!0)}}if(u(),o)throw i<0?new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`):n.slice(i).some(d=>{if(d[1]==="OpenWrite"){let f=$e(d[3]),m=$e(d[4]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}if(d[1]==="Clear"){let f=$e(d[2]),m=$e(d[3]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}return!1})?new Error(`SQLite Explorer cannot prove whether an applicable UPDATE trigger changed or removed the ${r} identity in ${e}; the trigger can write the target table, so the edit was rolled back because SQLite cannot expose a trustworthy post-trigger ${r} identity.`):new Error(`Cannot update ${e} while an applicable UPDATE trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);if(s)throw new Error(`Cannot update ${e} while a mutating foreign-key UPDATE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function ji(e,t,n){let r=0,o=!1;for(let i of n){if(i.length<6||typeof i[1]!="string")throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);let a=$e(i[0]);if(a===void 0)throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);if(i[1]==="Init"&&a===0){if(r+=1,typeof i[5]=="string"&&i[5].startsWith("-- TRIGGER "))throw new Error(`Cannot ${e.toLowerCase()} ${t} while an applicable ${e} trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);continue}e==="DELETE"&&r>1&&(i[1]==="OpenWrite"||i[1]==="Clear")&&(o=!0)}if(o)throw new Error(`Cannot delete from ${t} while a mutating foreign-key DELETE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function Vc(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function Fc(e){let t=new Uint8Array(e.length/2);for(let n=0;n4096)throw new Error("Read-only primary-key reason must contain 1 through 4096 characters");if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid read-only primary-key row ordinal: ${t}`);return Jt+encodeURIComponent(JSON.stringify({v:Ui,r:t,m:e}))}function jc(e){let t;try{t=JSON.parse(decodeURIComponent(e.slice(Jt.length)))}catch{throw new Error("Invalid read-only primary-key identity encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Ui||!Number.isSafeInteger(t.r)||Number(t.r)<0||typeof t.m!="string"||String(t.m).length<1||String(t.m).length>4096)throw new Error("Invalid read-only primary-key identity payload");let n=t;if(Jt+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Read-only primary-key identity is not canonical");return n}function ve(e){if(Wc(e))throw new Error(jc(e).m)}function Ke(e,t){if(e.length===0||e.length!==t.length)throw new Error("Primary-key identity column/value count mismatch");let n={v:Er,c:e.map((r,o)=>[r.identifier,Zt(t[o])])};return gt+encodeURIComponent(JSON.stringify(n))}function Ki(e){if(!ie(e))throw new Error(`Invalid primary-key identity: ${String(e)}`);let t,n;try{t=decodeURIComponent(e.slice(gt.length)),n=JSON.parse(t)}catch{throw new Error("Invalid primary-key identity encoding")}if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||n.v!==Er||!Array.isArray(n.c))throw new Error("Invalid primary-key identity payload");let r=n.c;if(r.length===0)throw new Error("Primary-key identity has no columns");let o=new Set,i=[],a=[],s=[],l=[];for(let c of r){if(!Array.isArray(c)||c.length!==2||typeof c[0]!="string")throw new Error("Invalid primary-key identity member");if(o.has(c[0]))throw new Error(`Duplicate primary-key identity column: ${c[0]}`);o.add(c[0]),i.push(c[0]);let d=Hi(c[1]);a.push(d.value),s.push(d.storageClass),l.push(c[1])}if(gt+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Primary-key identity is not canonical");return{columns:i,values:a,storageClasses:s,encodedValues:l}}function zi(e){let{columns:t,values:n}=Ki(e);return{columns:t,values:n}}function en(e,t){ve(e);let n=Ki(e),r=t.columns.map(o=>o.identifier);if(n.columns.length!==r.length||n.columns.some((o,i)=>o!==r[i]))throw new Error(`Primary-key identity columns do not match the declared key (${r.join(", ")})`);return n}function wr(e,t,n){let r=en(e,t),o=new Map,i=new Set(t.columns.map(s=>s.identifier));for(let s of n){if(!i.has(s.column))throw new Error(`Primary-key replacement column is not declared: ${s.column}`);if(o.has(s.column))throw new Error(`Duplicate primary-key replacement column: ${s.column}`);o.set(s.column,s.value)}let a={v:Er,c:t.columns.map((s,l)=>[s.identifier,o.has(s.identifier)?Zt(o.get(s.identifier)):r.encodedValues[l]])};return gt+encodeURIComponent(JSON.stringify(a))}function hr(e){return e==="integer"?"CAST(? AS INTEGER)":"?"}function Q(e,t){if(ve(e),t.kind==="rowid")return{sql:"rowid = ?",params:[H(e)]};let n=en(e,t),r=t.columns.map(i=>i.identifier),o=r.map((i,a)=>hr(n.storageClasses[a]));return{sql:r.map((i,a)=>`${C(i)} = ${o[a]}`).join(" AND "),params:n.values,primaryKey:{columns:n.columns,values:n.values},primaryKeyIntegerCasts:o.map(i=>i!=="?")}}function Hc(e,t){if(e.length===0)throw new Error("At least one row identity is required");if(t.kind==="rowid"){let a=e.map(s=>Q(s,t));return{sql:`rowid IN (${a.map(()=>"?").join(", ")})`,params:a.flatMap(s=>s.params)}}let n=e.map(a=>en(a,t)),r=t.columns.map(a=>C(a.identifier)),o=n.flatMap(a=>a.values);if(r.length===1)return{sql:`${r[0]} IN (${n.map(a=>hr(a.storageClasses[0])).join(", ")})`,params:o};let i=n.map(a=>`(${a.storageClasses.map(s=>hr(s)).join(", ")})`);return{sql:`(${r.join(", ")}) IN (VALUES ${i.join(", ")})`,params:o}}function ze(e,t){if(e.length===0)throw new Error("At least one row identity is required");let n=new Set;for(let a of e){let s;if(t.kind==="rowid"?s=`rowid:${String(H(a))}`:(en(a,t),s=`primaryKey:${String(a)}`),n.has(s))throw new Error("Duplicate row identities are not allowed");n.add(s)}let r=t.kind==="rowid"?1:t.columns.length,o=Math.max(1,Math.floor((Gt-1)/r)),i=[];for(let a=0;at.primaryKeyPosition>0).map(t=>({identifier:t.identifier,declaredType:t.declaredType,position:t.primaryKeyPosition})).sort((t,n)=>t.position-n.position)}var gt,Er,Jt,Ui,qi,Vi,Et=M(()=>{"use strict";_();pt();Y();gt="pk:",Er=1,Jt="readonly-pk:",Ui=1,qi=` SELECT tl."name" AS table_name, tl."type" AS object_type, @@ -23,37 +23,37 @@ FROM pragma.pragma_table_list AS tl LEFT JOIN pragma.pragma_table_info(tl."name", tl."schema") AS ti ON tl."type" IN ('table', 'shadow') AND tl."wr" = 1 WHERE tl."schema" = 'main' AND tl."name" NOT LIKE 'sqlite_%' -ORDER BY tl."name", ti."cid"`;Vi=`SELECT "rootpage" FROM main.sqlite_schema WHERE "type" = 'table' AND "name" = ? LIMIT 2`});function tn(e,t){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:t}function Jc(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell containment requires a positive column count, got ${t}`);let n=tn(e.maxInlineCellBytes,rn),r=tn(e.maxPageResponseBytes,be),i=tn(e.limit,1)*t,a=Number.isSafeInteger(i)?Math.floor(r/i):0;if(!Number.isSafeInteger(i))return 0;let s=String(t-1).length+3,l=wt+Cr+s+Kc,u=ue-St,c=Math.floor(u/i),d=Math.max(0,Math.floor((c-l)/4)*4),f=Math.floor(d/4)*3;return Math.min(n,a,Math.max(Hc,f))}function Zc(e,t){return`typeof(${e}) IN ('text', 'blob') AND octet_length(${e}) > ${t}`}function eu(e,t){return`CASE WHEN ${Zc(e,t)} THEN CASE typeof(${e}) WHEN 'text' THEN 't' ELSE 'b' END || CAST(octet_length(${e}) AS TEXT) ELSE '' END`}function tu(e,t){let n=[];for(let r=0;reu(a,t)).map((a,s)=>`${s===0?"SELECT":"UNION ALL SELECT"} ${a} AS "cell"`).join(` +ORDER BY tl."name", ti."cid"`;Vi=`SELECT "rootpage" FROM main.sqlite_schema WHERE "type" = 'table' AND "name" = ? LIMIT 2`});function tn(e,t){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:t}function Zc(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell containment requires a positive column count, got ${t}`);let n=tn(e.maxInlineCellBytes,rn),r=tn(e.maxPageResponseBytes,be),i=tn(e.limit,1)*t,a=Number.isSafeInteger(i)?Math.floor(r/i):0;if(!Number.isSafeInteger(i))return 0;let s=String(t-1).length+3,l=wt+Cr+s+zc,u=ue-St,c=Math.floor(u/i),d=Math.max(0,Math.floor((c-l)/4)*4),f=Math.floor(d/4)*3;return Math.min(n,a,Math.max(Qc,f))}function eu(e,t){return`typeof(${e}) IN ('text', 'blob') AND octet_length(${e}) > ${t}`}function tu(e,t){return`CASE WHEN ${eu(e,t)} THEN CASE typeof(${e}) WHEN 'text' THEN 't' ELSE 'b' END || CAST(octet_length(${e}) AS TEXT) ELSE '' END`}function nu(e,t){let n=[];for(let r=0;rtu(a,t)).map((a,s)=>`${s===0?"SELECT":"UNION ALL SELECT"} ${a} AS "cell"`).join(` `);n.push(`(SELECT group_concat("cell", '|') FROM ( ${i} -))`)}return n.join(" || '|' || ")}function on(e,t,n,r=[],o="blob"){let i=Jc(n,t),a=Math.floor(i/Yc),s=Array.from({length:t},(x,T)=>`${Xc}${T}`),l=s.map(C);if(new Set(r).size!==r.length||r.some(x=>!Number.isInteger(x)||x<0||x>=t))throw new Error("Cell containment raw-TEXT columns must be unique in-range indices");let u=r.length>0&&t+1+r.length>Tr,c=u?[]:r,d=l.map((x,T)=>`CASE WHEN typeof(${x}) = 'text' AND octet_length(${x}) > ${i} THEN substr(${x}, 1, ${a}) WHEN typeof(${x}) = 'blob' AND octet_length(${x}) > ${i} THEN substr(${x}, 1, ${i}) ELSE ${x} END AS ${C(s[T])}`),f=C(zc),m=tu(l,i),E=c.map((x,T)=>{let A=l[x];return`CASE WHEN typeof(${A}) = 'text' AND octet_length(${A}) <= ${i} THEN ${o==="hex"?`hex(CAST(${A} AS BLOB))`:`CAST(${A} AS BLOB)`} END AS ${C(`${ts}${T}`)}`}),y=E.length>0?`, ${E.join(", ")}`:"",g=t+1>Tr,S=`WITH ${f} (${l.join(", ")}) AS${g?" MATERIALIZED":""} ( +))`)}return n.join(" || '|' || ")}function on(e,t,n,r=[],o="blob"){let i=Zc(n,t),a=Math.floor(i/Jc),s=Array.from({length:t},(I,T)=>`${Gc}${T}`),l=s.map(C);if(new Set(r).size!==r.length||r.some(I=>!Number.isInteger(I)||I<0||I>=t))throw new Error("Cell containment raw-TEXT columns must be unique in-range indices");let u=r.length>0&&t+1+r.length>Tr,c=u?[]:r,d=l.map((I,T)=>`CASE WHEN typeof(${I}) = 'text' AND octet_length(${I}) > ${i} THEN substr(${I}, 1, ${a}) WHEN typeof(${I}) = 'blob' AND octet_length(${I}) > ${i} THEN substr(${I}, 1, ${i}) ELSE ${I} END AS ${C(s[T])}`),f=C(Xc),m=nu(l,i),E=c.map((I,T)=>{let A=l[I];return`CASE WHEN typeof(${A}) = 'text' AND octet_length(${A}) <= ${i} THEN ${o==="hex"?`hex(CAST(${A} AS BLOB))`:`CAST(${A} AS BLOB)`} END AS ${C(`${ts}${T}`)}`}),y=E.length>0?`, ${E.join(", ")}`:"",g=t+1>Tr,S=`WITH ${f} (${l.join(", ")}) AS${g?" MATERIALIZED":""} ( SELECT * FROM ( ${e} ) LIMIT -1 OFFSET 0 ) -`,w=g?"":`, ${m} AS ${C(Gc)}`,R=g?` +`,w=g?"":`, ${m} AS ${C(Yc)}`,R=g?` UNION ALL SELECT (SELECT COALESCE(group_concat(${m}, char(10)), '') FROM ${f})${t>1?`, ${Array(t-1).fill("NULL").join(", ")}`:""}`:"";return{sql:S+`SELECT ${d.join(", ")}${w}${y} FROM ${f}`+R,metadataTrailer:g,primaryTransportColumnCount:t+(g?0:1)+c.length,valueColumnCount:t,metadataColumnIndex:t,transportColumnCount:t+1+c.length,rawTextColumnStart:t+1,rawTextColumnCount:c.length,rawTextTransport:o,rawTextColumnIndices:c,rawTextValidationUnavailable:u,effectiveInlineCellBytes:i}}function ns(e,t,n){if(!n.metadataTrailer){if(t!==void 0)throw new Error("Cell containment received unexpected separate metadata rows");return e}if(t!==void 0)throw new Error("Cell containment metadata must come from the value statement");let r=e.at(-1);if(!r||r.length!==n.primaryTransportColumnCount)throw new Error("Cell containment metadata trailer is missing or malformed");if(typeof r[0]!="string"||r.slice(1).some(a=>a!==null))throw new Error("Cell containment metadata trailer is not one packed text value");let o=e.slice(0,-1),i=r[0]===""?[]:r[0].split(` -`);if(i.length!==o.length)throw new Error("Cell containment metadata row count does not match the value page");return o.map((a,s)=>{if(a.length{if(!s)return;let l={};for(let[u,c]of Object.entries(s)){let d=Number(u);l[d]={};for(let[f,m]of Object.entries(c))l[d][Number(f)+1]=m}return l},o=r(t.exactIntegerTexts),i;for(let s of[n,o])if(s){i??={};for(let[l,u]of Object.entries(s)){let c=Number(l);i[c]??={},Object.assign(i[c],u)}}let a=r(t.oversizedCells);return{rows:t.rows.map((s,l)=>[e[l],...s]),...a?{oversizedCells:a}:{},...i?{exactIntegerTexts:i}:{}}}function os(e,t){let n,r=0,o,i=s=>{if(s>=48&&s<=57)return s-48;let l=s|32;return l>=97&&l<=102?l-87:-1},a=(s,l,u)=>{let c=typeof s=="string"?s.length/2:NaN;if(typeof s!="string"||!Number.isSafeInteger(c)||!Number.isSafeInteger(t.effectiveInlineCellBytes)||t.effectiveInlineCellBytes<0||c>t.effectiveInlineCellBytes)throw new Error(`Raw TEXT value at row ${l}, key ${u} is not bounded hexadecimal text`);if(c===0)return o??=new Uint8Array(0);let d;c>Gi?d=new Uint8Array(c):((!n||n.byteLength-r{if(s.length{let d=s[t.rawTextColumnStart+c];if(d!==null&&t.rawTextTransport==="hex")return a(d,l,c);if(d!==null&&!(d instanceof Uint8Array))throw new Error(`Raw TEXT value at row ${l}, key ${c} is not a BLOB`);return d})})}function is(e){if(e.sourceRows.length===0||e.sourceColumnIndices.length===0)return;if(e.rawTextValidationUnavailable)return new Set(e.sourceRows.map((o,i)=>i));if(e.rawTextRows.length!==e.sourceRows.length)throw new Error("Raw TEXT validation row count does not match the source page");let t=e.sourceColumnIndices.map(o=>{let i=e.rawTextColumnIndices.indexOf(o);if(i<0)throw new Error(`Raw TEXT validation column ${o} was not projected`);return i}),n=ge(e.textEncoding),r;return e.sourceRows.forEach((o,i)=>{let a=e.rawTextRows[i];if(!a||a.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT validation row ${i} has the wrong width`);for(let s=0;sArray.from(s)),n;if(e.contained.oversizedCells){n={};for(let[s,l]of Object.entries(e.contained.oversizedCells))n[Number(s)]={...l}}let r;if(e.contained.exactIntegerTexts){r={};for(let[s,l]of Object.entries(e.contained.exactIntegerTexts))r[Number(s)]={...l}}let o=ue-St,i=an(t)+ln(n)+cn(r),a=ge(e.textEncoding);if(e.sourceRows.forEach((s,l)=>{let u=e.rawTextRows[l];if(!u||u.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT containment row ${l} has the wrong width`);e.rawTextColumnIndices.forEach((c,d)=>{let f=s[c];if(typeof f!="string"||n?.[l]?.[c])return;let m=u[d];if(!(m instanceof Uint8Array))throw new Error(`Raw TEXT containment bytes are missing at row ${l}, column ${c}`);let E=!1;try{E=a.decode(m)===f}catch{E=!1}if(E)return;let y=t[l][c],g=as(n,l,c);n??={},n[l]??={},n[l][c]={storageClass:"text",byteLength:m.byteLength};let S=Math.max(0,o-i-g+de(y)),w=S>wt?Math.floor((S-wt)/4)*3:0,R=Math.min(m.byteLength,Qc,w);if(R===0)throw new Error(`Raw TEXT containment cannot retain an authoritative byte prefix for row ${l}, column ${c} within the webview transport limit`);let x=m.slice(0,R);t[l][c]=x,i+=de(x)-de(y)+g,r?.[l]&&(delete r[l][c],Object.keys(r[l]).length===0&&delete r[l])})}),i>o)throw new Error(`Raw TEXT containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:t,...n?{oversizedCells:n}:{},...r&&Object.keys(r).length>0?{exactIntegerTexts:r}:{}}}function nu(e,t,n){if(e==="")return;let r=/^([tb])([1-9]\d*)$/.exec(e);if(!r)throw new Error(`Invalid oversized-cell metadata at row ${t}, column ${n}`);let o=Number(r[2]);if(!Number.isSafeInteger(o))throw new Error(`Oversized-cell byte length is unsafe at row ${t}, column ${n}`);return{storageClass:r[1]==="t"?"text":"blob",byteLength:o}}function sn(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function ru(e){if(typeof e=="string")return sn(e);if(e instanceof Uint8Array)return e.byteLength}function Ji(e){return e==="text"?"":new Uint8Array(0)}function ou(e){return 4*Math.ceil(e/3)}function de(e){return e instanceof Uint8Array?ou(e.byteLength)+wt:typeof e=="string"?sn(e)+2:8}function xe(e){return sn(e)+3}function an(e){let t=2+Math.max(0,e.length-1);for(let n of e){t+=2+Math.max(0,n.length-1);for(let r of n)t+=de(r)}return t}function ln(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=xe(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a]of i)n+=xe(a)+Cr}return n}function as(e,t,n){if(e?.[t]?.[n])return 0;let r=xe(String(n))+Cr;if(e?.[t])return 1+r;let i=xe(String(t))+2+r;return e?1+i:2+i}function cn(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=xe(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a,s]of i)n+=xe(a)+sn(s)+2}return n}function ls(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t)n+=xe(r)+de(o);return n}function un(e,t,n,r=be){let o=tn(r,be),i,a=0,s=!1,l=[],u=(E,y,g)=>{i??={},i[E]??={},i[E][y]??=g},c=e.map((E,y)=>{if(E.length{let T=nu(R,y,x);T&&u(y,x,T);let A=w[x],$=ru(A);if($===void 0||$===0)return;let O=T??{storageClass:typeof A=="string"?"text":"blob",byteLength:$};if(s||$>o-a){s=!0,u(y,x,O),w[x]=Ji(O.storageClass);return}a+=$,l.push({rowIndex:y,columnIndex:x,metadata:O})}),w}),d;if(n)for(let[E,y]of Object.entries(n))for(let[g,S]of Object.entries(y)){let w=Number(g);w>=t||(d??={},d[Number(E)]??={},d[Number(E)][w]=S)}let f=ue-St,m=an(c)+ln(i)+cn(d);for(let E=l.length-1;E>=0&&m>f;E--){let y=l[E],g=c[y.rowIndex][y.columnIndex],S=Ji(y.metadata.storageClass),w=de(S)-de(g)+as(i,y.rowIndex,y.columnIndex);w>=0||(u(y.rowIndex,y.columnIndex,y.metadata),c[y.rowIndex][y.columnIndex]=S,m+=w)}if(m>f)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:c,...i?{oversizedCells:i}:{},...d?{exactIntegerTexts:d}:{}}}function Zi(e,t){if(!e)return;let n;for(let[r,o]of Object.entries(e))for(let[i,a]of Object.entries(o)){let s=Number(i);s>=t||(n??={},n[Number(r)]??={},n[Number(r)][s+1]=a)}return n}function es(e,t){if(!e)return;let n;for(let[r,o]of Object.entries(e))for(let[i,a]of Object.entries(o)){let s=Number(i);s!==t&&(n??={},n[Number(r)]??={},n[Number(r)][s]=a)}return n}function cs(e){let t=`Row is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity.`,n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o=e.rows.map((u,c)=>{if(u.length===0)throw new Error(`Shadowed rowid result row ${c} has no identity slot`);let d=n+c;if(!Number.isSafeInteger(d))throw new Error("Shadowed rowid result ordinal exceeds the safe integer range");return r??={},r[c]=t,[ht(t,d),...u.slice(1)]}),i=es(e.oversizedCells,0),a=es(e.exactIntegerTexts,0),s=ue-St;if(an(o)+ln(i)+cn(a)+ls(r)>s)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:o,...i?{oversizedCells:i}:{},...a?{exactIntegerTexts:a}:{},...r?{readOnlyRowReasons:r}:{}}}function nn(e){return`"${e.length<=128?e:`${e.slice(0,125)}...`}"`}function us(e){let t=e.slice(0,8).map(nn);return e.length>t.length?`${t.join(", ")}, and ${e.length-t.length} more`:t.join(", ")}function iu(e,t){if(e.length===1){let r=e[0];return`Row is read-only because WITHOUT ROWID primary-key column ${nn(r.identifier)} is ${r.byteLength} bytes and exceeds the ${t}-byte inline limit; its identity was not transported.`}let n=e.slice(0,8).map(r=>`${nn(r.identifier)} (${r.byteLength} bytes)`);return e.length>n.length&&n.push(`and ${e.length-n.length} more`),`Row is read-only because WITHOUT ROWID primary-key columns ${n.join(", ")} exceed the ${t}-byte inline limit; their identity was not transported.`}function ds(e){return e==="utf-8"?"UTF-8":e==="utf-16le"?"UTF-16LE":"UTF-16BE"}function bt(e){if(e.columns.length*2>Tr)throw new Error(`Cannot mint a byte-faithful WITHOUT ROWID identity with ${e.columns.length} primary-key columns within SQLite's result-column limit`);let t=e.columns.map(r=>C(r.identifier)),n=t.map((r,o)=>`CASE WHEN typeof(${r}) = 'text' THEN CAST(${r} AS BLOB) END AS `+C(`${ts}${o}`));return[...t,...n].join(", ")}function Tt(e,t,n,r){let o=e.columns.length;if(t.length!==o*2)throw new Error(`${r}: SQLite returned an invalid primary-key validation row`);let i=t.slice(0,o),a=ge(n);for(let s=0;s{let g=e.sourceColumns.indexOf(y.identifier);if(g<0)throw new Error(`Primary-key column missing from table fetch: ${y.identifier}`);return g}),n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o,i=[],a=ge(e.textEncoding),s=e.rawTextValidationUnavailable?[]:t.map(y=>{let g=e.rawTextColumnIndices.indexOf(y);if(g<0)throw new Error(`Primary-key raw TEXT column ${y} was not projected`);return g}),l=e.rows.map((y,g)=>{let S=e.identity.columns.flatMap((A,$)=>{let O=e.oversizedCells?.[g]?.[t[$]];return O?[{identifier:A.identifier,byteLength:O.byteLength}]:[]}),w=e.identityRows[g];if(!w)throw new Error(`Primary-key identity row missing at index ${g}`);let R=e.rawTextBytes[g];if(!e.rawTextValidationUnavailable&&(!R||R.length!==e.rawTextColumnIndices.length))throw new Error(`Primary-key raw TEXT row missing at index ${g}`);let x=e.rawTextValidationUnavailable?e.identity.columns.map(A=>A.identifier):e.identity.columns.flatMap((A,$)=>{let O=w[t[$]];if(typeof O!="string")return[];let D=e.oversizedCells?.[g]?.[t[$]];if(D&&D.byteLength>e.effectiveInlineCellBytes)return[];let p=R[s[$]];if(!(p instanceof Uint8Array))return[A.identifier];try{return a.decode(p)===O?[]:[A.identifier]}catch{return[A.identifier]}}),T;if(e.rawTextValidationUnavailable&&(o??=new Set,o.add(g)),x.length>0){let A=e.rawTextValidationUnavailable?au(x):su(x,e.textEncoding);r??={},r[g]=A,o??=new Set,o.add(g),T=ht(A,n+g)}else if(S.length>0){let A=iu(S,e.effectiveInlineCellBytes);r??={},r[g]=A,T=ht(A,n+g)}else T=Ke(e.identity.columns,t.map(A=>w[A])),i.push(g);return[T,...y.slice(0,e.visibleColumnCount)]}),u=Zi(e.oversizedCells,e.visibleColumnCount),c=Zi(e.exactIntegerTexts,e.visibleColumnCount),d=ue-St,f=an(l)+ln(u)+cn(c)+ls(r),m="Row is read-only because its encoded WITHOUT ROWID primary-key identity exceeds the page transport budget.",E=y=>{if(r?.[y]!==void 0)return 0;let g=xe(String(y))+de(m);return r?1+g:2+g};for(let y=i.length-1;y>=0&&f>d;y--){let g=i[y],S=l[g][0],w=ht(m,n+g),R=de(w)-de(S)+E(g);R>=0||(l[g][0]=w,r??={},r[g]=m,f+=R)}if(f>d)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:l,...u?{oversizedCells:u}:{},...c?{exactIntegerTexts:c}:{},...r?{readOnlyRowReasons:r}:{},...o?{unrepresentableTextKeyRows:o}:{}}}var rn,be,Hc,ue,Qc,wt,St,Cr,Kc,zc,Xc,Gc,ts,Gi,Yi,Yc,Tr,dn=M(()=>{"use strict";_();J();Ft();Et();rn=1024*1024,be=16*1024*1024,Hc=256,ue=2*be,Qc=64*1024,wt=40,St=512*1024,Cr=45,Kc=2,zc="__sqlite_explorer_cell_source",Xc="__sqlite_explorer_cell_value_",Gc="__sqlite_explorer_cell_metadata",ts="__sqlite_explorer_cell_raw_text_",Gi=64*1024,Yi=400,Yc=4,Tr=2e3});function ps(e){if(e.length>ms)throw new Error("Query text exceeds 65,536 characters.");let t=Ee(e),n="",r=0,o=0;for(let i=0;i{if(a.length{if(!s)return;let l={};for(let[u,c]of Object.entries(s)){let d=Number(u);l[d]={};for(let[f,m]of Object.entries(c))l[d][Number(f)+1]=m}return l},o=r(t.exactIntegerTexts),i;for(let s of[n,o])if(s){i??={};for(let[l,u]of Object.entries(s)){let c=Number(l);i[c]??={},Object.assign(i[c],u)}}let a=r(t.oversizedCells);return{rows:t.rows.map((s,l)=>[e[l],...s]),...a?{oversizedCells:a}:{},...i?{exactIntegerTexts:i}:{}}}function os(e,t){let n,r=0,o,i=s=>{if(s>=48&&s<=57)return s-48;let l=s|32;return l>=97&&l<=102?l-87:-1},a=(s,l,u)=>{let c=typeof s=="string"?s.length/2:NaN;if(typeof s!="string"||!Number.isSafeInteger(c)||!Number.isSafeInteger(t.effectiveInlineCellBytes)||t.effectiveInlineCellBytes<0||c>t.effectiveInlineCellBytes)throw new Error(`Raw TEXT value at row ${l}, key ${u} is not bounded hexadecimal text`);if(c===0)return o??=new Uint8Array(0);let d;c>Gi?d=new Uint8Array(c):((!n||n.byteLength-r{if(s.length{let d=s[t.rawTextColumnStart+c];if(d!==null&&t.rawTextTransport==="hex")return a(d,l,c);if(d!==null&&!(d instanceof Uint8Array))throw new Error(`Raw TEXT value at row ${l}, key ${c} is not a BLOB`);return d})})}function is(e,t,n){if(n.includes("\0"))return!1;try{return e.decode(t)===n}catch{return!1}}function ss(e){if(e.sourceRows.length===0||e.sourceColumnIndices.length===0)return;if(e.rawTextValidationUnavailable)return new Set(e.sourceRows.map((o,i)=>i));if(e.rawTextRows.length!==e.sourceRows.length)throw new Error("Raw TEXT validation row count does not match the source page");let t=e.sourceColumnIndices.map(o=>{let i=e.rawTextColumnIndices.indexOf(o);if(i<0)throw new Error(`Raw TEXT validation column ${o} was not projected`);return i}),n=ge(e.textEncoding),r;return e.sourceRows.forEach((o,i)=>{let a=e.rawTextRows[i];if(!a||a.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT validation row ${i} has the wrong width`);for(let s=0;sArray.from(s)),n;if(e.contained.oversizedCells){n={};for(let[s,l]of Object.entries(e.contained.oversizedCells))n[Number(s)]={...l}}let r;if(e.contained.exactIntegerTexts){r={};for(let[s,l]of Object.entries(e.contained.exactIntegerTexts))r[Number(s)]={...l}}let o=ue-St,i=an(t)+ln(n)+cn(r),a=ge(e.textEncoding);if(e.sourceRows.forEach((s,l)=>{let u=e.rawTextRows[l];if(!u||u.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT containment row ${l} has the wrong width`);e.rawTextColumnIndices.forEach((c,d)=>{let f=s[c];if(typeof f!="string"||n?.[l]?.[c])return;let m=u[d];if(!(m instanceof Uint8Array))throw new Error(`Raw TEXT containment bytes are missing at row ${l}, column ${c}`);if(is(a,m,f))return;let E=t[l][c],y=ls(n,l,c);n??={},n[l]??={},n[l][c]={storageClass:"text",byteLength:m.byteLength};let g=Math.max(0,o-i-y+de(E)),S=g>wt?Math.floor((g-wt)/4)*3:0,w=Math.min(m.byteLength,Kc,S);if(w===0)throw new Error(`Raw TEXT containment cannot retain an authoritative byte prefix for row ${l}, column ${c} within the webview transport limit`);let R=m.slice(0,w);t[l][c]=R,i+=de(R)-de(E)+y,r?.[l]&&(delete r[l][c],Object.keys(r[l]).length===0&&delete r[l])})}),i>o)throw new Error(`Raw TEXT containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:t,...n?{oversizedCells:n}:{},...r&&Object.keys(r).length>0?{exactIntegerTexts:r}:{}}}function ru(e,t,n){if(e==="")return;let r=/^([tb])([1-9]\d*)$/.exec(e);if(!r)throw new Error(`Invalid oversized-cell metadata at row ${t}, column ${n}`);let o=Number(r[2]);if(!Number.isSafeInteger(o))throw new Error(`Oversized-cell byte length is unsafe at row ${t}, column ${n}`);return{storageClass:r[1]==="t"?"text":"blob",byteLength:o}}function sn(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function ou(e){if(typeof e=="string")return sn(e);if(e instanceof Uint8Array)return e.byteLength}function Ji(e){return e==="text"?"":new Uint8Array(0)}function iu(e){return 4*Math.ceil(e/3)}function de(e){return e instanceof Uint8Array?iu(e.byteLength)+wt:typeof e=="string"?sn(e)+2:8}function xe(e){return sn(e)+3}function an(e){let t=2+Math.max(0,e.length-1);for(let n of e){t+=2+Math.max(0,n.length-1);for(let r of n)t+=de(r)}return t}function ln(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=xe(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a]of i)n+=xe(a)+Cr}return n}function ls(e,t,n){if(e?.[t]?.[n])return 0;let r=xe(String(n))+Cr;if(e?.[t])return 1+r;let i=xe(String(t))+2+r;return e?1+i:2+i}function cn(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=xe(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a,s]of i)n+=xe(a)+sn(s)+2}return n}function cs(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t)n+=xe(r)+de(o);return n}function un(e,t,n,r=be){let o=tn(r,be),i,a=0,s=!1,l=[],u=(E,y,g)=>{i??={},i[E]??={},i[E][y]??=g},c=e.map((E,y)=>{if(E.length{let T=ru(R,y,I);T&&u(y,I,T);let A=w[I],$=ou(A);if($===void 0||$===0)return;let O=T??{storageClass:typeof A=="string"?"text":"blob",byteLength:$};if(s||$>o-a){s=!0,u(y,I,O),w[I]=Ji(O.storageClass);return}a+=$,l.push({rowIndex:y,columnIndex:I,metadata:O})}),w}),d;if(n)for(let[E,y]of Object.entries(n))for(let[g,S]of Object.entries(y)){let w=Number(g);w>=t||(d??={},d[Number(E)]??={},d[Number(E)][w]=S)}let f=ue-St,m=an(c)+ln(i)+cn(d);for(let E=l.length-1;E>=0&&m>f;E--){let y=l[E],g=c[y.rowIndex][y.columnIndex],S=Ji(y.metadata.storageClass),w=de(S)-de(g)+ls(i,y.rowIndex,y.columnIndex);w>=0||(u(y.rowIndex,y.columnIndex,y.metadata),c[y.rowIndex][y.columnIndex]=S,m+=w)}if(m>f)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:c,...i?{oversizedCells:i}:{},...d?{exactIntegerTexts:d}:{}}}function Zi(e,t){if(!e)return;let n;for(let[r,o]of Object.entries(e))for(let[i,a]of Object.entries(o)){let s=Number(i);s>=t||(n??={},n[Number(r)]??={},n[Number(r)][s+1]=a)}return n}function es(e,t){if(!e)return;let n;for(let[r,o]of Object.entries(e))for(let[i,a]of Object.entries(o)){let s=Number(i);s!==t&&(n??={},n[Number(r)]??={},n[Number(r)][s]=a)}return n}function us(e){let t=`Row is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity.`,n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o=e.rows.map((u,c)=>{if(u.length===0)throw new Error(`Shadowed rowid result row ${c} has no identity slot`);let d=n+c;if(!Number.isSafeInteger(d))throw new Error("Shadowed rowid result ordinal exceeds the safe integer range");return r??={},r[c]=t,[ht(t,d),...u.slice(1)]}),i=es(e.oversizedCells,0),a=es(e.exactIntegerTexts,0),s=ue-St;if(an(o)+ln(i)+cn(a)+cs(r)>s)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:o,...i?{oversizedCells:i}:{},...a?{exactIntegerTexts:a}:{},...r?{readOnlyRowReasons:r}:{}}}function nn(e){return`"${e.length<=128?e:`${e.slice(0,125)}...`}"`}function ds(e){let t=e.slice(0,8).map(nn);return e.length>t.length?`${t.join(", ")}, and ${e.length-t.length} more`:t.join(", ")}function su(e,t){if(e.length===1){let r=e[0];return`Row is read-only because WITHOUT ROWID primary-key column ${nn(r.identifier)} is ${r.byteLength} bytes and exceeds the ${t}-byte inline limit; its identity was not transported.`}let n=e.slice(0,8).map(r=>`${nn(r.identifier)} (${r.byteLength} bytes)`);return e.length>n.length&&n.push(`and ${e.length-n.length} more`),`Row is read-only because WITHOUT ROWID primary-key columns ${n.join(", ")} exceed the ${t}-byte inline limit; their identity was not transported.`}function fs(e){return e==="utf-8"?"UTF-8":e==="utf-16le"?"UTF-16LE":"UTF-16BE"}function bt(e){if(e.columns.length*2>Tr)throw new Error(`Cannot mint a byte-faithful WITHOUT ROWID identity with ${e.columns.length} primary-key columns within SQLite's result-column limit`);let t=e.columns.map(r=>C(r.identifier)),n=t.map((r,o)=>`CASE WHEN typeof(${r}) = 'text' THEN CAST(${r} AS BLOB) END AS `+C(`${ts}${o}`));return[...t,...n].join(", ")}function Tt(e,t,n,r){let o=e.columns.length;if(t.length!==o*2)throw new Error(`${r}: SQLite returned an invalid primary-key validation row`);let i=t.slice(0,o),a=ge(n);for(let s=0;s{let g=e.sourceColumns.indexOf(y.identifier);if(g<0)throw new Error(`Primary-key column missing from table fetch: ${y.identifier}`);return g}),n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o,i=[],a=ge(e.textEncoding),s=e.rawTextValidationUnavailable?[]:t.map(y=>{let g=e.rawTextColumnIndices.indexOf(y);if(g<0)throw new Error(`Primary-key raw TEXT column ${y} was not projected`);return g}),l=e.rows.map((y,g)=>{let S=e.identity.columns.flatMap((A,$)=>{let O=e.oversizedCells?.[g]?.[t[$]];return O?[{identifier:A.identifier,byteLength:O.byteLength}]:[]}),w=e.identityRows[g];if(!w)throw new Error(`Primary-key identity row missing at index ${g}`);let R=e.rawTextBytes[g];if(!e.rawTextValidationUnavailable&&(!R||R.length!==e.rawTextColumnIndices.length))throw new Error(`Primary-key raw TEXT row missing at index ${g}`);let I=e.rawTextValidationUnavailable?e.identity.columns.map(A=>A.identifier):e.identity.columns.flatMap((A,$)=>{let O=w[t[$]];if(typeof O!="string")return[];let D=e.oversizedCells?.[g]?.[t[$]];if(D&&D.byteLength>e.effectiveInlineCellBytes)return[];let p=R[s[$]];if(!(p instanceof Uint8Array))return[A.identifier];try{return a.decode(p)===O?[]:[A.identifier]}catch{return[A.identifier]}}),T;if(e.rawTextValidationUnavailable&&(o??=new Set,o.add(g)),I.length>0){let A=e.rawTextValidationUnavailable?lu(I):au(I,e.textEncoding);r??={},r[g]=A,o??=new Set,o.add(g),T=ht(A,n+g)}else if(S.length>0){let A=su(S,e.effectiveInlineCellBytes);r??={},r[g]=A,T=ht(A,n+g)}else T=Ke(e.identity.columns,t.map(A=>w[A])),i.push(g);return[T,...y.slice(0,e.visibleColumnCount)]}),u=Zi(e.oversizedCells,e.visibleColumnCount),c=Zi(e.exactIntegerTexts,e.visibleColumnCount),d=ue-St,f=an(l)+ln(u)+cn(c)+cs(r),m="Row is read-only because its encoded WITHOUT ROWID primary-key identity exceeds the page transport budget.",E=y=>{if(r?.[y]!==void 0)return 0;let g=xe(String(y))+de(m);return r?1+g:2+g};for(let y=i.length-1;y>=0&&f>d;y--){let g=i[y],S=l[g][0],w=ht(m,n+g),R=de(w)-de(S)+E(g);R>=0||(l[g][0]=w,r??={},r[g]=m,f+=R)}if(f>d)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:l,...u?{oversizedCells:u}:{},...c?{exactIntegerTexts:c}:{},...r?{readOnlyRowReasons:r}:{},...o?{unrepresentableTextKeyRows:o}:{}}}var rn,be,Qc,ue,Kc,wt,St,Cr,zc,Xc,Gc,Yc,ts,Gi,Yi,Jc,Tr,dn=M(()=>{"use strict";_();Y();Ft();Et();rn=1024*1024,be=16*1024*1024,Qc=256,ue=2*be,Kc=64*1024,wt=40,St=512*1024,Cr=45,zc=2,Xc="__sqlite_explorer_cell_source",Gc="__sqlite_explorer_cell_value_",Yc="__sqlite_explorer_cell_metadata",ts="__sqlite_explorer_cell_raw_text_",Gi=64*1024,Yi=400,Jc=4,Tr=2e3});function gs(e){if(e.length>ps)throw new Error("Query text exceeds 65,536 characters.");let t=Ee(e),n="",r=0,o=0;for(let i=0;ia+1?Number(t.slice(a+1,i)):r+1;if(!Number.isInteger(l)||l<1||l>100)throw new Error("Use at most 100 positional parameters.");r=Math.max(r,l),n+="NULL";continue}else{if(s==="("&&o++,s===")"&&--o<0)throw new Error("Unbalanced query parentheses.");if(s===";")throw new Error("Exactly one read query is required.");if(s===":"||s==="@"||s==="$")throw new Error("Use positional ? or ?NNN parameters. Named parameters are not supported.");i++}n+=t.slice(a,i)}if(o!==0)throw new Error("Unbalanced query parentheses.");return{sourceSql:t,sql:`SELECT * FROM ( ${t} ) LIMIT ${Ie+1}`,metadataSql:`SELECT * FROM ( ${n} -) LIMIT 0`,parameterCount:r}}function gs(e,t){return{sql:`SELECT sqlite_explorer_query_plan(${Array(t.length+1).fill("?").join(", ")}) AS plan`,params:[e,...t]}}function ys(e){if(typeof e!="string"||e.length>Rr)throw new Error("SQLite returned an invalid query plan.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>Ie+1||t.some(n=>!Array.isArray(n)||n.length!==4||n.slice(0,3).some(r=>!Number.isSafeInteger(r))||typeof n[3]!="string"))throw new Error("SQLite returned an invalid query plan.");return{headers:["id","parent","notused","detail"],rows:t}}function hs(e){if(e.length>ms)throw new Error("Parameters exceed 65,536 characters.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>100)throw new Error("Enter a JSON array of at most 100 values.");for(let n of t){if(n!==null&&typeof n!="string"&&typeof n!="number")throw new Error("Parameters must be null, string, or number.");if(typeof n=="number"&&(!Number.isFinite(n)||Number.isInteger(n)&&!Number.isSafeInteger(n)))throw new Error("Numbers must be finite and integer values must be safe integers. Supply an exact integer as a quoted string and use CAST(? AS INTEGER).")}return t}function Es(e,t){if(t<1||t>fn)throw new Error("Queries support 1 to 128 result columns.");let n=on(e,t,{limit:Ie+1,maxInlineCellBytes:64*1024,maxPageResponseBytes:Rr});return mt(n.sql,n.primaryTransportColumnCount)}function ws(e,t,n){let r=Qe(t,n);return{headers:e,...un(r.rows,e.length,r.exactIntegerTexts,Rr)}}var Ie,Rr,ms,fn,Ss=M(()=>{"use strict";_();ut();dn();pt();yr();Ie=1e3,Rr=4*1024*1024,ms=64*1024,fn=128});function lu(e){return e.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ts(e,t){let n=lu(t);return new RegExp(`(^|[^A-Za-z0-9_$])${n}($|[^A-Za-z0-9_$])`,"i").test(e)}async function Cs(e,t,n,r){let o=`main.${C(e)}`;for(let i of n??[])await r(`DROP INDEX IF EXISTS main.${C(i)}`);for(let i of t)await r(`ALTER TABLE ${o} DROP COLUMN ${C(i)}`)}var bs,Tm,Cm,Rs=M(()=>{"use strict";_();Et();fr();J();ut();bs=` +) LIMIT 0`,parameterCount:r}}function ys(e,t){return{sql:`SELECT sqlite_explorer_query_plan(${Array(t.length+1).fill("?").join(", ")}) AS plan`,params:[e,...t]}}function hs(e){if(typeof e!="string"||e.length>Rr)throw new Error("SQLite returned an invalid query plan.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>Ie+1||t.some(n=>!Array.isArray(n)||n.length!==4||n.slice(0,3).some(r=>!Number.isSafeInteger(r))||typeof n[3]!="string"))throw new Error("SQLite returned an invalid query plan.");return{headers:["id","parent","notused","detail"],rows:t}}function Es(e){if(e.length>ps)throw new Error("Parameters exceed 65,536 characters.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>100)throw new Error("Enter a JSON array of at most 100 values.");for(let n of t){if(n!==null&&typeof n!="string"&&typeof n!="number")throw new Error("Parameters must be null, string, or number.");if(typeof n=="number"&&(!Number.isFinite(n)||Number.isInteger(n)&&!Number.isSafeInteger(n)))throw new Error("Numbers must be finite and integer values must be safe integers. Supply an exact integer as a quoted string and use CAST(? AS INTEGER).")}return t}function ws(e,t){if(t<1||t>fn)throw new Error("Queries support 1 to 128 result columns.");let n=on(e,t,{limit:Ie+1,maxInlineCellBytes:64*1024,maxPageResponseBytes:Rr});return mt(n.sql,n.primaryTransportColumnCount)}function Ss(e,t,n){let r=Qe(t,n);return{headers:e,...un(r.rows,e.length,r.exactIntegerTexts,Rr)}}var Ie,Rr,ps,fn,bs=M(()=>{"use strict";_();ut();dn();pt();yr();Ie=1e3,Rr=4*1024*1024,ps=64*1024,fn=128});function cu(e){return e.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Cs(e,t){let n=cu(t);return new RegExp(`(^|[^A-Za-z0-9_$])${n}($|[^A-Za-z0-9_$])`,"i").test(e)}async function Rs(e,t,n,r){let o=`main.${C(e)}`;for(let i of n??[])await r(`DROP INDEX IF EXISTS main.${C(i)}`);for(let i of t)await r(`ALTER TABLE ${o} DROP COLUMN ${C(i)}`)}var Ts,Cm,Rm,xs=M(()=>{"use strict";_();Et();fr();Y();ut();Ts=` SELECT type, name, sql FROM main.sqlite_schema WHERE type IN ('view', 'trigger') AND sql IS NOT NULL -ORDER BY type, name`;Tm=2*1024*1024,Cm=64*1024});function Ae(e){let t=e==null?"":String(e);return t.trim()?t:void 0}var xr=M(()=>{"use strict";_()});function gn(e,t,n="set"){if(n==="json_patch")return{value:e,operation:"json_patch"};if(typeof e!="string"||typeof t!="string"||!(e.startsWith("{")||e.startsWith("["))||!(t.startsWith("{")||t.startsWith("[")))return{value:e,operation:"set"};try{let r=JSON.parse(t),o=JSON.parse(e);if(!r||typeof r!="object"||Array.isArray(r)||!o||typeof o!="object"||Array.isArray(o))return{value:e,operation:"set"};let i=_s(r,o);return i===void 0||As(i)?{value:e,operation:"set"}:{value:JSON.stringify(i),operation:"json_patch"}}catch{return{value:e,operation:"set"}}}function As(e){return e===null?!0:ee(e)?Object.values(e).some(As):!1}function _s(e,t,n=0){if(n>1e3)throw new Error("JSON merge patch depth limit exceeded");if(e===t)return;if(!ee(e)||!ee(t)||Array.isArray(e)||Array.isArray(t))return t;let r=Object.create(null),o=!1;for(let i of Object.keys(t)){let a=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0,s=t[i];if(a===void 0)r[i]=s,o=!0;else if(a!==s){let l=_s(a,s,n+1);l!==void 0&&(r[i]=l,o=!0)}}for(let i of Object.keys(e))Object.prototype.hasOwnProperty.call(t,i)||(r[i]=null,o=!0);return o?r:void 0}function Ns(e,t,n=0){if(n>1e3)throw new Error("JSON apply merge patch depth limit exceeded");if(t===null)return null;if(typeof t!="object"||Array.isArray(t))return t;let r;typeof e!="object"||e===null||Array.isArray(e)?r=Object.create(null):r=Object.assign(Object.create(null),e);let o=t;for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=o[i];a===null?delete r[i]:r[i]=Ns(r[i],a,n+1)}return r}function mn(e){if(typeof e=="string")try{let t=JSON.parse(e);return ee(t)?t:void 0}catch{return}}function Os(e,t,n,r,o){let i=o==="undo"?r:n,a=o==="undo"?n:r,s=()=>Is(e,i)?{kind:"write",value:a}:{kind:"conflict"};if(pn(e)||pn(t)||pn(n)||pn(r))return s();let l=mn(e),u=mn(t),c=mn(n),d=mn(r);if(!l||!u||!c||!d)return s();if(!Ls(l,o==="undo"?d:c,u,c,0))return{kind:"conflict"};if(Is(e,i))return{kind:"write",value:a};let m=o==="undo"?Ar(l,u,c,0):Ns(l,u,0);return{kind:"write",value:JSON.stringify(m)}}function Ls(e,t,n,r,o){if(o>1e3)throw new Error("JSON history replay depth limit exceeded");for(let i of Object.keys(n)){let a=n[i],s=Object.prototype.hasOwnProperty.call(e,i),l=Object.prototype.hasOwnProperty.call(t,i),u=Object.prototype.hasOwnProperty.call(r,i),c=s?e[i]:void 0,d=l?t[i]:void 0,f=u?r[i]:void 0;if(ee(a)){if(!u||!ee(f)){if(!xs(s,c,l,d,o+1))return!1;continue}if(!s||!ee(c)||!l||!ee(d)||!Ls(c,d,a,f,o+1))return!1;continue}if(!xs(s,c,l,d,o+1))return!1}return!0}function xs(e,t,n,r,o){return e===n&&(!e||Ir(t,r,o))}function Ir(e,t,n){if(n>1e3)throw new Error("JSON history replay depth limit exceeded");if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((i,a)=>Ir(i,t[a],n+1));if(!ee(e)||!ee(t))return!1;let r=Object.keys(e),o=Object.keys(t);return r.length!==o.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&Ir(e[i],t[i],n+1))}function Is(e,t){return e instanceof Uint8Array||t instanceof Uint8Array?!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:e.length===t.length&&e.every((n,r)=>n===t[r]):Object.is(e,t)}function Ar(e,t,n,r){if(r>1e3)throw new Error("JSON undo restore depth limit exceeded");let o=Object.assign(Object.create(null),e);for(let i of Object.keys(t)){let a=t[i],s=Object.prototype.hasOwnProperty.call(n,i),l=s?n[i]:void 0;if(ee(a))if(s&&ee(l))if(Object.prototype.hasOwnProperty.call(o,i)&&ee(o[i])){let u=o[i];o[i]=Ar(u,a,l,r+1)}else o[i]=l;else if(s)o[i]=l;else{let u=Object.prototype.hasOwnProperty.call(o,i)&&ee(o[i])?o[i]:Object.create(null),c=Ar(u,a,Object.create(null),r+1);Object.keys(c).length===0?delete o[i]:o[i]=c}else s?o[i]=l:delete o[i]}return o}function pn(e){if(typeof e!="string")return!1;let n=e.replace(/"(?:\\.|[^"\\])*"/g,'""').match(/-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g);return n?n.some(r=>{let o=Number(r);return!Number.isFinite(o)||JSON.stringify(o)!==r}):!1}function ee(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var $s=M(()=>{"use strict";_()});function se(e){let t=C(e);return`typeof(${t}), CASE WHEN typeof(${t}) = 'text' THEN CAST(${t} AS BLOB) ELSE ${t} END`}function fu(e,t,n){if(!t)throw new Error(`SQLite text encoding is required for ${n}`);try{return{value:ge(t).decode(e)}}catch{return{value:"",rawTextBytes:e}}}function K(e,t,n,r={}){if(typeof e!="string"||!cu.has(e))throw new Error(`SQLite returned an invalid storage class for ${n}`);let o=e;if(o!=="text"&&r.rawTextBytes!==void 0)throw new Error(`SQLite returned raw TEXT bytes for non-TEXT ${n}`);if(o==="text"){if(t instanceof Uint8Array)return{storageClass:o,...fu(t,r.textEncoding,n)};if(typeof t!="string")throw new Error(`SQLite returned an invalid text value for ${n}`);if(r.rawTextBytes!==void 0&&!(r.rawTextBytes instanceof Uint8Array))throw new Error(`SQLite returned invalid raw TEXT bytes for ${n}`);return{storageClass:o,value:t,...r.rawTextBytes instanceof Uint8Array?{rawTextBytes:r.rawTextBytes}:{}}}if(!(o==="null"?t===null:o==="integer"?typeof t=="bigint"||typeof t=="number"&&Number.isInteger(t):o==="real"?typeof t=="number":t instanceof Uint8Array))throw new Error(`SQLite returned an invalid ${o} value for ${n}`);return{storageClass:o,value:t}}function Rt(e){if(!e||typeof e!="object")throw new Ct;K(e.storageClass,e.value,"cell history",{rawTextBytes:e.rawTextBytes})}function _r(e,t){if(e.storageClass!==t.storageClass)return!1;if(e.storageClass==="text"){let o=e.rawTextBytes,i=t.rawTextBytes;if(o||i)return!o||!i?!1:o.length===i.length&&o.every((a,s)=>a===i[s])}let n=e.value,r=t.value;return e.storageClass==="integer"&&typeof n!=typeof r?typeof n=="number"&&Number.isSafeInteger(n)&&typeof r=="bigint"?BigInt(n)===r:typeof r=="number"&&Number.isSafeInteger(r)&&typeof n=="bigint"?n===BigInt(r):!1:n instanceof Uint8Array||r instanceof Uint8Array?!(n instanceof Uint8Array)||!(r instanceof Uint8Array)?!1:n.length===r.length&&n.every((o,i)=>o===r[i]):Object.is(n,r)}function yn(e,t=()=>"?"){switch(Rt(e),e.storageClass){case"null":return{sql:"NULL",params:[]};case"integer":return{sql:t(e.value),params:[e.value]};case"real":return{sql:"CAST(? AS REAL)",params:[e.value]};case"text":return{sql:e.rawTextBytes?"CAST(substr(?, 1) AS TEXT)":"CAST(? AS TEXT)",params:[e.rawTextBytes??e.value]};case"blob":return{sql:"?",params:[e.value]}}}function hn(e,t,n=()=>"?"){Rt(t);let r=C(e);switch(t.storageClass){case"null":return{sql:`typeof(${r}) = 'null'`,params:[]};case"integer":{let o=n(t.value);return{sql:`typeof(${r}) = 'integer' AND ${r} IS ${o}`,params:[t.value]}}case"real":return{sql:`typeof(${r}) = 'real' AND ${r} IS CAST(? AS REAL)`,params:[t.value]};case"text":return{sql:`typeof(${r}) = 'text' AND CAST(${r} AS BLOB) = CAST(? AS BLOB)`,params:[t.rawTextBytes??t.value]};case"blob":return{sql:`typeof(${r}) = 'blob' AND ${r} IS ?`,params:[t.value]}}}var cu,uu,du,fe,Ct,Nr=M(()=>{"use strict";_();J();Ft();cu=new Set(["null","integer","real","text","blob"]),uu="Cell changed outside SQLite Explorer history; undo/redo was not applied.",du="This edit predates guarded cell history and cannot be replayed safely. Save or reload the database.",fe=class extends Error{code="SQLITE_EXPLORER_CELL_HISTORY_CONFLICT";constructor(t,n){let r=n.length===1?`${t}.${n[0]}`:`${n.length} cells in ${t}`;super(`${r}: ${uu}`),this.name="CellHistoryConflictError"}},Ct=class extends Error{code="SQLITE_EXPLORER_LEGACY_CELL_HISTORY";constructor(){super(du),this.name="LegacyCellHistoryError"}}});function xt(e){if(!Array.isArray(e.storageClasses))throw new Z;let t=new Set;return e.storageClasses.map(n=>{let r=typeof n?.column=="string"?Yt(n.column):void 0;if(!n||typeof n.column!="string"||r===void 0||t.has(r)||!Object.prototype.hasOwnProperty.call(e.row,n.column))throw new Z;t.add(r);let o=e.row[n.column],i=n.storageClass==="text"&&o instanceof Uint8Array?o:void 0;return{column:n.column,state:K(n.storageClass,i?"":o,`row history column ${n.column}`,{rawTextBytes:i})}})}function Or(e,t=()=>"?"){let n=xt(e).map(({column:r,state:o})=>hn(r,o,t));return{sql:n.length>0?n.map(r=>`(${r.sql})`).join(" AND "):"1",params:n.flatMap(r=>r.params)}}function vs(e,t=()=>"?"){return xt(e).map(({column:n,state:r})=>({column:n,write:yn(r,t)}))}var mu,pu,_e,Z,ks=M(()=>{"use strict";_();Nr();pt();mu="Row changed outside SQLite Explorer history; undo/redo was not applied.",pu="This row edit predates guarded row history and cannot be replayed safely. Save or reload the database.",_e=class extends Error{code="SQLITE_EXPLORER_ROW_HISTORY_CONFLICT";constructor(t){super(`${t}: ${mu}`),this.name="RowHistoryConflictError"}},Z=class extends Error{code="SQLITE_EXPLORER_LEGACY_ROW_HISTORY";constructor(){super(pu),this.name="LegacyRowHistoryError"}}});function It(e){let t=new Set,n=[e],r=0;for(;n.length>0;){let o=n.pop();if(o!=null){if(typeof o=="boolean")r+=4;else if(typeof o=="number"||typeof o=="bigint")r+=8;else if(typeof o=="string")r+=o.length*2;else if(o instanceof Uint8Array)r+=o.byteLength;else if(typeof o=="object"){if(t.has(o))continue;if(t.add(o),r+=8,Array.isArray(o))for(let i of o)n.push(i);else for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r+=i.length*2,n.push(o[i]))}}}return r}var En=M(()=>{"use strict";_();Pt()});function Ps(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error(`SQLite returned an unsafe ${t} during delete undo preflight`);return Number(n)}function Ds(e,t){return[...e]}function Bs(e,t,n){return{sql:`SELECT COUNT(*), COALESCE(SUM(${t.map(o=>{let i=C(o);return`CASE typeof(${i}) WHEN 'text' THEN 2 * octet_length(${i}) WHEN 'blob' THEN octet_length(${i}) WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 0 END`}).join(" + ")||"0"}), 0) FROM ${L(e)} WHERE ${n.sql}`,params:n.params}}function Ms(e){if(!e||e.length<2)throw new Error("SQLite omitted delete undo preflight metadata");return{rowCount:Ps(e[0],"row count"),valueBytes:Ps(e[1],"value byte count")}}function Us(e){if(!Number.isSafeInteger(e.maxSnapshotBytes)||e.maxSnapshotBytes<0)throw new Error("Delete undo snapshot budget must be a non-negative safe integer");if(e.rowCount!==e.rowIds.length)throw new Error(`Cannot delete from ${e.table}: one or more row identities no longer exist`);let n=[...new Set(e.insertableColumns)].reduce((a,s)=>a+s.length*2,0),r=e.rowIds.reduce((a,s)=>a+It(s),0),o=e.rowCount*e.insertableColumns.reduce((a,s)=>a+s.length*2+yu,0),i=e.valueBytes+r+e.rowCount*(gu+n)+o;if(!Number.isSafeInteger(i)||i>e.maxSnapshotBytes){let a=e.operation??"Delete";throw new Error(`${a} undo snapshot exceeds the ${e.maxSnapshotBytes}-byte memory budget; ${a.toLowerCase()} fewer rows or increase sqliteExplorer.maxUndoMemory.`)}}var gu,yu,qs=M(()=>{"use strict";_();En();J();gu=32,yu=48});function vr(e){return e.orderBy?.toLowerCase()==="rowid"&&e.columns?.[0]?.toLowerCase()==="rowid"&&!e.columns.slice(1).some(t=>t.toLowerCase()==="rowid")}function kr(e,t){let n=(t.filters??[]).flatMap(l=>{let u=Ae(l.value);return u===void 0?[]:[[l.column,u]]}),r=Ae(t.globalFilter)??null,o=r===null?null:t.globalFilterColumns??t.columns??null,i=typeof t.orderBy=="string"&&t.orderBy!==""?t.orderBy:null,a=i!==null&&t.orderDir==="DESC"?"DESC":"ASC",s=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)?t.limit:null;return JSON.stringify([Sn,e,i,a,s,n,r,o])}function Pr(e,t){if(!t||e.orderByColumns?.length)return;let n=t.kind==="rowid"?["rowid"]:t.columns.map(i=>i.identifier);if(n.length===0)return;let r=typeof e.orderBy=="string"&&e.orderBy!==""?e.orderBy:void 0;if(r===void 0)return{keyColumns:n,nullableSortKey:!1,direction:"ASC"};let o=e.orderDir==="DESC"?"DESC":"ASC";return vr(e)?{keyColumns:n,nullableSortKey:!1,direction:o}:n.includes(r)?{keyColumns:[r,...n.filter(i=>i!==r)],nullableSortKey:!1,direction:o}:{keyColumns:[r,...n],nullableSortKey:!0,direction:o}}function Vs(e,t){if(!(!e||t))return{orderByColumns:e.keyColumns,orderDir:e.direction}}function Eu(e){return e===null?["null"]:Zt(e)}function wu(e){return Array.isArray(e)&&e.length===1&&e[0]==="null"?{value:null,storageClass:"null"}:{value:Qi(e),storageClass:e[0]}}function Su(e,t){if(t.length===0)throw new Error("Keyset anchor requires at least one key value");let n={v:Sn,t:e,k:t.map(Eu)};return wn+encodeURIComponent(JSON.stringify(n))}function bu(e){if(e.length>$r)throw new Error(`Keyset anchor exceeds the ${$r}-byte limit`)}function Tu(e){if(typeof e!="string"||!e.startsWith(wn))throw new Error("Invalid keyset anchor");bu(e);let t;try{t=JSON.parse(decodeURIComponent(e.slice(wn.length)))}catch{throw new Error("Invalid keyset anchor encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Sn||typeof t.t!="string"||!Array.isArray(t.k))throw new Error("Invalid keyset anchor payload");let n=t.k;if(n.length===0)throw new Error("Keyset anchor has no key values");let r,o;try{let a=n.map(wu);r=a.map(s=>s.value),o=a.map(s=>s.storageClass)}catch(a){throw new Error(`Invalid keyset anchor value: ${a instanceof Error?a.message:String(a)}`)}if(wn+encodeURIComponent(JSON.stringify({v:Sn,t:t.t,k:n}))!==e)throw new Error("Keyset anchor is not canonical");return{tag:t.t,values:r,valueClasses:o}}function Fs(e,t,n){let r=t.keyset;if(!r||typeof r!="object"||Array.isArray(r)||!hu.includes(r.mode))return;let o=Pr(t,n);if(!o)return;let i=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)&&t.limit>0?t.limit:void 0;if(i===void 0)return;if(r.mode==="first")return{...o,mode:"first",limit:i};if(r.mode==="last"){let l=r.lastPageRowCount??i;return typeof l!="number"||!Number.isSafeInteger(l)||l<1||l>i?void 0:{...o,mode:"last",limit:l}}if(r.anchor===void 0)return;let a=Tu(r.anchor);if(a.tag!==kr(e,t)||a.values.length!==o.keyColumns.length)return;let s=o.nullableSortKey?1:0;if(a.values.some((l,u)=>l===null&&u>=s))throw new Error("Keyset anchor has NULL in an identity slot");return{...o,mode:r.mode,values:a.values,valueClasses:a.valueClasses,limit:i}}function Lr(e,t,n){return e.length===1?`${e[0]} ${t} ${n[0]}`:`(${e.join(", ")}) ${t} (${n.join(", ")})`}function Cu(e){let t=e.values,r=e.mode==="before"?e.direction==="ASC"?"DESC":"ASC":e.direction,o=(r==="ASC"?">":"<")+(e.mode==="atOrAfter"?"=":""),i=e.keyColumns.map(C),a=e.keyColumns.map((f,m)=>e.valueClasses?.[m]==="integer"?"CAST(? AS INTEGER)":"?");if(!e.nullableSortKey)return{sql:Lr(i,o,a),params:t};let s=i[0],l=i.slice(1),u=t[0],c=t.slice(1);if(u===null){let f=Lr(l,o,a.slice(1));return r==="ASC"?{sql:`((${s} IS NULL AND ${f}) OR ${s} IS NOT NULL)`,params:c}:{sql:`(${s} IS NULL AND ${f})`,params:c}}let d=Lr(i,o,a);return r==="ASC"?{sql:d,params:t}:{sql:`(${d} OR ${s} IS NULL)`,params:t}}function Ws(e){let{plan:t}=e,n=t.mode==="before"||t.mode==="last",r=n?t.direction==="ASC"?"DESC":"ASC":t.direction,o=[...e.whereClauses],i=[...e.filterParams];if(t.mode!=="first"&&t.mode!=="last"){let u=Cu(t);o.push(u.sql),i.push(...u.params)}let a=t.keyColumns.map(C),s=u=>a.map(c=>`${c} ${u}`).join(", "),l=`SELECT ${e.selectListSql} FROM ${e.escapedTable}`;return o.length>0&&(l+=` WHERE ${o.join(" AND ")}`),l+=` ORDER BY ${s(r)} LIMIT ${t.limit}`,n&&(l=`SELECT * FROM (${l}) ORDER BY ${s(t.direction)}`),{sql:l,params:i}}function js(e){if(e.rows.length===0)return;let t=e.key.keyColumns.map(i=>e.projectionColumns.indexOf(i));if(t.some(i=>i<0))return;let n=i=>{if(e.excludedRowIndices?.has(i))return;let a=e.rows[i],s=[];for(let u=0;u{"use strict";_();J();xr();Et();wn="ksa:",Sn=1,$r=128*1024,hu=["first","after","atOrAfter","before","last"]});function Ru(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<1)throw new Error("Table page limit must be a positive safe integer");return Math.min(e,1e5)}function xu(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<0)throw new Error("Table page offset must be a non-negative safe integer");return e}function Qs(e,t=5e3){return{...e,limit:Ru(e.limit??t),offset:xu(e.offset??0)}}var Ks=M(()=>{"use strict";_()});function Xs(e){if(!e||typeof e!="object")throw new Error("Cell read target is required");if(typeof e.table!="string"||e.table.length===0)throw new Error("Cell read table must be a non-empty string");if(typeof e.column!="string"||e.column.length===0)throw new Error("Cell read column must be a non-empty string")}function Gs(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error("Cell read byte offset must be a non-negative safe integer");if(!Number.isSafeInteger(t)||t<1||t>zs)throw new Error(`Cell read chunk size must be an integer from 1 through ${zs}`)}function ke(e){let t=String(e).toLowerCase().replace(/[_\s-]/g,"");if(t==="utf8")return"utf-8";if(t==="utf16le")return"utf-16le";if(t==="utf16be")return"utf-16be";throw new Error(`Unsupported SQLite text encoding: ${String(e)}`)}function Ys(e,t,n){if(e.length!==1)throw new Error(e.length===0?`Cell ${n.table}.${n.column} no longer exists`:`Cell ${n.table}.${n.column} matched more than one row`);let r=e[0][0];if(typeof r!="string"||!Iu.has(r))throw new Error(`SQLite returned an invalid storage class for ${n.table}.${n.column}`);let o=e[0][1],i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i)||Number(i)<0)throw new Error(`SQLite returned an unsafe byte length for ${n.table}.${n.column}`);return{storageClass:r,byteLength:Number(i),...r==="text"?{textEncoding:t}:{}}}function Mr(e,t){return Number.isFinite(e)&&Number(e)>=1?Math.floor(Number(e)):t}var zs,Dr,Br,Iu,Js=M(()=>{"use strict";_();J();zs=1024*1024,Dr=3e4,Br=5*6e4,Iu=new Set(["null","integer","real","text","blob"])});var Xe,bn,Tn=M(()=>{"use strict";_();dn();Pt();Xe=be,bn=ue});function Au(e){let t=0;for(let n=0;n=55296&&r<=56319){let o=e.charCodeAt(n+1);o>=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function Ye(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);let n=typeof e=="string"?"text":e instanceof Uint8Array?"blob":void 0;if(!n)return;let r=typeof e=="string"?Au(e):e instanceof Uint8Array?e.byteLength:0;if(r>t)throw new Vr(n,r,t)}function ta(e){let t=e??ea;if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);return t}function Je(e,t){let n=ta(t);for(let r of e)Ye(r,n);return n}function na(e,t){let n=ta(t);if(!e||e.storageClass!=="text"&&e.storageClass!=="blob"||!Number.isSafeInteger(e.byteLength)||e.byteLength<=n)throw new Error("Guarded oversized-cell replacement requires exact TEXT/BLOB metadata above the edit limit");return n}function _u(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="CellEditPolicyError"||t.code!==Ur||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"CellEditPolicyError",code:Ur,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function Nu(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="OversizedCellReplacementRequiredError"||t.code!==qr||typeof t.table!="string"||typeof t.column!="string"||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"OversizedCellReplacementRequiredError",code:qr,table:t.table,column:t.column,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function ra(e){return _u(e)??Nu(e)}var Ur,qr,Zs,ea,Vr,Ge,Fr=M(()=>{"use strict";_();Tn();Ur="SQLITE_EXPLORER_CELL_EDIT_VALUE_TOO_LARGE",qr="SQLITE_EXPLORER_OVERSIZED_CELL_REPLACEMENT_REQUIRED",Zs="Oversized cell metadata changed before the confirmed replacement was applied",ea=Xe,Vr=class extends Error{constructor(n,r,o,i=`New ${n.toUpperCase()} cell value is ${r} bytes and exceeds the ${o}-byte edit limit.`){super(i);this.storageClass=n;this.actualBytes=r;this.limitBytes=o}storageClass;actualBytes;limitBytes;name="CellEditPolicyError";code=Ur},Ge=class extends Error{constructor(n,r,o,i,a,s=`Existing ${o.toUpperCase()} cell ${n}.${r} is ${i} bytes. Use the explicitly confirmed oversized-cell replacement path.`){super(s);this.table=n;this.column=r;this.storageClass=o;this.actualBytes=i;this.limitBytes=a}table;column;storageClass;actualBytes;limitBytes;name="OversizedCellReplacementRequiredError";code=qr}});var up,At,oa=M(()=>{"use strict";_();Tn();up=1024*1024*1024,At=2145386496});function Wr(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:Ou}function jr(e){return e.storage==="paged"&&!e.filtered&&e.authorityConfirmedRowIdTable&&e.pagedFileSizeBytes>e.exactCountMaxFileBytes}function aa(e){let t=L(e);return`SELECT (SELECT CAST(min(rowid) AS TEXT) FROM ${t}), (SELECT CAST(max(rowid) AS TEXT) FROM ${t})`}function la(e){return`SELECT COUNT(*) FROM (SELECT 1 FROM ${L(e)} LIMIT ?)`}function ca(e,t){if(!(typeof e!="number"||!Number.isSafeInteger(e)||e<0||e>Ze+1))return e<=Ze?{count:e,isExact:!0}:{count:Hr(t,e),isExact:!1}}function Hr(e,t=Ze+1){return(!Number.isSafeInteger(t)||t<0)&&(t=Ze+1),!Number.isSafeInteger(e)||eBigInt(Number.MAX_SAFE_INTEGER)))return Number(i)}var Ou,Ze,sa,da=M(()=>{"use strict";_();J();Ou=64*1024*1024,Ze=1e4,sa=`SELECT 1 FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? AND "type" IN ('table', 'shadow') AND "wr" = 1 LIMIT 1`});var fa=M(()=>{"use strict";_()});var ma=M(()=>{"use strict";_()});var Rp,Qr,Kr,zr,pa=M(()=>{"use strict";_();ma();En();Fr();Rp=64*1024*1024,Qr=1e5,Kr=256,zr=2e6});var sf={};function ku(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function Pu(e){let t=String(e);return t.toLowerCase()==="null"?"NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function V(e){return Ea++,C(`${e}_${Ea}`)}function nt(e){let t=`/*sqlite_explorer_boundary_${crypto.randomUUID().replace(/-/g,"")}*/`,n=h.prepare(`${e} -${t}`);if(!n.getSQL().trimEnd().endsWith(t))throw n.free(),new Error("Exactly one SQL statement is required");return n}function I(e){nt(e).free();let n=h.prepare(e);try{n.run()}finally{n.free()}}function P(e){return e?.map(t=>{if(Na(t))return Du(t);if(typeof t!="bigint")return t;let n=Number(t);return Number.isSafeInteger(n)?n:t.toString()})}function Na(e){return typeof e=="string"&&e.includes("\0")}function ne(e){return typeof e=="bigint"&&!Number.isSafeInteger(Number(e))?"CAST(? AS INTEGER)":Na(e)?"CAST(? AS TEXT)":"?"}function Du(e){let t=ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]);if(t==="utf-8")return new TextEncoder().encode(e);let n=t==="utf-16le",r=new Uint8Array(e.length*2);for(let o=0;o>>8,r[o*2+1]=n?i>>>8:i&255}return r}function ot(e){nt(e).free()}function rt(e,t){if(t!==void 0&&!(typeof SharedArrayBuffer=="function"&&t instanceof Int32Array&&t.length>0&&t.buffer instanceof SharedArrayBuffer))throw new Error("Invalid query cancellation flag");let n=()=>t!==void 0&&Atomics.load(t,0)!==0,r=()=>{let a=new Error("Query execution cancelled");throw a.name="AbortError",a};n()&&r();let o=Date.now()+Yr,i;h.progress_handler(Lu,()=>n()?(i="cancelled",!0):Date.now(){let n=nt(e),r=n.getColumnNames();n.free();let o=mt(e,r.length),i=nt(o.sql),a=[];try{for(;i.step();)a.push(i.get(null,{useBigInt:!0}));let{rows:s,exactIntegerTexts:l}=Qe(a,o.valueColumnCount);return{headers:r,rows:s,exactIntegerTexts:l}}finally{i.free()}},t)}function Oa(e,t){if(t!=null)return t;let n=e??[];return n[0]==="rowid"?n.slice(1):n}function W(e,t){try{I(`ROLLBACK TO ${e}`),I(`RELEASE ${e}`)}catch(n){console.warn(`Failed to rollback savepoint (${t}):`,Te(n))}}function Bu(e){for(Pe.add(e);Pe.size>64;)Pe.delete(Pe.values().next().value)}function La(e){I(`ROLLBACK TO ${e}`),I(`RELEASE ${e}`)}function On(e){let t=tt;if(!t||e!==void 0&&t.sessionId!==e)return!1;tt=null,Bu(t.sessionId),t.expiryTimer!==void 0&&clearTimeout(t.expiryTimer);try{I(`RELEASE ${t.savepointName}`)}catch(n){try{La(t.savepointName)}catch(r){let o=[n,r];try{h?.close()}catch(i){o.push(i)}finally{h=null}throw new AggregateError(o,"Cell read snapshot cleanup failed; the owning web database was closed")}}return!0}function $a(e){e.expiryTimer!==void 0&&clearTimeout(e.expiryTimer),e.expiresAt=Math.min(e.absoluteExpiresAt,e.lastAccessAt+lo),e.expiryTimer=setTimeout(()=>{try{On(e.sessionId)}catch(t){console.error("[Worker] Failed to expire cell read session:",Te(t))}},Math.max(1,e.expiresAt-Date.now()))}async function va(e){Xs(e);let t=await le(e.table),n=Q(e.rowId,t);return{table:e.table,column:e.column,predicateSql:n.sql,predicateParams:n.params}}function Mu(e){let t=C(e.column);return{sql:`SELECT typeof(${t}), CASE WHEN ${t} IS NULL THEN 0 ELSE length(CAST(${t} AS BLOB)) END FROM ${L(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function Uu(e){return{sql:`SELECT substr(CAST(${C(e.column)} AS BLOB), ? + 1, ?) FROM ${L(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function Be(){return ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0])}function ka(e,t){let n=Mu(t),r=h.exec(n.sql,P(n.params),{useBigInt:!0});return Ys(r[0]?.values??[],Be(),e)}async function An(e){if(!h)throw new Error("No database initialized");let t=await va(e);return ka(e,t)}async function qu(e){if(!h)throw new Error("No database initialized");if(tt)throw new Error("At most one web cell read session may be open");let t=await va(e),n=V("sp_cell_read");I(`SAVEPOINT ${n}`);try{let r=ka(e,t),o=Date.now(),i={sessionId:crypto.randomUUID(),target:e,sqlTarget:t,metadata:r,savepointName:n,lastAccessAt:o,absoluteExpiresAt:o+_a,expiresAt:o+lo,expiryTimer:void 0};return tt=i,$a(i),{sessionId:i.sessionId,metadata:r,expiresAt:i.expiresAt}}catch(r){try{La(n)}catch(o){let i=[r,o];try{h?.close()}catch(a){i.push(a)}finally{h=null}throw new AggregateError(i,"Cell read session open failed; the owning web database was closed")}throw r}}async function Vu(e,t,n){Gs(t,n);let r=tt;if(!r||r.sessionId!==e)throw new Error(Pe.has(e)?`Cell read session ${e} is closed or expired`:`Unknown cell read session: ${String(e)}`);if(Date.now()>=r.expiresAt)throw On(e),new Error(`Cell read session ${e} is closed or expired`);let o=Uu(r.sqlTarget),a=h.exec(o.sql,P([t,n,...o.params]))[0]?.values??[];if(a.length!==1)throw new Error(a.length===0?`Cell ${r.target.table}.${r.target.column} no longer exists in its snapshot`:`Cell ${r.target.table}.${r.target.column} matched more than one row`);let s=a[0][0],l=s===null?new Uint8Array(0):s;if(!(l instanceof Uint8Array))throw new Error(`SQLite returned a non-BLOB chunk for ${r.target.table}.${r.target.column}`);return r.lastAccessAt=Date.now(),$a(r),{byteOffset:t,bytes:l.slice(),done:t+l.byteLength>=r.metadata.byteLength}}async function Fu(e){if(typeof e!="string"||e.length===0)throw new Error("Cell read session id is required");if(!On(e)&&!Pe.has(e))throw new Error(`Unknown cell read session: ${e}`)}function Wu(e){if(tt&&!["readCellChunk","closeCellReadSession","initializeDatabase"].includes(e))throw new Error("A cell read snapshot is active; close it before another database operation")}function ju(e){if(e===void 0)return At;if(!Number.isSafeInteger(e)||e<1)throw new Error("pagedExportMaxBytes must be a positive safe integer");if(e>At)throw new Error(`pagedExportMaxBytes must not exceed ${At} bytes`);return e}function Te(e){let t="Unknown error";try{t=e&&typeof e=="object"&&typeof e.message=="string"&&e.message?e.message:String(e)}catch{}return t||(t="Unknown error"),t.length<=ga?t:t.slice(0,ga)+`... [truncated from ${t.length} characters]`}async function Hu(e,t){if(On(),h&&(h.close(),h=null),Yr=Number.isFinite(t.queryTimeout)&&t.queryTimeout>0?t.queryTimeout:xa,ae=t.readOnlyMode===!0,Cn=null,Nt="memory",_t=0,xn=ju(t.pagedExportMaxBytes),Aa=Wr(t.pagedExactCountMaxFileBytes),lo=Mr(t.cellReadSessionIdleTimeoutMs,Dr),_a=Mr(t.cellReadSessionAbsoluteTimeoutMs,Br),Pe.clear(),{SQL:ha,db:h}=await B(t),Ia=ha.queryPlanReaderActive===!0,h.run("PRAGMA foreign_keys = ON"),!ae){let n=Ku();n&&(ae=!0,Cn=n)}return ae&&(typeof h.enforceReadOnly=="function"?h.enforceReadOnly():h.run("PRAGMA query_only = ON")),{operations:{},isReadOnly:ae,storage:Nt,...Cn?{readOnlyReason:Cn}:{}}}function wa(e){return e?.errno===Qu||/read[\s-]?only/i.test(Te(e))?"This database cannot be written by this process, so it is open read-only (SQLite: attempt to write a readonly database).":null}function Ku(){let e=Number(h.exec("PRAGMA user_version")[0]?.values?.[0]?.[0])|0;try{h.run("BEGIN")}catch(n){return wa(n)}let t=null;try{h.run(`PRAGMA user_version = ${e}`)}catch(n){t=wa(n)}finally{h.run("ROLLBACK")}return t}async function zu(e,t=[],n){if(!h)throw new Error("No database initialized");if(ae)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");try{return rt(()=>h.exec(e,t),n).map(o=>({headers:o.columns,rows:o.values}))}catch(r){throw r}}async function Xu(e,t="[]",n){if(!h)throw new Error("No database initialized");if(typeof e!="string"||typeof t!="string")throw new TypeError("SQL and parameter JSON must be strings");let r=ps(e),o=hs(t);if(o.length!==r.parameterCount)throw new Error(`Expected ${r.parameterCount} positional parameters.`);let i=`query_columns_${crypto.randomUUID().replace(/-/g,"")}`,a=Number(h.exec("PRAGMA query_only")[0]?.values[0]?.[0])===1,s=!1,l;try{a&&I("PRAGMA query_only = OFF"),l=rt(()=>{I(`CREATE TEMP VIEW "${i}" AS ${r.metadataSql}`),s=!0;let u=(h.exec("SELECT substr(name, 1, 4097) FROM pragma.pragma_table_info(?, 'temp') ORDER BY cid LIMIT ?",[i,fn+1])[0]?.values??[]).map(c=>String(c[0]));if(!u.length||u.length>fn)throw new Error("Queries support 1 to 128 result columns.");if(u.some(c=>c.length>4096))throw new Error("Result column labels must be at most 4096 characters.");return u},n)}finally{try{s&&(a&&I("PRAGMA query_only = OFF"),I(`DROP VIEW temp."${i}"`))}finally{if(a)try{I("PRAGMA query_only = ON")}catch(u){let c=h;throw h=null,c.close(),u}}}return rt(()=>{let u=Es(r.sql,l.length),c=nt(u.sql);try{c.bind(o);let d=[];for(;d.length<=Ie&&c.step();)d.push(c.get(null,{useBigInt:!0}));return ws(l,d,u.valueColumnCount)}finally{c.free()}},n)}function Gu(e){if(e==null)return 5e3;let t=Number(e);return Number.isFinite(t)?Math.min(5e4,Math.max(1,Math.trunc(t))):5e3}function Yu(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.trunc(t)):1/0}function Ju(e){if(e==null)return[];if(!Array.isArray(e))throw new Error("Console parameters must be a JSON array.");if(e.length>Sa)throw new Error(`Use at most ${Sa} positional parameters.`);for(let t of e)if(t!==null){if(typeof t=="string"){if(t.includes("\0"))throw new Error("Console parameters must not contain NUL bytes; SQLite would bind the text truncated at the first one.");continue}if(!(typeof t=="number"&&Number.isFinite(t)))throw new Error("Console parameters must be null, string, or finite number values.")}return e}function Pa(e,t){try{e.bind(t)}catch(n){throw new Error(`cannot bind ${t.length} positional parameter${t.length===1?"":"s"}: `+Te(n))}}function Ma(e){let t=0;for(;;){let n=t;for(;tIe}}function rd(e,t){let n=gs(e,t),r=h.prepare(n.sql);try{if(r.bind(n.params),!r.step())throw new Error(Ba);return qa(ys(r.get()[0]).rows)}finally{r.free()}}function od(e,t){if(td.test(Ma(e)))throw new Error("PRAGMA statements have no query plan (and some pragmas take effect while being compiled, so they are not even prepared here). Use Run.");let n=nt(`EXPLAIN QUERY PLAN ${e}`);try{t.length>0&&Pa(n,t);let r=[];for(;r.length<=Ie&&n.step();){let o=n.get();if(o.length!==Da.length||typeof o[3]!="string")throw new Error(Ba);if(new TextEncoder().encode(o[3]).byteLength>ed)throw new Error("Query plan detail exceeds the 65,536-byte limit.");r.push(o)}return qa(r)}finally{n.free()}}function id(e,t){if(typeof e!="string"||e.trim()==="")throw new Error("Enter one SQL statement to explain.");if(new TextEncoder().encode(e).byteLength>Zu)throw new Error("Query plan SQL exceeds 262,144 UTF-8 bytes.");let n=Ee(e);for(let r of n.matchAll(Ua))if(r[0]===";")throw new Error("Exactly one SQL statement is required");return Ia&&nd(n)?rd(n,t):od(n,t)}async function sd(e,t={},n){if(!h)throw new Error("No database initialized");if(ae)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");if(typeof e=="string"&&e.includes("\0"))throw new Error("SQL contains a NUL byte; SQLite stops compiling at the first NUL, so the rest of the script would be silently skipped");let r=Ju(t.params),o=Gu(t.maxRows),i=Yu(t.maxStatements),a=Date.now(),s=h.exec("SELECT total_changes()")[0].values[0][0],l=h.exec("PRAGMA schema_version")[0].values[0][0],u=()=>{let E=h.exec("SELECT total_changes()")[0].values[0][0],y=h.exec("PRAGMA schema_version")[0].values[0][0];return{mutated:E-s>0||y!==l,changes:E-s,durationMs:Date.now()-a}},c=()=>{try{return u()}catch{return{mutated:!0,changes:0,durationMs:Date.now()-a}}};if(t.explain===!0)try{return{results:[rt(()=>id(e,r),n)],explain:!0,statementsSkipped:!1,...u()}}catch(E){return{results:[],error:Te(E),explain:!0,multiStatement:!1,statementsSkipped:!1,...c()}}let d=0,f=!1,m;try{m=rt(()=>{let E=[],y=h.iterateStatements(e),g=!1;for(;;){if(d>=i){g=!0;break}d++;let S=y.next();if(S.done)break;let w=S.value;try{r.length>0&&Pa(w,r);let R=w.getColumnNames(),x=!1,T=!1;if(R.length===0&&(T=w.step(),x=!0,T&&(R=w.getColumnNames())),R.length===0){if(!x||T)for(;w.step(););}else{let A=[],$=!1;for(x||(T=w.step());T;)A.length1,statementsSkipped:f,...g}}return{results:m,statementsSkipped:f,...u()}}async function ad(e){if(!h)throw new Error("No database initialized");let t=Nt==="paged"&&!ae;if(Nt==="paged"&&ae)throw new Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");let n=()=>new Error(`Cannot download this page-on-demand database: the merged image would exceed the ${xn}-byte browser memory limit. Saving materializes the complete database in memory; use the desktop extension or reduce the database size.`);if(t&&_t>xn)throw n();let r;try{r=h.export()}catch(o){let i=Te(o);throw t&&/transaction is open|while a transaction/i.test(i)?new Error("Cannot save while a database transaction is open; retry after the edit completes.",{cause:o}):o}if(t&&r.byteLength>xn)throw n();return r}async function ld(e,t,n,r,o={}){if(!h)throw new Error("No database initialized");let i=e?.table;if(!i)throw new Error("No table specified");let{format:a="csv",header:s=!0,includeTableName:l=!0,rowIds:u=null,maxExportBytes:c}=o;if(!["csv","json","sql","excel"].includes(a))throw new Error(`Unsupported export format: ${a}`);let d=Number.isSafeInteger(c)&&c>0?Math.min(c,vu):so,f=[{sql:"",params:[]}];if(u&&u.length>0){let O=await le(i);if(u.some(ie)&&!u.every(ie))throw new Error("Cannot mix rowid and primary-key row identities");let D=new Set,p=[];for(let b of u){let N=O.kind==="rowid"?H(b):b,k=String(N);D.has(k)||(D.add(k),p.push(N))}f=ze(p,O)}let m=t&&t.length>0?t:cd(i);if(m.length>In)throw new Error(`Cannot export more than ${In} columns`);let E=a!=="csv"&&a!=="excel",y=m.map((O,D)=>{let p=C(O),b=`typeof(${p})`,N=`octet_length(${p})`;return`CASE ${b} WHEN 'null' THEN 'n:0:' WHEN 'integer' THEN 'i:0:' || CAST(${p} AS TEXT) WHEN 'real' THEN 'r:0:' || printf('%!.17g', ${p}) WHEN 'text' THEN 't:' || CAST(${N} AS TEXT) || ':' || hex(CAST(${p} AS BLOB)) WHEN 'blob' THEN 'b:' || CAST(${N} AS TEXT) || ':' || `+(E?`hex(${p}) `:"'' ")+`END AS ${C(`__export_cell_${D}`)}`}).join(", "),g=V("sp_export_rows");I(`SAVEPOINT ${g}`);let S=[];try{let O=1024;for(let D of f){let p=D.sql?` WHERE ${D.sql}`:"";if(O+=md(i,m,p,D.params,a,d),!Number.isSafeInteger(O)||O>d)throw co(d)}for(let D of f){let p=D.sql?` WHERE ${D.sql}`:"",b=h.exec(`SELECT ${y} FROM ${L(i)}${p}`,D.params);b.length>0&&S.push(...b[0].values)}I(`RELEASE ${g}`)}catch(O){throw W(g,"exportTable"),O}let w=m,R=ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),x=S.map((O,D)=>{if(O.length!==m.length)throw new Error(`SQLite returned ${O.length} packed export cells for row ${D}; expected ${m.length}`);return m.map((p,b)=>dd(i,p,O[b],E,R))}),T=new Zr(d),A="text/plain",$=`${i}.${a}`;switch(a){case"csv":ba(w,x,s,T),A="text/csv";break;case"json":pd(w,x,T),A="application/json";break;case"sql":gd(i,w,x,l,T),A="text/sql";break;case"excel":ba(w,x,s,T),A="text/csv",$=`${i}.csv`;break}return{contentChunks:T.finish(),filename:$,mimeType:A}}function co(e){if(e===so)return new Error(`Web demo exports are limited to ${$u} because the worker RPC cannot stream downloads; use the desktop extension for larger exports.`);let t=e/(1024*1024);return new Error(`Export exceeds the ${t} MiB (${e} bytes) limit; the worker assembles the whole file in memory, so larger exports need the native engine.`)}function cd(e){let t=h.prepare(`SELECT * FROM ${L(e)} LIMIT 0`);try{return t.getColumnNames()}finally{t.free()}}function ud(e,t,n){if(e.length!==t*2||/[^0-9a-f]/i.test(e))throw new Error(`SQLite returned invalid packed bytes for ${n}`);let r=new Uint8Array(t);for(let o=0;o1;){let n=[];for(let r=0;r{let f=C(d),m=`length(${f})`,E=o==="csv"||o==="excel"?"64":o==="json"?`((${m} + 2) / 3) * 4 + 64`:`${m} * 2 + 64`;return`CASE typeof(${f}) WHEN 'text' THEN length(CAST(${f} AS BLOB)) * 6 + 64 WHEN 'blob' THEN ${E} ELSE 64 END`})),l=h.exec(`SELECT COUNT(*), COALESCE(SUM(${a}), 0) FROM ${L(e)}${n}`,r)[0]?.values?.[0]??[0,0],u=Number(l[0]),c=Number(l[1])+u*128;if(!Number.isSafeInteger(c)||c<0)throw co(i);return c}function Jr(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function ba(e,t,n,r){let o=!1,i=a=>{o&&r.append(` -`),r.append(a.join(",")),o=!0};n&&i(e.map(a=>gr({storageClass:"text",value:a})));for(let a of t)i(a.map(gr))}function pd(e,t,n){n.append("[");for(let r=0;r{"use strict";_()});function gn(e,t,n="set"){if(n==="json_patch")return{value:e,operation:"json_patch"};if(typeof e!="string"||typeof t!="string"||!(e.startsWith("{")||e.startsWith("["))||!(t.startsWith("{")||t.startsWith("[")))return{value:e,operation:"set"};try{let r=JSON.parse(t),o=JSON.parse(e);if(!r||typeof r!="object"||Array.isArray(r)||!o||typeof o!="object"||Array.isArray(o))return{value:e,operation:"set"};let i=Ns(r,o);return i===void 0||_s(i)?{value:e,operation:"set"}:{value:JSON.stringify(i),operation:"json_patch"}}catch{return{value:e,operation:"set"}}}function _s(e){return e===null?!0:ee(e)?Object.values(e).some(_s):!1}function Ns(e,t,n=0){if(n>1e3)throw new Error("JSON merge patch depth limit exceeded");if(e===t)return;if(!ee(e)||!ee(t)||Array.isArray(e)||Array.isArray(t))return t;let r=Object.create(null),o=!1;for(let i of Object.keys(t)){let a=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0,s=t[i];if(a===void 0)r[i]=s,o=!0;else if(a!==s){let l=Ns(a,s,n+1);l!==void 0&&(r[i]=l,o=!0)}}for(let i of Object.keys(e))Object.prototype.hasOwnProperty.call(t,i)||(r[i]=null,o=!0);return o?r:void 0}function Os(e,t,n=0){if(n>1e3)throw new Error("JSON apply merge patch depth limit exceeded");if(t===null)return null;if(typeof t!="object"||Array.isArray(t))return t;let r;typeof e!="object"||e===null||Array.isArray(e)?r=Object.create(null):r=Object.assign(Object.create(null),e);let o=t;for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=o[i];a===null?delete r[i]:r[i]=Os(r[i],a,n+1)}return r}function mn(e){if(typeof e=="string")try{let t=JSON.parse(e);return ee(t)?t:void 0}catch{return}}function Ls(e,t,n,r,o){let i=o==="undo"?r:n,a=o==="undo"?n:r,s=()=>As(e,i)?{kind:"write",value:a}:{kind:"conflict"};if(pn(e)||pn(t)||pn(n)||pn(r))return s();let l=mn(e),u=mn(t),c=mn(n),d=mn(r);if(!l||!u||!c||!d)return s();if(!$s(l,o==="undo"?d:c,u,c,0))return{kind:"conflict"};if(As(e,i))return{kind:"write",value:a};let m=o==="undo"?Ar(l,u,c,0):Os(l,u,0);return{kind:"write",value:JSON.stringify(m)}}function $s(e,t,n,r,o){if(o>1e3)throw new Error("JSON history replay depth limit exceeded");for(let i of Object.keys(n)){let a=n[i],s=Object.prototype.hasOwnProperty.call(e,i),l=Object.prototype.hasOwnProperty.call(t,i),u=Object.prototype.hasOwnProperty.call(r,i),c=s?e[i]:void 0,d=l?t[i]:void 0,f=u?r[i]:void 0;if(ee(a)){if(!u||!ee(f)){if(!Is(s,c,l,d,o+1))return!1;continue}if(!s||!ee(c)||!l||!ee(d)||!$s(c,d,a,f,o+1))return!1;continue}if(!Is(s,c,l,d,o+1))return!1}return!0}function Is(e,t,n,r,o){return e===n&&(!e||Ir(t,r,o))}function Ir(e,t,n){if(n>1e3)throw new Error("JSON history replay depth limit exceeded");if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((i,a)=>Ir(i,t[a],n+1));if(!ee(e)||!ee(t))return!1;let r=Object.keys(e),o=Object.keys(t);return r.length!==o.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&Ir(e[i],t[i],n+1))}function As(e,t){return e instanceof Uint8Array||t instanceof Uint8Array?!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:e.length===t.length&&e.every((n,r)=>n===t[r]):Object.is(e,t)}function Ar(e,t,n,r){if(r>1e3)throw new Error("JSON undo restore depth limit exceeded");let o=Object.assign(Object.create(null),e);for(let i of Object.keys(t)){let a=t[i],s=Object.prototype.hasOwnProperty.call(n,i),l=s?n[i]:void 0;if(ee(a))if(s&&ee(l))if(Object.prototype.hasOwnProperty.call(o,i)&&ee(o[i])){let u=o[i];o[i]=Ar(u,a,l,r+1)}else o[i]=l;else if(s)o[i]=l;else{let u=Object.prototype.hasOwnProperty.call(o,i)&&ee(o[i])?o[i]:Object.create(null),c=Ar(u,a,Object.create(null),r+1);Object.keys(c).length===0?delete o[i]:o[i]=c}else s?o[i]=l:delete o[i]}return o}function pn(e){if(typeof e!="string")return!1;let n=e.replace(/"(?:\\.|[^"\\])*"/g,'""').match(/-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g);return n?n.some(r=>{let o=Number(r);return!Number.isFinite(o)||JSON.stringify(o)!==r}):!1}function ee(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var vs=M(()=>{"use strict";_()});function se(e){let t=C(e);return`typeof(${t}), CASE WHEN typeof(${t}) = 'text' THEN CAST(${t} AS BLOB) ELSE ${t} END`}function mu(e,t,n){if(!t)throw new Error(`SQLite text encoding is required for ${n}`);try{return{value:ge(t).decode(e)}}catch{return{value:"",rawTextBytes:e}}}function K(e,t,n,r={}){if(typeof e!="string"||!uu.has(e))throw new Error(`SQLite returned an invalid storage class for ${n}`);let o=e;if(o!=="text"&&r.rawTextBytes!==void 0)throw new Error(`SQLite returned raw TEXT bytes for non-TEXT ${n}`);if(o==="text"){if(t instanceof Uint8Array)return{storageClass:o,...mu(t,r.textEncoding,n)};if(typeof t!="string")throw new Error(`SQLite returned an invalid text value for ${n}`);if(r.rawTextBytes!==void 0&&!(r.rawTextBytes instanceof Uint8Array))throw new Error(`SQLite returned invalid raw TEXT bytes for ${n}`);return{storageClass:o,value:t,...r.rawTextBytes instanceof Uint8Array?{rawTextBytes:r.rawTextBytes}:{}}}if(!(o==="null"?t===null:o==="integer"?typeof t=="bigint"||typeof t=="number"&&Number.isInteger(t):o==="real"?typeof t=="number":t instanceof Uint8Array))throw new Error(`SQLite returned an invalid ${o} value for ${n}`);return{storageClass:o,value:t}}function Rt(e){if(!e||typeof e!="object")throw new Ct;K(e.storageClass,e.value,"cell history",{rawTextBytes:e.rawTextBytes})}function _r(e,t){if(e.storageClass!==t.storageClass)return!1;if(e.storageClass==="text"){let o=e.rawTextBytes,i=t.rawTextBytes;if(o||i)return!o||!i?!1:o.length===i.length&&o.every((a,s)=>a===i[s])}let n=e.value,r=t.value;return e.storageClass==="integer"&&typeof n!=typeof r?typeof n=="number"&&Number.isSafeInteger(n)&&typeof r=="bigint"?BigInt(n)===r:typeof r=="number"&&Number.isSafeInteger(r)&&typeof n=="bigint"?n===BigInt(r):!1:n instanceof Uint8Array||r instanceof Uint8Array?!(n instanceof Uint8Array)||!(r instanceof Uint8Array)?!1:n.length===r.length&&n.every((o,i)=>o===r[i]):Object.is(n,r)}function yn(e,t=()=>"?"){switch(Rt(e),e.storageClass){case"null":return{sql:"NULL",params:[]};case"integer":return{sql:t(e.value),params:[e.value]};case"real":return{sql:"CAST(? AS REAL)",params:[e.value]};case"text":return{sql:e.rawTextBytes?"CAST(substr(?, 1) AS TEXT)":"CAST(? AS TEXT)",params:[e.rawTextBytes??e.value]};case"blob":return{sql:"?",params:[e.value]}}}function hn(e,t,n=()=>"?"){Rt(t);let r=C(e);switch(t.storageClass){case"null":return{sql:`typeof(${r}) = 'null'`,params:[]};case"integer":{let o=n(t.value);return{sql:`typeof(${r}) = 'integer' AND ${r} IS ${o}`,params:[t.value]}}case"real":return{sql:`typeof(${r}) = 'real' AND ${r} IS CAST(? AS REAL)`,params:[t.value]};case"text":return{sql:`typeof(${r}) = 'text' AND CAST(${r} AS BLOB) = CAST(? AS BLOB)`,params:[t.rawTextBytes??t.value]};case"blob":return{sql:`typeof(${r}) = 'blob' AND ${r} IS ?`,params:[t.value]}}}var uu,du,fu,fe,Ct,Nr=M(()=>{"use strict";_();Y();Ft();uu=new Set(["null","integer","real","text","blob"]),du="Cell changed outside SQLite Explorer history; undo/redo was not applied.",fu="This edit predates guarded cell history and cannot be replayed safely. Save or reload the database.",fe=class extends Error{code="SQLITE_EXPLORER_CELL_HISTORY_CONFLICT";constructor(t,n){let r=n.length===1?`${t}.${n[0]}`:`${n.length} cells in ${t}`;super(`${r}: ${du}`),this.name="CellHistoryConflictError"}},Ct=class extends Error{code="SQLITE_EXPLORER_LEGACY_CELL_HISTORY";constructor(){super(fu),this.name="LegacyCellHistoryError"}}});function xt(e){if(!Array.isArray(e.storageClasses))throw new J;let t=new Set;return e.storageClasses.map(n=>{let r=typeof n?.column=="string"?Yt(n.column):void 0;if(!n||typeof n.column!="string"||r===void 0||t.has(r)||!Object.prototype.hasOwnProperty.call(e.row,n.column))throw new J;t.add(r);let o=e.row[n.column],i=n.storageClass==="text"&&o instanceof Uint8Array?o:void 0;return{column:n.column,state:K(n.storageClass,i?"":o,`row history column ${n.column}`,{rawTextBytes:i})}})}function Or(e,t=()=>"?"){let n=xt(e).map(({column:r,state:o})=>hn(r,o,t));return{sql:n.length>0?n.map(r=>`(${r.sql})`).join(" AND "):"1",params:n.flatMap(r=>r.params)}}function ks(e,t=()=>"?"){return xt(e).map(({column:n,state:r})=>({column:n,write:yn(r,t)}))}var pu,gu,_e,J,Ps=M(()=>{"use strict";_();Nr();pt();pu="Row changed outside SQLite Explorer history; undo/redo was not applied.",gu="This row edit predates guarded row history and cannot be replayed safely. Save or reload the database.",_e=class extends Error{code="SQLITE_EXPLORER_ROW_HISTORY_CONFLICT";constructor(t){super(`${t}: ${pu}`),this.name="RowHistoryConflictError"}},J=class extends Error{code="SQLITE_EXPLORER_LEGACY_ROW_HISTORY";constructor(){super(gu),this.name="LegacyRowHistoryError"}}});function It(e){let t=new Set,n=[e],r=0;for(;n.length>0;){let o=n.pop();if(o!=null){if(typeof o=="boolean")r+=4;else if(typeof o=="number"||typeof o=="bigint")r+=8;else if(typeof o=="string")r+=o.length*2;else if(o instanceof Uint8Array)r+=o.byteLength;else if(typeof o=="object"){if(t.has(o))continue;if(t.add(o),r+=8,Array.isArray(o))for(let i of o)n.push(i);else for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r+=i.length*2,n.push(o[i]))}}}return r}var En=M(()=>{"use strict";_();Pt()});function Ds(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error(`SQLite returned an unsafe ${t} during delete undo preflight`);return Number(n)}function Bs(e,t){return[...e]}function Ms(e,t,n){return{sql:`SELECT COUNT(*), COALESCE(SUM(${t.map(o=>{let i=C(o);return`CASE typeof(${i}) WHEN 'text' THEN 2 * octet_length(${i}) WHEN 'blob' THEN octet_length(${i}) WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 0 END`}).join(" + ")||"0"}), 0) FROM ${L(e)} WHERE ${n.sql}`,params:n.params}}function Us(e){if(!e||e.length<2)throw new Error("SQLite omitted delete undo preflight metadata");return{rowCount:Ds(e[0],"row count"),valueBytes:Ds(e[1],"value byte count")}}function qs(e){if(!Number.isSafeInteger(e.maxSnapshotBytes)||e.maxSnapshotBytes<0)throw new Error("Delete undo snapshot budget must be a non-negative safe integer");if(e.rowCount!==e.rowIds.length)throw new Error(`Cannot delete from ${e.table}: one or more row identities no longer exist`);let n=[...new Set(e.insertableColumns)].reduce((a,s)=>a+s.length*2,0),r=e.rowIds.reduce((a,s)=>a+It(s),0),o=e.rowCount*e.insertableColumns.reduce((a,s)=>a+s.length*2+hu,0),i=e.valueBytes+r+e.rowCount*(yu+n)+o;if(!Number.isSafeInteger(i)||i>e.maxSnapshotBytes){let a=e.operation??"Delete";throw new Error(`${a} undo snapshot exceeds the ${e.maxSnapshotBytes}-byte memory budget; ${a.toLowerCase()} fewer rows or increase sqliteExplorer.maxUndoMemory.`)}}var yu,hu,Vs=M(()=>{"use strict";_();En();Y();yu=32,hu=48});function vr(e){return e.orderBy?.toLowerCase()==="rowid"&&e.columns?.[0]?.toLowerCase()==="rowid"&&!e.columns.slice(1).some(t=>t.toLowerCase()==="rowid")}function kr(e,t){let n=(t.filters??[]).flatMap(l=>{let u=Ae(l.value);return u===void 0?[]:[[l.column,u]]}),r=Ae(t.globalFilter)??null,o=r===null?null:t.globalFilterColumns??t.columns??null,i=typeof t.orderBy=="string"&&t.orderBy!==""?t.orderBy:null,a=i!==null&&t.orderDir==="DESC"?"DESC":"ASC",s=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)?t.limit:null;return JSON.stringify([Sn,e,i,a,s,n,r,o])}function Pr(e,t){if(!t||e.orderByColumns?.length)return;let n=t.kind==="rowid"?["rowid"]:t.columns.map(i=>i.identifier);if(n.length===0)return;let r=typeof e.orderBy=="string"&&e.orderBy!==""?e.orderBy:void 0;if(r===void 0)return{keyColumns:n,nullableSortKey:!1,direction:"ASC"};let o=e.orderDir==="DESC"?"DESC":"ASC";return vr(e)?{keyColumns:n,nullableSortKey:!1,direction:o}:n.includes(r)?{keyColumns:[r,...n.filter(i=>i!==r)],nullableSortKey:!1,direction:o}:{keyColumns:[r,...n],nullableSortKey:!0,direction:o}}function Fs(e,t){if(!(!e||t))return{orderByColumns:e.keyColumns,orderDir:e.direction}}function wu(e){return e===null?["null"]:Zt(e)}function Su(e){return Array.isArray(e)&&e.length===1&&e[0]==="null"?{value:null,storageClass:"null"}:{value:Qi(e),storageClass:e[0]}}function bu(e,t){if(t.length===0)throw new Error("Keyset anchor requires at least one key value");let n={v:Sn,t:e,k:t.map(wu)};return wn+encodeURIComponent(JSON.stringify(n))}function Tu(e){if(e.length>$r)throw new Error(`Keyset anchor exceeds the ${$r}-byte limit`)}function Cu(e){if(typeof e!="string"||!e.startsWith(wn))throw new Error("Invalid keyset anchor");Tu(e);let t;try{t=JSON.parse(decodeURIComponent(e.slice(wn.length)))}catch{throw new Error("Invalid keyset anchor encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Sn||typeof t.t!="string"||!Array.isArray(t.k))throw new Error("Invalid keyset anchor payload");let n=t.k;if(n.length===0)throw new Error("Keyset anchor has no key values");let r,o;try{let a=n.map(Su);r=a.map(s=>s.value),o=a.map(s=>s.storageClass)}catch(a){throw new Error(`Invalid keyset anchor value: ${a instanceof Error?a.message:String(a)}`)}if(wn+encodeURIComponent(JSON.stringify({v:Sn,t:t.t,k:n}))!==e)throw new Error("Keyset anchor is not canonical");return{tag:t.t,values:r,valueClasses:o}}function Ws(e,t,n){let r=t.keyset;if(!r||typeof r!="object"||Array.isArray(r)||!Eu.includes(r.mode))return;let o=Pr(t,n);if(!o)return;let i=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)&&t.limit>0?t.limit:void 0;if(i===void 0)return;if(r.mode==="first")return{...o,mode:"first",limit:i};if(r.mode==="last"){let l=r.lastPageRowCount??i;return typeof l!="number"||!Number.isSafeInteger(l)||l<1||l>i?void 0:{...o,mode:"last",limit:l}}if(r.anchor===void 0)return;let a=Cu(r.anchor);if(a.tag!==kr(e,t)||a.values.length!==o.keyColumns.length)return;let s=o.nullableSortKey?1:0;if(a.values.some((l,u)=>l===null&&u>=s))throw new Error("Keyset anchor has NULL in an identity slot");return{...o,mode:r.mode,values:a.values,valueClasses:a.valueClasses,limit:i}}function Lr(e,t,n){return e.length===1?`${e[0]} ${t} ${n[0]}`:`(${e.join(", ")}) ${t} (${n.join(", ")})`}function Ru(e){let t=e.values,r=e.mode==="before"?e.direction==="ASC"?"DESC":"ASC":e.direction,o=(r==="ASC"?">":"<")+(e.mode==="atOrAfter"?"=":""),i=e.keyColumns.map(C),a=e.keyColumns.map((f,m)=>e.valueClasses?.[m]==="integer"?"CAST(? AS INTEGER)":"?");if(!e.nullableSortKey)return{sql:Lr(i,o,a),params:t};let s=i[0],l=i.slice(1),u=t[0],c=t.slice(1);if(u===null){let f=Lr(l,o,a.slice(1));return r==="ASC"?{sql:`((${s} IS NULL AND ${f}) OR ${s} IS NOT NULL)`,params:c}:{sql:`(${s} IS NULL AND ${f})`,params:c}}let d=Lr(i,o,a);return r==="ASC"?{sql:d,params:t}:{sql:`(${d} OR ${s} IS NULL)`,params:t}}function js(e){let{plan:t}=e,n=t.mode==="before"||t.mode==="last",r=n?t.direction==="ASC"?"DESC":"ASC":t.direction,o=[...e.whereClauses],i=[...e.filterParams];if(t.mode!=="first"&&t.mode!=="last"){let u=Ru(t);o.push(u.sql),i.push(...u.params)}let a=t.keyColumns.map(C),s=u=>a.map(c=>`${c} ${u}`).join(", "),l=`SELECT ${e.selectListSql} FROM ${e.escapedTable}`;return o.length>0&&(l+=` WHERE ${o.join(" AND ")}`),l+=` ORDER BY ${s(r)} LIMIT ${t.limit}`,n&&(l=`SELECT * FROM (${l}) ORDER BY ${s(t.direction)}`),{sql:l,params:i}}function Hs(e){if(e.rows.length===0)return;let t=e.key.keyColumns.map(i=>e.projectionColumns.indexOf(i));if(t.some(i=>i<0))return;let n=i=>{if(e.excludedRowIndices?.has(i))return;let a=e.rows[i],s=[];for(let u=0;u{"use strict";_();Y();xr();Et();wn="ksa:",Sn=1,$r=128*1024,Eu=["first","after","atOrAfter","before","last"]});function xu(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<1)throw new Error("Table page limit must be a positive safe integer");return Math.min(e,1e5)}function Iu(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<0)throw new Error("Table page offset must be a non-negative safe integer");return e}function Ks(e,t=5e3){return{...e,limit:xu(e.limit??t),offset:Iu(e.offset??0)}}var zs=M(()=>{"use strict";_()});function Gs(e){if(!e||typeof e!="object")throw new Error("Cell read target is required");if(typeof e.table!="string"||e.table.length===0)throw new Error("Cell read table must be a non-empty string");if(typeof e.column!="string"||e.column.length===0)throw new Error("Cell read column must be a non-empty string")}function Ys(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error("Cell read byte offset must be a non-negative safe integer");if(!Number.isSafeInteger(t)||t<1||t>Xs)throw new Error(`Cell read chunk size must be an integer from 1 through ${Xs}`)}function ke(e){let t=String(e).toLowerCase().replace(/[_\s-]/g,"");if(t==="utf8")return"utf-8";if(t==="utf16le")return"utf-16le";if(t==="utf16be")return"utf-16be";throw new Error(`Unsupported SQLite text encoding: ${String(e)}`)}function Js(e,t,n){if(e.length!==1)throw new Error(e.length===0?`Cell ${n.table}.${n.column} no longer exists`:`Cell ${n.table}.${n.column} matched more than one row`);let r=e[0][0];if(typeof r!="string"||!Au.has(r))throw new Error(`SQLite returned an invalid storage class for ${n.table}.${n.column}`);let o=e[0][1],i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i)||Number(i)<0)throw new Error(`SQLite returned an unsafe byte length for ${n.table}.${n.column}`);return{storageClass:r,byteLength:Number(i),...r==="text"?{textEncoding:t}:{}}}function Mr(e,t){return Number.isFinite(e)&&Number(e)>=1?Math.floor(Number(e)):t}var Xs,Dr,Br,Au,Zs=M(()=>{"use strict";_();Y();Xs=1024*1024,Dr=3e4,Br=5*6e4,Au=new Set(["null","integer","real","text","blob"])});var Xe,bn,Tn=M(()=>{"use strict";_();dn();Pt();Xe=be,bn=ue});function _u(e){let t=0;for(let n=0;n=55296&&r<=56319){let o=e.charCodeAt(n+1);o>=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function Ye(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);let n=typeof e=="string"?"text":e instanceof Uint8Array?"blob":void 0;if(!n)return;let r=typeof e=="string"?_u(e):e instanceof Uint8Array?e.byteLength:0;if(r>t)throw new Vr(n,r,t)}function na(e){let t=e??ta;if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);return t}function Je(e,t){let n=na(t);for(let r of e)Ye(r,n);return n}function ra(e,t){let n=na(t);if(!e||e.storageClass!=="text"&&e.storageClass!=="blob"||!Number.isSafeInteger(e.byteLength)||e.byteLength<=n)throw new Error("Guarded oversized-cell replacement requires exact TEXT/BLOB metadata above the edit limit");return n}function Nu(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="CellEditPolicyError"||t.code!==Ur||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"CellEditPolicyError",code:Ur,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function Ou(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="OversizedCellReplacementRequiredError"||t.code!==qr||typeof t.table!="string"||typeof t.column!="string"||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"OversizedCellReplacementRequiredError",code:qr,table:t.table,column:t.column,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function oa(e){return Nu(e)??Ou(e)}var Ur,qr,ea,ta,Vr,Ge,Fr=M(()=>{"use strict";_();Tn();Ur="SQLITE_EXPLORER_CELL_EDIT_VALUE_TOO_LARGE",qr="SQLITE_EXPLORER_OVERSIZED_CELL_REPLACEMENT_REQUIRED",ea="Oversized cell metadata changed before the confirmed replacement was applied",ta=Xe,Vr=class extends Error{constructor(n,r,o,i=`New ${n.toUpperCase()} cell value is ${r} bytes and exceeds the ${o}-byte edit limit.`){super(i);this.storageClass=n;this.actualBytes=r;this.limitBytes=o}storageClass;actualBytes;limitBytes;name="CellEditPolicyError";code=Ur},Ge=class extends Error{constructor(n,r,o,i,a,s=`Existing ${o.toUpperCase()} cell ${n}.${r} is ${i} bytes. Use the explicitly confirmed oversized-cell replacement path.`){super(s);this.table=n;this.column=r;this.storageClass=o;this.actualBytes=i;this.limitBytes=a}table;column;storageClass;actualBytes;limitBytes;name="OversizedCellReplacementRequiredError";code=qr}});var dp,At,ia=M(()=>{"use strict";_();Tn();dp=1024*1024*1024,At=2145386496});function Wr(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:Lu}function jr(e){return e.storage==="paged"&&!e.filtered&&e.authorityConfirmedRowIdTable&&e.pagedFileSizeBytes>e.exactCountMaxFileBytes}function la(e){let t=L(e);return`SELECT (SELECT CAST(min(rowid) AS TEXT) FROM ${t}), (SELECT CAST(max(rowid) AS TEXT) FROM ${t})`}function ca(e){return`SELECT COUNT(*) FROM (SELECT 1 FROM ${L(e)} LIMIT ?)`}function ua(e,t){if(!(typeof e!="number"||!Number.isSafeInteger(e)||e<0||e>Ze+1))return e<=Ze?{count:e,isExact:!0}:{count:Hr(t,e),isExact:!1}}function Hr(e,t=Ze+1){return(!Number.isSafeInteger(t)||t<0)&&(t=Ze+1),!Number.isSafeInteger(e)||eBigInt(Number.MAX_SAFE_INTEGER)))return Number(i)}var Lu,Ze,aa,fa=M(()=>{"use strict";_();Y();Lu=64*1024*1024,Ze=1e4,aa=`SELECT 1 FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? AND "type" IN ('table', 'shadow') AND "wr" = 1 LIMIT 1`});var ma=M(()=>{"use strict";_()});var pa=M(()=>{"use strict";_()});var xp,Qr,Kr,zr,ga=M(()=>{"use strict";_();pa();En();Fr();xp=64*1024*1024,Qr=1e5,Kr=256,zr=2e6});var af={};function Pu(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function Du(e){let t=String(e);return t.toLowerCase()==="null"?"NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function V(e){return wa++,C(`${e}_${wa}`)}function nt(e){let t=`/*sqlite_explorer_boundary_${crypto.randomUUID().replace(/-/g,"")}*/`,n=h.prepare(`${e} +${t}`);if(!n.getSQL().trimEnd().endsWith(t))throw n.free(),new Error("Exactly one SQL statement is required");return n}function x(e){nt(e).free();let n=h.prepare(e);try{n.run()}finally{n.free()}}function P(e){return e?.map(t=>{if(Oa(t))return Bu(t);if(typeof t!="bigint")return t;let n=Number(t);return Number.isSafeInteger(n)?n:t.toString()})}function Oa(e){return typeof e=="string"&&e.includes("\0")}function ne(e){return typeof e=="bigint"&&!Number.isSafeInteger(Number(e))?"CAST(? AS INTEGER)":Oa(e)?"CAST(? AS TEXT)":"?"}function Bu(e){let t=ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]);if(t==="utf-8")return new TextEncoder().encode(e);let n=t==="utf-16le",r=new Uint8Array(e.length*2);for(let o=0;o>>8,r[o*2+1]=n?i>>>8:i&255}return r}function ot(e){nt(e).free()}function rt(e,t){if(t!==void 0&&!(typeof SharedArrayBuffer=="function"&&t instanceof Int32Array&&t.length>0&&t.buffer instanceof SharedArrayBuffer))throw new Error("Invalid query cancellation flag");let n=()=>t!==void 0&&Atomics.load(t,0)!==0,r=()=>{let a=new Error("Query execution cancelled");throw a.name="AbortError",a};n()&&r();let o=Date.now()+Yr,i;h.progress_handler($u,()=>n()?(i="cancelled",!0):Date.now(){let n=nt(e),r=n.getColumnNames();n.free();let o=mt(e,r.length),i=nt(o.sql),a=[];try{for(;i.step();)a.push(i.get(null,{useBigInt:!0}));let{rows:s,exactIntegerTexts:l}=Qe(a,o.valueColumnCount);return{headers:r,rows:s,exactIntegerTexts:l}}finally{i.free()}},t)}function La(e,t){if(t!=null)return t;let n=e??[];return n[0]==="rowid"?n.slice(1):n}function W(e,t){try{x(`ROLLBACK TO ${e}`),x(`RELEASE ${e}`)}catch(n){console.warn(`Failed to rollback savepoint (${t}):`,Te(n))}}function Mu(e){for(Pe.add(e);Pe.size>64;)Pe.delete(Pe.values().next().value)}function $a(e){x(`ROLLBACK TO ${e}`),x(`RELEASE ${e}`)}function On(e){let t=tt;if(!t||e!==void 0&&t.sessionId!==e)return!1;tt=null,Mu(t.sessionId),t.expiryTimer!==void 0&&clearTimeout(t.expiryTimer);try{x(`RELEASE ${t.savepointName}`)}catch(n){try{$a(t.savepointName)}catch(r){let o=[n,r];try{h?.close()}catch(i){o.push(i)}finally{h=null}throw new AggregateError(o,"Cell read snapshot cleanup failed; the owning web database was closed")}}return!0}function va(e){e.expiryTimer!==void 0&&clearTimeout(e.expiryTimer),e.expiresAt=Math.min(e.absoluteExpiresAt,e.lastAccessAt+lo),e.expiryTimer=setTimeout(()=>{try{On(e.sessionId)}catch(t){console.error("[Worker] Failed to expire cell read session:",Te(t))}},Math.max(1,e.expiresAt-Date.now()))}async function ka(e){Gs(e);let t=await le(e.table),n=Q(e.rowId,t);return{table:e.table,column:e.column,predicateSql:n.sql,predicateParams:n.params}}function Uu(e){let t=C(e.column);return{sql:`SELECT typeof(${t}), CASE WHEN ${t} IS NULL THEN 0 ELSE length(CAST(${t} AS BLOB)) END FROM ${L(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function qu(e){return{sql:`SELECT substr(CAST(${C(e.column)} AS BLOB), ? + 1, ?) FROM ${L(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function Be(){return ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0])}function Pa(e,t){let n=Uu(t),r=h.exec(n.sql,P(n.params),{useBigInt:!0});return Js(r[0]?.values??[],Be(),e)}async function An(e){if(!h)throw new Error("No database initialized");let t=await ka(e);return Pa(e,t)}async function Vu(e){if(!h)throw new Error("No database initialized");if(tt)throw new Error("At most one web cell read session may be open");let t=await ka(e),n=V("sp_cell_read");x(`SAVEPOINT ${n}`);try{let r=Pa(e,t),o=Date.now(),i={sessionId:crypto.randomUUID(),target:e,sqlTarget:t,metadata:r,savepointName:n,lastAccessAt:o,absoluteExpiresAt:o+Na,expiresAt:o+lo,expiryTimer:void 0};return tt=i,va(i),{sessionId:i.sessionId,metadata:r,expiresAt:i.expiresAt}}catch(r){try{$a(n)}catch(o){let i=[r,o];try{h?.close()}catch(a){i.push(a)}finally{h=null}throw new AggregateError(i,"Cell read session open failed; the owning web database was closed")}throw r}}async function Fu(e,t,n){Ys(t,n);let r=tt;if(!r||r.sessionId!==e)throw new Error(Pe.has(e)?`Cell read session ${e} is closed or expired`:`Unknown cell read session: ${String(e)}`);if(Date.now()>=r.expiresAt)throw On(e),new Error(`Cell read session ${e} is closed or expired`);let o=qu(r.sqlTarget),a=h.exec(o.sql,P([t,n,...o.params]))[0]?.values??[];if(a.length!==1)throw new Error(a.length===0?`Cell ${r.target.table}.${r.target.column} no longer exists in its snapshot`:`Cell ${r.target.table}.${r.target.column} matched more than one row`);let s=a[0][0],l=s===null?new Uint8Array(0):s;if(!(l instanceof Uint8Array))throw new Error(`SQLite returned a non-BLOB chunk for ${r.target.table}.${r.target.column}`);return r.lastAccessAt=Date.now(),va(r),{byteOffset:t,bytes:l.slice(),done:t+l.byteLength>=r.metadata.byteLength}}async function Wu(e){if(typeof e!="string"||e.length===0)throw new Error("Cell read session id is required");if(!On(e)&&!Pe.has(e))throw new Error(`Unknown cell read session: ${e}`)}function ju(e){if(tt&&!["readCellChunk","closeCellReadSession","initializeDatabase"].includes(e))throw new Error("A cell read snapshot is active; close it before another database operation")}function Hu(e){if(e===void 0)return At;if(!Number.isSafeInteger(e)||e<1)throw new Error("pagedExportMaxBytes must be a positive safe integer");if(e>At)throw new Error(`pagedExportMaxBytes must not exceed ${At} bytes`);return e}function Te(e){let t="Unknown error";try{t=e&&typeof e=="object"&&typeof e.message=="string"&&e.message?e.message:String(e)}catch{}return t||(t="Unknown error"),t.length<=ya?t:t.slice(0,ya)+`... [truncated from ${t.length} characters]`}async function Qu(e,t){if(On(),h&&(h.close(),h=null),Yr=Number.isFinite(t.queryTimeout)&&t.queryTimeout>0?t.queryTimeout:Ia,ae=t.readOnlyMode===!0,Cn=null,Nt="memory",_t=0,xn=Hu(t.pagedExportMaxBytes),_a=Wr(t.pagedExactCountMaxFileBytes),lo=Mr(t.cellReadSessionIdleTimeoutMs,Dr),Na=Mr(t.cellReadSessionAbsoluteTimeoutMs,Br),Pe.clear(),{SQL:Ea,db:h}=await B(t),Aa=Ea.queryPlanReaderActive===!0,h.run("PRAGMA foreign_keys = ON"),!ae){let n=zu();n&&(ae=!0,Cn=n)}return ae&&(typeof h.enforceReadOnly=="function"?h.enforceReadOnly():h.run("PRAGMA query_only = ON")),{operations:{},isReadOnly:ae,storage:Nt,...Cn?{readOnlyReason:Cn}:{}}}function Sa(e){return e?.errno===Ku||/read[\s-]?only/i.test(Te(e))?"This database cannot be written by this process, so it is open read-only (SQLite: attempt to write a readonly database).":null}function zu(){let e=Number(h.exec("PRAGMA user_version")[0]?.values?.[0]?.[0])|0;try{h.run("BEGIN")}catch(n){return Sa(n)}let t=null;try{h.run(`PRAGMA user_version = ${e}`)}catch(n){t=Sa(n)}finally{h.run("ROLLBACK")}return t}async function Xu(e,t=[],n){if(!h)throw new Error("No database initialized");if(ae)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");try{return rt(()=>h.exec(e,t),n).map(o=>({headers:o.columns,rows:o.values}))}catch(r){throw r}}async function Gu(e,t="[]",n){if(!h)throw new Error("No database initialized");if(typeof e!="string"||typeof t!="string")throw new TypeError("SQL and parameter JSON must be strings");let r=gs(e),o=Es(t);if(o.length!==r.parameterCount)throw new Error(`Expected ${r.parameterCount} positional parameters.`);let i=`query_columns_${crypto.randomUUID().replace(/-/g,"")}`,a=Number(h.exec("PRAGMA query_only")[0]?.values[0]?.[0])===1,s=!1,l;try{a&&x("PRAGMA query_only = OFF"),l=rt(()=>{x(`CREATE TEMP VIEW "${i}" AS ${r.metadataSql}`),s=!0;let u=(h.exec("SELECT substr(name, 1, 4097) FROM pragma.pragma_table_info(?, 'temp') ORDER BY cid LIMIT ?",[i,fn+1])[0]?.values??[]).map(c=>String(c[0]));if(!u.length||u.length>fn)throw new Error("Queries support 1 to 128 result columns.");if(u.some(c=>c.length>4096))throw new Error("Result column labels must be at most 4096 characters.");return u},n)}finally{try{s&&(a&&x("PRAGMA query_only = OFF"),x(`DROP VIEW temp."${i}"`))}finally{if(a)try{x("PRAGMA query_only = ON")}catch(u){let c=h;throw h=null,c.close(),u}}}return rt(()=>{let u=ws(r.sql,l.length),c=nt(u.sql);try{c.bind(o);let d=[];for(;d.length<=Ie&&c.step();)d.push(c.get(null,{useBigInt:!0}));return Ss(l,d,u.valueColumnCount)}finally{c.free()}},n)}function Yu(e){if(e==null)return 5e3;let t=Number(e);return Number.isFinite(t)?Math.min(5e4,Math.max(1,Math.trunc(t))):5e3}function Ju(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.trunc(t)):1/0}function Zu(e){if(e==null)return[];if(!Array.isArray(e))throw new Error("Console parameters must be a JSON array.");if(e.length>ba)throw new Error(`Use at most ${ba} positional parameters.`);for(let t of e)if(t!==null){if(typeof t=="string"){if(t.includes("\0"))throw new Error("Console parameters must not contain NUL bytes; SQLite would bind the text truncated at the first one.");continue}if(!(typeof t=="number"&&Number.isFinite(t)))throw new Error("Console parameters must be null, string, or finite number values.")}return e}function Da(e,t){try{e.bind(t)}catch(n){throw new Error(`cannot bind ${t.length} positional parameter${t.length===1?"":"s"}: `+Te(n))}}function Ua(e){let t=0;for(;;){let n=t;for(;tIe}}function od(e,t){let n=ys(e,t),r=h.prepare(n.sql);try{if(r.bind(n.params),!r.step())throw new Error(Ma);return Va(hs(r.get()[0]).rows)}finally{r.free()}}function id(e,t){if(nd.test(Ua(e)))throw new Error("PRAGMA statements have no query plan (and some pragmas take effect while being compiled, so they are not even prepared here). Use Run.");let n=nt(`EXPLAIN QUERY PLAN ${e}`);try{t.length>0&&Da(n,t);let r=[];for(;r.length<=Ie&&n.step();){let o=n.get();if(o.length!==Ba.length||typeof o[3]!="string")throw new Error(Ma);if(new TextEncoder().encode(o[3]).byteLength>td)throw new Error("Query plan detail exceeds the 65,536-byte limit.");r.push(o)}return Va(r)}finally{n.free()}}function sd(e,t){if(typeof e!="string"||e.trim()==="")throw new Error("Enter one SQL statement to explain.");if(new TextEncoder().encode(e).byteLength>ed)throw new Error("Query plan SQL exceeds 262,144 UTF-8 bytes.");let n=Ee(e);for(let r of n.matchAll(qa))if(r[0]===";")throw new Error("Exactly one SQL statement is required");return Aa&&rd(n)?od(n,t):id(n,t)}async function ad(e,t={},n){if(!h)throw new Error("No database initialized");if(ae)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");if(typeof e=="string"&&e.includes("\0"))throw new Error("SQL contains a NUL byte; SQLite stops compiling at the first NUL, so the rest of the script would be silently skipped");let r=Zu(t.params),o=Yu(t.maxRows),i=Ju(t.maxStatements),a=Date.now(),s=h.exec("SELECT total_changes()")[0].values[0][0],l=h.exec("PRAGMA schema_version")[0].values[0][0],u=()=>{let E=h.exec("SELECT total_changes()")[0].values[0][0],y=h.exec("PRAGMA schema_version")[0].values[0][0];return{mutated:E-s>0||y!==l,changes:E-s,durationMs:Date.now()-a}},c=()=>{try{return u()}catch{return{mutated:!0,changes:0,durationMs:Date.now()-a}}};if(t.explain===!0)try{return{results:[rt(()=>sd(e,r),n)],explain:!0,statementsSkipped:!1,...u()}}catch(E){return{results:[],error:Te(E),explain:!0,multiStatement:!1,statementsSkipped:!1,...c()}}let d=0,f=!1,m;try{m=rt(()=>{let E=[],y=h.iterateStatements(e),g=!1;for(;;){if(d>=i){g=!0;break}d++;let S=y.next();if(S.done)break;let w=S.value;try{r.length>0&&Da(w,r);let R=w.getColumnNames(),I=!1,T=!1;if(R.length===0&&(T=w.step(),I=!0,T&&(R=w.getColumnNames())),R.length===0){if(!I||T)for(;w.step(););}else{let A=[],$=!1;for(I||(T=w.step());T;)A.length1,statementsSkipped:f,...g}}return{results:m,statementsSkipped:f,...u()}}async function ld(e){if(!h)throw new Error("No database initialized");let t=Nt==="paged"&&!ae;if(Nt==="paged"&&ae)throw new Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");let n=()=>new Error(`Cannot download this page-on-demand database: the merged image would exceed the ${xn}-byte browser memory limit. Saving materializes the complete database in memory; use the desktop extension or reduce the database size.`);if(t&&_t>xn)throw n();let r;try{r=h.export()}catch(o){let i=Te(o);throw t&&/transaction is open|while a transaction/i.test(i)?new Error("Cannot save while a database transaction is open; retry after the edit completes.",{cause:o}):o}if(t&&r.byteLength>xn)throw n();return r}async function cd(e,t,n,r,o={}){if(!h)throw new Error("No database initialized");let i=e?.table;if(!i)throw new Error("No table specified");let{format:a="csv",header:s=!0,includeTableName:l=!0,rowIds:u=null,maxExportBytes:c}=o;if(!["csv","json","sql","excel"].includes(a))throw new Error(`Unsupported export format: ${a}`);let d=Number.isSafeInteger(c)&&c>0?Math.min(c,ku):so,f=[{sql:"",params:[]}];if(u&&u.length>0){let O=await le(i);if(u.some(ie)&&!u.every(ie))throw new Error("Cannot mix rowid and primary-key row identities");let D=new Set,p=[];for(let b of u){let N=O.kind==="rowid"?H(b):b,k=String(N);D.has(k)||(D.add(k),p.push(N))}f=ze(p,O)}let m=t&&t.length>0?t:ud(i);if(m.length>In)throw new Error(`Cannot export more than ${In} columns`);let E=a!=="csv"&&a!=="excel",y=m.map((O,D)=>{let p=C(O),b=`typeof(${p})`,N=`octet_length(${p})`;return`CASE ${b} WHEN 'null' THEN 'n:0:' WHEN 'integer' THEN 'i:0:' || CAST(${p} AS TEXT) WHEN 'real' THEN 'r:0:' || printf('%!.17g', ${p}) WHEN 'text' THEN 't:' || CAST(${N} AS TEXT) || ':' || hex(CAST(${p} AS BLOB)) WHEN 'blob' THEN 'b:' || CAST(${N} AS TEXT) || ':' || `+(E?`hex(${p}) `:"'' ")+`END AS ${C(`__export_cell_${D}`)}`}).join(", "),g=V("sp_export_rows");x(`SAVEPOINT ${g}`);let S=[];try{let O=1024;for(let D of f){let p=D.sql?` WHERE ${D.sql}`:"";if(O+=pd(i,m,p,D.params,a,d),!Number.isSafeInteger(O)||O>d)throw co(d)}for(let D of f){let p=D.sql?` WHERE ${D.sql}`:"",b=h.exec(`SELECT ${y} FROM ${L(i)}${p}`,D.params);b.length>0&&S.push(...b[0].values)}x(`RELEASE ${g}`)}catch(O){throw W(g,"exportTable"),O}let w=m,R=ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),I=S.map((O,D)=>{if(O.length!==m.length)throw new Error(`SQLite returned ${O.length} packed export cells for row ${D}; expected ${m.length}`);return m.map((p,b)=>fd(i,p,O[b],E,R))}),T=new Zr(d),A="text/plain",$=`${i}.${a}`;switch(a){case"csv":Ta(w,I,s,T),A="text/csv";break;case"json":gd(w,I,T),A="application/json";break;case"sql":yd(i,w,I,l,T),A="text/sql";break;case"excel":Ta(w,I,s,T),A="text/csv",$=`${i}.csv`;break}return{contentChunks:T.finish(),filename:$,mimeType:A}}function co(e){if(e===so)return new Error(`Web demo exports are limited to ${vu} because the worker RPC cannot stream downloads; use the desktop extension for larger exports.`);let t=e/(1024*1024);return new Error(`Export exceeds the ${t} MiB (${e} bytes) limit; the worker assembles the whole file in memory, so larger exports need the native engine.`)}function ud(e){let t=h.prepare(`SELECT * FROM ${L(e)} LIMIT 0`);try{return t.getColumnNames()}finally{t.free()}}function dd(e,t,n){if(e.length!==t*2||/[^0-9a-f]/i.test(e))throw new Error(`SQLite returned invalid packed bytes for ${n}`);let r=new Uint8Array(t);for(let o=0;o1;){let n=[];for(let r=0;r{let f=C(d),m=`length(${f})`,E=o==="csv"||o==="excel"?"64":o==="json"?`((${m} + 2) / 3) * 4 + 64`:`${m} * 2 + 64`;return`CASE typeof(${f}) WHEN 'text' THEN length(CAST(${f} AS BLOB)) * 6 + 64 WHEN 'blob' THEN ${E} ELSE 64 END`})),l=h.exec(`SELECT COUNT(*), COALESCE(SUM(${a}), 0) FROM ${L(e)}${n}`,r)[0]?.values?.[0]??[0,0],u=Number(l[0]),c=Number(l[1])+u*128;if(!Number.isSafeInteger(c)||c<0)throw co(i);return c}function Jr(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function Ta(e,t,n,r){let o=!1,i=a=>{o&&r.append(` +`),r.append(a.join(",")),o=!0};n&&i(e.map(a=>gr({storageClass:"text",value:a})));for(let a of t)i(a.map(gr))}function gd(e,t,n){n.append("[");for(let r=0;r{l>0&&n.append(`, `),n.append(` ${JSON.stringify(s)}: ${Ni(i[s])}`)}),n.append(` }`)}n.append(t.length===0?"]":` -]`)}function gd(e,t,n,r,o){let i=r?C(e):'"table_name"',a=t.map(C).join(", ");n.forEach((s,l)=>{let u=s.map(Oi).join(", ");l>0&&o.append(` -`),o.append(`INSERT INTO ${i} (${a}) VALUES (${u});`)})}async function Va(e){let t=h.exec(`SELECT "type", "wr" FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? LIMIT 1`,[e]);if((t[0]?.values.length??0)===0)return;let n=Sr(t[0].values[0][0],t[0].values[0][1]);if(!n)return;if(n==="rowid")return{kind:"rowid"};let r=br(await mo(e));if(r.length===0)throw new Error(`WITHOUT ROWID table ${e} has no declared primary key`);return{kind:"primaryKey",columns:r}}async function le(e){let t=await Va(e);if(!t)throw new Error(`Table not found: ${e}`);if(t.kind==="rowid"&&(h.exec(ft,[e,e])[0]?.values.length??0)!==1)throw new Error(`Table ${e} is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity`);return t}function eo(e){return new Error(`An UPDATE trigger changed or removed the primary-key identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function Ln(e,t,n,r){let i=h.exec(`SELECT ${bt(t)} FROM ${L(e)} WHERE ${n.sql} LIMIT 2`,P(n.params),{useBigInt:!0})[0]?.values??[];if(i.length===0)throw r??new Error(`Updated row in ${e} no longer exists`);if(i.length!==1)throw new Error(`Primary-key identity for ${e} matched more than one row`);return Tt(t,i[0],ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot resolve updated identity in ${e}`)}function uo(e){let t=h.exec(vi,[e]);return Pi(t[0]?.values??[],e)}function yd(e,t,n=!0){let r=[...new Set(t)];if(r.length===0)throw new Error("UPDATE trigger probe requires at least one column");let o=r.map(a=>{let s=C(a);return`${s} = ${s}`}),i=n?"rowid = ?":"0";return`EXPLAIN UPDATE ${L(e)} SET ${o.join(", ")} WHERE ${i}`}function hd(e,t){return`EXPLAIN ${t.length===0?`INSERT INTO ${L(e)} DEFAULT VALUES`:`INSERT INTO ${L(e)} (${t.map(C).join(", ")}) VALUES (${t.map(()=>"NULL").join(", ")})`}`}function Ed(e){return`EXPLAIN DELETE FROM ${L(e)} WHERE 0`}function Ot(e,t,n=!0){let r=h.exec(Vi,P([e]),{useBigInt:!0}),o=Fi(r[0]?.values??[],e),i=h.exec(yd(e,t,n),P(n?[0]:[]),{useBigInt:!0});Wi(e,o,i[0]?.values??[],n?"rowid":"primary-key")}function De(e,t,n=[]){let r=e==="INSERT"?hd(t,n):Ed(t),o=h.exec(r,[],{useBigInt:!0});ji(e,t,o[0]?.values??[])}function fo(e,t,n,r,o){let i=t!==void 0&&r!==void 0&&He(t,r),a=i?C(t):"rowid",s=i?o:n,u=h.exec(`SELECT CAST(rowid AS TEXT) FROM ${L(e)} WHERE ${a} = ? LIMIT 2`,P([s??null]),{useBigInt:!0})[0]?.values??[];if(u.length===0)throw yt(e);if(u.length!==1)throw new Error(`Rowid identity for ${e} matched more than one row`);return H(u[0][0])}function to(e,t){let n=typeof t=="string"?t:JSON.stringify(t),r=h.exec("SELECT json_patch(COALESCE(?, '{}'), ?)",P([e,n]))[0]?.values?.[0]?.[0];if(typeof r!="string")throw new Error("SQLite returned an invalid json_patch result");return r}function wd(e,t,n,r,o){let i=Be(),a=new Map;for(let l of n){let u=H(l.rowId),c=a.get(u)??[];c.push({...l,rowId:u}),a.set(u,c)}let s=[];for(let[l,u]of a){let c=[...new Set(u.map(y=>y.column))];if(c.length!==u.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let d=h.exec(`SELECT ${c.map(se).join(", ")} FROM ${L(e)} WHERE rowid = ? LIMIT 2`,P([l]),{useBigInt:!0})[0];if((d?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let f=u.map((y,g)=>{let S=K(d.values[0][g*2],d.values[0][g*2+1],`${e}.${y.column}`,{textEncoding:i}),w=S.value,R=gn(y.value,w,y.operation??"set"),x=R.operation==="json_patch"?to(w,R.value):R.value;return!o&&R.operation==="json_patch"&&Ye(x,r),{update:y,priorValue:w,priorState:S,prepared:R,storedValue:x}}),m=l;for(let y of f){let g=C(y.update.column),S=y.prepared.operation==="json_patch",w=S?typeof y.prepared.value=="string"?y.prepared.value:JSON.stringify(y.prepared.value):y.storedValue,R=S?`json_patch(COALESCE(${g}, '{}'), ?)`:ne(y.storedValue);if(h.run(`UPDATE ${L(e)} SET ${g} = ${R} WHERE rowid = ?`,P([w,m])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);m=fo(e,t,m,y.update.column,y.storedValue)}let E=h.exec(`SELECT ${c.map(se).join(", ")} FROM ${L(e)} WHERE rowid = ? LIMIT 2`,P([m]),{useBigInt:!0})[0];if((E?.values.length??0)!==1)throw yt(e);for(let[y,g]of f.entries())s.push({rowId:l,newRowId:m,columnName:g.update.column,priorValue:g.priorValue,newValue:g.prepared.value,priorState:g.priorState,postState:K(E.values[0][y*2],E.values[0][y*2+1],`${e}.${g.update.column}`,{textEncoding:i}),operation:g.prepared.operation})}return s}async function Sd(e,t={}){if(!h)throw new Error("No database initialized");t=Qs(t,1e3);let{columns:n=null,offset:r,limit:o,orderBy:i=null,orderDir:a="ASC",filters:s=[],globalFilter:l="",globalFilterColumns:u=null}=t,c=n,d=i,f=null,m,E,y=!1;if(n?.[0]?.toLowerCase()==="rowid")if(E=await Va(e),E?.kind==="primaryKey"){let v=E,q=n.slice(1),ce=v.columns.map(Re=>Re.identifier).filter(Re=>!q.includes(Re));c=[...q,...ce],m={identity:v,visibleColumns:q},vr({...t,columns:n})&&(d=null,f=v.columns.map(Re=>Re.identifier))}else E?.kind==="rowid"&&(y=(h.exec(ft,[e,e])[0]?.values.length??0)>0);let g=E?.kind==="primaryKey"||y?E:void 0,S=Pr(t,g),w=S?kr(e,t):void 0,R=S?Fs(e,t,g):void 0,x=y&&c?.[0]?.toLowerCase()==="rowid"&&c.length>In,T=x?c.slice(1):c,A;T&&T.length>0?A=T.map((v,q)=>y&&q===0&&v.toLowerCase()==="rowid"?`${C(v)} AS ${C("rowid")}`:C(v)).join(", "):A="*";let $=[],O=[];if(s&&s.length>0)for(let v of s){let q=Ae(v.value);v.column&&q!==void 0&&($.push(`${C(v.column)} LIKE ? ESCAPE '\\'`),O.push(`%${lt(q)}%`))}let D=Ae(l);if(D!==void 0){let v=Oa(n,u);if(v.length>0){let q=v.map(ce=>`${C(ce)} LIKE ? ESCAPE '\\'`);$.push(`(${q.join(" OR ")})`);for(let ce=0;ce{if(R)return Ws({selectListSql:v,escapedTable:L(e),whereClauses:$,filterParams:p,plan:R});let q=`SELECT ${v} FROM ${L(e)}`;$.length>0&&(q+=` WHERE ${$.join(" AND ")}`);let ce=Vs(S,R),Re=ce?ce.orderByColumns:f??(d?[d]:[]);if(Re.length>0){let ol=ce?ce.orderDir:a==="DESC"?"DESC":"ASC";q+=` ORDER BY ${Re.map(il=>`${C(il)} ${ol}`).join(", ")}`}return q+=` LIMIT ${parseInt(o,10)} OFFSET ${parseInt(r,10)}`,{sql:q,params:p}},{sql:N,params:k}=b(A);O=k;let U=x?b(C("rowid")):void 0,j=h.prepare(N,O),F=j.getColumnNames(),re=x?["rowid",...F]:F;j.free();let Lt=Number.isSafeInteger(t.maxInlineCellBytes)&&t.maxInlineCellBytes>0?t.maxInlineCellBytes:rn,Ja=Number.isSafeInteger(t.maxPageResponseBytes)&&t.maxPageResponseBytes>0?t.maxPageResponseBytes:be,go={limit:parseInt(o,10),maxInlineCellBytes:Math.min(rn,Lt),maxPageResponseBytes:Math.min(be,Ja)},Za=m?m.identity.columns.map(v=>{let q=re.indexOf(v.identifier);if(q<0)throw new Error(`Primary-key column missing from table fetch: ${v.identifier}`);return q}):[],yo=S?S.keyColumns.map(v=>re.indexOf(v)).filter(v=>v>=0):[],ho=[...new Set([...Za,...yo])],el=x?ho.filter(v=>v>0).map(v=>v-1):ho,Eo=F.length*2+1<=In?F.map((v,q)=>q):el,me=on(N,F.length,go,Eo),vn=mt(me.sql,me.primaryTransportColumnCount),tl=h.exec(vn.sql,O,{useBigInt:!0}),$t=ns(tl[0]?.values??[],void 0,me),Me=(U?h.exec(U.sql,U.params,{useBigInt:!0}):void 0)?.[0]?.values;if(Me&&Me.length!==$t.length)throw new Error("Synthetic rowid companion row count does not match the value page");let Ce=Me?Me.map((v,q)=>{if(v.length!==1)throw new Error(`Synthetic rowid companion row ${q} is not one value`);return[v[0],...$t[q]]}):$t,wo=[],kn=re[0]?.toLowerCase()==="rowid",Pn=kn&&Di(Ce,0),So=vn.valueColumnCount===void 0&&kn;if(!y&&(So||Pn)&&Ce.length>0&&(y=(h.exec(ft,[e,e])[0]?.values.length??0)>0),y&&So)for(let v of Bi(e,re,Ce.map(q=>q[0]))){let q=h.exec(v.sql,v.params,{useBigInt:!0});wo.push({query:v,rows:q[0]?.values??[]})}let bo=Mi(Ce,wo),Dn=Qe($t,vn.valueColumnCount,x?void 0:bo,!x&&y&&Pn?0:void 0),To=un(Dn.rows,F.length,Dn.exactIntegerTexts,go.maxPageResponseBytes),Co=Me?rs(Qe(Me,void 0,void 0,Pn?0:void 0).rows.map(v=>v[0]),To,bo):To,Bn=os(Dn.rows,me),Ue=Eo.length>0?ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]):void 0,Mn=x?me.rawTextColumnIndices.map(v=>v+1):me.rawTextColumnIndices,nl=Ue?ss({sourceRows:Ce,rawTextRows:Bn,rawTextColumnIndices:Mn,textEncoding:Ue,contained:Co}):Co,{rows:Un,oversizedCells:it,exactIntegerTexts:qn}=nl,pe=E?.kind==="rowid"&&kn&&!y?cs({rows:Un,oversizedCells:it,exactIntegerTexts:qn,rowOffset:parseInt(r,10)}):void 0,Ne=m&&Ue?fs({identity:m.identity,sourceColumns:re,visibleColumnCount:m.visibleColumns.length,identityRows:Ce,rawTextBytes:Bn,rawTextColumnIndices:Mn,rawTextValidationUnavailable:me.rawTextValidationUnavailable,textEncoding:Ue,rows:Un,oversizedCells:it,exactIntegerTexts:qn,effectiveInlineCellBytes:me.effectiveInlineCellBytes,rowOffset:parseInt(r,10)}):void 0,rl=S&&Ue?is({sourceRows:Ce,sourceColumnIndices:yo,rawTextRows:Bn,rawTextColumnIndices:Mn,textEncoding:Ue,rawTextValidationUnavailable:me.rawTextValidationUnavailable}):void 0,vt=S&&w!==void 0?js({tag:w,key:S,projectionColumns:re,rows:Ce,oversizedCells:it,excludedRowIndices:rl}):void 0;return m&&Ne?{headers:["rowid",...m.visibleColumns],rows:Ne.rows,exactIntegerTexts:Ne.exactIntegerTexts,...Ne.oversizedCells?{oversizedCells:Ne.oversizedCells}:{},...Ne.readOnlyRowReasons?{readOnlyRowReasons:Ne.readOnlyRowReasons}:{},...vt?{keysetAnchors:vt}:{}}:{headers:re,rows:pe?.rows??Un,exactIntegerTexts:pe?pe.exactIntegerTexts:qn,...(pe?pe.oversizedCells:it)?{oversizedCells:pe?pe.oversizedCells:it}:{},...pe?.readOnlyRowReasons?{readOnlyRowReasons:pe.readOnlyRowReasons}:{},...vt?{keysetAnchors:vt}:{}}}async function bd(e,t={}){if(!h)throw new Error("No database initialized");let{columns:n=[],filters:r=[],globalFilter:o="",globalFilterColumns:i=null}=t,a=`SELECT COUNT(*) FROM ${L(e)}`,s=[],l=[];if(r&&r.length>0)for(let f of r){let m=Ae(f.value);f.column&&m!==void 0&&(s.push(`${C(f.column)} LIKE ? ESCAPE '\\'`),l.push(`%${lt(m)}%`))}let u=Ae(o);if(u!==void 0){let f=Oa(n,i);if(f.length>0){let m=f.map(E=>`${C(E)} LIKE ? ESCAPE '\\'`);s.push(`(${m.join(" OR ")})`);for(let E=0;E0&&(a+=` WHERE ${s.join(" AND ")}`);let c={storage:Nt,filtered:s.length>0,authorityConfirmedRowIdTable:!0,pagedFileSizeBytes:_t,exactCountMaxFileBytes:Aa};if(jr(c)){let f=!1;try{if(f=(h.exec(ft,[e,e])[0]?.values.length??0)>0,jr({...c,authorityConfirmedRowIdTable:f})){let E=h.exec(aa(e)),y=ua(E[0]?.values?.[0]);if(y!==void 0)return{count:y,isExact:!1}}}catch{}if(!f){let m=!1;try{m=(h.exec(sa,[e])[0]?.values.length??0)>0}catch{}if(m){try{let E=h.exec(la(e),[Ze+1]),y=ca(E[0]?.values?.[0]?.[0],_t);if(y)return y}catch{}return{count:Hr(_t),isExact:!1}}}}let d=h.exec(a,l);return d.length===0||d[0].values.length===0?{count:0,isExact:!0}:{count:d[0].values[0][0],isExact:!0}}async function Td(){if(!h)throw new Error("No database initialized");let e=h.exec(` +]`)}function yd(e,t,n,r,o){let i=r?C(e):'"table_name"',a=t.map(C).join(", ");n.forEach((s,l)=>{let u=s.map(Oi).join(", ");l>0&&o.append(` +`),o.append(`INSERT INTO ${i} (${a}) VALUES (${u});`)})}async function Fa(e){let t=h.exec(`SELECT "type", "wr" FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? LIMIT 1`,[e]);if((t[0]?.values.length??0)===0)return;let n=Sr(t[0].values[0][0],t[0].values[0][1]);if(!n)return;if(n==="rowid")return{kind:"rowid"};let r=br(await mo(e));if(r.length===0)throw new Error(`WITHOUT ROWID table ${e} has no declared primary key`);return{kind:"primaryKey",columns:r}}async function le(e){let t=await Fa(e);if(!t)throw new Error(`Table not found: ${e}`);if(t.kind==="rowid"&&(h.exec(ft,[e,e])[0]?.values.length??0)!==1)throw new Error(`Table ${e} is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity`);return t}function eo(e){return new Error(`An UPDATE trigger changed or removed the primary-key identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function Ln(e,t,n,r){let i=h.exec(`SELECT ${bt(t)} FROM ${L(e)} WHERE ${n.sql} LIMIT 2`,P(n.params),{useBigInt:!0})[0]?.values??[];if(i.length===0)throw r??new Error(`Updated row in ${e} no longer exists`);if(i.length!==1)throw new Error(`Primary-key identity for ${e} matched more than one row`);return Tt(t,i[0],ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot resolve updated identity in ${e}`)}function uo(e){let t=h.exec(vi,[e]);return Pi(t[0]?.values??[],e)}function hd(e,t,n=!0){let r=[...new Set(t)];if(r.length===0)throw new Error("UPDATE trigger probe requires at least one column");let o=r.map(a=>{let s=C(a);return`${s} = ${s}`}),i=n?"rowid = ?":"0";return`EXPLAIN UPDATE ${L(e)} SET ${o.join(", ")} WHERE ${i}`}function Ed(e,t){return`EXPLAIN ${t.length===0?`INSERT INTO ${L(e)} DEFAULT VALUES`:`INSERT INTO ${L(e)} (${t.map(C).join(", ")}) VALUES (${t.map(()=>"NULL").join(", ")})`}`}function wd(e){return`EXPLAIN DELETE FROM ${L(e)} WHERE 0`}function Ot(e,t,n=!0){let r=h.exec(Vi,P([e]),{useBigInt:!0}),o=Fi(r[0]?.values??[],e),i=h.exec(hd(e,t,n),P(n?[0]:[]),{useBigInt:!0});Wi(e,o,i[0]?.values??[],n?"rowid":"primary-key")}function De(e,t,n=[]){let r=e==="INSERT"?Ed(t,n):wd(t),o=h.exec(r,[],{useBigInt:!0});ji(e,t,o[0]?.values??[])}function fo(e,t,n,r,o){let i=t!==void 0&&r!==void 0&&He(t,r),a=i?C(t):"rowid",s=i?o:n,u=h.exec(`SELECT CAST(rowid AS TEXT) FROM ${L(e)} WHERE ${a} = ? LIMIT 2`,P([s??null]),{useBigInt:!0})[0]?.values??[];if(u.length===0)throw yt(e);if(u.length!==1)throw new Error(`Rowid identity for ${e} matched more than one row`);return H(u[0][0])}function to(e,t){let n=typeof t=="string"?t:JSON.stringify(t),r=h.exec("SELECT json_patch(COALESCE(?, '{}'), ?)",P([e,n]))[0]?.values?.[0]?.[0];if(typeof r!="string")throw new Error("SQLite returned an invalid json_patch result");return r}function Sd(e,t,n,r,o){let i=Be(),a=new Map;for(let l of n){let u=H(l.rowId),c=a.get(u)??[];c.push({...l,rowId:u}),a.set(u,c)}let s=[];for(let[l,u]of a){let c=[...new Set(u.map(y=>y.column))];if(c.length!==u.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let d=h.exec(`SELECT ${c.map(se).join(", ")} FROM ${L(e)} WHERE rowid = ? LIMIT 2`,P([l]),{useBigInt:!0})[0];if((d?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let f=u.map((y,g)=>{let S=K(d.values[0][g*2],d.values[0][g*2+1],`${e}.${y.column}`,{textEncoding:i}),w=S.value,R=gn(y.value,w,y.operation??"set"),I=R.operation==="json_patch"?to(w,R.value):R.value;return!o&&R.operation==="json_patch"&&Ye(I,r),{update:y,priorValue:w,priorState:S,prepared:R,storedValue:I}}),m=l;for(let y of f){let g=C(y.update.column),S=y.prepared.operation==="json_patch",w=S?typeof y.prepared.value=="string"?y.prepared.value:JSON.stringify(y.prepared.value):y.storedValue,R=S?`json_patch(COALESCE(${g}, '{}'), ?)`:ne(y.storedValue);if(h.run(`UPDATE ${L(e)} SET ${g} = ${R} WHERE rowid = ?`,P([w,m])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);m=fo(e,t,m,y.update.column,y.storedValue)}let E=h.exec(`SELECT ${c.map(se).join(", ")} FROM ${L(e)} WHERE rowid = ? LIMIT 2`,P([m]),{useBigInt:!0})[0];if((E?.values.length??0)!==1)throw yt(e);for(let[y,g]of f.entries())s.push({rowId:l,newRowId:m,columnName:g.update.column,priorValue:g.priorValue,newValue:g.prepared.value,priorState:g.priorState,postState:K(E.values[0][y*2],E.values[0][y*2+1],`${e}.${g.update.column}`,{textEncoding:i}),operation:g.prepared.operation})}return s}async function bd(e,t={}){if(!h)throw new Error("No database initialized");t=Ks(t,1e3);let{columns:n=null,offset:r,limit:o,orderBy:i=null,orderDir:a="ASC",filters:s=[],globalFilter:l="",globalFilterColumns:u=null}=t,c=n,d=i,f=null,m,E,y=!1;if(n?.[0]?.toLowerCase()==="rowid")if(E=await Fa(e),E?.kind==="primaryKey"){let v=E,q=n.slice(1),ce=v.columns.map(Re=>Re.identifier).filter(Re=>!q.includes(Re));c=[...q,...ce],m={identity:v,visibleColumns:q},vr({...t,columns:n})&&(d=null,f=v.columns.map(Re=>Re.identifier))}else E?.kind==="rowid"&&(y=(h.exec(ft,[e,e])[0]?.values.length??0)>0);let g=E?.kind==="primaryKey"||y?E:void 0,S=Pr(t,g),w=S?kr(e,t):void 0,R=S?Ws(e,t,g):void 0,I=y&&c?.[0]?.toLowerCase()==="rowid"&&c.length>In,T=I?c.slice(1):c,A;T&&T.length>0?A=T.map((v,q)=>y&&q===0&&v.toLowerCase()==="rowid"?`${C(v)} AS ${C("rowid")}`:C(v)).join(", "):A="*";let $=[],O=[];if(s&&s.length>0)for(let v of s){let q=Ae(v.value);v.column&&q!==void 0&&($.push(`${C(v.column)} LIKE ? ESCAPE '\\'`),O.push(`%${lt(q)}%`))}let D=Ae(l);if(D!==void 0){let v=La(n,u);if(v.length>0){let q=v.map(ce=>`${C(ce)} LIKE ? ESCAPE '\\'`);$.push(`(${q.join(" OR ")})`);for(let ce=0;ce{if(R)return js({selectListSql:v,escapedTable:L(e),whereClauses:$,filterParams:p,plan:R});let q=`SELECT ${v} FROM ${L(e)}`;$.length>0&&(q+=` WHERE ${$.join(" AND ")}`);let ce=Fs(S,R),Re=ce?ce.orderByColumns:f??(d?[d]:[]);if(Re.length>0){let il=ce?ce.orderDir:a==="DESC"?"DESC":"ASC";q+=` ORDER BY ${Re.map(sl=>`${C(sl)} ${il}`).join(", ")}`}return q+=` LIMIT ${parseInt(o,10)} OFFSET ${parseInt(r,10)}`,{sql:q,params:p}},{sql:N,params:k}=b(A);O=k;let U=I?b(C("rowid")):void 0,j=h.prepare(N,O),F=j.getColumnNames(),re=I?["rowid",...F]:F;j.free();let Lt=Number.isSafeInteger(t.maxInlineCellBytes)&&t.maxInlineCellBytes>0?t.maxInlineCellBytes:rn,Za=Number.isSafeInteger(t.maxPageResponseBytes)&&t.maxPageResponseBytes>0?t.maxPageResponseBytes:be,go={limit:parseInt(o,10),maxInlineCellBytes:Math.min(rn,Lt),maxPageResponseBytes:Math.min(be,Za)},el=m?m.identity.columns.map(v=>{let q=re.indexOf(v.identifier);if(q<0)throw new Error(`Primary-key column missing from table fetch: ${v.identifier}`);return q}):[],yo=S?S.keyColumns.map(v=>re.indexOf(v)).filter(v=>v>=0):[],ho=[...new Set([...el,...yo])],tl=I?ho.filter(v=>v>0).map(v=>v-1):ho,Eo=F.length*2+1<=In?F.map((v,q)=>q):tl,me=on(N,F.length,go,Eo),vn=mt(me.sql,me.primaryTransportColumnCount),nl=h.exec(vn.sql,O,{useBigInt:!0}),$t=ns(nl[0]?.values??[],void 0,me),Me=(U?h.exec(U.sql,U.params,{useBigInt:!0}):void 0)?.[0]?.values;if(Me&&Me.length!==$t.length)throw new Error("Synthetic rowid companion row count does not match the value page");let Ce=Me?Me.map((v,q)=>{if(v.length!==1)throw new Error(`Synthetic rowid companion row ${q} is not one value`);return[v[0],...$t[q]]}):$t,wo=[],kn=re[0]?.toLowerCase()==="rowid",Pn=kn&&Di(Ce,0),So=vn.valueColumnCount===void 0&&kn;if(!y&&(So||Pn)&&Ce.length>0&&(y=(h.exec(ft,[e,e])[0]?.values.length??0)>0),y&&So)for(let v of Bi(e,re,Ce.map(q=>q[0]))){let q=h.exec(v.sql,v.params,{useBigInt:!0});wo.push({query:v,rows:q[0]?.values??[]})}let bo=Mi(Ce,wo),Dn=Qe($t,vn.valueColumnCount,I?void 0:bo,!I&&y&&Pn?0:void 0),To=un(Dn.rows,F.length,Dn.exactIntegerTexts,go.maxPageResponseBytes),Co=Me?rs(Qe(Me,void 0,void 0,Pn?0:void 0).rows.map(v=>v[0]),To,bo):To,Bn=os(Dn.rows,me),Ue=Eo.length>0?ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]):void 0,Mn=I?me.rawTextColumnIndices.map(v=>v+1):me.rawTextColumnIndices,rl=Ue?as({sourceRows:Ce,rawTextRows:Bn,rawTextColumnIndices:Mn,textEncoding:Ue,contained:Co}):Co,{rows:Un,oversizedCells:it,exactIntegerTexts:qn}=rl,pe=E?.kind==="rowid"&&kn&&!y?us({rows:Un,oversizedCells:it,exactIntegerTexts:qn,rowOffset:parseInt(r,10)}):void 0,Ne=m&&Ue?ms({identity:m.identity,sourceColumns:re,visibleColumnCount:m.visibleColumns.length,identityRows:Ce,rawTextBytes:Bn,rawTextColumnIndices:Mn,rawTextValidationUnavailable:me.rawTextValidationUnavailable,textEncoding:Ue,rows:Un,oversizedCells:it,exactIntegerTexts:qn,effectiveInlineCellBytes:me.effectiveInlineCellBytes,rowOffset:parseInt(r,10)}):void 0,ol=S&&Ue?ss({sourceRows:Ce,sourceColumnIndices:yo,rawTextRows:Bn,rawTextColumnIndices:Mn,textEncoding:Ue,rawTextValidationUnavailable:me.rawTextValidationUnavailable}):void 0,vt=S&&w!==void 0?Hs({tag:w,key:S,projectionColumns:re,rows:Ce,oversizedCells:it,excludedRowIndices:ol}):void 0;return m&&Ne?{headers:["rowid",...m.visibleColumns],rows:Ne.rows,exactIntegerTexts:Ne.exactIntegerTexts,...Ne.oversizedCells?{oversizedCells:Ne.oversizedCells}:{},...Ne.readOnlyRowReasons?{readOnlyRowReasons:Ne.readOnlyRowReasons}:{},...vt?{keysetAnchors:vt}:{}}:{headers:re,rows:pe?.rows??Un,exactIntegerTexts:pe?pe.exactIntegerTexts:qn,...(pe?pe.oversizedCells:it)?{oversizedCells:pe?pe.oversizedCells:it}:{},...pe?.readOnlyRowReasons?{readOnlyRowReasons:pe.readOnlyRowReasons}:{},...vt?{keysetAnchors:vt}:{}}}async function Td(e,t={}){if(!h)throw new Error("No database initialized");let{columns:n=[],filters:r=[],globalFilter:o="",globalFilterColumns:i=null}=t,a=`SELECT COUNT(*) FROM ${L(e)}`,s=[],l=[];if(r&&r.length>0)for(let f of r){let m=Ae(f.value);f.column&&m!==void 0&&(s.push(`${C(f.column)} LIKE ? ESCAPE '\\'`),l.push(`%${lt(m)}%`))}let u=Ae(o);if(u!==void 0){let f=La(n,i);if(f.length>0){let m=f.map(E=>`${C(E)} LIKE ? ESCAPE '\\'`);s.push(`(${m.join(" OR ")})`);for(let E=0;E0&&(a+=` WHERE ${s.join(" AND ")}`);let c={storage:Nt,filtered:s.length>0,authorityConfirmedRowIdTable:!0,pagedFileSizeBytes:_t,exactCountMaxFileBytes:_a};if(jr(c)){let f=!1;try{if(f=(h.exec(ft,[e,e])[0]?.values.length??0)>0,jr({...c,authorityConfirmedRowIdTable:f})){let E=h.exec(la(e)),y=da(E[0]?.values?.[0]);if(y!==void 0)return{count:y,isExact:!1}}}catch{}if(!f){let m=!1;try{m=(h.exec(aa,[e])[0]?.values.length??0)>0}catch{}if(m){try{let E=h.exec(ca(e),[Ze+1]),y=ua(E[0]?.values?.[0]?.[0],_t);if(y)return y}catch{}return{count:Hr(_t),isExact:!1}}}}let d=h.exec(a,l);return d.length===0||d[0].values.length===0?{count:0,isExact:!0}:{count:d[0].values[0][0],isExact:!0}}async function Cd(){if(!h)throw new Error("No database initialized");let e=h.exec(` SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name @@ -65,6 +65,6 @@ ${t}`);if(!n.getSQL().trimEnd().endsWith(t))throw n.free(),new Error("Exactly on SELECT name, tbl_name FROM sqlite_master WHERE type = 'index' AND name NOT LIKE 'sqlite_%' ORDER BY name - `)[0]?.values||[]).map(l=>({identifier:l[0],parentTable:l[1]}));return{tables:r,views:i,indexes:s}}async function mo(e){if(!h)throw new Error("No database initialized");let t=h.exec(ki,[e]);return t.length===0?[]:t[0].values.filter(n=>Number(n[6]??0)!==1).map(n=>({ordinal:n[0],identifier:n[1],declaredType:n[2],isRequired:n[3],defaultExpression:n[4],primaryKeyPosition:n[5],isGenerated:Number(n[6]??0)===2||Number(n[6]??0)===3,isRowidAlias:Number(n[7]??0)===1}))}function Fa(){let e=n=>{let r=h.prepare(n),o=[];try{for(;r.step();)o.push(r.get());return o}finally{r.free()}},t=e("PRAGMA main.schema_version")[0]?.[0];if(!Number.isSafeInteger(t))throw new Error("Unable to read the destination database schema version.");return JSON.stringify([t,e("SELECT type, name, tbl_name, sql FROM temp.sqlite_schema ORDER BY type, name")])}async function Cd(e){if(!h)throw new Error("No database initialized");z(e,"Table name");let t=V("sp_import_preview");I(`SAVEPOINT ${t}`);try{let n=await mo(e);if(!n.length)throw new Error(`Table not found: ${e}`);let r=Fa();return I(`RELEASE SAVEPOINT ${t}`),{columns:n,schemaVersion:r}}catch(n){throw W(t,"getImportTarget"),n}}function _n(e){return(h.exec("SELECT name FROM pragma.pragma_table_xinfo(?) WHERE hidden = 0 ORDER BY cid",[e])[0]?.values??[]).map(n=>{if(typeof n[0]!="string")throw new Error(`SQLite returned invalid column metadata for ${e}`);return n[0]})}function Rd(e,t,n,r){let o=Be(),i=Q(n,t),a=r.map(se),l=h.exec(`SELECT ${a.join(", ")||"1"} FROM ${L(e)} WHERE ${i.sql} LIMIT 2`,P(i.params),{useBigInt:!0})[0]?.values??[];if(l.length!==1)throw new _e(e);let u=r.map((c,d)=>K(l[0][d*2],l[0][d*2+1],`${e}.${c}`,{textEncoding:o}));return{rowId:n,row:Object.fromEntries(r.map((c,d)=>[c,u[d].rawTextBytes??u[d].value])),storageClasses:r.map((c,d)=>({column:c,storageClass:u[d].storageClass}))}}function xd(e,t,n,r,o){if(o===void 0)return;let i=Q(n,t),a=Ds(r,t.kind==="rowid"),s=Bs(e,a,i),l=h.exec(s.sql,P(s.params),{useBigInt:!0})[0]?.values?.[0],u=Ms(l);Us({table:e,insertableColumns:r,includeSyntheticRowId:t.kind==="rowid",rowIds:[n],rowCount:u.rowCount,valueBytes:u.valueBytes,maxSnapshotBytes:o,operation:"Insert"})}function Ta(e,t,n,r){let o=_n(e),i=Q(n,t);return ro(e,[n],o,[i]),xd(e,t,n,o,r),Rd(e,t,n,o)}async function Id(){if(!h)throw new Error("No database initialized");let e={},t=["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","encoding","auto_vacuum"];for(let n of t)try{let r=h.exec(`PRAGMA ${n}`);r.length>0&&r[0].values.length>0&&(e[n]=r[0].values[0][0])}catch{}return e}async function Ad(e,t){if(!h)throw new Error("No database initialized");if(te("Pragma updates"),!["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","auto_vacuum"].includes(e))throw new Error(`Invalid or disallowed PRAGMA: ${e}`);let r;if(typeof t=="string"){if(!/^[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid PRAGMA string value: contains disallowed characters");r=`PRAGMA ${e} = '${t}'`}else if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Invalid PRAGMA numeric value: must be finite");r=`PRAGMA ${e} = ${t}`}else if(typeof t=="boolean")r=`PRAGMA ${e} = ${t?"ON":"OFF"}`;else throw new Error(`Invalid PRAGMA value type: ${typeof t}`);I(r)}async function _d(e,t,n,r,o,i,a){let s=a===ao,l=!s&&i!==void 0,u=s?0:Je([r],i);if(ve(t),!h)throw new Error("No database initialized");if(te("Cell updates"),ie(t))return(await Ga(e,[{rowId:t,column:n,value:r,operation:"set"}],void 0,i,a))[0]?.newRowId??t;let c=H(t);if((await le(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let f=V("sp_update_rowid_cell");I(`SAVEPOINT ${f}`);try{let m=uo(e);Ot(e,[n]);let E=C(n);if(h.run(`UPDATE ${L(e)} SET ${E} = ${ne(r)} WHERE rowid = ?`+(l?` AND NOT (typeof(${E}) IN ('text', 'blob') AND length(CAST(${E} AS BLOB)) > ?)`:""),P(l?[r,c,u]:[r,c])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1){if(l){let S=await An({table:e,rowId:c,column:n});if((S.storageClass==="text"||S.storageClass==="blob")&&S.byteLength>u)throw new Ge(e,n,S.storageClass,S.byteLength,u)}throw new Error(`Cannot update ${e}.${n}: row ${t} no longer exists`)}let g=fo(e,m,c,n,r);return I(`RELEASE ${f}`),g}catch(m){throw W(f,"updateCell"),m}}async function Nd(e,t,n,r,o,i){let a=Je([r],i);if(na(o,a),ve(t),!h)throw new Error("No database initialized");te("Oversized cell replacement");let s=await le(e),l=Q(t,s),u=C(n),c=()=>{if(h.run(`UPDATE ${L(e)} SET ${u} = ${ne(r)} WHERE ${l.sql} AND typeof(${u}) = ? AND length(CAST(${u} AS BLOB)) = ?`,P([r,...l.params,o.storageClass,o.byteLength])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(Zs);if(s.kind==="rowid")return fo(e,uo(e),H(t),n,r);let m=s.columns.findIndex(y=>y.identifier===n),E=wr(t,s,m>=0?[{column:n,value:r}]:[]);return Ln(e,s,Q(E,s),eo(e))},d=V("sp_replace_oversized_cell");I(`SAVEPOINT ${d}`);try{Ot(e,[n],s.kind==="rowid");let f=c();return I(`RELEASE ${d}`),f}catch(f){throw W(d,"replaceOversizedCell"),f}}async function Wa(e,t,n,r,o,i){if(!h)throw new Error("No database initialized");te("Row insertion"),r!==ao&&Je(Object.values(t),n);let a=Object.keys(t),s=Object.values(t),l=await le(e),u;if(a.length===0)u=`INSERT INTO ${L(e)} DEFAULT VALUES`;else{let d=a.map(C).join(", "),f=s.map(ne).join(", ");u=`INSERT INTO ${L(e)} (${d}) VALUES (${f})`}if(l.kind==="primaryKey"){let d=V("sp_insert_pk_row");I(`SAVEPOINT ${d}`);try{De("INSERT",e,a);let f=h.prepare(`${u} RETURNING `+bt(l),P(s)),m;try{if(!f.step())throw new Error(`Insert into ${e} did not return a primary-key identity`);if(m=f.get(null,{useBigInt:!0}),!m||f.step())throw new Error(`Insert into ${e} did not return exactly one primary-key identity`)}finally{f.free()}let E=Tt(l,m,ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot insert into ${e}`),y=Ln(e,l,Q(E,l)),g=o?Ta(e,l,y,i):y;return I(`RELEASE ${d}`),g}catch(f){throw W(d,"insertPrimaryKeyRow"),f}}let c=V("sp_insert_rowid_row");I(`SAVEPOINT ${c}`);try{De("INSERT",e,a),h.run(u,P(s));let d=h.exec("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")[0]?.values?.[0];if(!d||Number(d[0])!==1)throw new Error(`Insert into ${e} did not create exactly one row`);let f=H(d[1]),m=Q(f,l);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE ${m.sql} LIMIT 2`,P(m.params))[0]?.values.length??0)!==1)throw new Error(`Insert into ${e} did not leave one addressable row; the insert was rolled back`);let y=o?Ta(e,l,f,i):f;return I(`RELEASE ${c}`),y}catch(d){throw W(c,"insertRowIdRow"),d}}async function Od(e,t,n,r){return Wa(e,t,n,r,!1)}async function Ld(e,t,n,r){return Wa(e,t,n,void 0,!0,r)}function $d(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Import options must be an object");if(e.expectedSchemaVersion!==void 0&&typeof e.expectedSchemaVersion!="string")throw new Error("Import expectedSchemaVersion must be a string");let t=n=>{let r=e[n];if(r!==void 0){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Import ${n} must be a non-negative safe integer`);return r}};return{maxEditValueBytes:e.maxEditValueBytes,maxUndoSnapshotBytes:t("maxUndoSnapshotBytes"),maxSnapshotTransportBytes:t("maxSnapshotTransportBytes")}}function vd(e,t){if(!Array.isArray(e))throw new Error("Import rows must be an array");if(e.length===0)throw new Error("Import requires at least one row");if(e.length>Qr)throw new Error(`Import supports at most ${Qr.toLocaleString("en-US")} rows`);let n=Je([],t),r=new Array(e.length),o=0;for(let i=0;iKr)throw new Error(`Import supports at most ${Kr} columns`);if(o+=s.length,o>zr)throw new Error(`Import supports at most ${zr.toLocaleString("en-US")} cells; split the file into smaller imports`);for(let l of s)z(l,"Column name"),Ye(a[l],n);r[i]=s}return r}function kd(e,t,n,r){let o=L(e),i=t.length===0?`INSERT INTO ${o} DEFAULT VALUES`:`INSERT INTO ${o} (${t.map(C).join(", ")}) VALUES (${n.join(", ")})`;return r.kind!=="primaryKey"?i:`${i} RETURNING ${bt(r)}`}function Pd(e,t,n,r){let o=_n(e),i=ze(n,t),a=t.kind==="rowid"?"CAST(rowid AS TEXT)":bt(t),s=t.kind==="rowid"?1:t.columns.length*2,l=o.map(se),u=new Map(n.map((E,y)=>[String(E),y])),c=[],d=new Map,f=new Array(n.length),m=0;for(let E of i){let y=h.exec(`SELECT ${a}${l.length>0?", ":""}${l.join(", ")} FROM ${L(e)} WHERE ${E.sql}`,P(E.params),{useBigInt:!0})[0];for(let g of y?.values??[]){let S=t.kind==="rowid"?H(g[0]):Tt(t,g.slice(0,s),r,`Cannot import into ${e}`),w=u.get(String(S));if(w===void 0||f[w]!==void 0)throw new Error(`Import into ${e} could not re-read an inserted row by its identity`);let R=o.map(($,O)=>K(g[s+O*2],g[s+O*2+1],`${e}.${$}`,{textEncoding:r})),x=R.map($=>$.storageClass),T=x.join(","),A=d.get(T);A===void 0&&(A=c.length,c.push(x),d.set(T,A)),f[w]={rowId:S,values:R.map($=>$.rawTextBytes??$.value),pattern:A},m+=1}}if(m!==n.length)throw new Error(`Import into ${e} inserted ${n.length} rows but could re-read only ${m}`);return{columns:o,storageClassPatterns:c,rows:f}}function no(e){if(e==null)return 4;switch(typeof e){case"string":{let t=Jr(e)+2;for(let n=0;nr.maxUndoSnapshotBytes)throw new Error(`Import undo history for ${t} rows into ${e} needs ${a} bytes, over the ${r.maxUndoSnapshotBytes}-byte undo memory budget; import fewer rows at a time or increase maxUndoMemory. No rows were imported.`)}let o=Math.min(r.maxSnapshotTransportBytes??Number.MAX_SAFE_INTEGER,bn),i=no({rowCount:t,snapshots:n});if(i>o)throw new Error(`Import undo history for ${t} rows into ${e} is about ${i} bytes encoded, over the ${o}-byte limit this engine can return in one edit; import fewer rows at a time. No rows were imported.`)}async function Bd(e,t,n={}){if(!h)throw new Error("No database initialized");te("Row import"),z(e,"Table name");let r=$d(n??{}),o=vd(t,r.maxEditValueBytes),i=V("sp_import_rows");I(`SAVEPOINT ${i}`);try{if(n?.expectedSchemaVersion!==void 0&&Fa()!==n.expectedSchemaVersion)throw new Error("The destination database schema changed after the preview was prepared. Start the import again.");let a=await le(e),s=Be(),l=new Array(t.length),u=new Map,c=null;try{for(let f=0;fm[x]),g=y.map(ne),S=`${JSON.stringify(E)}|${g.join(",")}`,w=u.get(S);if(w||(De("INSERT",e,E),w=h.prepare(kd(e,E,g,a)),u.set(S,w)),w.bind(P(y)),a.kind==="primaryKey"){if(!w.step())throw new Error(`Import into ${e} did not return a primary-key identity`);let x=w.get(null,{useBigInt:!0});if(!x||w.step())throw new Error(`Import into ${e} did not return exactly one primary-key identity`);w.reset();let T=Tt(a,x,s,`Cannot import into ${e}`);l[f]=Ln(e,a,Q(T,a));continue}w.step(),w.reset(),c??=h.prepare("SELECT changes(), CAST(last_insert_rowid() AS TEXT)"),c.step();let R=c.get(null,{useBigInt:!0});if(c.reset(),!R||Number(R[0])!==1)throw new Error(`Import into ${e} did not create exactly one row for row ${f+1}`);l[f]=H(R[1])}}finally{for(let f of u.values())f.free();c?.free()}let d=Pd(e,a,l,s);return Dd(e,t.length,d,r),I(`RELEASE ${i}`),{rowCount:t.length,snapshots:d}}catch(a){throw W(i,"importRows"),a}}function ja(e){if(e===null||typeof e!="object"||!Array.isArray(e.columns)||!Array.isArray(e.storageClassPatterns)||!Array.isArray(e.rows)||e.rows.length===0||e.columns.some(r=>typeof r!="string"))throw new Z;let t=e.columns.length,n=e.storageClassPatterns.map(r=>{if(!Array.isArray(r)||r.length!==t)throw new Z;return e.columns.map((o,i)=>({column:o,storageClass:r[i]}))});return e.rows.map(r=>{if(r===null||typeof r!="object"||!Array.isArray(r.values)||r.values.length!==t||!Number.isInteger(r.pattern)||r.pattern<0||r.pattern>=n.length)throw new Z;return{rowId:r.rowId,row:Object.fromEntries(e.columns.map((o,i)=>[o,r.values[i]])),storageClasses:n[r.pattern]}})}function Gr(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||n<0)throw new Error(`Demo delete snapshot ${t} exceeds the web transport safety bound`);return n}function Md(e){let t=C(e);return`CASE typeof(${t}) WHEN 'text' THEN 6 * octet_length(${t}) WHEN 'blob' THEN 4 * ((octet_length(${t}) + 2) / 3) + 40 WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 4 END`}function Ud(e){let t=C(e);return`COALESCE(MAX(CASE WHEN typeof(${t}) = 'blob' THEN octet_length(${t}) ELSE 0 END), 0)`}function ro(e,t,n,r){let o=1024;for(let s of t)o+=64+6*String(s).length;let i=128+n.reduce((s,l)=>s+48+6*l.length,0),a=0;for(let s of r)for(let l=0;l0?", ":""}`+u.map(Ud).join(", ")+` FROM ${L(e)} WHERE ${s.sql}`,P(s.params),{useBigInt:!0})[0]?.values?.[0];if(!c)throw new Error("Demo delete snapshot preflight returned no metadata");let d=Gr(c[0],"row count");l===0&&(a+=d,o+=d*i),o+=Gr(c[1],"encoded size");for(let f of c.slice(2))if(Gr(f,"BLOB size")>Xe)throw new Error(`Demo delete snapshot exceeds the ${Xe}-byte web transport binary limit; the row was not deleted`);if(!Number.isSafeInteger(o))throw new Error("Demo delete snapshot exceeds the web transport safety bound")}if(a!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);if(o>bn)throw new Error(`Demo delete snapshot exceeds the ${bn}-byte web transport response limit; no rows were deleted`)}async function qd(e,t){if(t.forEach(ve),!h)throw new Error("No database initialized");if(te("Row deletion"),t.length===0)return[];let n=await le(e),r=Be();if(t.some(ie)){if(!t.every(ie))throw new Error("Cannot mix rowid and primary-key row identities");if(n.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let a=ze(t,n),s=V("sp_delete_pk_rows");I(`SAVEPOINT ${s}`);try{De("DELETE",e);let l=_n(e);ro(e,t,l,a);let u=[];for(let c of a){let f=h.exec(`SELECT ${l.map(se).join(", ")||"1"} FROM ${L(e)} WHERE ${c.sql}`,P(c.params),{useBigInt:!0})[0]?.values??[],m=n.columns.map(E=>{let y=l.indexOf(E.identifier);if(y<0)throw new Error(`Primary-key column missing from ${e}: ${E.identifier}`);return y});u.push(...f.map(E=>{let y=l.map((g,S)=>K(E[S*2],E[S*2+1],`${e}.${g}`,{textEncoding:r}));return{rowId:Ke(n.columns,m.map(g=>y[g].value)),row:Object.fromEntries(l.map((g,S)=>[g,y[S].rawTextBytes??y[S].value])),storageClasses:l.map((g,S)=>({column:g,storageClass:y[S].storageClass}))}}))}if(u.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let c of a)h.run(`DELETE FROM ${L(e)} WHERE ${c.sql}`,P(c.params));return I(`RELEASE ${s}`),u}catch(l){throw W(s,"deletePrimaryKeyRows"),l}}if(n.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let o=ze(t,n),i=V("sp_delete_rowid_rows");I(`SAVEPOINT ${i}`);try{De("DELETE",e);let a=_n(e);ro(e,t,a,o);let s=[];for(let l of o){let u=h.exec(`SELECT CAST(rowid AS TEXT)${a.length>0?", ":""}${a.map(se).join(", ")} FROM ${L(e)} WHERE ${l.sql}`,P(l.params),{useBigInt:!0})[0];s.push(...(u?.values??[]).map(c=>{let d=H(c[0]),f=a.map((m,E)=>K(c[E*2+1],c[E*2+2],`${e}.${m}`,{textEncoding:r}));return{rowId:d,row:Object.fromEntries(a.map((m,E)=>[m,f[E].rawTextBytes??f[E].value])),storageClasses:a.map((m,E)=>({column:m,storageClass:f[E].storageClass}))}}))}if(s.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let l of o)h.run(`DELETE FROM ${L(e)} WHERE ${l.sql}`,P(l.params));return I(`RELEASE ${i}`),s}catch(a){throw W(i,"deleteRowidRows"),a}}async function Ha(e,t){if(!h)throw new Error("No database initialized");if(!Array.isArray(t))throw new Error("Column names must be an array");z(e,"Table name"),t.forEach(d=>z(d,"Column name"));let r=(h.exec("SELECT name, sql FROM main.sqlite_schema WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL ORDER BY name",[e])[0]?.values??[]).map(d=>({identifier:d[0],sql:d[1]}));if(r.length===0||t.length===0)return[];let i=(h.exec(`PRAGMA main.table_xinfo(${C(e)})`)[0]?.values??[]).map(d=>d[1]),a=Ci(i,t);if(a.length===0)return[];let s=crypto.randomUUID().replace(/-/g,""),l=`__sqlite_explorer_index_probe_${s}`,u=`__sqlite_explorer_index_candidate_${s}`,c=V("sp_index_dependencies");I(`SAVEPOINT ${c}`);try{I(Ti(l,i));let d=V("sp_index_baseline");I(`SAVEPOINT ${d}`);try{for(let m of a)I(`ALTER TABLE temp.${C(l)} DROP COLUMN ${C(m)}`);I(`ROLLBACK TO ${d}`),I(`RELEASE ${d}`)}catch(m){throw W(d,"findDependentIndexBaseline"),new Error("Cannot establish the index dependency probe baseline",{cause:m})}let f=[];for(let m of r){let E=V("sp_index_candidate");I(`SAVEPOINT ${E}`);try{I(Ri(l,u,m.sql));let y=!1;for(let g of a)try{I(`ALTER TABLE temp.${C(l)} DROP COLUMN ${C(g)}`)}catch{y=!0;break}I(`ROLLBACK TO ${E}`),I(`RELEASE ${E}`),y&&f.push(m)}catch(y){throw W(E,"findDependentIndex"),new Error(`Cannot inspect dependency for index ${C(m.identifier)}`,{cause:y})}}return I(`ROLLBACK TO ${c}`),I(`RELEASE ${c}`),f}catch(d){throw W(c,"findDependentIndexes"),d}}function Vd(e){if(e!==void 0){if(!Array.isArray(e))throw new Error("Dependent-index confirmation must be an array");return e.map(t=>{if(!t||typeof t!="object"||Array.isArray(t)||typeof t.identifier!="string"||typeof t.sql!="string")throw new Error("Dependent-index confirmation contains an invalid definition");return z(t.identifier,"Index name"),{identifier:t.identifier,sql:t.sql}})}}function Fd(e,t,n){if(t.length===0&&(n?.length??0)===0)return;if(!n)throw new Error("Column deletion requires confirmation for dependent indexes: "+t.map(i=>i.identifier).join(", "));let r=new Map(n.map(i=>[i.identifier,i.sql]));if(!(r.size===n.length&&n.length===t.length&&t.every(i=>r.get(i.identifier)===i.sql)))throw new Error(`Cannot delete columns from ${e}: dependent indexes changed while the confirmation was open`)}async function Wd(e,t,n){if(!h)throw new Error("No database initialized");if(te("Column deletion"),t.length===0)return;let r=V("sp_delete_columns");I(`SAVEPOINT ${r}`);try{let o=Vd(n),i=await Ha(e,t);Fd(e,i,o),await Cs(e,t,i.map(a=>a.identifier),a=>I(a)),I(`RELEASE ${r}`)}catch(o){throw W(r,"deleteColumns"),jd(o,t)}}function jd(e,t){let n;try{n=Hd(t)}catch{return e}if(n.length===0)return e;let r=e instanceof Error?e.message:String(e),o=n.map(i=>`${i.type} ${i.identifier}`).join(", ");return new Error(`${r} \u2014 these schema objects mention ${t.join(", ")} and may be blocking the drop: ${o}. Drop or edit them first.`,{cause:e})}function Hd(e){return(h.exec(bs)[0]?.values??[]).filter(n=>typeof n[1]=="string"&&typeof n[2]=="string"&&e.some(r=>Ts(n[2],r))).map(n=>({type:n[0],identifier:n[1]}))}async function Qd(e,t,n){if(!h)throw new Error("No database initialized");te("Table creation");let r=xi(e,t,n),o=V("sp_create_table");I(`SAVEPOINT ${o}`);try{let i=await G();I(r),we(i,await G()),I(`RELEASE ${o}`)}catch(i){throw W(o,"createTable"),i}}async function Qa(e,t=!1){if(!h)throw new Error("No database initialized");let r=h.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0]?.[0];if(typeof r!="string")return null;let o=Wt.map(c=>h.exec(c.sql,c.params(e))[0]?.values||[]),{triggers:i,ambiguousTemporaryTriggerNames:a,unqualifiedTemporaryTriggers:s}=ui(e,o);if(s.length>0){let d=(h.exec("SELECT name FROM pragma.pragma_table_xinfo(?, 'main') ORDER BY cid",[e])[0]?.values??[]).map(f=>{if(typeof f[0]!="string")throw new Error(`SQLite returned invalid view column metadata for ${e}`);return f[0]});for(let f of s){if(i.some(m=>!m.temporary&&He(m.identifier,f.identifier))){a.push(f.identifier);continue}try{let m=Ht(f.sql,"main",e,d);if(m===void 0){a.push(f.identifier);continue}let E=h.exec(m);ci(E[0]?.values??[],f.identifier)&&i.push({...f,sql:ar(f.sql,f.identifier)})}catch{a.push(f.identifier)}}}let l,u;try{l=fi(r),u=sr(r)}catch(c){if(!t)throw c;l=""}return{identifier:e,sql:r,selectSql:l,columnListSql:u,triggers:i,...a.length>0?{ambiguousTemporaryTriggerNames:a}:{}}}async function Ka(e,t=!1){let n=await Qa(e,t);if(!n)throw new Error(`View not found: ${e}`);return n}async function Nn(e){return Ka(e,!1)}function G(){return Ei({queryRows:async(e,t)=>h.exec(e,P(t))[0]?.values??[],compileStatements:async e=>e.map(t=>{try{ot(t);return}catch(n){return Te(n)}})})}function za(e,t){let r=h.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0];pi(e,r!==void 0,t);let o=r?.[0];return{storedSql:o,columnListSql:typeof o=="string"?sr(o):void 0}}function te(e){if(ae)throw new Error(`${e} is unavailable because the database is read-only`)}async function Kd(e,t,n="edit"){if(z(e,"View name"),!h)throw new Error("No database initialized");if(ae)throw new Error("View validation is unavailable because the database is read-only");let r=Ee(t),{storedSql:o,columnListSql:i}=za(e,n),a=V("sp_validate_view");I(`SAVEPOINT ${a}`);try{let s=await G();typeof o=="string"&&I(`DROP VIEW ${oe(e)}`),I(ct(e,r,i)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),we(s,await G()),I(`ROLLBACK TO ${a}`),I(`RELEASE ${a}`)}catch(s){throw W(a,"validateViewDefinition"),s}}async function zd(e,t,n=50,r="edit",o){if(z(e,"View name"),!h)throw new Error("No database initialized");let i=Ee(t),a=Math.max(1,Math.min(100,Math.trunc(n)||50)),{storedSql:s,columnListSql:l}=za(e,r);if(ae){let c=C(e);return Xr(l?`WITH ${c} ${l} AS (${i} + `)[0]?.values||[]).map(l=>({identifier:l[0],parentTable:l[1]}));return{tables:r,views:i,indexes:s}}async function mo(e){if(!h)throw new Error("No database initialized");let t=h.exec(ki,[e]);return t.length===0?[]:t[0].values.filter(n=>Number(n[6]??0)!==1).map(n=>({ordinal:n[0],identifier:n[1],declaredType:n[2],isRequired:n[3],defaultExpression:n[4],primaryKeyPosition:n[5],isGenerated:Number(n[6]??0)===2||Number(n[6]??0)===3,isRowidAlias:Number(n[7]??0)===1}))}function Wa(){let e=n=>{let r=h.prepare(n),o=[];try{for(;r.step();)o.push(r.get());return o}finally{r.free()}},t=e("PRAGMA main.schema_version")[0]?.[0];if(!Number.isSafeInteger(t))throw new Error("Unable to read the destination database schema version.");return JSON.stringify([t,e("SELECT type, name, tbl_name, sql FROM temp.sqlite_schema ORDER BY type, name")])}async function Rd(e){if(!h)throw new Error("No database initialized");z(e,"Table name");let t=V("sp_import_preview");x(`SAVEPOINT ${t}`);try{let n=await mo(e);if(!n.length)throw new Error(`Table not found: ${e}`);let r=Wa();return x(`RELEASE SAVEPOINT ${t}`),{columns:n,schemaVersion:r}}catch(n){throw W(t,"getImportTarget"),n}}function _n(e){return(h.exec("SELECT name FROM pragma.pragma_table_xinfo(?) WHERE hidden = 0 ORDER BY cid",[e])[0]?.values??[]).map(n=>{if(typeof n[0]!="string")throw new Error(`SQLite returned invalid column metadata for ${e}`);return n[0]})}function xd(e,t,n,r){let o=Be(),i=Q(n,t),a=r.map(se),l=h.exec(`SELECT ${a.join(", ")||"1"} FROM ${L(e)} WHERE ${i.sql} LIMIT 2`,P(i.params),{useBigInt:!0})[0]?.values??[];if(l.length!==1)throw new _e(e);let u=r.map((c,d)=>K(l[0][d*2],l[0][d*2+1],`${e}.${c}`,{textEncoding:o}));return{rowId:n,row:Object.fromEntries(r.map((c,d)=>[c,u[d].rawTextBytes??u[d].value])),storageClasses:r.map((c,d)=>({column:c,storageClass:u[d].storageClass}))}}function Id(e,t,n,r,o){if(o===void 0)return;let i=Q(n,t),a=Bs(r,t.kind==="rowid"),s=Ms(e,a,i),l=h.exec(s.sql,P(s.params),{useBigInt:!0})[0]?.values?.[0],u=Us(l);qs({table:e,insertableColumns:r,includeSyntheticRowId:t.kind==="rowid",rowIds:[n],rowCount:u.rowCount,valueBytes:u.valueBytes,maxSnapshotBytes:o,operation:"Insert"})}function Ca(e,t,n,r){let o=_n(e),i=Q(n,t);return ro(e,[n],o,[i]),Id(e,t,n,o,r),xd(e,t,n,o)}async function Ad(){if(!h)throw new Error("No database initialized");let e={},t=["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","encoding","auto_vacuum"];for(let n of t)try{let r=h.exec(`PRAGMA ${n}`);r.length>0&&r[0].values.length>0&&(e[n]=r[0].values[0][0])}catch{}return e}async function _d(e,t){if(!h)throw new Error("No database initialized");if(te("Pragma updates"),!["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","auto_vacuum"].includes(e))throw new Error(`Invalid or disallowed PRAGMA: ${e}`);let r;if(typeof t=="string"){if(!/^[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid PRAGMA string value: contains disallowed characters");r=`PRAGMA ${e} = '${t}'`}else if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Invalid PRAGMA numeric value: must be finite");r=`PRAGMA ${e} = ${t}`}else if(typeof t=="boolean")r=`PRAGMA ${e} = ${t?"ON":"OFF"}`;else throw new Error(`Invalid PRAGMA value type: ${typeof t}`);x(r)}async function Nd(e,t,n,r,o,i,a){let s=a===ao,l=!s&&i!==void 0,u=s?0:Je([r],i);if(ve(t),!h)throw new Error("No database initialized");if(te("Cell updates"),ie(t))return(await Ya(e,[{rowId:t,column:n,value:r,operation:"set"}],void 0,i,a))[0]?.newRowId??t;let c=H(t);if((await le(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let f=V("sp_update_rowid_cell");x(`SAVEPOINT ${f}`);try{let m=uo(e);Ot(e,[n]);let E=C(n);if(h.run(`UPDATE ${L(e)} SET ${E} = ${ne(r)} WHERE rowid = ?`+(l?` AND NOT (typeof(${E}) IN ('text', 'blob') AND length(CAST(${E} AS BLOB)) > ?)`:""),P(l?[r,c,u]:[r,c])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1){if(l){let S=await An({table:e,rowId:c,column:n});if((S.storageClass==="text"||S.storageClass==="blob")&&S.byteLength>u)throw new Ge(e,n,S.storageClass,S.byteLength,u)}throw new Error(`Cannot update ${e}.${n}: row ${t} no longer exists`)}let g=fo(e,m,c,n,r);return x(`RELEASE ${f}`),g}catch(m){throw W(f,"updateCell"),m}}async function Od(e,t,n,r,o,i){let a=Je([r],i);if(ra(o,a),ve(t),!h)throw new Error("No database initialized");te("Oversized cell replacement");let s=await le(e),l=Q(t,s),u=C(n),c=()=>{if(h.run(`UPDATE ${L(e)} SET ${u} = ${ne(r)} WHERE ${l.sql} AND typeof(${u}) = ? AND length(CAST(${u} AS BLOB)) = ?`,P([r,...l.params,o.storageClass,o.byteLength])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(ea);if(s.kind==="rowid")return fo(e,uo(e),H(t),n,r);let m=s.columns.findIndex(y=>y.identifier===n),E=wr(t,s,m>=0?[{column:n,value:r}]:[]);return Ln(e,s,Q(E,s),eo(e))},d=V("sp_replace_oversized_cell");x(`SAVEPOINT ${d}`);try{Ot(e,[n],s.kind==="rowid");let f=c();return x(`RELEASE ${d}`),f}catch(f){throw W(d,"replaceOversizedCell"),f}}async function ja(e,t,n,r,o,i){if(!h)throw new Error("No database initialized");te("Row insertion"),r!==ao&&Je(Object.values(t),n);let a=Object.keys(t),s=Object.values(t),l=await le(e),u;if(a.length===0)u=`INSERT INTO ${L(e)} DEFAULT VALUES`;else{let d=a.map(C).join(", "),f=s.map(ne).join(", ");u=`INSERT INTO ${L(e)} (${d}) VALUES (${f})`}if(l.kind==="primaryKey"){let d=V("sp_insert_pk_row");x(`SAVEPOINT ${d}`);try{De("INSERT",e,a);let f=h.prepare(`${u} RETURNING `+bt(l),P(s)),m;try{if(!f.step())throw new Error(`Insert into ${e} did not return a primary-key identity`);if(m=f.get(null,{useBigInt:!0}),!m||f.step())throw new Error(`Insert into ${e} did not return exactly one primary-key identity`)}finally{f.free()}let E=Tt(l,m,ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot insert into ${e}`),y=Ln(e,l,Q(E,l)),g=o?Ca(e,l,y,i):y;return x(`RELEASE ${d}`),g}catch(f){throw W(d,"insertPrimaryKeyRow"),f}}let c=V("sp_insert_rowid_row");x(`SAVEPOINT ${c}`);try{De("INSERT",e,a),h.run(u,P(s));let d=h.exec("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")[0]?.values?.[0];if(!d||Number(d[0])!==1)throw new Error(`Insert into ${e} did not create exactly one row`);let f=H(d[1]),m=Q(f,l);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE ${m.sql} LIMIT 2`,P(m.params))[0]?.values.length??0)!==1)throw new Error(`Insert into ${e} did not leave one addressable row; the insert was rolled back`);let y=o?Ca(e,l,f,i):f;return x(`RELEASE ${c}`),y}catch(d){throw W(c,"insertRowIdRow"),d}}async function Ld(e,t,n,r){return ja(e,t,n,r,!1)}async function $d(e,t,n,r){return ja(e,t,n,void 0,!0,r)}function vd(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Import options must be an object");if(e.expectedSchemaVersion!==void 0&&typeof e.expectedSchemaVersion!="string")throw new Error("Import expectedSchemaVersion must be a string");let t=n=>{let r=e[n];if(r!==void 0){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Import ${n} must be a non-negative safe integer`);return r}};return{maxEditValueBytes:e.maxEditValueBytes,maxUndoSnapshotBytes:t("maxUndoSnapshotBytes"),maxSnapshotTransportBytes:t("maxSnapshotTransportBytes")}}function kd(e,t){if(!Array.isArray(e))throw new Error("Import rows must be an array");if(e.length===0)throw new Error("Import requires at least one row");if(e.length>Qr)throw new Error(`Import supports at most ${Qr.toLocaleString("en-US")} rows`);let n=Je([],t),r=new Array(e.length),o=0;for(let i=0;iKr)throw new Error(`Import supports at most ${Kr} columns`);if(o+=s.length,o>zr)throw new Error(`Import supports at most ${zr.toLocaleString("en-US")} cells; split the file into smaller imports`);for(let l of s)z(l,"Column name"),Ye(a[l],n);r[i]=s}return r}function Pd(e,t,n,r){let o=L(e),i=t.length===0?`INSERT INTO ${o} DEFAULT VALUES`:`INSERT INTO ${o} (${t.map(C).join(", ")}) VALUES (${n.join(", ")})`;return r.kind!=="primaryKey"?i:`${i} RETURNING ${bt(r)}`}function Dd(e,t,n,r){let o=_n(e),i=ze(n,t),a=t.kind==="rowid"?"CAST(rowid AS TEXT)":bt(t),s=t.kind==="rowid"?1:t.columns.length*2,l=o.map(se),u=new Map(n.map((E,y)=>[String(E),y])),c=[],d=new Map,f=new Array(n.length),m=0;for(let E of i){let y=h.exec(`SELECT ${a}${l.length>0?", ":""}${l.join(", ")} FROM ${L(e)} WHERE ${E.sql}`,P(E.params),{useBigInt:!0})[0];for(let g of y?.values??[]){let S=t.kind==="rowid"?H(g[0]):Tt(t,g.slice(0,s),r,`Cannot import into ${e}`),w=u.get(String(S));if(w===void 0||f[w]!==void 0)throw new Error(`Import into ${e} could not re-read an inserted row by its identity`);let R=o.map(($,O)=>K(g[s+O*2],g[s+O*2+1],`${e}.${$}`,{textEncoding:r})),I=R.map($=>$.storageClass),T=I.join(","),A=d.get(T);A===void 0&&(A=c.length,c.push(I),d.set(T,A)),f[w]={rowId:S,values:R.map($=>$.rawTextBytes??$.value),pattern:A},m+=1}}if(m!==n.length)throw new Error(`Import into ${e} inserted ${n.length} rows but could re-read only ${m}`);return{columns:o,storageClassPatterns:c,rows:f}}function no(e){if(e==null)return 4;switch(typeof e){case"string":{let t=Jr(e)+2;for(let n=0;nr.maxUndoSnapshotBytes)throw new Error(`Import undo history for ${t} rows into ${e} needs ${a} bytes, over the ${r.maxUndoSnapshotBytes}-byte undo memory budget; import fewer rows at a time or increase maxUndoMemory. No rows were imported.`)}let o=Math.min(r.maxSnapshotTransportBytes??Number.MAX_SAFE_INTEGER,bn),i=no({rowCount:t,snapshots:n});if(i>o)throw new Error(`Import undo history for ${t} rows into ${e} is about ${i} bytes encoded, over the ${o}-byte limit this engine can return in one edit; import fewer rows at a time. No rows were imported.`)}async function Md(e,t,n={}){if(!h)throw new Error("No database initialized");te("Row import"),z(e,"Table name");let r=vd(n??{}),o=kd(t,r.maxEditValueBytes),i=V("sp_import_rows");x(`SAVEPOINT ${i}`);try{if(n?.expectedSchemaVersion!==void 0&&Wa()!==n.expectedSchemaVersion)throw new Error("The destination database schema changed after the preview was prepared. Start the import again.");let a=await le(e),s=Be(),l=new Array(t.length),u=new Map,c=null;try{for(let f=0;fm[I]),g=y.map(ne),S=`${JSON.stringify(E)}|${g.join(",")}`,w=u.get(S);if(w||(De("INSERT",e,E),w=h.prepare(Pd(e,E,g,a)),u.set(S,w)),w.bind(P(y)),a.kind==="primaryKey"){if(!w.step())throw new Error(`Import into ${e} did not return a primary-key identity`);let I=w.get(null,{useBigInt:!0});if(!I||w.step())throw new Error(`Import into ${e} did not return exactly one primary-key identity`);w.reset();let T=Tt(a,I,s,`Cannot import into ${e}`);l[f]=Ln(e,a,Q(T,a));continue}w.step(),w.reset(),c??=h.prepare("SELECT changes(), CAST(last_insert_rowid() AS TEXT)"),c.step();let R=c.get(null,{useBigInt:!0});if(c.reset(),!R||Number(R[0])!==1)throw new Error(`Import into ${e} did not create exactly one row for row ${f+1}`);l[f]=H(R[1])}}finally{for(let f of u.values())f.free();c?.free()}let d=Dd(e,a,l,s);return Bd(e,t.length,d,r),x(`RELEASE ${i}`),{rowCount:t.length,snapshots:d}}catch(a){throw W(i,"importRows"),a}}function Ha(e){if(e===null||typeof e!="object"||!Array.isArray(e.columns)||!Array.isArray(e.storageClassPatterns)||!Array.isArray(e.rows)||e.rows.length===0||e.columns.some(r=>typeof r!="string"))throw new J;let t=e.columns.length,n=e.storageClassPatterns.map(r=>{if(!Array.isArray(r)||r.length!==t)throw new J;return e.columns.map((o,i)=>({column:o,storageClass:r[i]}))});return e.rows.map(r=>{if(r===null||typeof r!="object"||!Array.isArray(r.values)||r.values.length!==t||!Number.isInteger(r.pattern)||r.pattern<0||r.pattern>=n.length)throw new J;return{rowId:r.rowId,row:Object.fromEntries(e.columns.map((o,i)=>[o,r.values[i]])),storageClasses:n[r.pattern]}})}function Gr(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||n<0)throw new Error(`Demo delete snapshot ${t} exceeds the web transport safety bound`);return n}function Ud(e){let t=C(e);return`CASE typeof(${t}) WHEN 'text' THEN 6 * octet_length(${t}) WHEN 'blob' THEN 4 * ((octet_length(${t}) + 2) / 3) + 40 WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 4 END`}function qd(e){let t=C(e);return`COALESCE(MAX(CASE WHEN typeof(${t}) = 'blob' THEN octet_length(${t}) ELSE 0 END), 0)`}function ro(e,t,n,r){let o=1024;for(let s of t)o+=64+6*String(s).length;let i=128+n.reduce((s,l)=>s+48+6*l.length,0),a=0;for(let s of r)for(let l=0;l0?", ":""}`+u.map(qd).join(", ")+` FROM ${L(e)} WHERE ${s.sql}`,P(s.params),{useBigInt:!0})[0]?.values?.[0];if(!c)throw new Error("Demo delete snapshot preflight returned no metadata");let d=Gr(c[0],"row count");l===0&&(a+=d,o+=d*i),o+=Gr(c[1],"encoded size");for(let f of c.slice(2))if(Gr(f,"BLOB size")>Xe)throw new Error(`Demo delete snapshot exceeds the ${Xe}-byte web transport binary limit; the row was not deleted`);if(!Number.isSafeInteger(o))throw new Error("Demo delete snapshot exceeds the web transport safety bound")}if(a!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);if(o>bn)throw new Error(`Demo delete snapshot exceeds the ${bn}-byte web transport response limit; no rows were deleted`)}async function Vd(e,t){if(t.forEach(ve),!h)throw new Error("No database initialized");if(te("Row deletion"),t.length===0)return[];let n=await le(e),r=Be();if(t.some(ie)){if(!t.every(ie))throw new Error("Cannot mix rowid and primary-key row identities");if(n.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let a=ze(t,n),s=V("sp_delete_pk_rows");x(`SAVEPOINT ${s}`);try{De("DELETE",e);let l=_n(e);ro(e,t,l,a);let u=[];for(let c of a){let f=h.exec(`SELECT ${l.map(se).join(", ")||"1"} FROM ${L(e)} WHERE ${c.sql}`,P(c.params),{useBigInt:!0})[0]?.values??[],m=n.columns.map(E=>{let y=l.indexOf(E.identifier);if(y<0)throw new Error(`Primary-key column missing from ${e}: ${E.identifier}`);return y});u.push(...f.map(E=>{let y=l.map((g,S)=>K(E[S*2],E[S*2+1],`${e}.${g}`,{textEncoding:r}));return{rowId:Ke(n.columns,m.map(g=>y[g].value)),row:Object.fromEntries(l.map((g,S)=>[g,y[S].rawTextBytes??y[S].value])),storageClasses:l.map((g,S)=>({column:g,storageClass:y[S].storageClass}))}}))}if(u.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let c of a)h.run(`DELETE FROM ${L(e)} WHERE ${c.sql}`,P(c.params));return x(`RELEASE ${s}`),u}catch(l){throw W(s,"deletePrimaryKeyRows"),l}}if(n.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let o=ze(t,n),i=V("sp_delete_rowid_rows");x(`SAVEPOINT ${i}`);try{De("DELETE",e);let a=_n(e);ro(e,t,a,o);let s=[];for(let l of o){let u=h.exec(`SELECT CAST(rowid AS TEXT)${a.length>0?", ":""}${a.map(se).join(", ")} FROM ${L(e)} WHERE ${l.sql}`,P(l.params),{useBigInt:!0})[0];s.push(...(u?.values??[]).map(c=>{let d=H(c[0]),f=a.map((m,E)=>K(c[E*2+1],c[E*2+2],`${e}.${m}`,{textEncoding:r}));return{rowId:d,row:Object.fromEntries(a.map((m,E)=>[m,f[E].rawTextBytes??f[E].value])),storageClasses:a.map((m,E)=>({column:m,storageClass:f[E].storageClass}))}}))}if(s.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let l of o)h.run(`DELETE FROM ${L(e)} WHERE ${l.sql}`,P(l.params));return x(`RELEASE ${i}`),s}catch(a){throw W(i,"deleteRowidRows"),a}}async function Qa(e,t){if(!h)throw new Error("No database initialized");if(!Array.isArray(t))throw new Error("Column names must be an array");z(e,"Table name"),t.forEach(d=>z(d,"Column name"));let r=(h.exec("SELECT name, sql FROM main.sqlite_schema WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL ORDER BY name",[e])[0]?.values??[]).map(d=>({identifier:d[0],sql:d[1]}));if(r.length===0||t.length===0)return[];let i=(h.exec(`PRAGMA main.table_xinfo(${C(e)})`)[0]?.values??[]).map(d=>d[1]),a=Ci(i,t);if(a.length===0)return[];let s=crypto.randomUUID().replace(/-/g,""),l=`__sqlite_explorer_index_probe_${s}`,u=`__sqlite_explorer_index_candidate_${s}`,c=V("sp_index_dependencies");x(`SAVEPOINT ${c}`);try{x(Ti(l,i));let d=V("sp_index_baseline");x(`SAVEPOINT ${d}`);try{for(let m of a)x(`ALTER TABLE temp.${C(l)} DROP COLUMN ${C(m)}`);x(`ROLLBACK TO ${d}`),x(`RELEASE ${d}`)}catch(m){throw W(d,"findDependentIndexBaseline"),new Error("Cannot establish the index dependency probe baseline",{cause:m})}let f=[];for(let m of r){let E=V("sp_index_candidate");x(`SAVEPOINT ${E}`);try{x(Ri(l,u,m.sql));let y=!1;for(let g of a)try{x(`ALTER TABLE temp.${C(l)} DROP COLUMN ${C(g)}`)}catch{y=!0;break}x(`ROLLBACK TO ${E}`),x(`RELEASE ${E}`),y&&f.push(m)}catch(y){throw W(E,"findDependentIndex"),new Error(`Cannot inspect dependency for index ${C(m.identifier)}`,{cause:y})}}return x(`ROLLBACK TO ${c}`),x(`RELEASE ${c}`),f}catch(d){throw W(c,"findDependentIndexes"),d}}function Fd(e){if(e!==void 0){if(!Array.isArray(e))throw new Error("Dependent-index confirmation must be an array");return e.map(t=>{if(!t||typeof t!="object"||Array.isArray(t)||typeof t.identifier!="string"||typeof t.sql!="string")throw new Error("Dependent-index confirmation contains an invalid definition");return z(t.identifier,"Index name"),{identifier:t.identifier,sql:t.sql}})}}function Wd(e,t,n){if(t.length===0&&(n?.length??0)===0)return;if(!n)throw new Error("Column deletion requires confirmation for dependent indexes: "+t.map(i=>i.identifier).join(", "));let r=new Map(n.map(i=>[i.identifier,i.sql]));if(!(r.size===n.length&&n.length===t.length&&t.every(i=>r.get(i.identifier)===i.sql)))throw new Error(`Cannot delete columns from ${e}: dependent indexes changed while the confirmation was open`)}async function jd(e,t,n){if(!h)throw new Error("No database initialized");if(te("Column deletion"),t.length===0)return;let r=V("sp_delete_columns");x(`SAVEPOINT ${r}`);try{let o=Fd(n),i=await Qa(e,t);Wd(e,i,o),await Rs(e,t,i.map(a=>a.identifier),a=>x(a)),x(`RELEASE ${r}`)}catch(o){throw W(r,"deleteColumns"),Hd(o,t)}}function Hd(e,t){let n;try{n=Qd(t)}catch{return e}if(n.length===0)return e;let r=e instanceof Error?e.message:String(e),o=n.map(i=>`${i.type} ${i.identifier}`).join(", ");return new Error(`${r} \u2014 these schema objects mention ${t.join(", ")} and may be blocking the drop: ${o}. Drop or edit them first.`,{cause:e})}function Qd(e){return(h.exec(Ts)[0]?.values??[]).filter(n=>typeof n[1]=="string"&&typeof n[2]=="string"&&e.some(r=>Cs(n[2],r))).map(n=>({type:n[0],identifier:n[1]}))}async function Kd(e,t,n){if(!h)throw new Error("No database initialized");te("Table creation");let r=xi(e,t,n),o=V("sp_create_table");x(`SAVEPOINT ${o}`);try{let i=await G();x(r),we(i,await G()),x(`RELEASE ${o}`)}catch(i){throw W(o,"createTable"),i}}async function Ka(e,t=!1){if(!h)throw new Error("No database initialized");let r=h.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0]?.[0];if(typeof r!="string")return null;let o=Wt.map(c=>h.exec(c.sql,c.params(e))[0]?.values||[]),{triggers:i,ambiguousTemporaryTriggerNames:a,unqualifiedTemporaryTriggers:s}=ui(e,o);if(s.length>0){let d=(h.exec("SELECT name FROM pragma.pragma_table_xinfo(?, 'main') ORDER BY cid",[e])[0]?.values??[]).map(f=>{if(typeof f[0]!="string")throw new Error(`SQLite returned invalid view column metadata for ${e}`);return f[0]});for(let f of s){if(i.some(m=>!m.temporary&&He(m.identifier,f.identifier))){a.push(f.identifier);continue}try{let m=Ht(f.sql,"main",e,d);if(m===void 0){a.push(f.identifier);continue}let E=h.exec(m);ci(E[0]?.values??[],f.identifier)&&i.push({...f,sql:ar(f.sql,f.identifier)})}catch{a.push(f.identifier)}}}let l,u;try{l=fi(r),u=sr(r)}catch(c){if(!t)throw c;l=""}return{identifier:e,sql:r,selectSql:l,columnListSql:u,triggers:i,...a.length>0?{ambiguousTemporaryTriggerNames:a}:{}}}async function za(e,t=!1){let n=await Ka(e,t);if(!n)throw new Error(`View not found: ${e}`);return n}async function Nn(e){return za(e,!1)}function G(){return Ei({queryRows:async(e,t)=>h.exec(e,P(t))[0]?.values??[],compileStatements:async e=>e.map(t=>{try{ot(t);return}catch(n){return Te(n)}})})}function Xa(e,t){let r=h.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0];pi(e,r!==void 0,t);let o=r?.[0];return{storedSql:o,columnListSql:typeof o=="string"?sr(o):void 0}}function te(e){if(ae)throw new Error(`${e} is unavailable because the database is read-only`)}async function zd(e,t,n="edit"){if(z(e,"View name"),!h)throw new Error("No database initialized");if(ae)throw new Error("View validation is unavailable because the database is read-only");let r=Ee(t),{storedSql:o,columnListSql:i}=Xa(e,n),a=V("sp_validate_view");x(`SAVEPOINT ${a}`);try{let s=await G();typeof o=="string"&&x(`DROP VIEW ${oe(e)}`),x(ct(e,r,i)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),we(s,await G()),x(`ROLLBACK TO ${a}`),x(`RELEASE ${a}`)}catch(s){throw W(a,"validateViewDefinition"),s}}async function Xd(e,t,n=50,r="edit",o){if(z(e,"View name"),!h)throw new Error("No database initialized");let i=Ee(t),a=Math.max(1,Math.min(100,Math.trunc(n)||50)),{storedSql:s,columnListSql:l}=Xa(e,r);if(ae){let c=C(e);return Xr(l?`WITH ${c} ${l} AS (${i} ) SELECT * FROM ${c} LIMIT ${a}`:`WITH ${c} AS (${i} -) SELECT * FROM ${c} LIMIT ${a}`,o)}let u=V("sp_preview_view");I(`SAVEPOINT ${u}`);try{let c=await G();typeof s=="string"&&I(`DROP VIEW ${oe(e)}`),I(ct(e,i,l)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),we(c,await G());let d=Xr(`SELECT * FROM ${oe(e)} LIMIT ${a}`,o);return I(`ROLLBACK TO ${u}`),I(`RELEASE ${u}`),d}catch(c){throw W(u,"previewViewDefinition"),c}}async function Xd(e,t){if(z(e,"View name"),!h)throw new Error("No database initialized");te("View creation");let n=Ee(t),r=V("sp_create_view");I(`SAVEPOINT ${r}`);try{let o=await G();I(ct(e,n)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`);let i=await Nn(e);return we(o,await G()),I(`RELEASE ${r}`),i}catch(o){throw W(r,"createView"),o}}async function Gd(e,t,n=!0,r,o){if(!h)throw new Error("No database initialized");te("View editing");let i=Ee(t),a=V("sp_edit_view");I(`SAVEPOINT ${a}`);try{let s=await Nn(e);Qt(s),Kt(r,s.sql,o,s.triggers);let l=await G();if(I(`DROP VIEW ${oe(e)}`),I(ct(e,i,s.columnListSql,s.columns)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),n){let d=(h.exec(`PRAGMA main.table_info(${C(e)})`)[0]?.values??[]).map(f=>{if(typeof f[1]!="string")throw new Error(`SQLite returned invalid column metadata for view ${e}`);return f[1]});mi(s.triggers,d);for(let f of s.triggers)I(lr(f))}let u=await Nn(e);return we(l,await G()),I(`RELEASE ${a}`),{before:s,after:u}}catch(s){throw W(a,"editView"),s}}async function Yd(e,t,n){if(!h)throw new Error("No database initialized");te("View deletion");let r=V("sp_drop_view");I(`SAVEPOINT ${r}`);try{let o=await Ka(e,!0);Qt(o),Kt(t,o.sql,n,o.triggers);let i=await G();return I(`DROP VIEW ${oe(e)}`),we(i,await G()),I(`RELEASE ${r}`),o}catch(o){throw W(r,"dropView"),o}}async function et(e,t,n){te("View history replay");let r=V("sp_restore_view");I(`SAVEPOINT ${r}`);try{let o=await Qa(e,!0);o&&Qt(o),yi(t,o);let i=await G();if(o&&I(`DROP VIEW ${oe(e)}`),n){I(n.sql),ot(`EXPLAIN SELECT * FROM ${oe(n.identifier)}`);for(let a of n.triggers)I(lr(a))}we(i,await G()),I(`RELEASE ${r}`)}catch(o){throw W(r,"restoreViewDefinition"),o}}function $n(){let e=h.exec("SELECT changes()",void 0,{useBigInt:!0})[0]?.values?.[0]?.[0],t=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(t)||t<0)throw new Error("SQLite returned an invalid changes() count");return t}async function oo(e,t){if(!Array.isArray(t)||t.length===0)throw new Z;t.forEach(xt);let n=await le(e),r=V("sp_history_delete_rows");I(`SAVEPOINT ${r}`);try{De("DELETE",e);for(let o of t){let i=Q(o.rowId,n),a=Or(o,ne);if(h.run(`DELETE FROM ${L(e)} WHERE (${i.sql}) AND (${a.sql})`,P([...i.params,...a.params])),$n()!==1)throw new _e(e)}I(`RELEASE ${r}`)}catch(o){throw W(r,"deleteRowHistorySnapshots"),o}}async function io(e,t){if(!Array.isArray(t)||t.length===0)throw new Z;let n=await le(e),r=t.map(i=>({snapshot:i,states:xt(i),writes:vs(i,ne)})),o=V("sp_history_restore_rows");I(`SAVEPOINT ${o}`);try{for(let i of r){De("INSERT",e,i.states.map(l=>l.column));let a=Q(i.snapshot.rowId,n);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE ${a.sql} LIMIT 1`,P(a.params))[0]?.values.length??0)!==0)throw new _e(e)}for(let i of r){let a=i.writes.map(f=>f.column),s=i.writes.map(f=>f.write.sql),l=i.writes.flatMap(f=>f.write.params);if(n.kind==="rowid"&&!a.some(f=>f.toLowerCase()==="rowid")&&(a.unshift("rowid"),s.unshift(ne(i.snapshot.rowId)),l.unshift(i.snapshot.rowId)),h.run(`INSERT INTO ${L(e)} (${a.map(C).join(", ")}) VALUES (${s.join(", ")})`,P(l)),$n()!==1)throw new _e(e);let u=Q(i.snapshot.rowId,n),c=Or(i.snapshot,ne);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE (${u.sql}) AND (${c.sql}) LIMIT 2`,P([...u.params,...c.params]))[0]?.values.length??0)!==1)throw new _e(e)}I(`RELEASE ${o}`)}catch(i){throw W(o,"restoreRowHistorySnapshots"),i}}function Jd(e){let t=e.affectedCells??(e.targetRowId!==void 0&&e.targetColumn?[{rowId:e.targetRowId,newRowId:e.newTargetRowId,columnName:e.targetColumn,newValue:e.newValue,operation:e.operation,priorState:e.priorState,postState:e.postState}]:[]);if(t.length===0)throw new Ct;return t.map(n=>(Rt(n.priorState),Rt(n.postState),n))}async function Xa(e,t,n){if(t.undoPolicy==="barrier")throw new Error("Forward-only cell history barriers cannot be replayed");let r=Jd(t),o=r.some(c=>ie(c.rowId));if(o&&!r.every(c=>ie(c.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let i=await le(e);if(o&&i.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);if(!o&&i.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let a=Be(),s=new Map;for(let c of r){let d=s.get(c.rowId)??[];if(d.some(f=>He(f.columnName,c.columnName)))throw new Error(`Cell history for ${e} contains the same column more than once`);d.push(c),s.set(c.rowId,d)}let l=[...s.entries()];n==="undo"&&r.some(c=>c.newRowId!==void 0&&c.newRowId!==c.rowId)&&l.reverse();let u=V("sp_replay_cell_history");I(`SAVEPOINT ${u}`);try{Ot(e,r.map(c=>c.columnName),i.kind==="rowid");for(let[c,d]of l){if(new Set(d.map(p=>p.newRowId??p.rowId)).size!==1)throw new Error(`Cell history for ${e} has inconsistent post-update identities`);let m=d[0].newRowId??c,E=n==="undo"?m:c,y=n==="undo"?c:m,g=Q(E,i),S=d.map(p=>se(p.columnName)),w=h.exec(`SELECT ${S.join(", ")} FROM ${L(e)} WHERE ${g.sql} LIMIT 2`,P(g.params),{useBigInt:!0})[0];if((w?.values.length??0)!==1)throw new fe(e,d.map(p=>p.columnName));let R=d.map((p,b)=>K(w.values[0][b*2],w.values[0][b*2+1],`${e}.${p.columnName}`,{textEncoding:a})),x=d.map((p,b)=>{let N=n==="undo"?p.postState:p.priorState,k=n==="undo"?p.priorState:p.postState,U=R[b];if(p.operation!=="json_patch"){if(!_r(U,N))throw new fe(e,[p.columnName]);return k}if(U.storageClass!==N.storageClass||p.newValue===void 0)throw new fe(e,[p.columnName]);let j=Os(U.value,p.newValue,p.priorState.value,p.postState.value,n);if(j.kind==="conflict")throw new fe(e,[p.columnName]);return Object.is(j.value,k.value)?k:K("text",j.value,`${e}.${p.columnName} JSON replay`)}),T=x.map(p=>yn(p,ne)),A=R.map((p,b)=>hn(d[b].columnName,p,ne));if(h.run(`UPDATE ${L(e)} SET ${d.map((p,b)=>`${C(p.columnName)} = ${T[b].sql}`).join(", ")} WHERE ${g.sql} AND `+A.map(p=>`(${p.sql})`).join(" AND "),P([...T.flatMap(p=>p.params),...g.params,...A.flatMap(p=>p.params)])),$n()!==1)throw new fe(e,d.map(p=>p.columnName));let $=Q(y,i),O=h.exec(`SELECT ${S.join(", ")} FROM ${L(e)} WHERE ${$.sql} LIMIT 2`,P($.params),{useBigInt:!0})[0];if((O?.values.length??0)!==1)throw new fe(e,d.map(p=>p.columnName));if(!x.every((p,b)=>_r(p,K(O.values[0][b*2],O.values[0][b*2+1],`${e}.${d[b].columnName}`,{textEncoding:a}))))throw new fe(e,d.map(p=>p.columnName))}I(`RELEASE ${u}`)}catch(c){throw W(u,"replayCellHistory"),c}}async function Zd(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,newTargetRowId:s,targetColumn:l,priorValue:u,newValue:c,operation:d,deletedRows:f,insertedRow:m}=e;if(n)switch(t){case"cell_update":await Xa(n,e,"undo");return;case"row_insert":if(e.importedRows){await oo(n,ja(e.importedRows).reverse());return}if(!m||a===void 0)throw new Z;if(typeof m.rowId!=typeof a||String(m.rowId)!==String(a))throw new Z;await oo(n,[m]);return;case"row_delete":{if(!f||f.length===0)throw new Z;await io(n,f);return}case"view_create":if(o)await et(n,o,null);else throw new Error("Cannot undo view_create: missing view definition");return;case"view_edit":if(r&&o)await et(n,o,r);else throw new Error("Cannot undo view_edit: missing view definition");return;case"view_drop":if(r)await et(n,null,r);else throw new Error("Cannot undo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be undone: this operation is recorded as a history barrier, not a replayable change`)}}async function ef(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,targetColumn:s,newValue:l,operation:u,rowData:c,affectedRowIds:d,insertedRow:f,deletedRows:m}=e;if(n)switch(t){case"cell_update":await Xa(n,e,"redo");return;case"row_insert":{if(e.importedRows){await io(n,ja(e.importedRows));return}if(!f)throw new Z;await io(n,[f]);return}case"row_delete":if(!m||m.length===0)throw new Z;await oo(n,m);return;case"view_create":if(o)await et(n,null,o);else throw new Error("Cannot redo view_create: missing view definition");return;case"view_edit":if(r&&o)await et(n,r,o);else throw new Error("Cannot redo view_edit: missing view definition");return;case"view_drop":if(r)await et(n,r,null);else throw new Error("Cannot redo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be redone: this operation is recorded as a history barrier, not a replayable change`)}}function tf(e,t){let n=new Map;for(let r of t){z(r.column,"Column name");let o;ie(r.rowId)?(zi(r.rowId),o=`primary-key:${r.rowId}`):o=`rowid:${String(H(r.rowId))}`;let i=n.get(o)??[];if(i.some(a=>He(a,r.column)))throw new Error(`Batch update for ${e} contains a duplicate row identity/column target: ${String(r.rowId)} / ${r.column}`);i.push(r.column),n.set(o,i)}}async function Ga(e,t,n,r,o){if(t.forEach(c=>ve(c.rowId)),!h)throw new Error("No database initialized");if(te("Batch cell updates"),t.length===0)return[];tf(e,t);let i=o===ao,a=i?0:Je(t.map(c=>c.value),r),s=Be();if(t.some(c=>ie(c.rowId))){if(!t.every(f=>ie(f.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let c=await le(e);if(c.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let d=V("sp_update_pk_batch");I(`SAVEPOINT ${d}`);try{if(Ot(e,t.map(E=>E.column),!1),!i&&r!==void 0)for(let E of t){let y=await An({table:e,rowId:E.rowId,column:E.column});if((y.storageClass==="text"||y.storageClass==="blob")&&y.byteLength>a)throw new Ge(e,E.column,y.storageClass,y.byteLength,a)}let f=new Map;for(let E of t){let y=f.get(E.rowId)??[];y.push(E),f.set(E.rowId,y)}let m=[];for(let[E,y]of f){let g=Q(E,c),S=[...new Set(y.map(p=>p.column))];if(S.length!==y.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let w=h.exec(`SELECT ${S.map(se).join(", ")} FROM ${L(e)} WHERE ${g.sql} LIMIT 2`,P(g.params),{useBigInt:!0})[0];if((w?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let R=y.map((p,b)=>{let N=K(w.values[0][b*2],w.values[0][b*2+1],`${e}.${p.column}`,{textEncoding:s}),k=N.value,U=gn(p.value,k,p.operation??"set"),j=U.operation==="json_patch"?to(k,U.value):U.value;return!i&&U.operation==="json_patch"&&Ye(j,a),{update:p,priorValue:k,priorState:N,prepared:U,storedValue:j}}),x=R.map(({update:p,storedValue:b})=>`${C(p.column)} = ${ne(b)}`).join(", ");if(h.run(`UPDATE ${L(e)} SET ${x} WHERE ${g.sql}`,P([...R.map(p=>p.storedValue),...g.params])),$n()!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let T=[];for(let p of R)c.columns.findIndex(N=>N.identifier===p.update.column)>=0&&T.push({column:p.update.column,value:p.storedValue});let A=wr(E,c,T),$=Ln(e,c,Q(A,c),eo(e)),O=Q($,c),D=h.exec(`SELECT ${S.map(se).join(", ")} FROM ${L(e)} WHERE ${O.sql} LIMIT 2`,P(O.params),{useBigInt:!0})[0];if((D?.values.length??0)!==1)throw eo(e);for(let[p,b]of R.entries())m.push({rowId:E,newRowId:$,columnName:b.update.column,priorValue:b.priorValue,newValue:b.prepared.value,priorState:b.priorState,postState:K(D.values[0][p*2],D.values[0][p*2+1],`${e}.${b.update.column}`,{textEncoding:s}),operation:b.prepared.operation})}return I(`RELEASE ${d}`),m}catch(f){throw W(d,"updatePrimaryKeyCellBatch"),f}}if((await le(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let u=V("sp_update_cell_batch");I(`SAVEPOINT ${u}`);try{if(!i&&r!==void 0)for(let T of t){let A=await An({table:e,rowId:T.rowId,column:T.column});if((A.storageClass==="text"||A.storageClass==="blob")&&A.byteLength>a)throw new Ge(e,T.column,A.storageClass,A.byteLength,a)}let c=uo(e);if(Ot(e,t.map(T=>T.column)),c!==void 0&&t.some(T=>He(T.column,c))){let T=wd(e,c,t,a,i);return I(`RELEASE ${u}`),T}let d=[...new Set(t.map(T=>H(T.rowId)))],f=[...new Set(t.map(T=>T.column))],m=L(e),E=new Map,y=ze(d,{kind:"rowid"});for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT), ${f.map(se).join(", ")} FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[]){let O=new Map;f.forEach((D,p)=>O.set(D,K($[p*2+1],$[p*2+2],`${e}.${D}`,{textEncoding:s}))),E.set(String(H($[0])),O)}}let g=[],S=t.map(T=>{let A=H(T.rowId),$=E.get(String(A));if(!$)throw new Error(`Cannot update ${e}.${T.column}: row ${T.rowId} no longer exists`);let O=$.get(T.column);if(!O)throw new Error(`Cannot update ${e}.${T.column}: cell state is unavailable`);let D=O.value,p=gn(T.value,D,T.operation??"set");if(!i&&p.operation==="json_patch"){let b=to(D,p.value);Ye(b,a)}return g.push({rowId:A,columnName:T.column,priorValue:D,newValue:p.value,priorState:O,operation:p.operation}),{...T,rowId:A,value:p.value,operation:p.operation}});for(let T of S){let A=C(T.column),O=T.operation==="json_patch"?`UPDATE ${m} SET ${A} = json_patch(COALESCE(${A}, '{}'), ?) WHERE rowid = ?`:`UPDATE ${m} SET ${A} = ${ne(T.value)} WHERE rowid = ?`;h.run(O,P([T.value,T.rowId]))}let w=new Set;for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT) FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[])w.add(String(H($[0])))}if(d.some(T=>!w.has(String(T))))throw yt(e);let R=new Map;for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT), ${f.map(se).join(", ")} FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[]){let O=new Map;f.forEach((D,p)=>O.set(D,K($[p*2+1],$[p*2+2],`${e}.${D}`,{textEncoding:s}))),R.set(String(H($[0])),O)}}let x=g.map(T=>{let A=R.get(String(T.rowId))?.get(T.columnName);if(!A)throw yt(e);return{...T,postState:A}});return I(`RELEASE ${u}`),x}catch(c){throw W(u,"updateCellBatch"),c}}async function nf(e,t,n,r){if(z(e,"Table name"),z(t,"Column name"),!h)throw new Error("No database initialized");te("Column creation"),ku(n);let o=`ALTER TABLE ${L(e)} ADD COLUMN ${C(t)} ${n}`;r!=null&&r!==""&&(o+=` DEFAULT ${Pu(r)}`);let i=V("sp_add_column");I(`SAVEPOINT ${i}`);try{let a=await G();I(o),we(a,await G()),I(`RELEASE ${i}`)}catch(a){throw W(i,"addColumn"),a}}async function rf(){if(!h)return!1;try{return h.exec("SELECT 1"),!0}catch{return!1}}async function of(){throw new Error("Reload must be handled by the demo host so it can reinitialize from the original database source")}var xa,ga,Lu,so,ya,$u,vu,In,ao,h,ha,Ia,Yr,ae,Cn,Nt,_t,xn,Aa,lo,_a,tt,Pe,Ea,Qu,Sa,Zu,ed,Da,Ba,td,Ua,Zr,Rn,Ca,Ra,Ya=M(()=>{"use strict";_();Ft();ut();wi();fr();J();yr();Ss();Rs();xr();$s();Nr();ks();qs();Et();pt();dn();Hs();Ks();Js();Fr();oa();Tn();da();fa();pa();En();xa=3e4,ga=8192,Lu=1e3,so=16*1024*1024,ya=64*1024,$u="16 MiB (16,777,216 bytes)",vu=1024*1024*1024,In=2e3,ao=Symbol("history-replay-edit"),h=null,ha=null,Ia=!1,Yr=xa,ae=!1,Cn=null,Nt="memory",_t=0,xn=At,Aa=Wr(void 0),lo=Dr,_a=Br,tt=null,Pe=new Set;Ea=0;Qu=8;Sa=100;Zu=4*65536,ed=65536,Da=Object.freeze(["id","parent","notused","detail"]),Ba="SQLite returned an unsupported query plan.",td=/^pragma\b/i;Ua=/--[^\r\n]*|\/\*[\s\S]*?\*\/|'(?:[^']|'')*'|"(?:[^"]|"")*"|`(?:[^`]|``)*`|\[[^\]]*\]|[A-Za-z_\u0080-\uffff][A-Za-z_0-9$\u0080-\uffff]*|[^\s]/g;Zr=class{constructor(t=so){this.chunks=[],this.pending="",this.outputBytes=0,this.capBytes=t}append(t){if(this.outputBytes+=Jr(t),!Number.isSafeInteger(this.outputBytes)||this.outputBytes>this.capBytes)throw co(this.capBytes);let n=0;for(;n0&&t.charCodeAt(o-1)>=55296&&t.charCodeAt(o-1)<=56319&&t.charCodeAt(o)>=56320&&t.charCodeAt(o)<=57343&&r--,r===0){this.flush();continue}this.pending+=t.slice(n,n+r),n+=r,this.pending.length>=ya&&this.flush()}}flush(){this.pending.length>0&&(this.chunks.push(this.pending),this.pending="")}finish(){return this.flush(),this.chunks}};Rn=40;Ca=64;Ra={initializeDatabase:Hu,runQuery:zu,runConsole:sd,executeReadQuery:Xu,getCellMetadata:An,openCellReadSession:qu,readCellChunk:Vu,closeCellReadSession:Fu,exportDatabase:ad,exportTable:ld,fetchTableData:Sd,fetchTableCount:bd,fetchSchema:Td,getTableInfo:mo,getImportTarget:Cd,getPragmas:Id,setPragma:Ad,updateCell:_d,replaceOversizedCell:Nd,insertRow:Od,insertRowWithHistory:Ld,importRows:Bd,deleteRows:qd,findDependentIndexes:Ha,deleteColumns:Wd,createTable:Qd,getViewDefinition:Nn,validateViewDefinition:Kd,previewViewDefinition:zd,createView:Xd,editView:Gd,dropView:Yd,undoModification:Zd,redoModification:ef,updateCellBatch:Ga,addColumn:nf,ping:rf,refreshFile:of};self.onmessage=async e=>{let t=e.data;if(!t||t.channel!=="rpc"||!t.content){console.warn("[Worker] Invalid message format",{valueType:t===null?"null":Array.isArray(t)?"array":typeof t,hasRpcChannel:t?.channel==="rpc",hasContent:!!t?.content});return}let{kind:n,messageId:r,targetMethod:o,payload:i}=t.content;if(n!=="invoke")return;if(typeof r!="string"||r.length===0||r.length>256){console.warn("[Worker] Invalid RPC correlation ID");return}let s=typeof o=="string"&&Object.prototype.hasOwnProperty.call(Ra,o)?Ra[o]:void 0;if(typeof s!="function"){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:`Unknown method: ${typeof o=="string"?o.slice(0,256):""}`}});return}if(!Array.isArray(i)){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:"Worker RPC payload must be an array"}});return}try{Wu(o);let l=await s(...i),u={channel:"rpc",content:{kind:"response",messageId:r,success:!0,data:l}};if(o==="exportDatabase"&&l instanceof Uint8Array){let c=l.byteOffset===0&&l.byteLength===l.buffer.byteLength&&l.buffer instanceof ArrayBuffer?l:l.slice();u.content.data=c,self.postMessage(u,[c.buffer])}else self.postMessage(u)}catch(l){let u=Te(l);console.error("[Worker] Method error:",o,u);let c;try{c=ra(l)}catch{}self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:u,...c?{error:c}:{}}})}}});_();nr();await Promise.resolve().then(()=>(Ya(),sf));await Fe.start();await Fe.flush();var po=ni();po.kind==="eof"&&tjs.exit(Jo);console.error(`[native-worker] shutting down: ${po.kind} -- ${po.error?.message??""}`);tjs.exit(Zo); +) SELECT * FROM ${c} LIMIT ${a}`,o)}let u=V("sp_preview_view");x(`SAVEPOINT ${u}`);try{let c=await G();typeof s=="string"&&x(`DROP VIEW ${oe(e)}`),x(ct(e,i,l)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),we(c,await G());let d=Xr(`SELECT * FROM ${oe(e)} LIMIT ${a}`,o);return x(`ROLLBACK TO ${u}`),x(`RELEASE ${u}`),d}catch(c){throw W(u,"previewViewDefinition"),c}}async function Gd(e,t){if(z(e,"View name"),!h)throw new Error("No database initialized");te("View creation");let n=Ee(t),r=V("sp_create_view");x(`SAVEPOINT ${r}`);try{let o=await G();x(ct(e,n)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`);let i=await Nn(e);return we(o,await G()),x(`RELEASE ${r}`),i}catch(o){throw W(r,"createView"),o}}async function Yd(e,t,n=!0,r,o){if(!h)throw new Error("No database initialized");te("View editing");let i=Ee(t),a=V("sp_edit_view");x(`SAVEPOINT ${a}`);try{let s=await Nn(e);Qt(s),Kt(r,s.sql,o,s.triggers);let l=await G();if(x(`DROP VIEW ${oe(e)}`),x(ct(e,i,s.columnListSql,s.columns)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),n){let d=(h.exec(`PRAGMA main.table_info(${C(e)})`)[0]?.values??[]).map(f=>{if(typeof f[1]!="string")throw new Error(`SQLite returned invalid column metadata for view ${e}`);return f[1]});mi(s.triggers,d);for(let f of s.triggers)x(lr(f))}let u=await Nn(e);return we(l,await G()),x(`RELEASE ${a}`),{before:s,after:u}}catch(s){throw W(a,"editView"),s}}async function Jd(e,t,n){if(!h)throw new Error("No database initialized");te("View deletion");let r=V("sp_drop_view");x(`SAVEPOINT ${r}`);try{let o=await za(e,!0);Qt(o),Kt(t,o.sql,n,o.triggers);let i=await G();return x(`DROP VIEW ${oe(e)}`),we(i,await G()),x(`RELEASE ${r}`),o}catch(o){throw W(r,"dropView"),o}}async function et(e,t,n){te("View history replay");let r=V("sp_restore_view");x(`SAVEPOINT ${r}`);try{let o=await Ka(e,!0);o&&Qt(o),yi(t,o);let i=await G();if(o&&x(`DROP VIEW ${oe(e)}`),n){x(n.sql),ot(`EXPLAIN SELECT * FROM ${oe(n.identifier)}`);for(let a of n.triggers)x(lr(a))}we(i,await G()),x(`RELEASE ${r}`)}catch(o){throw W(r,"restoreViewDefinition"),o}}function $n(){let e=h.exec("SELECT changes()",void 0,{useBigInt:!0})[0]?.values?.[0]?.[0],t=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(t)||t<0)throw new Error("SQLite returned an invalid changes() count");return t}async function oo(e,t){if(!Array.isArray(t)||t.length===0)throw new J;t.forEach(xt);let n=await le(e),r=V("sp_history_delete_rows");x(`SAVEPOINT ${r}`);try{De("DELETE",e);for(let o of t){let i=Q(o.rowId,n),a=Or(o,ne);if(h.run(`DELETE FROM ${L(e)} WHERE (${i.sql}) AND (${a.sql})`,P([...i.params,...a.params])),$n()!==1)throw new _e(e)}x(`RELEASE ${r}`)}catch(o){throw W(r,"deleteRowHistorySnapshots"),o}}async function io(e,t){if(!Array.isArray(t)||t.length===0)throw new J;let n=await le(e),r=t.map(i=>({snapshot:i,states:xt(i),writes:ks(i,ne)})),o=V("sp_history_restore_rows");x(`SAVEPOINT ${o}`);try{for(let i of r){De("INSERT",e,i.states.map(l=>l.column));let a=Q(i.snapshot.rowId,n);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE ${a.sql} LIMIT 1`,P(a.params))[0]?.values.length??0)!==0)throw new _e(e)}for(let i of r){let a=i.writes.map(f=>f.column),s=i.writes.map(f=>f.write.sql),l=i.writes.flatMap(f=>f.write.params);if(n.kind==="rowid"&&!a.some(f=>f.toLowerCase()==="rowid")&&(a.unshift("rowid"),s.unshift(ne(i.snapshot.rowId)),l.unshift(i.snapshot.rowId)),h.run(`INSERT INTO ${L(e)} (${a.map(C).join(", ")}) VALUES (${s.join(", ")})`,P(l)),$n()!==1)throw new _e(e);let u=Q(i.snapshot.rowId,n),c=Or(i.snapshot,ne);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE (${u.sql}) AND (${c.sql}) LIMIT 2`,P([...u.params,...c.params]))[0]?.values.length??0)!==1)throw new _e(e)}x(`RELEASE ${o}`)}catch(i){throw W(o,"restoreRowHistorySnapshots"),i}}function Zd(e){let t=e.affectedCells??(e.targetRowId!==void 0&&e.targetColumn?[{rowId:e.targetRowId,newRowId:e.newTargetRowId,columnName:e.targetColumn,newValue:e.newValue,operation:e.operation,priorState:e.priorState,postState:e.postState}]:[]);if(t.length===0)throw new Ct;return t.map(n=>(Rt(n.priorState),Rt(n.postState),n))}async function Ga(e,t,n){if(t.undoPolicy==="barrier")throw new Error("Forward-only cell history barriers cannot be replayed");let r=Zd(t),o=r.some(c=>ie(c.rowId));if(o&&!r.every(c=>ie(c.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let i=await le(e);if(o&&i.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);if(!o&&i.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let a=Be(),s=new Map;for(let c of r){let d=s.get(c.rowId)??[];if(d.some(f=>He(f.columnName,c.columnName)))throw new Error(`Cell history for ${e} contains the same column more than once`);d.push(c),s.set(c.rowId,d)}let l=[...s.entries()];n==="undo"&&r.some(c=>c.newRowId!==void 0&&c.newRowId!==c.rowId)&&l.reverse();let u=V("sp_replay_cell_history");x(`SAVEPOINT ${u}`);try{Ot(e,r.map(c=>c.columnName),i.kind==="rowid");for(let[c,d]of l){if(new Set(d.map(p=>p.newRowId??p.rowId)).size!==1)throw new Error(`Cell history for ${e} has inconsistent post-update identities`);let m=d[0].newRowId??c,E=n==="undo"?m:c,y=n==="undo"?c:m,g=Q(E,i),S=d.map(p=>se(p.columnName)),w=h.exec(`SELECT ${S.join(", ")} FROM ${L(e)} WHERE ${g.sql} LIMIT 2`,P(g.params),{useBigInt:!0})[0];if((w?.values.length??0)!==1)throw new fe(e,d.map(p=>p.columnName));let R=d.map((p,b)=>K(w.values[0][b*2],w.values[0][b*2+1],`${e}.${p.columnName}`,{textEncoding:a})),I=d.map((p,b)=>{let N=n==="undo"?p.postState:p.priorState,k=n==="undo"?p.priorState:p.postState,U=R[b];if(p.operation!=="json_patch"){if(!_r(U,N))throw new fe(e,[p.columnName]);return k}if(U.storageClass!==N.storageClass||p.newValue===void 0)throw new fe(e,[p.columnName]);let j=Ls(U.value,p.newValue,p.priorState.value,p.postState.value,n);if(j.kind==="conflict")throw new fe(e,[p.columnName]);return Object.is(j.value,k.value)?k:K("text",j.value,`${e}.${p.columnName} JSON replay`)}),T=I.map(p=>yn(p,ne)),A=R.map((p,b)=>hn(d[b].columnName,p,ne));if(h.run(`UPDATE ${L(e)} SET ${d.map((p,b)=>`${C(p.columnName)} = ${T[b].sql}`).join(", ")} WHERE ${g.sql} AND `+A.map(p=>`(${p.sql})`).join(" AND "),P([...T.flatMap(p=>p.params),...g.params,...A.flatMap(p=>p.params)])),$n()!==1)throw new fe(e,d.map(p=>p.columnName));let $=Q(y,i),O=h.exec(`SELECT ${S.join(", ")} FROM ${L(e)} WHERE ${$.sql} LIMIT 2`,P($.params),{useBigInt:!0})[0];if((O?.values.length??0)!==1)throw new fe(e,d.map(p=>p.columnName));if(!I.every((p,b)=>_r(p,K(O.values[0][b*2],O.values[0][b*2+1],`${e}.${d[b].columnName}`,{textEncoding:a}))))throw new fe(e,d.map(p=>p.columnName))}x(`RELEASE ${u}`)}catch(c){throw W(u,"replayCellHistory"),c}}async function ef(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,newTargetRowId:s,targetColumn:l,priorValue:u,newValue:c,operation:d,deletedRows:f,insertedRow:m}=e;if(n)switch(t){case"cell_update":await Ga(n,e,"undo");return;case"row_insert":if(e.importedRows){await oo(n,Ha(e.importedRows).reverse());return}if(!m||a===void 0)throw new J;if(typeof m.rowId!=typeof a||String(m.rowId)!==String(a))throw new J;await oo(n,[m]);return;case"row_delete":{if(!f||f.length===0)throw new J;await io(n,f);return}case"view_create":if(o)await et(n,o,null);else throw new Error("Cannot undo view_create: missing view definition");return;case"view_edit":if(r&&o)await et(n,o,r);else throw new Error("Cannot undo view_edit: missing view definition");return;case"view_drop":if(r)await et(n,null,r);else throw new Error("Cannot undo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be undone: this operation is recorded as a history barrier, not a replayable change`)}}async function tf(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,targetColumn:s,newValue:l,operation:u,rowData:c,affectedRowIds:d,insertedRow:f,deletedRows:m}=e;if(n)switch(t){case"cell_update":await Ga(n,e,"redo");return;case"row_insert":{if(e.importedRows){await io(n,Ha(e.importedRows));return}if(!f)throw new J;await io(n,[f]);return}case"row_delete":if(!m||m.length===0)throw new J;await oo(n,m);return;case"view_create":if(o)await et(n,null,o);else throw new Error("Cannot redo view_create: missing view definition");return;case"view_edit":if(r&&o)await et(n,r,o);else throw new Error("Cannot redo view_edit: missing view definition");return;case"view_drop":if(r)await et(n,r,null);else throw new Error("Cannot redo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be redone: this operation is recorded as a history barrier, not a replayable change`)}}function nf(e,t){let n=new Map;for(let r of t){z(r.column,"Column name");let o;ie(r.rowId)?(zi(r.rowId),o=`primary-key:${r.rowId}`):o=`rowid:${String(H(r.rowId))}`;let i=n.get(o)??[];if(i.some(a=>He(a,r.column)))throw new Error(`Batch update for ${e} contains a duplicate row identity/column target: ${String(r.rowId)} / ${r.column}`);i.push(r.column),n.set(o,i)}}async function Ya(e,t,n,r,o){if(t.forEach(c=>ve(c.rowId)),!h)throw new Error("No database initialized");if(te("Batch cell updates"),t.length===0)return[];nf(e,t);let i=o===ao,a=i?0:Je(t.map(c=>c.value),r),s=Be();if(t.some(c=>ie(c.rowId))){if(!t.every(f=>ie(f.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let c=await le(e);if(c.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let d=V("sp_update_pk_batch");x(`SAVEPOINT ${d}`);try{if(Ot(e,t.map(E=>E.column),!1),!i&&r!==void 0)for(let E of t){let y=await An({table:e,rowId:E.rowId,column:E.column});if((y.storageClass==="text"||y.storageClass==="blob")&&y.byteLength>a)throw new Ge(e,E.column,y.storageClass,y.byteLength,a)}let f=new Map;for(let E of t){let y=f.get(E.rowId)??[];y.push(E),f.set(E.rowId,y)}let m=[];for(let[E,y]of f){let g=Q(E,c),S=[...new Set(y.map(p=>p.column))];if(S.length!==y.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let w=h.exec(`SELECT ${S.map(se).join(", ")} FROM ${L(e)} WHERE ${g.sql} LIMIT 2`,P(g.params),{useBigInt:!0})[0];if((w?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let R=y.map((p,b)=>{let N=K(w.values[0][b*2],w.values[0][b*2+1],`${e}.${p.column}`,{textEncoding:s}),k=N.value,U=gn(p.value,k,p.operation??"set"),j=U.operation==="json_patch"?to(k,U.value):U.value;return!i&&U.operation==="json_patch"&&Ye(j,a),{update:p,priorValue:k,priorState:N,prepared:U,storedValue:j}}),I=R.map(({update:p,storedValue:b})=>`${C(p.column)} = ${ne(b)}`).join(", ");if(h.run(`UPDATE ${L(e)} SET ${I} WHERE ${g.sql}`,P([...R.map(p=>p.storedValue),...g.params])),$n()!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let T=[];for(let p of R)c.columns.findIndex(N=>N.identifier===p.update.column)>=0&&T.push({column:p.update.column,value:p.storedValue});let A=wr(E,c,T),$=Ln(e,c,Q(A,c),eo(e)),O=Q($,c),D=h.exec(`SELECT ${S.map(se).join(", ")} FROM ${L(e)} WHERE ${O.sql} LIMIT 2`,P(O.params),{useBigInt:!0})[0];if((D?.values.length??0)!==1)throw eo(e);for(let[p,b]of R.entries())m.push({rowId:E,newRowId:$,columnName:b.update.column,priorValue:b.priorValue,newValue:b.prepared.value,priorState:b.priorState,postState:K(D.values[0][p*2],D.values[0][p*2+1],`${e}.${b.update.column}`,{textEncoding:s}),operation:b.prepared.operation})}return x(`RELEASE ${d}`),m}catch(f){throw W(d,"updatePrimaryKeyCellBatch"),f}}if((await le(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let u=V("sp_update_cell_batch");x(`SAVEPOINT ${u}`);try{if(!i&&r!==void 0)for(let T of t){let A=await An({table:e,rowId:T.rowId,column:T.column});if((A.storageClass==="text"||A.storageClass==="blob")&&A.byteLength>a)throw new Ge(e,T.column,A.storageClass,A.byteLength,a)}let c=uo(e);if(Ot(e,t.map(T=>T.column)),c!==void 0&&t.some(T=>He(T.column,c))){let T=Sd(e,c,t,a,i);return x(`RELEASE ${u}`),T}let d=[...new Set(t.map(T=>H(T.rowId)))],f=[...new Set(t.map(T=>T.column))],m=L(e),E=new Map,y=ze(d,{kind:"rowid"});for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT), ${f.map(se).join(", ")} FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[]){let O=new Map;f.forEach((D,p)=>O.set(D,K($[p*2+1],$[p*2+2],`${e}.${D}`,{textEncoding:s}))),E.set(String(H($[0])),O)}}let g=[],S=t.map(T=>{let A=H(T.rowId),$=E.get(String(A));if(!$)throw new Error(`Cannot update ${e}.${T.column}: row ${T.rowId} no longer exists`);let O=$.get(T.column);if(!O)throw new Error(`Cannot update ${e}.${T.column}: cell state is unavailable`);let D=O.value,p=gn(T.value,D,T.operation??"set");if(!i&&p.operation==="json_patch"){let b=to(D,p.value);Ye(b,a)}return g.push({rowId:A,columnName:T.column,priorValue:D,newValue:p.value,priorState:O,operation:p.operation}),{...T,rowId:A,value:p.value,operation:p.operation}});for(let T of S){let A=C(T.column),O=T.operation==="json_patch"?`UPDATE ${m} SET ${A} = json_patch(COALESCE(${A}, '{}'), ?) WHERE rowid = ?`:`UPDATE ${m} SET ${A} = ${ne(T.value)} WHERE rowid = ?`;h.run(O,P([T.value,T.rowId]))}let w=new Set;for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT) FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[])w.add(String(H($[0])))}if(d.some(T=>!w.has(String(T))))throw yt(e);let R=new Map;for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT), ${f.map(se).join(", ")} FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[]){let O=new Map;f.forEach((D,p)=>O.set(D,K($[p*2+1],$[p*2+2],`${e}.${D}`,{textEncoding:s}))),R.set(String(H($[0])),O)}}let I=g.map(T=>{let A=R.get(String(T.rowId))?.get(T.columnName);if(!A)throw yt(e);return{...T,postState:A}});return x(`RELEASE ${u}`),I}catch(c){throw W(u,"updateCellBatch"),c}}async function rf(e,t,n,r){if(z(e,"Table name"),z(t,"Column name"),!h)throw new Error("No database initialized");te("Column creation"),Pu(n);let o=`ALTER TABLE ${L(e)} ADD COLUMN ${C(t)} ${n}`;r!=null&&r!==""&&(o+=` DEFAULT ${Du(r)}`);let i=V("sp_add_column");x(`SAVEPOINT ${i}`);try{let a=await G();x(o),we(a,await G()),x(`RELEASE ${i}`)}catch(a){throw W(i,"addColumn"),a}}async function of(){if(!h)return!1;try{return h.exec("SELECT 1"),!0}catch{return!1}}async function sf(){throw new Error("Reload must be handled by the demo host so it can reinitialize from the original database source")}var Ia,ya,$u,so,ha,vu,ku,In,ao,h,Ea,Aa,Yr,ae,Cn,Nt,_t,xn,_a,lo,Na,tt,Pe,wa,Ku,ba,ed,td,Ba,Ma,nd,qa,Zr,Rn,Ra,xa,Ja=M(()=>{"use strict";_();Ft();ut();wi();fr();Y();yr();bs();xs();xr();vs();Nr();Ps();Vs();Et();pt();dn();Qs();zs();Zs();Fr();ia();Tn();fa();ma();ga();En();Ia=3e4,ya=8192,$u=1e3,so=16*1024*1024,ha=64*1024,vu="16 MiB (16,777,216 bytes)",ku=1024*1024*1024,In=2e3,ao=Symbol("history-replay-edit"),h=null,Ea=null,Aa=!1,Yr=Ia,ae=!1,Cn=null,Nt="memory",_t=0,xn=At,_a=Wr(void 0),lo=Dr,Na=Br,tt=null,Pe=new Set;wa=0;Ku=8;ba=100;ed=4*65536,td=65536,Ba=Object.freeze(["id","parent","notused","detail"]),Ma="SQLite returned an unsupported query plan.",nd=/^pragma\b/i;qa=/--[^\r\n]*|\/\*[\s\S]*?\*\/|'(?:[^']|'')*'|"(?:[^"]|"")*"|`(?:[^`]|``)*`|\[[^\]]*\]|[A-Za-z_\u0080-\uffff][A-Za-z_0-9$\u0080-\uffff]*|[^\s]/g;Zr=class{constructor(t=so){this.chunks=[],this.pending="",this.outputBytes=0,this.capBytes=t}append(t){if(this.outputBytes+=Jr(t),!Number.isSafeInteger(this.outputBytes)||this.outputBytes>this.capBytes)throw co(this.capBytes);let n=0;for(;n0&&t.charCodeAt(o-1)>=55296&&t.charCodeAt(o-1)<=56319&&t.charCodeAt(o)>=56320&&t.charCodeAt(o)<=57343&&r--,r===0){this.flush();continue}this.pending+=t.slice(n,n+r),n+=r,this.pending.length>=ha&&this.flush()}}flush(){this.pending.length>0&&(this.chunks.push(this.pending),this.pending="")}finish(){return this.flush(),this.chunks}};Rn=40;Ra=64;xa={initializeDatabase:Qu,runQuery:Xu,runConsole:ad,executeReadQuery:Gu,getCellMetadata:An,openCellReadSession:Vu,readCellChunk:Fu,closeCellReadSession:Wu,exportDatabase:ld,exportTable:cd,fetchTableData:bd,fetchTableCount:Td,fetchSchema:Cd,getTableInfo:mo,getImportTarget:Rd,getPragmas:Ad,setPragma:_d,updateCell:Nd,replaceOversizedCell:Od,insertRow:Ld,insertRowWithHistory:$d,importRows:Md,deleteRows:Vd,findDependentIndexes:Qa,deleteColumns:jd,createTable:Kd,getViewDefinition:Nn,validateViewDefinition:zd,previewViewDefinition:Xd,createView:Gd,editView:Yd,dropView:Jd,undoModification:ef,redoModification:tf,updateCellBatch:Ya,addColumn:rf,ping:of,refreshFile:sf};self.onmessage=async e=>{let t=e.data;if(!t||t.channel!=="rpc"||!t.content){console.warn("[Worker] Invalid message format",{valueType:t===null?"null":Array.isArray(t)?"array":typeof t,hasRpcChannel:t?.channel==="rpc",hasContent:!!t?.content});return}let{kind:n,messageId:r,targetMethod:o,payload:i}=t.content;if(n!=="invoke")return;if(typeof r!="string"||r.length===0||r.length>256){console.warn("[Worker] Invalid RPC correlation ID");return}let s=typeof o=="string"&&Object.prototype.hasOwnProperty.call(xa,o)?xa[o]:void 0;if(typeof s!="function"){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:`Unknown method: ${typeof o=="string"?o.slice(0,256):""}`}});return}if(!Array.isArray(i)){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:"Worker RPC payload must be an array"}});return}try{ju(o);let l=await s(...i),u={channel:"rpc",content:{kind:"response",messageId:r,success:!0,data:l}};if(o==="exportDatabase"&&l instanceof Uint8Array){let c=l.byteOffset===0&&l.byteLength===l.buffer.byteLength&&l.buffer instanceof ArrayBuffer?l:l.slice();u.content.data=c,self.postMessage(u,[c.buffer])}else self.postMessage(u)}catch(l){let u=Te(l);console.error("[Worker] Method error:",o,u);let c;try{c=oa(l)}catch{}self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:u,...c?{error:c}:{}}})}}});_();nr();await Promise.resolve().then(()=>(Ja(),af));await Fe.start();await Fe.flush();var po=ni();po.kind==="eof"&&tjs.exit(Jo);console.error(`[native-worker] shutting down: ${po.kind} -- ${po.error?.message??""}`);tjs.exit(Zo); diff --git a/viewer-dist/native/tjs b/viewer-dist/native/tjs index b7c77902ddb67191e26390cf7e6d9cdb8690572c..e20f98c87f33c16dacd1522370313abfb2ec1010 100755 GIT binary patch delta 1006574 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 |nfvwhs z^S6v!Ra?(d>jnOy_0g5(DExRVo`HnPkqrXP7~P|YE6S&77zNuBWCx;`ztftvVqi`s z_~I%i?rX4!Swh%qOEb;;Vm7jOVqd=;N9S2_Godn3d?(DZLe%&mejnk}4@b>~A5Z)f z;bzFdBPFcPqLCJ{xkIjx#AYxA3g9Xqzz2+5x`0S0AW{gm2bJKp$}(}1 z-IK?wSuB9eF>_n(O<-r&(b}4qV6)rW)4-Q#fD5ce0d|^uzJIE|2ROf?Q|m;_oYj-H z%BZ^9G{)f!CX&Ao#;0=chYN$%Ek9vD8-(=Kor;U~aaCB1BG4dM38i4D`RvhEm#OhY&BxutoegPl zp=g+MXg_AyTAmdRA3hCr-k+ltl%Q*v;QXU>>lwQR0*(9Djs%$DQ#{Y`Gv1BiGx-6b ze5FBJ(sgx*Rj5-SQhhoG^rf1Ry_(wAiY7dHGTx!iW!NfPk9t|4H;&gza>r{qm8+l8 zDt9I*(>5=?nrZv>0MoSHgTog2>00HAv07z?`;5)HnXrBq)+$=*W2CI}5hVq%bmqqJ z;x)i|@=f#nfICpk$?k#ON+Sh19|v*gF6pPjh#R4k<$6w_GXfuDfR&Qim&`jqzQX9w z!8gA*st7hW5KH7MEQ+)8Y9Tr%&}qD2F6})&d5@dCE-LjPasewmMu=B+xGT}yu#ajO z8c9QbjsggEHe6Lj<1w7P?&YQYIHjMtusI}^@EcqQDXmrG4lcq?Pzu>rCbGj`(Fz6t zSxD0Z*Usr`N;jYYZ>?Ajfvs)I-t`k&(L~4_OoL6(t;4wYkW0sfk+gO_Vgjv@)2@@+w+F=n z!%+5RXit*@5zbTVa2bjvwelpc)Vp~!tq7)x8ZMI^L!FiIOB_XKk3qKgGvyF@X_n>d zF2bB!K!8f{*h%cUW!Jsl?v?qP<2vdKg?`P^!_IWOUX?SfwW5N_gkOyS6SBI-9YtKx zLGTPS^vPeUl3CDR2KhB0iEnDZzv}O*ke5K&^69dOtvjY%b!r_2V!Ob=+-VQNO0lK# zfV%O4M=FN}i*FPObFSeY)G&7}&70i9oX?^M-0M@IFk_#i+s^1%MwR0(PSz3$Ce_?G z;IYJnIX}S88xS0F3OzrKlSWJ4tW(5sBa5Yxf>{AWj)qa5VIRq19#LWlk;8=;_xd7` zDHX>D0hodYLoM2cLWpwo{BhS$fI4ydxb4>3+F*XVz*+@+f{!xc`xP(mnWP_qdX*TX zp}y!CQ;`vV7jWz_U<7l4*eIu`AY+8_?Bz!2Iu;=(QF&O}oydT96f&Ru2Qs_d$Q+^- zZ-}UzEl67L!dXML@4CUb?~GSDzOi}CzuAJT{{1z;R#!;}FzTGoCIQ2*zAK-6$rv@8< zSnmxKf17+0E#-{oXqtp^w#M%V)LQ%8k%j>hDkfb(cGl2a>ll1~9q0z_*cs8TxELIK*+PE(Z#oOIF`T)ArKjjiOE0vpA9VI82P;IWTPi^C!~lWY8G_ z(xp#NtxU@T_W>)GjT-PtrCLM@+udiRB%zk5xAx`FEO95M8mXFuQ4@t&C| z(VA*Wz2?BAght@;VA@`Sx~Z+v-y22nfa6$Yq{eAUOkaj8m}k;C2J+QQ@2;L-WrTXo zWY<&RQc;6R6yR)(RTkUKtRmOLs27o1Vy~Grz6j@(oze7W5dvtxv>OGvxSJnlm=f@8 zw51_k4{5GTv!&kRx~k|xkqF3{gauIH^{T`g$Q}pOds(`tFsjT>6?|V0KrciB-2ik8 zmXY!aV!b6mk1#}Mr#`1u;)2pG>)_|F35n$Hav7fIE=IxM7ipSzb1EWeDzIE;s~XKQP%i^8;F`|%xGdq}ShgNp)Y#b1xBk%9{HwMrhe(ooZ` z9)d!=#x8{?fEP$wsD_6YL`ig2RpN)J;4-MwtH}`R_?Bqe_(cfQ#itMM0J0fD+LqK8 zwaTHSRSpkGD=B;iRDwOTcNi^sOEe1uo~*c8o}86zW|^BH8Bz4rTX1LeYd}}u5;6Wc zAhzi|GV?b_Qq#9Z%!n63Y^|2Lk?%1WHsae$n74VaArAdoq(@DtyV8s^B8+Uz;yFPN4 zSqGF+-}hYKGBdCBLU$ey>3sYyM^|}7$}tk<2dlQ6FpPp;mb8*Z2XVjCfvTicw7X4A zL&|+u)NA_D$|~ah8TKm0pd4SFRtoRQDvab@pR^J?7BO7!j4QO`T@fLDy3-HuiWsq+ zZoDfx2DugMB%3yjZDnS}MK4gF_ry`LkP?bTGvQC8i$zDkuPhb|BO_m{q7`^BbLDSr zC*o38s1Q>e@Ek3rY!V$UFuwBa4>X}Uo5b@qetH#3lhR%e44~-EI5e6&RFPNC9!g_3 zi(upNp|-%4&xJLhm7B$EvuJ26g}g7)%*2*h8uz|K2sQzaE#id;XFa39 zT=54wn|%(W&PS~a%CIhQS+)So3AzE>foF z9~bGT?V@Rdf-U2#zyh4tvBPGrwb+w^H5SUi#`1a@ez-_&O2p)t&+*-)3#%y{9)aU= zST!f``xois5|L1IA0$zED6Uq~I+uu~4>JA3^AooFQl}ll8iW1kylY3y{pVkJ?vkk` z^RU~VUKkB@f}L?)>7gB>fn`3vWu@9_DH6UJtsJjn{L{1J>HQrdEeej2JTWW1gz-1c zzYu53JQWF(mj$4Jox&cgTDoXcwX%u7&fVI09JotYH$nwF&vc>DJJDJezGY>^QVtTn zQ|meAVeyu3ZB83@qO~~Qk9^wG8ejYv?7aA*R-jgR0J3}_Ube&oC}vhVZTLVeXr^)+ zC7|g*=M^m0Sd3VNQtO$!m-d>eMG7W0fku8PA}uQMNP=t5hr%W-8~F%vh2~niO9Tls zFR>+U_(<3-jEnwsI(_|-ND7?GK{ziZ@G8mtU7p~eN5%w1Q~Od##ikB4wp6T=OFGbv zQqiE@yg?kh6YdmvNFt|$x&G(neKsF-%xvZekJgHUr-~xhiPm~rC2ZKdXQSg?19yW{ zEfWFNC$kyR$6~)lwR~So*Q7n-Gbu->Q1Yi@glwEbFMKL~GVz})TvPUnQSRQ%74-E! zk>tg{=4ax5vuD>^(v;6YKvkvDn(BTo{xB2WTao^S7}WyADa-2B8q~Bp4PNS2K|26P ze)3GSrdFb4nH~9KUc(BN#6Ud%GWILs8x2~OfmS7t@5aIacHu|xFE@pKpx~KQW#eiG z(#bExONbp9e&knRvSm)jcRGykOT3iXL9D zZr_3+9vaO5Rt)CRFSDiz`WZO^3hjPvJS@H=sTGtWp}-KD9`L#01p zDK4#}6`X3DI_ngs8&9=Ad?$MUv)cPwQrqvv0xymqeeb~@qk8yz(b$V)%^!rLp`y%v zZPf!**3z^T_!twdM$aM%c5>&@M?ZL~xUVf8{y{`Wx#{U;#J<@MD~ZPM+>0Vbb#QPxxqcM;O$5Qy%mFXE8&Kbun}L zhF`(E04av#(4W7Wq*FO_euHSbb6kg!5R46HDQr5y>&)2jj!mwK4cFlsS1yunSHJp* zNj#Oc^N1KO<<^!i|KmbR*(izdhO?8gRSoVvVd?^vXm+w%;>D99$b$;Kby5uXCM>5+ z9#r)YJtZpcMDm$yRdg9hs#g(BB=Z=_k!KJD&K#O&&6G6f4^#E#F+tY-VYbC^wDS+~ z9plG2E;=WAizs&?hbBrpXUN>nnYa6|s;>G|Bq=1gjH1-vS8%np8woe1ROKTth;KZV zQ_G8D2KP$kyme7jdUM{oB+{7j-ueciKBhcesvgR#Qgttjxn`;ENiMp~I@evH>)I7g zsY)`EXyi5VsF|3W!ag!ji>~&)g*X z;xDwO5_w6kuD76Q8mg3=I!|1@v$af~%s~2?Rp^ZykgBRMDDIrC5z;2TInAV;;K`xY z;4W{@NL{9RbJpo{hGjacp8jeQMHn*0OdLs~F$TcQoMd{M-m{Q79b4edHuU(OY>Z3>NO zAjd|#8z|X=qvRN`Er($zO@y7~hW6M=4P<+>g6#ILCQ%Zqd_jAvW0xbmZA`L*$yBNA z_O#kA8#4hJJ$Dtq*yZb9;OAl>nV?v)b+>fs4P|X1KWRt)jpSG_$jnAy5CwwC^{qy- z_3irjxFcO}B%=dV6K)Gb{nk>bS!3z2EJoe&!iV-WmaUl=inAIe(9Om&(oDegj*9gp z9!a2Xv2sR~YOF$cc$l4ceSW+jLdJO7b^0OJgAo!no5(|EU45sGQ%H}mmeVZWQw9_Gi`8>n@p6_;VGy5Il1<;_W7(T(7q#f#rZUx} zPm45K*Hk`lws}2;+BTE7ngE-;EW>R#W80|9i979PPz&!twx*HI<*)iH4QN{AkzC+~`Ye&-uEo7cdN^%WIkP9UXZQeUz^q*VFD{@$(>p*Kv>x@aB z6=wg>ZKYi|Tkq6C8B52|`qE?n(t4*3)UchY5gAol-40sRjhE|iJDH*slgf%pk?TEK zv^Pce)}teAu7D2mGpTQmvbhd-lJUZl%}XcXP`8U*EG^x5D#CcIOT|d3th5@GlP2fZ zO-D}pD;*pPqPT;rZo1s0oA6~FXm1ZNhRQnIfzI@hNpfW?S4>a&f@r9|f~W?%G_D-M zqY%X7P`w#YY-v1&p%(}5k%P?^GLp;|jE>Z{7i3wLZq$*U>xGe52(7O{@AbmStDN>7 zDWJC;ZYKJ5bWQ0k|ER$=;c5p}Q(4vn9cj`)h%(^IvQX2`fo4r*R@8KqbA}>kdIvN( z2uf6ep{5OkEDEqBiCm+gt5u?RGQBri1~pU_PAl!KEn7cX zyEl5Wwy}7!Rf}z4_0f_QoeGm(Cr0zk*AEiEY*sRLy$=d8$RnZN%(Zk+w1!=(O8z(EQQj2rV&X&8RywTXzVUk=c{GV(Dr=JX3${q!FJ-pDE zPCp_)W6?AmH|EOH7b9;IAEgh-bG}(j4InP?sonD+K)0&tG!(kPvDOhB;%RZ8p z5{C`MjDG|XV0lIfak< zBg>Pf)F|XnJPFD4RMu>k+%GK+S-OB~)g1X@J-f;Kj+)r=V?0*Qk@a0CpOTk_?q|2r z;b&l>?Sl(}XR_5fa+b7(P;jms?fZ5#9&baK4$`x8Wo+=ED7-zai*GIults7Z=tZ~o zXbx)#ZOfJ8edpbVjhQRw#f?Kc4vhtffG^BCZXfGXFWw`}+z0hhX-G&At}Hw>OjQc4Ucj8a+xGfxhj^+hC<&P0fs1$k;as8&~xg%kovCf1u|51 zpe(-9N?9x9HHNfb^Gm@Vh^L zzXN2Sdr58*5ef`B)=?9-2m6(d4zhnAuD+%D(a=>g{tkfN9nJo#>QDu(lK1O+>rk8P z+8SADM4@1@^--%spD?+-`dw*t7@prix9)4u_nd(}4OiROcuMIPVxy`zj=HKav>?ygBYiy*ryaj2H-W|92NN1UYp70c<| zMxN-APF*+2;0AuJ9Va97qHEnWNBR6koyzAw*Xj46TBX&WZKB4m>6>Jw0R10*Uj_&Z zz<0ceFFpClUVwV{KK2bIbfo#+W+DJ)(?~Zvcltvs{uJw3%;<9?7YOZm$$@+<#yKI3K*6ixG_iMqxvH@8+~y^e&_wV;iydVCXOD( zve*M(_ZSp`C-K8E*eaex)iD|5O+*~8mecJx>=6&x%;PdCp!6E!FC5bmjpxpAeRN!= z==$?MHoAEd;^u+xcuH34UGTNtX{^CLUtOoc4W5#Jo`zuQjv6*Pa~5NX&v{IOwtqkY z_QY4z*CHUauI3jn!k1z*I>iGq@*L*Sx`4QJ&ZL$qM}Nx2P23=k@7}FSX2+gqr^JSE zGUfnJ75AK%@eMt|8xaWM0sIa7_tgRO&&vf~)S@n6LFuWY>jjzVO>DSe5?f(%uzI4Z zdYPz;CVdsyJ=GIaE>^4h#p*e(izdxfnLjVeQQk%eUNVPH zy-^njKPSSIbM|-*mz0|d>mvZ?D1h^w9hX3-IP67)0Z;*G(s2&oRQ|HAjx*+OJV+-T zC-Hk@U2~6G<$v4Nanu951((Zueh=&FVEQYVN4hwE!tY)d98kj!nQG$!*~syo2~cc* z7Ez`iV6Cg;YtQ#M&Gq7C*+N=WkwQs(uFBzclffw8`-eE%e+Z*!!sM%gJjTL?MH1qe{mKFK>^I{*_h2Bj5c%B9b{RuM*lhqeO zZ)BW*1q8Sx^yZDuzmi|m5!FJw@F?t}sMgwrT*OU8rDzv2kwys6d8@EdH>r1zJ8yN= zbeu$h-6;gsb%iB09uX5bj1`CzV5miBuETzrPVY%QH2VB2(|sHqj^}~au_o~cw1S%E z<2oVrFJ<8Q>C4f4B$|bt1Ztg+PiyYlTLVk-7OG#h_?nBF&Ld~5=nP_GGg>1~3n5mB zSvk<;Pb>Ri{LR-?Bdz+R7@PTNi24N5SD$ck;qI^jw_HxEzDme&8YPM8$RW`cV~_CG7X{z0!fsGpDNv;dOy?+oV>0 z?5B1y=}cWc#qtXhuk2~;YF1CT3HjSuO7_!N%I#-eU-{`VLQcV}KtZVf;j`o)ppTUU z&(dQ70Ej<7>oN12B4MC&(y1zjOYuGzu*X(8XfK@WxMkI5^i>8DUV!RS?K#jTGPdnhh(ZXBi$wRmWd z6Q(bSbe^_inHuDrfdHuN*whl%E~tFSNrXETkv&`wXnf|nwSd>@nV3|0AXlLX^)H-^~Yv#=!0O<= zfh2qrtrUxJyI`FF=UK{()xiL9VLo2`*X=}SLB9EEt zLTwJdM6_B}G$vZ_5uq|4w>eUf$+7Cy0d_{~pM@y^_vkW5?LHeU1Rj&81@x0dRrcL?w9N97`?YJv6dD5i#R>Q+}_W`4lMtZZLu2-!ERr9rPZp{%zw_uLr z{E4%ODjVsz4xCyy)`#K@+k(b=Gouy&DYv674!HcYc?uJBVW~ z%dgO?CVGeXw=#?3S=vh6AEWrOCGxoAI2&A$o1gYo2nELJ^;iPS>|gr2 zn#DmJ<*4J-r==bnJn%S}8Q$8=SJR6m-q~hD;>2YJ2G(>_BzRan~S6S(#B@hCO3jXsL&JKqP1AKK_|fLc$t)th+% z-fOGdgPy$z+TXR_-$=*X>V3W4XqTuvQ1-J#Ju9FEzFr(cR6iNqUdE0ttI= zYlp=D^d}Qt`APaaxG|Q$mL~Go;&cN$zgTGU%YRW%X+@Y2@~joD9OE?Yf>q30C89+U zKlNe8Cran8ORi_y>8GV}{yauKBNKkJXFKRy^LcH=HM8rVsXY^y%*3o;A;7_EeK54PdO4=RpjnKgd@W|4kyz?50nsU4|J9*Y;MPY{}~Kk8XN9W6C*Z_Re~AjiWWS zl8w~AyFSoTABA2ynCN<~J9fq}C`CQ>wsQ9$^jl9o!4l6k+G>&MRmNkxPl{+XLpe^Y~VXfVUf1_jq79o{x|5g`n)Up0N(TsL1mkC$Eq4 z&(Y_-^l*9TPx`$Vrng`JB%j{;7+KMZvU-D+Low!|-Rihpz4dqz1v{qro!%WB^-v2Q zD8}g;#FV#8EpdN$RrS$l3AT3f07W_d^c8a9AFkm3`dSgS2$PfdDsVmgdPsCyQB{tu z=u}lzSv;CMI6&WOEan+(*+6}n{NGtu_#oX^SpEtGv5tnhnhn;kNU@kOsRmdl@kAA@ zC9XWxD2B!k)4N!%11uC^uMN|8OR0^Q-;>2 zGb8o-oz73%?W-<4HNVzy)I{#2^)(ck)VH=)M;TK_|EXUb^%eR?aS3)Cj%`qhhW!*cNxkmqPP95omc3|f7kUPr~c zTlL_jxX8lcLYxhUam|HYzvnb{xgX=Q_cV>YALH~eroQ|2KBibZLg|b9^-)%^ZQh)2 zDGnMmPLFo=8>?I8L>n4mvlq|H4hchkN;k;l_zOehQ1O5GdxotW9b0y9bGfZ z<;v6}F=A`cREnZ>(!zg zwR}WB&a^D1&`0%7q5SLanXkbyRxS&z^{L(^VbHQib!%+N@3*OZHBdYM{eTEJ_j@j( z2y%`*PCFh2RoDE^R1T)IC@9zePFEj=Af7_|@pHj=ll9}mas{caN5WhoQ}xBnU+W*! zqverSu04v6rUwaXD}K{Na@dxqr>3C9?)#U=yZSvL<8)oxVJZnV1d^%>rrrStXYy*W|O>hE}S4nC`AdUHB1(0f?34_gs!o!Fkv zKdXmQ;Q~EW7MIhG1^Nu5*t*H$YP(R6*G(@J+RR$4UobIk+KR?30h8q(rrAsMA-7vt zqG!sRzf$s2y^UoBL~v_N5=~jEcg_LloR8maao9F#l}qru&w8uF_CKxCcZOD}^6=sr zu2abC^9^AB!1r5PCG=%peCsgt`=%&|Ek#uN_7~>&xv}Q=xy>E6#`vBoD)(Wave(uq z!4T(Zx4PfTj_p=t6;?-l4UL*D!y-?qcXVX>GX0Q|&FXH@^Lm_RJ!oog6iPYIn_53F zUc}Rx=k?xZPIe1d#~1V&!kB;(t}QR>_X;tUYCAA*JoyWyJM=D*O@Fo)gy8S$$Pe+V zCT7k#@cqx%998q>H`%ntq3`uJGHJOUCMMB><*?1B(ud2j(5&+donEeYFy8wKD_wqY zty8{k71`7yUtcFC(D8h|Yl<63$B`)W1k!G1>-qOxXPl}_B+hLPdjR#sb=Lf>X-_Sm zO7|D&UFG_paa>;?fl99wzykI3xaA5x2w3!3p`SoQEmi`VBZp{hFQ1mQc%{C`1_Y&89Kpt93hb{~E zN~3J+yg1kUYxQXXa_~Ni-K;l}%Mq%%S&t8tefQApPw`=MQ`c*s>W6&g%cbtkpfmR)rf#J36}FKcQ9eesi?P-jq62TGTW2j=OI z=w$gB0+fY5Wg#(z6Z4^2vI=AAhoAM%b)N#mztXL~1J|(>ZynN<8vdeRU<~u(*T*Rg zdoe~PhGn+Q$h$EtOTX^MFt0B4{Z(%xr}|OOuUN%R^>ZEkRqyYPgeq)JO%CgWd9%DM zE29DB9M)Ty?bwr4JB!@yVA{{K+1viJo%(?$CC*3C(Zd*8bfY*c+K(ocL-(5re_D;{ zrycmKEIuxdqoqcG0ss%+3k==)lnmMq*` zm6Yi_j>DA8vdV+Kd4#;uPpgtP0uHUi{E1bq$GN!&ox|8P_-E&qDGbhM6=Syp3(^Xd z=flYhaD&RYqtF$qp^SKX?A4Sj%!ucbMSi&1fBL zIm=uYjq`!7kB;fBRm8ygtmxWw?YN%qt0g#8`DlOY_Pd^BnGet`ByxVoxMhLWvkHUB zasni&0mghIH-YGc-XqG)2~nta2b$w>tWLX7m1G5PT3a`yn4gm@C@vKG_>K2{0oL=UxVrmmt*FW`05rMTwUZ~#E@iIm>0!l0>UZyq8?*v5_^i-CATKYW?@^O_|Gok zArK55c&aW=?xKN+ozoaMl9%<;fiuCvCv2^B=KEii-bH@|lyYF9ZNqsLP|3IwcI`TsU zn$Y~q$RFIqEWbORj&d5lF;(BR=G5&9;MccxOaQj=_I5PqiXNM=2{uV21q*u*Oz1`z$bGmty2FZtrF^`*q#_b?XK$&$=$7J-F3aO zIe?jsstw>%A&x9aeU{dk{=BX~;S03k!YYnW>p)W~^~h#mz%pxQWAy;Y$tJR>3d;Ia zm3M+IPJhK+L1`knD)rrFp9-5%&JDe@4BSn-Zs=VY+2X8n^Ax&yCMn3tN_zzYKpyZ- ztAzT%ToghLZ|bdCm*i#j3!yPL_2F`DscZ91eTkIGyQ$0H`bzz~kF0dKmxy#-{#&0a zc+tSN@zzNOVusxbcst9ht28haA19BK3y^1F{*U+G30QTNmLtp%51 z$tc*eT2!}&5iiS1sY4ATfpyx%8paa6FPiT<$zrEaA0tur4yFMvDSzALa$1bw+t}{48n?XgU)YRI5>G!p<7-@%XFjASY8sz6 zov_(jz%TUjSf_z(`M7mJtEk$_XVgyPd+8=?L0$Zx`TWjtZYWaAcA*NIw2yfEUR z94WAlk!r;AuY2nl?af~Wb&R;?{H?l*E5&;AlbvvH?cs2i8Zc{pVAcwUs^w%IkKrnhGJcWr=WVWCF~%-oxru^v+QM9F1kUgj ze6F#vLWa9j5c?qKO<%2`>uUiiV=?q!I9e>O8Vg%@tM z7VHa8E$LO$y3}fm_(JpJ7hG_o>lWJ4+}I(PtfMDd7+vJ-b+oO8(ZO5zS_>0>Ra3(R zP`nf+UZM6qGDC=l$DeSj8Cgkj`uH|ivE{cY#13$E_)`4b;#`7|FGwnz;#xn;rNHVY)i2uoG`S(rK zC)xb|ZnE*4mjwCk41{O9Nl?|!sF1(E?>f@n@RhPD?&<4bj4(D7v(VNHblum{*dl{{ zkc1<<5(j+qw2h&TH4rROOtD>zg%&Ib^3q#{(feJDq(&-nuj%380xG>MO!ZG#ahEnE zmdd&qfv)JT#v@WTdC&DinlVv?w}N?I57!K8vg`L%meg;mx*6Y8bk!>3f?fXI&h-v1qMJ z*<&_ID^hvCgt-Rx1k1?d@4?k*90|!r32SATgSVBrl)DBx+}j8WQHf6B%4Oxv%nqlT zeT?CAXU|CN@FS85=IC68Vfka>Ababn8PYwS>K4Th{ z**}P+d&U}(W};E3YtmRFNyezG?vY>)tMg%K2T#Dp6{xTZ-R3;GfG@tGC5VM41`!bHMQJKQlp;ue-`Ty1_&m@1{&7Ed&y+J~ z&di)C=ggU26O?$Td_SC~zoEp-C!=V+_zwu>-@KvtN{HZR-&D3qty6An%iljkd^ zouVUZioyy_CA zFJtjY)VNXtrz{2ckhWknES8dKQMNJ~_IFRRl}PC}1(R|Ne^*HfRHnQG$&#{HDML{! z6(58qu2lNT&)(w;S1OmBwp|x!8?#CQi;^<H$jsw7?L0b)};5!d=QfMc(-~-?kqs1wmP+yOKZec0l<{ z6;Pf#%AY!Yh0bP0O$eYVUnvudWB8-5l--IQg}IR*MK4}ZEQO9K`{j*`DgHQG^yC}7 z=W*qZ#3Zzlm`2;2P++M*bN$gGGT`r0ypwPgh_WvzV~s5f#40d2 zcM~-l$pXbP(1%uDP)6BBfmyDLid()qnW|h=hH8NsIM&XfcP}bm3zDs6(SZy#nr^+u z>ak%EYYw#;eRD|}7iqp_+eG9;ZdE|(!*IZ8Q3RZwE-T-b60mG-#=U0`EcEM6J9(qmbBARIQb!EAo5=X=A1_nd{ z?{Gt@E3vB}+CA8xFaKHj6go0+VO2t9-tHz=>m?Ao11v7>xAJ*Ar+UOsP8h)> z0@W{M`L*G6DOf!rHyF;hg{Zj_%K%0P?kV&OQ|CI_&*;G$TGrrqBh^MayWl0TS{e0; z{4Z2q4R8hye_=uyVNWQ$TawzvTS;{2ofXw@?HcdHwU0{bZ#EEBmrtpzy1nTDt*@fO z8XRTiff;llS=~?qj7(8IC4e(k9Uh8C#uaPXGorch>N4Un$SA;p6Q7-`uCPcHNO){@ zHCpzwxZS&+=LWbwXK+1gQ&TM)X$8)xXGwJHdsIEom*Byi3uS3hO*N;uI9@kRg(;|) zEIy^Sdd?}JOo6{wef73QvIVtis8*NCJAGN#39*X^%o2p3*$6>I4>&NJ5)U)ckDv*UQu6`8+4&Fuc+BJ z2`kfR{4lkCphXWBYgJ*W=KZEa!_-zKC<2G86H9<)!&P?)z+VI|4_AAX#55f7LY}=N zRCk-=x*0x>8U|eA#z_NX;`IJ8Q{YQ$G8*#{jQ5JuGzBTb@x}OIIM?p%s1bIjDD(+- zYsKW1AE{n6kvLB<>!?hhkFe`6V5&AsEi34-fPSOYL{Y;$_pLgfdg!d)Z+dT(`i|g( zh@iToG4N*fpq`_F#|o?v#ix%}hsY&}?vBBjF2*{0tU9*@@EfOgC;?s>htBLx#%Y|I zBQ>z_4XX~B7?C@CxA40dnwt$up5QW)xDjf_@2lcjg717-rme$Z6plLw4NZTtzdKDE zuMV|o%BxCu$E)u|S{b^hSO~*_uthNvtUXsxP!r{My3^4K#Wlgqac_beoowa$QrIO% z< zoO41le{Z6CP?i=_pEuP9kuA}~aT;0Q;ha(bF%C-tFq?V9XyhaeeXG2}>U3(7x|MC4mnntD|F)9Ik}K&BTb@0U%uvungulR`}t{G<}L1E^ubLv+B|6 zDQbPeqD*&sH7iGBZw{1`C(cM8O+gQ~5`co(scLYikGtww0;g!1Ucj5)#6BDl{<)@< z#6{(HE-n+JMXVbvB>Ccr=7`)5gB@9IisO|!G=HkvD9uXnL$Z}%_-92_vpB&G;a5K* zw+1qaf>RKF%P;n^O;rjNO;uBE62t2Aw6|2OO|2-j<@{-CjS}F{G_|&1l~ph2bhWKr z@mr}D_9~wik>?*To4Qw}k<-Us5C zNohqhRjA-ae$X*ymfFYntG;^H8T=l@ZsU_@H0_<3a-Ypsb(zhC#1|_Dzqx8z2?h)` z=Bef7)BUOMJP6bURC~UftbEW13zq(aLZWERX15~O?a!CaSCb@`=$$RFL<*4fk)8A` zu|A`M&q{?+;R4l1?$ME+FHoz<%llE4h3Z0}-@Q=f$_TLtov=uK$)-_}>6=Ara8J0HOmrW9*OX^w%0iIj2-Z+mx-OE&4i!EVYk6NxH$_o1bD9g%=vV>m`QP#{C$`T$9 zGvMF57{8dNt?!dje5Xgu4;3&*bxd{J-&KPtZiU)e@ZFmHV&8+@Yu}5mtx$g|Nj7F3 zlKq(dLbA*2)J7EczFJ1U){`2%uQsL&q&79zik63({OLA2@xB^D=_}PR<_)BNE7gN$ z=F57P3ld@J%RK2Fb(&OC21ptHUn*|)pn31vRDgvz))Z7sU1d{|CuZt@shHG5P%%%G zRUkU(vG>ubivi~c>ThOLTbKf);E1;T?+?_^tb#4H77vcEc>%4(gCX5%>DvF6ZqZj< z@DTY?H@oH;>+PD0f<69Q?3(|&-mbYtjq5{ofAYpQdX^6e_z?eZ;{TR!`rGI+nTgn{ z-);d{$o1iS6s?$pzLt13nLqkaJ*mknJJZq4YE`=~aZYk>QBxx~iRPOmdvZjhMJpb0 zDv*os*0|>0Zj0I{(uzO=E6|%@GZKtMf^W8{_2snAT-&O?ZuRjzIFVE5FsM2U-Tvjs zwH=d~4OFDM+tnwqm8g-Y-o>ALhuTe!=)@=QP~Vl<;Xs_K9n>gtr`pJ-uY$@4?Nmog zYy+gyh8zBL_7nA@h{|*O1km13f!J!33mV=1RJ~mc@bjNR__J((D5d1O+__sdoTU$U zz-9<0{KAA#xZ*w7fyeAahw%jlTv!Q%kb|SV71Z~T8bgQot3J#`IjsYd`1$=F^PCLNzPw zmT*lLlskT15y31k$O_wHSeG&SMLF){Nuth04IR6!@Mk8CIf|9n54EVyG41ZKL| znAZB;`tEL0(J?hx5P}DOO^Q6OdK7VdNO{NAGPVH4KJ5H)6*oGNX6xD{p8Tx}lL#xv zEgwGngnH2n9WF($6sVutQTu!;;Ur|Zm2QTMLchn##R9^7Y5Vu;205+~bv>o#+JOZw z&VEp@O0uIi-8ro;v_nDBlrySFu9{B1XN!|QGx>qDD*R7b*t+}B`Eyt!SOC%&ox`H& z6@N$J%`4cG{G|S6S7MYe%|EY}Ra#+f%k$2wmAtb9PARTmR7cAL8c@eeYDf8{2DI^# z+Ew1&f}USeC(Bz}@X41|Us-M$Obf57d(2soERApYc}BFNm#?W^ZP?-O>DY>IyQa#D z+$xwtMmv+}N|B_OIoZs6=L1(2MA0uE)Cl`^j(GTN4Wg)<7xsq0O( zW6b&Hy7l6=z&cc-(6GW^Ozb*jp6NSWs_n$e(V>JYIv&(m**^Y5Oi10?fyptbq) zRG36D@vhcXxTuuQ7e80aSPaAk_R^e7S}Ro$ktqZ>W13s`t;Um>woPToE@mZu*+&ak z<<|A+?*Oei8(_~e)S|Q&?cXp(9GZmYF2^eB_d0^Gmd-fJDy@ad6@vM;(i$`i6@#gC zu=cX}9~i7{45^5bHWJ5^BXK-AT{7=p!P^`6Yg0^!*4N)c?iDX>rsJ6EN|+YLKMc|8 zc}boVPdCH09Gl|mj3`3;$`82;-1SO%nu-R+u6$&q*371JYCPwW+I^k<1}<$Cb8Z<8 zE@MP`99BLmqiuz=8v&v6o6Bjf|wOJz&E7obQB<(AU2)sWLM`tT) zE95@a>D5YFU!?+eQdCe$tE7NudD)eg&{hmh_?q`3U;E<; zjt{Ew5y@JvlrRjH)bCgF499<>RM`V3sIL|GZi@k{D)F>b4F@`a1SR}Xb*+cwTdRVe zbqbC91mouA@|09lt0_*e^7K+JdZngTTTUs@*VWX1cM6WZT}L}3@{3h2A5&MGBq@nF z|DY@N^-6Np6pE;?RS}iSq?hVzFDXglYgK)%nS6!O_4?ZB5E1g?!Y~ex1$>pvPc+b~ zSWAXNeTY9f)3rXLw1Mf`7winW_?fE7ykaA52eb$NC_AnpU2h7?5`!tGnYPjSN`ek2 zC3cUndU;@Tt!#oI>_x#O-X-|CGSqM`$CJPDphRQj>eXCJq+JVDAIfa5t+6>1RgKbG zX!%N>J6)ouEwuWgoH{Mh(K}QY){MWfBlf7{i&|-GrOFmNyta#Jv+Omna7r%h7saK_ zKb=~x60c|dg6Zvb8t|zS$tSeYEJpJbuMOp?;5;YXKjF0xx&P?iFBZg28SbFiSkBQt+rk%7B&FraLe=ehfzUS z$fE-6lDcZ=Y}|)y(W!3Q{t_CgJAh&Yy?SU}oTFlNzO#oG4*xbFMvwOAr+R9Yq1qEf z?~CTFw{}iaz^4Mb(MPM~yi@^oZ*QjZrhT3$`8_p=qt+USsU@A zl!cLT^vNJ?0?R=w$3g5S57zd}*DLVf2Wwwj^|F?zdxt_?SS3Q^^k}HIRuv1j0>{jJ zzIv2aO09qno_I2&5=A7cE)84nVUt#RDBh+Ik zAo^qk?VN@hH$e>sT`5QRrfFRpc>FxE&_2z;l~N~eINW_$ME^`VxJld^0zx=rjqwb8 z{ogt6KXFPd?AW#8qU1vNn`N*~Mt=feNtU`Zv?r4CPYl|leXhTP zI_iI0qufG9DA}~U$`&zR*)Fzt7Q9dLR2={B7#D`qxp01Rmj(oDp)_`}Hma^$)Clt6 z_&7V=bjSgb&UmZ;+qdvkm6aZ8{xd`|LspAI(=5TfVIfEfrfy5L_ig^%lIiIZ4K7ZQ zP2b_9hD)_@v9l}GQ-gWGrCOrIa5o6fO_FKZGVN36`;j`e$kb*!vw`zirk0p6gy~s# zvCJ1wLB!$On|KOp#o}T`NoNJlcSSQU1Vy zhoWu)!&TfO9gdtri_#KyBHk*~DUa5JF?*HDtG%t&5bC_)%e6GS8V(ppF4q#Ht>l)f zDk!%ZxP%*#-wS{HVi9zkenWa_AJ=BFz~B)P|3?c^+bpe9#J@-aa|66cgddvQL6*f( zWFurPzKk(F1!`UNQY%khFg?mb&)Wo!=~6O(WrZe5#Z=RnY;C690$Kk2QMQI#7>z`O zg7&8?A)_oHMdRn+(QtqXgau+!Z?Q`IN}wnZ%X6Rz=at^q;-Iw_@hKX0TCKTlV3bBv zR%<%~t(Xs0YtLeR_gAUm8niJQGOslhwX@e?>~0l{8USb4Xmi;X078X3XstHUM)sjf zm)D{z6eB2Fi;-QNXV5w=(Qpd_fvZt-bWv5lk5_Q`B3={+7XrjQ8(yHC3>_0^xHrcs=HD9 z6h+D)oR4fz=YuF z9|X%Jh>`Z;o*k%U9NxjQ367$oTrJ%BWsuGzH){(FfdpbRhBkkKSq}itvV-aJCz#Fl z*ef(npK80UsTYFRMcp{A+ZAd$t>=)yZc7}y=qcCw1bv~2HFPAd@`dM4L6yb^K(J+I z`$qfv;Eg}KURGJOOFJz(K&BYU<9B23l>`--*jMjH-z!EseGg{A1Qd04k5+>!{Hgj< z#9l4LwIHb;|6ro?2+%RafS8L|=h{TX^n;0G+!IYGo~siMfH&zR=!c87Lm7Pkiqe z+G&^b7njbLpU`fXa*ot>KK+8W+jQg{%4`n^=;<{1**n@?s|K0k zxN6X^T1R;R^zOfET||;hB%#3Hw5>7VqG%(}@*YJL3wb5{Sl_`i@Cno+1D?>O-?XYu zP0@Ma@7hHPFDnTS2@^WKP}Nxv%;%nTMu{c9M}{IC03 zMd)JDc7l}he`@1I+lf;7>OYZGuJ9Y*_?PyzQ(pWlz4}C}BIiD$51wf72;uE2k$-D2 z7w{tZ=5Gy}Wp7OKQ>~fvuB7ufo{BZ_N~8(;GX{6t_f* z;IA>(Q^QXfGOR! zxd&)wDV9tvOQAq-I886bdMKM9lIa41l^pTq@5{=_cb`&CU-mW|?p;=Y=ga061H6|X z8|NhgWA&6jOAL9ZkYQ8?=Zc9;m@^3zrmRBPh_ZMo_@BSo|1wnFM6F7*w3r8|$@rde z9$aRI6AUpm#Ce{yFCsDd^x^*_yLdNET!6-1`O@$fXJuU#XVvrkf3wTEe^Z@6 z_L;Pa?gz36+@6yH$S;V+n>ew?=~&*#wc%7Zh*dRlLT$kZL+FhlR;~(8!g22{uQkk> z4#Yd|x58tQx6`b2#Hl!S2!iQF zyFyF8awV=TUo42baBWJlC3;5qdW)j4v2`myWWul7yUsz zDujKh;41dj2v$wm`52vA*xvF=kt|D>zj#bvB(T0P6iyl|q|RSS9)A2XrQdwRVp9i&5yE zQa$+8RF)~r^Zy{<>MR76E?b>-H#;Wb89mSwR)*$RXJwfMtW2Pt)mf5RSlf(iDGb7u9&RYG}grret7cS{#EV3`~;ev#+un>$NABBX)GMA z;du!C#q%^)noYRRvgY1rwl#nCTCB4yS_zDdf#XLuY26L0sB~%Hq*g$c1$jRkCrxKmspsP%Prz* zd}DUeE@EXOb!)y-lh{gNwZs}u?&LW!$DnGE4l3%+SY~jm7AR=->$4?N&YrnS!$(ow^`O5 z{Ql=X)P`~C<0@k{?WM-kG#STuW7|aF+0w48a|uC_-Pq_7gv+|IPvuKjsCjqRv7{QS zyCX$0{eeALpW@{FjUMbi90C16BYLsM^0QO4trv@tk6)q_y;!_)=n}(WaZqj{UA-?w zQc!QUMdqjIi{7lUzU?yNusxxa*L@;%JWvCr|Ab3ar4Q??WMCOenSIyw6^5Gw1@y-& zthF5o8k!7a@5p%tbZHpdQxdp(IIFD$2`n?}u{e4*ocTa6Ym8vqMQaK-jdWlHt8b@A z_i&D6wdE&2Q-hK0Yf)8eN#YvC29yBfN3m8Sxmcgjp;2tDJmzN_IvTTQaq^kll$lZnX{y6qZXty6()*Cni68pzZVteeRB=R*Dt=+lCvYuX}2CuPsCDasK z^nDof*I9ek{u1I-WEVz!-t3;pTD0^!i=e#Dk`EP(XDhu`tW0Aju-Z1TsS<6Uz;?68 zU>pW3A2X4CtALyJC$msdTpkXsc(2K z443+rq0D)#y?pL4zc!E6^p*ljVl&vccJ2u^`GX9Gy-T8y3|Ox2T!^KT7vK#Su_cnc z;Ut|{%o?+`f@0(jUBaT}MJIX9B@9<7tWXd;WhtxSl!oyg9$b#}vqE89_aX8KwafLl zA;X~89G=C}@F#Zka+{y{XIZSZB=0;zayC2Rhiy0xePca2f|iRh{BkzC>Knh}49mi@ zBIv5K@#qRLXwsjgzim9f_q{l8TG-Ul`J=P^+6LC#DJX#h{)UvC!-mLv&hYFU1{-hn zG;Pdfbpox}QAyS=+xp(pkRIgPm9<92^vx_-jyp}+o7ua916E+#7Un4dzT1MXQvszo z=H`>%Rtz&BvPMOxt!#nZ;WWRrm6fwtVuiZ4vqWY8DGb(>=aEs=c{?OT&MBI=oz1dy zK5NMR@WZWa+E3bV<{GueT;>Xk1wkrZ#vE! zAH$N>?&7s-@uK7GXD@_~a`yy_E`i9e03CUz=vgW77gE4>%k??WKFMGYXoVuf8>iS` zlH59oUOmlzvO_a!Q@b;+(0IlLBI^lh#>T&+@ zS(YTpo}>KIk8GYKCm*GuKd~>A{KFWsnbRVu`FTu!D7wI1p#h(LoEqyI)-ZW>^iGu6M(way}{nHabZ3> zaD$zc2Y*9v|BNZO(>HYHXVzLy|Ayj!VGHHxZ}_%f*a=C_`I@HP!ivH3HC?*JvX#nT ziB8c~#_MvoS%};+h_>Bk-^=$ktjqpgE@mAk;KfFF4@^*2_}{@V8& zYcHBK@5Lsa0o8EfA&UQ+ z!h0b3(3cca$lg`@9s-5^Yn6+j6NT(`76CLp4<+(8_t|Jk9`_~f`2#B}3poZ{(I4Ol z8o`nS*u^)a!w*;`I~rU0rwi`itDHLdw&Ohpa*g zw(Squ=<;4{9=wK`nh$5$8SDDhsxWETo4VU^vJ6C=RrIX})Z`IsR9p}(dIVM-|APK_ z#6B;fhd*YC37KCo>t(*FX8Mzi^_^;0kQ`}ZBFq3gye#6*C#-`tl!S1gUVpP4B{%|~ zvLWm?`jY6|)1RW36$3>A00to)`1EINh$3&x{qz_8dr6MSr#-SBFQ??vC0VaioQm)? zcW^n^CoC%o?a&`9t*e-aeg`}fT~R2jioeM2t$vN`|RWk4PBGvtNZ!eF1@s@xc8w0r3_M{ zmKRo4_~BBz;*`7XqK&2Xq48GDUeFd;Fti2Z1MHK5M4Su+>PgDFJwR4C z#4JNI0`)DT76qauss*7I1B65b^Lqv9wWN@U5nGZisCGx*3hk& zmA~3eL*05+Q9yy1;#a%%E^?b)^w6#MG_rwBV7RrsepDjOir1^iukEIfVCDg{{}}H2wbnN-!M`#EKKFuBA^DcnjQFDn-`TYbyym(7XlLSrkpEtp^pC z$(Pjz@k#}(9;r+{y`7Tj9vet+)YB{BE4?axR8N1RB#PJ%>+85fExs(3`d{0z)znQ` z4+t(~YCN`~9&UBII_Y|2HVorNn260z*R$mZ;S||O?>hZdl&2va$(Di}-G*==E3R%f zghSbxxYmZFu7X4y!h}HVSl>9T2`v7`p^k78I|*rOUk~&MC;fQDxN|7X#jUWwP)~7w zal&DJd#}M+-`@PZu#vu2e(?_6a0qpA2X1{+{T+!-1|_>br0w?qx+Yg&PGa+j_AL|Z*cavtAo@AWBf zlAq4w+UW&O8K!H0bkrBh{a4VmPWnK(#R|ICNq<$YxPo`=te4j0jmv3hPed$PPDgv{ zBjneXQ_WuJQAfN(0Ls1=CCXrH(5^R`nBg@+|srgWSp1e4dP7KvI$^$d$^;h(c za@$OP^cB6dB{(lC9SB(GXVOGkjT*~{pU5&8#muVwu0k@`kmPF+HECO{-uWUbU` z(FA>n;12GYsGjGKpHp%LXE+5-)IXGauIGCu>K_{{$17XMPuHO{@rw7e)AfI3d094{ znWguYE3BZJv-RIaY@RTet2jsRqnye@iwF_zV`bXZz;ph=bGWVzFC9z==jdtTR`=g? zbn8}kow@iQv6?2&Mg7bVxI7P1S6;S&Ue3_Bg?_f2WxWMSyQymW?oAFy4R0|#aDk3X z#Je&mcadIB-j>0?U!)(E=lR_eEH+}%sj$anP0%CcqPrT;I^DBAUoUQ2%IUHao4JxP9b8O6M- zpP?TvGJjIu(+gzBGCK2~{`XrAJ92;`7BVr?8j_Sjj(lA2m+Ez63@3c@puT z_?4e9X)7`MvDlE}$Iq|UgC#j+8TrmM!pK~!?-6~%ng))o)qgGqIA5nXljK`7`SbPq zP&{_Oh~dV1SnhQkv_O_vo9$cRB+yzzV)h2T6)Of#ZO|*r-4~I(QIC)C23q`|bl2wp zAYgd9f;ZTxUvtXx3Lc-Uzl=Mf=x~j3U-XU5`T$ApoW+0IqUTD^+snPvNS|Z=(U>={5=)P4`Z{VXT$ZVLO5n z7Kw*`cuqeh3-NUl-@hkct-Y{-a zeXe)1vp}(ohw%E8F;qwk+29__sMM+;`!F2X5YW<}?BG9TORL#Ox!unnn!oT?v!$-NW#O7X%MdHP; z_0?_*w^t+F^Tu=Q;(#!k5^Z+}TH(9={crR`k_5wwBYL1K5*RF;wLkKPyCG>8afONr#o_!72RZ^AK)w-6?$NMIHNblp@9xKXys)Qvy-) z6%43@Q>pJ2OpYDr3;x0NEbY6ZceZn&nxR+qvWk3TB5&}sUfPLErX6nSBTHfr-O^7g z$}!PfR{o}62oYcZkt4V>er7f;{9S)lFsO}&{cSn*K5t0;43fXIC875MK@^^I0d^4u#!`FsE9iIRM7I{*5) zZaS5a>E2VaKP3ZCH&myavatZPk8>KE*>G?7OHhnNQFtas4ez8FedLlTt{Ic0W0cB_ zL3Rqv&hIhfG{VN|Mxfm7Ej~{--o+y^qE6oKXnn5=p=vIpEkiX5#hgChWz;TxYaGkE zjz#kgNID;EVzQ^w_by|pjkCIo#xzg;;mFY$SdxMQ|C=yNw8*NH3mk%*u&ZeXO z`jar~6>1D9?Ev8L561>8BsU&6tG}B}Cqj+J5i-IXcZRc$^$w4O@V}=^D;^g&C^!0=94q+tA7MTDZ}`^mudUO`$#EMipjZ9~(~h!i`3D zQDehB;&O#JeYan82+VzVB(;t(vQdev5k{c4_f3{{{7w2h!uUd-G?qS(G+N84!?+n` z^p%xO=sGki#wa7|S|HqHQj9TCZ;d8t-J_z1`o|hUR3X;Luz8UgNj%o5%tA3=J?a>W zw+D=`py}BWhlXzP2LC$Fm?g<;CsFHo5PKI$MxKTP!+4`?qy=<{_1rD*$hieg{~fGs zt%i?^p#$+?c@CY6M;E$=OpQB7P?H3sz76C@(EJ2rhmGN2geMc#&5+Y;3y&if20fBG zl`$rk)Zn`^#(kUIP0{?DvY^n0!s7Yz^2R~QM*Cwd^-45$*ua}^3QRKGHqagtCdrs< z13y4|B^h|E4@>(3$AWz7RvA&~K-MnjdSzprvpninFfu&qf7T6}%ow4H4MLp?8ux}p zbE*+;Q@IHWx>VyGQA9ywC7SA1#rU$&?2e+5RgKgb)GQB!0&{6dZm+}koDGj$Pxhhq zNyBJQRRhPe$c-|nTQy@tF-hdCj(T`=Q^o4WaC!ZB%C2ryl|Su6N2{Y>^h*HPQkceOXq2#Zfa3bCP&ZEr%{PHI~au`p|35j9DR~kQWW7 z`eR}Ca5OiY8>J<79pnsZS%W9EFiQOkrL{Evk&EM~ZX2VKzeV@s1Ta20*L4UB?7T^= z49{z0G?hZ?_hMOxr}cmPPY9?7XqfG2jFzLwY-`j}GQ`x?vMol^K_SmDlE$|+hA0aV z%rCSxf|y)y1plM6(O29M?9kO{7+|H_7wyT;e@@Vz2SrhbzDi)QH@m07cAM?u(T)Xl zq^mJsTEIJWGdPr|g12MKl3!1wnfzuq-nFL@At|edfs6KSfL=z5Aj5JRbF7zvtE~dS z{_S2b<5O8~(1|woHD0$V{jnS+^fNkm$u37z`WX|G1G++NIUd7HyCdk&n~iXJJSg{| znV#c9xI=!Nc6eTTZCtUd?k$AJ_BSxY11fZZ?gPS9z+tuv8!d}s#R)M7?>Fu)jXOavYn*4Law_qP}cVBV5}HuJ1p z^MOq;4;B($=81ZGlDF8*6aL~CaCML|QjV~QXrE{;PrIUETV@94#`L9yLyQ>3cPRLm zvO6Y@jt?<(6m)us(a@#^b~TYhjcCy}7WzJ$Uu>JULk&XP{5;esl5HOJPU3fmL#Wx% zg+y|V#3-0H7zK!BgXk=Ic*ZEBP!hcg zN42jSFGX1t-4eR%z})_*)Bsm{j#X)q;>N2+b^nA;4A;v;a)s^Q_CcbHL`z-@UK(T6 z6C?@>XxSJeI7uGEi1 zjC!UQrKizuiWzD|_!ncn{gGW8%G|BPB5H#1A!Y5>{rQy%MrU{s6wK8tc|@Npk{#o& zu+R_L|W4@6rON;300;3c2;-$I^jqn=(lQ7r-cfQmcJH118fuDAUnGDw9VlDm?8X^}B zv4|EdG@i0V@Jk$3E?Q)?m9sn3Pm7Fq?L9AUicDFIMcTR!{HMi`ILb2!F01G9-b;-r zSWzk56v->R9SwB zzr78s2*Kt8_hEPm-+{Tt0)kTc>>UQqkIr_a6Cb0Qtk9{c^z>t6MX&|@nCdwPPI{Aj zUZs<8c|`d;4MiHxzuIZ|Nzw>9{fV(CcyQ}~6*k4nnh`YdQ)7M@4*LG1kGS%%sPms4 zP&rGVP~|ftSFpvJn=gN6G=p}{o=2(TE+bVw*qr+AGPac@3EXXrhL+BoVg4Rth$LTZ zM!)Yhnui{1#it;Du`qO-uxiPC z^XFJc%g3A2^Mi0i^-{i(C&@i6XoUY7AalS6{DSr@>$jJ&08j4}#20^IXdv+dLR=I2{d=Qv=zoyo0g6p{0!JK!wm4l0LWq zv4g@3=#Tb)( zL1Z3{y=QzWw+dVy(I83b--Kml=a-J68HI)q%B7`+#vu7h96cyBUd2BjbRU~9xpg4b zd0^C3Ry9Uvxsp;UiZUM<`^`obg`pnqU?=fze;V)!26`>&fBvDdLbPLvqhsNH4ee;% zc%J{r$U*s3^|A5X`hQ})CjK`*G3w)5R(pwVKEdl1{fvf4f@81S4UITX~ z{rJ@Q!7g%54Zic4VMt1AA*A#FF>b*9IcOOaSCcju8P#zPpBKTe7a5Z5ENZ~0pQltX zJ(J7~QDvNIK8(GMSH)gDA?S{2L)@9OYV=7>{+`pkXz^jPYK{p zBXX-?e4nmQOEt5cXu;1klVi^oMq_mIb^P<2x;YbSJCPM@r!l74M^+Ls9;m>_Own4` zV_9kSNGoL?RVs+kA4-{hsWGGf9jpYiCWtW^K7bAblTfHeeav!5JE2mX#9&sX>Sd51=9?PQ<2% zmW_Ku!9fthrNoTIy8JoancvGRqo=zJMxOgZgYa z6IbR${d(6TXL(dQDUg!No1cmQYvs)b&dYI(5-OMjV!Ww5;fw#f`niqeDiW`&U~VkI z)GpD)jZ{$vsxdy%Z0mEal09vSDJy%pFIEPL=5c3jAm5vWW-Cq`Skdev`b!>-s%ZWt zm&Wt5mCR_Tg1Y6=oMf|>yr3HYJlU)wQP5<=pFc}66*wP2t2qLiao8CDCbMIJ`Uf|o zr`63w_9r-$wGfW>YM5Bd+yitky0YgM{`GJ?Zjoj-k`laWJY~U{UtwE)6AQu{QyL}y zf^~gy{?)ZiY=!`30voNbYt9w@Hj`JXXAX918r?dCg!x42V$T%h9&D7Ib_l8 z6zr+Kh+7mC`Z#SkF0JK^s8DMcsJsjx4{rDv1l!=cxl3IkUSxM!US- z)a)2}2c@@mr+8XP#-gO@>C0PxReO;|(acIz)YJ?Qu?p4ecphEH^scfDEUJhy zjJK3dBS3BI(RDl{@jtRh9lG1xj4oFfe6+5kPEB7fIrU?S%n@+ApCiXYFsF_u-Kj6a zh2SbJ%;vsUSiQQQI7wd=okFu(nDJsTY;0kU5JN2U#UYlD1?iZ|yj)8&9ygVRD0I}L zc5Tet^0dml&P(P(DHdHW^QtGmzWBek!v4Shj{Se*{d|7CtvN}S$5*7j?aeB3!%DQY zJ>;t%NLmMTmTUy_g&j<2?u|ei*vYIJZ~TuHM}L?RElFZoAK+(SAcOBQGv0-V4n^;< z2)fzH%u$9S0kx0v4Wdn*&9Op)7K&Ltwu?Rb@KUQvZ*(!clvLvs0L3A4#jPzBMCo14 zdh%~cG_9-IRgib4s|gpNa;PqzYb$grdOL9;J`l*iz6{M&wnxADx~wW0Va&cz2fZp0CP91YbAk!=uc&0x+T=IUbc+_LI??<< z1m+1Le0HKa+}R+3QIpp(ii<-zJlzMNpga`h*@psGRZI5x(2h6FKtAdX^GDekP>NBD z$!4OnQaq#alg$p!P<(td*(~cUg^zoa%>m9o-HbX-F;ksqeHhK3Vh(YBi;#O$%(v1k znhu+mXQIExIC3mF-DUaADuJ)KEPu--aBm-4Kh?yAWl^CYeCYC2^K>X${XYj-j(vD2 z4AaN4x6BnHrC5c~E7Q!>z}E#+n#X(6&|h|;Zeho&^3Bss+{8jM_-<8U&}#nd<@TQ% zpFZ2X>V>v2dS$NJ!%o;6_w?sNT3fkr!7Ff{ImDZ;vqsbB10%-4zznloBp#_P$jWwk zg2Uj_IxfHd6*i+jN70Wyu1V`N%pT6qV;L1?Urqg4}{v zXy=BD&C1Fx0DSCXv%0L@#wTrBYIYaZ$a9bN<7^pP%7*mn)bMTdv<+-YE5N&)Ai;%Hh>0u??W@u?Y4&z$_mLnInsMPjAQkqK)uGrvPMv;QWoE{^R^A-b164w1>mjCR^(<*zE8IK6zCsLGM} zYmUwfAYc-6>d>K&&C1>uGw9LBCB3%}_1bA}wPOxDxZfw{Kawj4nc`+zLyBU#S(exP z%v|hk{d|eO<5+20g?6t?54d@iiBjUio6-4QW@?!#Q0_lM)i{bqQeMaVwca}RyR=7fV@*>4`SQ+-*7Cx31pkz=hqh4n0dQJ<+ZN?*m1 zx#aY>8}V^n3O#5>V9oDvdjLYI-mWuX~=d|QbSsP*c@O3LmTj?hs~`{qpB^frTQO11$XRl=&@OP>aI$1@QGhnu#s}!A(ap zow{zO!q>BU!)#}V?F*n@H|(myfmSIxf5V(<$F%h2gMKy-T7_h~xA;=Uo0tzXgzSKa zi%vI9$*EjdFtr!HR4$lC-!UtOS*4(Y;%NB7#^=_3$RpsIWvt-*Qephm9TN_7CDEU6 z`O(hbAq*`5*S`Jkng7_pno>Nl5Sv&VN(tbx_syR*=`dFxn-!fPKlQ1Z7WRQd>}zE_ zB!Wjorm&oU4oMy`JCkNSHKP<1n@MY)n&|=w9t;nnn@`Q?HWpAA=n+=8u>+*kHL%8w z?IEQKM}k%yL_sv-@SW$*kMKm`Td#%X5#}JgzkW=}5-Z(|U~2cwOiZzW4}+{K3!69# z_7Ap9Agu3Afu6qWN?4Ieo1U3voXs4JzI$d4SF+LFsNO#qD%>6jM8xqDT*fkU8WKSs~ z)Rol4N`EETQ?=c5f}vih1-G#7W0r*}$P?siRNZ-OZ}&m_Ni)X0k2k=94!=_JGRYpS`7;(LdDYW(!g@Aq?i}u z`+4JwFnbASPF3zwZaG&u8{w4@I$N$7I~cyYylX(LRaCu-o+@bjTW`jej@==pHbSSe z!t*OqYz5cwlI+VWxM0*Eh-+VoAE@BMN_hk-E*RM^$(7?|prz3LC2Y_uyB3HjOC&C< z;z~7@p7%BDq5{8E%LV6X7S%sif(5AyHw{GQ*uctefpz zM*=ONR;;HN!z~|?|8Y1!)ZSHJO0b})Xb(e-ge`ivJ4KX##ZhBYB}WY_t{{dII=bfC z_FLa%gVgcp3@yJz%O+=piMuKN<@pnoYI=|TEk)tort4mxRMax)&^P45E07Du^ z=dxYm@>Kx2%FDUus1CWlW@`oUgJsTEx>99!6n;z6hv)N#@4CuL0?HH6$oJ4gm0?1F zKVIe9B!Bi3t$W|qlO=)}v4eAd;DR#79$r-O16LnqxJbMB1J|e!^PHA-3l@0d5Ws$3 zI6PN9N4~3F*~+rB=x^yg!g&5_7Y>?GH!Q)*(Xllyj}2s$xQmhsG*Z?W4|3Q8tXl?jQ|Yp*L@-daGf?{%%S1N+01@jlli0c5%-)a0x8 zLA(miz?l1US9Mka9C3&-^116Ry`6;z(_kscgiXMyPps+5!GB_hG*9fGIAjXQcvs97 zR=V~zthvJePP68b&&NC`;dRyuE5tp&Z(NlHYhe+7JtRe5@hxBajq7zu-n5UjBd)(= zhwsy}(jOO9cSw)ZtUO8yPC+fj9(64Vup+Rt5S#zAuRf`w_XHU3}Xi5!0^xPN3+JX{*3D{fwI88#YwBrqS39w+NV+4kFG{`Oreve{|L!u$JF41 z&bi)^n^;g3^WauO(5*JP4!`NZ%RZFjX`JrRnfB;8lG(?`R zGHQ6iRava4^7H^^Jy&EQC{*EU#Pvjx#~!B1S6xS$j_xEX+2)#Si7NlGpMJXOIx2s+ zpKrY7+T-Qb6`fwW)D0I_XSL+4HV=I|DpIucGY_TmzT^k`rNC9QvoL zMno6@*qwXAQP~`4x5wgG?HW9+Y(GRp|8)J$yjb`vf4PQB#Soo+h*p?|iZz}JOO8jb z8pScZ4FL3~FKE_d*TB$X8X7ts;~Zh>lf9+!r;jlo`ysYKP$*Xa(#0Zb_|(-yAQFKq z&if1~{-!39Pe}x=mwev&H%9iETLOG1``i~rT1b7K6@?0M;f48Gr;lV+K*aLPiq8PG zI3sUi`lMQMc_MDQ%V(lX9{DkU7~<3Q-{4MRK5a`N`Y7DzTan+&F(tw$T4CrL)`9x! z7@uhN1Z32PJ^!H?pB}OVTY^}h5%MNZ3uApcvX-TUx2U@OdaO@?Qj+v(g3oYv7d{C` zrs{lT86S5fJB9-KM>nJ84SgmS1Kcm&XM-yD+Ri^~=JPpYN06fe(oAXVb6QT@$~(U7 zlMQ)S3K}L9aj%^Z4%#lP;7dFB48*=n$TplqJnHDvNFK4C>U8pnkY}#vT|4>ogz^KO z0Y_Avckx+a7d~=B5bre32TyHVf*pcs_5`0Cr+jD~ukxnP*OJ^}9pNK{d?x$MkaIxx#KwSo`N(51r9_3DT0Wi zQHsG{iLu3k8Y7m(mSRZ)w#1gm6VOT2*kS=J!Gb4h6g4q+uqQEzsQDO-CSq)$BER=O z&mEjezP~^2b_<9q~e`yDy-r43^;VRmfnSWQ$e5U1X`Bm+prY&|;67E$K+q9ul zk3f%2a*o+XO`FEhVmw&$UWYPd(u78_9jnPvKRnfV#k1P+n;va^m6g8l2&pPP#e z2JAbO(vUCB`@PtgjzJ3TCszknbkF|RJzjL6y{#xn(C0!n!DQkKIVuTW^41c=3DUi zX7&8ayotxr?Qb@i+wo79TAyq%^LqZrIo9X7X6zYlpG&U!=5G9|xzs=3ytg*H_hvJm z-$-ID`OMpTWt({cCbCSt!T<3)&08@gWNE0jf1w$E*&t$##b>QH=M^>6ZV=H=-h$1!m{62X@dW`zxgURjy|X1`yhDNAiOAqp6)Y` zHIyR{rSCT{Hr!%gmHW*B+85rMeA$b|Id+LMTwn9WwVrRxXBZ7xY&)R)0Zm5Kz}*Ap z@9ZhoeFx0~j*#2>N=dOsxY{2c7n=v^oXe5K{GkpwY#v>k>&RjA29@O%mOcK~iQk%| zc_{>SFrBq1q4*EYv(VQ^%^PYny!O4>0u$X|ZTu;y+D)_Q=qYns!!bmX;k5bZ zCTg?Fm$3e$~m;exWg^7k(rcHEv2i z7tOo1qRQJ^%WdYGUrC)wr@CYWD+L z%tnvZ`A0JrCeUJ~kUOjUPv)KmmR8Et^O#@F7IWMO#+)B;8vN$RY!=m<4=_KoUo`+2 z75{3+<6bNSMEbR>=F=+u1x(tau9+t@@(L_3HL-5Gh9=XUpySugo%OpuGHRY|THG)< zQTu?F{WtTMytkTT8hiiNE1zAwupuYuck?~0ndr*RxTT;1bqTgMzh$1zd*^{hyziQN z5kD8KDIyi;?1O3FZ3w?DV7+qN+*8l%=2^q;n)9*dVC#lg9sqSkAs*n_>O1(j2Md6K2r1D)V6wHTj9TyWaVbCXm)6)#fj7 zp@N3$g#=#t(7H-5c&Poxte~4891aM9B>{FNZiP$*BS{;=^HO$ zA6)ND_ZG5ojo?4Z@b?jx;sAM}kFcph9$NDS6#$L9avEB{Ocp#{f2%135o!Zx`wAau zoO?fvyc-GaS)r;M02GS-cvP#D-uD+K81nIDz2h&ujCr7z+1ff#h|uX*ziXr=NzVS( zkAj5jM(43eWO6t$Oqgt79if29;qQ?`gsb~lW6mka;gP9UzbK)!Z-);9+Toq1C|@TC!cl(vu$pq~ffF86#UPRClB8nJp; zu!A@C1`Azz!vfYG1BVE)8fUkJQT7lao=-`)o*5$GMc&5}7KA$mlJ_v7+W8Rz*dVj| z4i~WZ`q~&ekR~kWW5>|o5s>O)Z(1=zz~n}2O}a5c_|dtm)_QdJywKAsj}pwf`elgX zN+WQ|!zX_vT-sa5SR-E-+S-%^ocm53Elg%)stV`#(ZVcqhu4his~3NbMx_dBf-JQ3 z4PlfYOxc3?%aMu%cK#D<^&8|hM!2b!wk1+6jXBUi_=Z(X7hqC?kyyZqq>1B%##(@j zr0j9R0{+PBVQ(?V8@M=-l=qs_G}HF!t(ocFT@D&G;_=I@SRDTnz3>VGGi_MVVsm_GuvvaNLrn5KyUR>6a; zuT2xMK(7`$ABRn+3u6uU(*6_DIzxb_M6D_;fUNhvu)r|d2I)oH-q*Tf1;csceE|cy z9dgNs!f3ADI@`I%@{F|4*poX88Puc< z;U$CmRgfX&9~{Jx_s39W1*+Unqx889~LgwVtj4B&`Q@p zrS+J$&H2%~YAVxn%Ao#WUgIXsr1o8A;vo_)tEEHHV>JP zd59gTWTDWQFBw9AEflu7f_OI0b$AN z7lN7OC4xbNfFBv(B|;LKJy=eC~L9B)C z{Dtr*mMj?6D81bZ3|)r)=wIrK^5rW9GfPwb-aK6?2s*ygAgk*tVVuseb$~JFv+PEc zvs#dAVK%Q8+@RnFSP!fbB2{LnS?{kC;Be#+>%+&|Si7$mEIgJT-`ptpYmtrODSM-^ zT?=H!Tf1+YUsre4|pKhL&s>F4l#{?-CBxhNz`g_{1Ls;`mNmr4iI3ryH}13rO>O zqaHljY4LQ`D)iNGmzu4u_Xt>wPDk0b2bpo!xXZMR&)^#29^1B4v!QBKBvdiMRMi>n z6*f3y!L|KiVIo`g%3=>G>^zJir6EpZ9~Rp3`MsDHZAxiJH0EcqnoK<+6spu_G2d`e zMc!V)Tb zuvG=-;7NNy9Xb=IB*VIW8F7J_tlDX0ZDud}@&#d@a}i354{B!}brH(M zN6n67YWD2MM?Hr^@yeglgLYhk5v68D&zCL>7FTnEF(()rWPev{+sndRdP7+kR8jsI zu11T05@eNY1r`X$d``2B)k7~)UjcN)K=_%U4C_}Sxk;amRoPE@~KIKcN$ zp>yTJXZ)cQdgGSx2A|NG&fF3@@e!S^UVmUr)MOolV)uIjHXI>B&;J%a(inlK5Ek7R zHUz3wgl8Q#yNLLry7ub$1yqq;9q;Z&sSkuWzJD?;d;pw)FJKe#gAW8a9b*Bs;i8AI zB-8+2sC@bmvS15XKYj!)NR#FWPCSxUJcgp`;znm43*Bl#{43F87;!VIgh+#!#AJJ! zXra?p!q@fIvJwJ#Wd&8!!9u5C+VVu$!?LQ!sm4DQu;R@EX}necjG5bN2+qSUR|~VW zKrUSUJ%_r#En&ujS;@!Gg;3`w2n^Ook(H&4F>_gPHE+F&6divwajC1g!?_#~aA?2u zi1?=SEqt?qx3x~ho{m~NYCVbQseM4AAngbRlnNF~ZQOwLQxaXED~`!h(s7 z#DMIqZw<7^S!`kkMHS4fXN&n1u)y44nMoX|A>o{8xJiuQqgugxlQ_j!rK~`&ws-#Q zYPtk5R^wXWVJ{c46+gH=rMif{YHPX4MT}={cHKp68>d2YP70gT&u^9(AA&PP_QIJ2 zZOyJ`C#uv7PwH_<=BW)5?K-QPh95Q8S0a9y_s2zSDDIYCNxG6 zyRxz?EV-^^6~x9`0M)o6h)G%?ydDLKVk<3Bpr_%Y7|b_oPalcmFfDRTJ-RK55%qyc zo$tK;Sv7@%=Ac#-CW%v;sRf`OuOQxpcuySuWuBdKpTBed*pr%FBNzc_%_EX1=z>&e z@XQG4ec)GXBeyH}`SA1b`Mt}QM)zeg)LtbDaua81gn+A?-NaTwaqWyb3bLMupRx3H zuf!kw%el3E*;XwK@}#dX#yj7^+=o3&(6PSw3;i}okgYA;#YR}jV>Q84^A#@Q zz8{Q&z!~+yhVD(pFKfZ>Hbp`9QhPTOzho6GV10qD-`J7WG!u_&SwMA3h#1Y7hLe_I za|Zp%~{daXa5Qj`oI$f##$n-T;JA-N_VvON3f4QTTGI0fu@|dFmP0L6 ztivNgo~=Z(Mv8g%BCKPg#2?jWDPVpRJ4cHt_9V)VM&G~#S$m_!&;A>0jMm}QtY627 z8|+!FueB7D^v-{v8tes)uj0g^tPSAbGK!pAi_`hPVrX`2ak*hmG-QSO(&aUZUg0NAqy(C6BpFjYVTSvVlw%752IFsMr zuBd@)Ob0QAH4D5{cM!XTgUl?4e!+@Urhim79jm z$+K{-cXw~25B=OlY@i{5>^$uv&I%gO1aobSG9J&rPr&zLORO>n-?xKsMpa`ft?nw0 zwzGhVxP`*Ii2*$=tUO%1U5du3#9}Rb27sLh=5S+?og!r3eI9yaVbhJ<#oiaJ>A+1+ zhat%>g?NB<<>TJ}jP?3}qT=?)Y5O%FciPfTOyRSF>3%m1w|66~Z*&*o=p~621f_Yh z2h>&HaJtz;JX%k!EgG%_1KZ43T?6UIp5klnYOGC?Y!KGYy+kKnbBIf+HYe5G-o%1} z@erx;xaW}p-?%++K^4th%9{DT-r`xjnq(`scR#U}-s*3pkNb&Z|EmPjzbf8h3{o@S zf0cF65`^xu)*pZlYESYXDB>0>1cRx4YsW!isDU37YJF>{c!Fn$Yqhod4XNs$2IYd> z1vcekv2IBdb0FZMlsr=WjIR!%OC!a%_-i57PNT#rIJ)MB?&W(jaG#YipR6x*}%vTWtOqB>&7<1C#am{|#t8tLF zl|UCJ<3#|-QWjK?RhlBc$vbam%3*ADEdgVQFtbT>XNC)4;uw~ETKTTBX zV5~F5ck~AXj1)B!gBD;g0vf4irud0|FLEw_jUzbw+Pr{y2PsC5bgln&-xA$T=F4$vdUIa*e(NXRRhyJ zDI-H{XkgiBWrjGPy?Br*ZsJ{Gzh{b_3@QFl`^9r~J`^)c46~O`qh>+1+0kXs5`SrE zr{tRe?1GxOR^=Tzr94QNhbJFqi*x*EAUadewVH~TR5Eza+aus=(Vm6Chvsv{6c2mE z900GWu8Ga}Q`cO)X!#tmlfPQr9S`kfcd>I2jgWHlhB=W#Sb!6m~eIk6%snCnsxxz{_K^V1T#o*6oY7xVuxX3@(cLl zm>!Ds2fYvAV685%8dYbm#f*r9v0iitjbuS1G28hEf1?by9bBycKyI=Q)K@o#pv)5+ z>OIguuFMnTTiC%dRaf?)m`ny;p}l%!U#rD)Aqsml?nz@bPr#la&kQu63GHq|yXVgF zt1KJEsp7mJ2m%aTD;8$o#b|>r5Fu_f4zues+h0RGD~Qqdg;poEFy{J_} z8lrQh6(5W9n#~66a03^84aJ2tNu2Iq#Z6{Khv4{d7u+&A4&YD#cb*Tk_lcL$x@11Y zUf%${{p14i3)={RSEj}<5_@VrX0aC?T!eW8njB+?H$7b>PIul4&C6aoow*pCmc5Kb zi$RJl*82To(ZcKf-0%kUr?8VOHuc|bi5SuBxopg_!6|nzw%x|!2=j@;?0WSbHyiMh zC8DQctuF+&`29xo?GiDumV$a&;zPqj43{}z8`3v#Y25R2G&67>)N8&;Gkj$4erauZ`ck;Md+W+=<;$=VMLT#fXK~;C=ZA> zH-M&FAto^twNn6~U{AKu`4yt#s|I$(Da;}Xm{?5>P=<=B1ujpo6lY1fsDY`fodV)Z zL#tYo^reU^MhwNI5E}m_=1&Ox3-{G8#d#VOEU59TVCUJ9u3iNrU<-6OGy0aSwu6<1 zk?$IalL~gKDUDwvu8mRyuQyY5PYHN}z8R~=WomIJ5SNDewi=h)jM}Y*9iRp(;P+=O zOieWa65Q9pzCdFz3&A>ko%o5`8Q}CIgzkSOuI;E{V7_!b^8ajr=6AATE!N`7S)9G} zpS8Ffh+AVXJv@vqueX;jhm!XOhytovx)}49gBviLv<0jg8^r~BXFZy3)aTJ8<)im? z1Up9+gt34prR9qkYMX^=j|tTTg1_< z!3t~*R=^tU$`)9}s2?te;OUI5;*Yg?u@Gp{Qh>GdHZeu8AyO6GaC&o#=xr_7CJw>t zg=VgR%~jnC#IbHFvQo`Q&qh7DU)tixSA_&HAiUFE#~OckK`x=_FM)AaL7&=}c8i>(!m&Je~g#vwEoD z9CPgao7Uyvea}}(M#YkwgwvctFg>0IA`=Hy`kP!mKHiGT6>Goq0;?T23eK!!U0Mr=jT_KS(`xuVenPDaDZ zaPRzv-jKf@V7ENawlyzA2@OT$dA*LhC4fFIX zoKV^Nu0{`ar{>gQaf`m(gx4dFpx@k5hmu5c|5hy04+d=|--?s<%S~{r{GB*Lr$2%U zY&t6b>He;SPJl7D45xe0%2}3zXxj9>7@?ma8LgMU7hlpFDn=DJS-nq+-E@2bo-jBi z{;1yuj0va3qi)Z1%@^fMr zLupR3(fZ0c(V$a5>9zCXJ##MG9hg;5@vmNejLN1owpgcM5bNoj13(!!Eru3d#HgqS zF0`b57sahwU~U{uyaWSUO)=wD<4fXc{bd)Ub@*iwhZxl8vNlQwh$5|dU2MP{nPAcK zM=>+#59o_-zXU7IQNsA?ZIuKaH+ihvLiLWJh7R}beiHkNYG7`>va~Umlc~!dw#J7p z{DcWO;!C;DThLcmzz{XSwXoLvSv;WQcfgeYMf{2VZ~9eyCkVn*+i>7xDH={GZ^Y%i z{Z>*{+U$DDXP`LYsyIPsC>T{-kG?JwL!AZ~j5+sMXAjzaO&n;_dpQ}cuiX+`>GZDn z%Kih>Hus6f7w{G^fjDwo9K>hWkl!6~m_FHv`@45U>|B=D(BZ$tIH$KcG*q^Xfl) z?v%3%9KEjgN$>p1=hmYS#lsExQ%|i6C8@hpz2a6%AOu1OMM`U0ngVbDN9QR`)#IGa zI}N0k-o2`v;6sJaKg)A!pTVj{*4!3xbg+Ts#b?G@FE^0t^L%Ls>unz?Ugp2OM@^ec zpYp>W(C+3^x6V4IU~xaN7zZ7;yQt>`&N&L7n%+c9$9r_DeetjKm)lY2a4DFdau2V! zOMV$`9y!&vk%|Cqv>2J+_Difv<8?|L()+>i^F-l=JEGMq+RLVBX;Da1=X!oz&I4>R zdFi-aEKd-Ne_o?@Sa$Go8t~l*=U7^!7t0G_ji*ck088{mV%qEg#r;JfwSikkNWtQy zznpTa7$yLj9?=^SQd{@?5C2sI+8H55G`fX^wEBrvz5yEcA6Xb;cNzawI$ZE*mi(8K zhvOt602N>p1zd+^&#K09s5Ez~t+jQe6sl{}1q#dMP;%9AJS#k|wB5yS_dfWHP3v$2 z@^%tt4r*t%bgY^$al6uyZbJGi>bhf;6k zO?J+NSTg-`xrNjw#Pyr87-POdukyr!@zj)t&r#z|Wmb&Qr;@!czEMzoY1qUPoV zbsl1;r3+|fD%(C)impK2`@E<3pvq{FV#m`wMuK}_6lelnD`F%|29OnS#UV=mgMV>X zdF~8KHYVmVqI!~rg?v2$gT#j1|RdyV!fg|m@r$YaM>o#zu?M<#q zGjN6J>pT^%`sy+3^O^)=85Cr&QKe+yEx1fJ34$u`j&7~iwz!Eh;;^^U(g#RpdnnUw z1-@*uKlSSgGwOWXJnoDOKq% zT;T$IhmHtQTB3uutS&$1k9w{(sf}LYZs`zjZ*Vr>V{TSe(P`2_F`<6B;ElU3A>P}- z<*aVV<-BQ9k(^seq5ROh6w^vNQQQ9dI5fvCXv|Pu98Har3R&9}m}aF@RBOo+ zlY>CcY>k#|o{R5UQ$zDz6XQ*Kt~CR6Ul0<%&mV16D}-1wmSSqr?`thJc2)^I)}F4m zmQwgcH)`5Oit%QYnk*m2Tb^{BcnZ`cf1te41t2Fs1JL_q~dRE~#ITsq*=l(? ztpj}>FEy+c*^+pvCu=Fcwvvx~4D^D1fe18bnL@i#_qI}Ff3=+17A0-=qLINu$T~n=}%Im zNVW+Z)=BE-vlE1;C#O{9LJMhmIu(U5*8*(Hu{1Fj2XE|GqI;flbR^$$xcO=<+6~uzyo~PO)Ob z`S{mhrF;{gr^b15$}JFDepQ!u3zt#5;G2i>mYkKKjK%k@ATBQfh2av;xmQtm;Ye>K z9`Qbjndf}uHGlhXNB{N(?wP-HiWmMbea0!du8BqIU^4!xa~J8=1RyL(e!vz>G_%zk z2y4*!)cBX!_PQ4DhWK)}Y8fi1H>T9|xjMSiMH<0s)S;^s>75Je>Q-zTRjQi#nH$aN zD#dGR8i6A$p!Mzgr0*tm71h8Hcjej&PFa4J26vOfFy7DWCN+;ylXBdZ2S{ScnRlTF zp)=V#@xMchKY%BOGM0vQon$o7hj*>lS@sZQ%;HMj75F8{Sq?z|LhhdFeoeowU{E&* zE0k?P5Bw;$hcv{?4&4sW3^j9Z-TMx0>>;ya&pI9-_H0%ab1=wPJ@icIx;r!=MEy`(n{EE|>fk_P@8L7U#v%l}^l)Ef#` zEvvLQ#=;r5p=#4A^&ZhGEe^|MkjVm*rBhM4*2kcJJ65ryO5LFO+0xbmO6ns8HHWws zFma84u4;-}uzK)&l-m&tosc*WFfr$h4iAk=jeS+oJEdcu{5&Q+t|6>N{vswA*7CdVV2m*sjOz?(7S!5z}Ej) z%|bBkSCIqZd?y=1JGoEbx}vY0+)9nyM*kq!IaMV$I#mkFuowJ|TCheXcG3&g0qQOHCg(_hXs!-h@l_ta|=uEdySJw0^g9vH3y_Jo2 z+`wUi9l|`4e)oq{PEALi&ZkNZaX$IaRLOflEys)w6~taWEXSYa*m5rxw*?tZJzHR)eyXL)i%#-uSmh6^Oo#zxfjK%*L1hfiIOcR*VJ}p=-nH_=0$q zFYt}c&TZKF(%FvN#uv8G@CNt-gOYmplPp0hoqbcPOx3;4hv3C(MrS=#zSv%eSvZf~ zPm1oXw#2ni)wdX%ecO$8<@Sr_=^Du2KanzX^>)?2kv9LokWL0tyET}`w0@!!O?*{~ z=x+NiD z*QBL}ffzh#*K5)b2GEs7Swp07?W=f*^t$#HGF0lL9Zot6@BBlhXy-DvXpa)DL#5MN z09X1K4TIrkPkA~_8eJP0Gh8~Zp{f`pwV?@V(p-MZ@AP+?w2<$I8jrvOiE2j9LSsfs zV;QT?jg$s!k+~k!a+I``MV=TXy`@F|;7JLuOOsjTj@PAkwMc`vHEOhk`%Q>#`-U{G z7U||Uq!H45G`Rb$lqy(|r8#`K)pv}Pr}J0KZP7r9gm5yyBIyQh*TXSfo*F-`A>Bxq zA~ZaxulHDtfNDw~9~v-LT55)kRXUY#uB074SV@`A7WiBnFBwQ4XJ^?UUm7z`YQ>D$ zQqzbO`f8jM?5vT{oJz(?Ukboi$_?~YMnjVK(zS7tJ1rhBtz?J3VW!1dqb5kW27C=r zmJ5N_)o)6I&bb>~$bufKo}crpwcB**xsLz)s9MRfpC#ZU(J!)yP_sAMvy^It0puJBagY#=dGD7ABz%^qvBD`oK$w`g9oQ9 z22L5}f;l-#4tdt|{DQz^%dyq^N2UQb14_R!7d?OTFSKx;)Pdjei}l1jX#j2zNY4u`2+rSnDucT;pAt{sP`vQt7ce9F9;nQq%fmbO_;{~ z`fIl7Pk+_Ww*a2o#+^2QA~p0?0dNP%4shB5;OZxmr}H{!p5&JVdisgfw^=$f=4uV7 zMwQ%e+(gyXeKi6YbX$)Db?66p(EU@Xz3&2uekd0I*nF5dCo8klGbDmeekwI=cL&gm zmqsXm;(zNW5y}~4I8)VDS%Uw&$oQA;Q?Rz)?Jd!Zmp6}Iw0!Ibc`H=dFC)l*iIn23 z62Bf7Tb4)`ttQ2wV-EH{G4hZ2vxZdK9!Ah602szHlX8C(eTZS^6?ET#?SAYHC>|&1 z8)r%FGP;6_fLm-|blywMx3UTAWhS>4xV&p)BX&uy-C*XwDc=GvJw#u~{WP)i8SXh+?`g`Zc+v|V4IYs42)3y5luQ`34W3RGHINh%eK&iK0YEMZD zr z#T{GC3z*jDYa5x>I2E(YV-IYi?E*K#FkaPuP#Rv#@b8R)rK;WmP>F0+(NOGA*(6e1xT}VoyE!E#C+7j1pQ`bEt*g(e*$_9w95O)gB7-_`Oj(! z?J#PY-$p4i19+Pih=cpkXr=V>3Mstt${(C^9u4>gt0y>sGLz4%p2I0`!vLDU5i2}& zFWBAP{T&2z^R-D$Bv#HcH#*VI6>u7s?^G3}g{x>yKV2hdHDi7X=~rTq%y*(@E2VgT z*$>u{E2T3|x=9qhPD-d(|FTmK_8zhPCCtB zzFpKnQiuA#l{k5fh2VuW=Bfg8 zI%Vc%>+(&KsKZ^Wyj*D%L`}$(ti0i(^=O_HsYCc-zSP=#>jk#LcQCJ7kJ&xuJeVD1 zaci8Y<7VkqXM14vW-N!VDxpi8A)nbL#BY&0_|GYE$_c={^&t!n$Hjhorr}$p#zC9T zIOTvt1*Q=Z3YM5KF{!(Msm33Qpw(NXRz1?#ObBCIlS?l!seo-`OuJP>Q;|M(U4)YM zQDWssK+5bhf55VT`(j$n5l#^=IbpjL4vJgbF`EAaV;V3*N($EOPN`xp-O{iVgCiPQ zqgt40{8p*4*`B%jBF4|MFTFgnEB-dnmaUQtzdMDjTc!TuZl@~d^3$Hpcbn9Apgr3G zWOHb0wHEbJCaW@6i1`?%sw0ftSvDuc)5y1zF=wB09& zFDR`7lg%zcPpn#_&rHp{M1OCC4L0=>#e6LVdW1l@xF4|~8^(RZ9;ZU*DWFpp_kjA# z&O7B;Fn_eSc=ZKZ{xvk*hv#YU*U~c6K%{eAV$rfT`Vh)2koqz4E-)R6q$>s3RCynP zl}93}<96wg>u^X;8pQe5ITCkBK5}DQxa^#U1J}IW8c?4dk{l+nB&K7E%>kb z6n?WX2Y~GbSJ0X&V)@F>liyA$Fr48sS)!B$D8~ghvK@w%TMFD|pe5Uen=0n&8&KI_ zfd-ntQ<_v;`I?m4zEx8#&r@YnSC0;Lv8k)oO&omi!V3BLIpeOf5R@psSC(L(8?ktfbNseUrb;3vaA zedj{YA10Uz{v<(Dx;Ks7_Lm2zA(4Y$I|T>Sq5SYeeK^LNhCUaQp1 zO^#FoD{BfM!|F-AacAjotF(zPi?OcQBQ14uE`>cHKaa7tJ|KlUK^=`aBDJd@h{)tJ zQ7LP#Qy(X+f7ZI~i1dce3&Q$>-;_0NxqgvntYP0_d7=JcmMg2Jn(GkOLq?a<$fMFa zpNohu{H&$&2-p}#md1o2u9W<~hkQqtQit!cPSUKD2DASF_;5q~um+`0IhWw^|FRd? zW`y4BBpX-R=+5%G{Ufa$Po^*?+0$MAnI80Fx~`P|{$7d^YiS0~dnFWeOltc=+|?4A zaZE~nA?{=eoj4|Scp+|233(m=2i*D+dgJ&%;FJ>D@z1yqOXxZB4zttp(1B0s(Bp;R zK^JFiWvG1cJc$=|s_d|=qYnQM7%cU^0MoyOR-KT%20P~K`5*Zhj~!uNw!u8ZeFR4u zp8W%^Z3&4drCy9D*zJG}fUckt8h29ic_FT034L}_YHH}JPJ&KK;Y`-Dn5?b&N_SR= z?pSk%o}83oc=r;DJjE9C8D#n?X^ZyN;4~IkVv#4OzC;sGL(+$zrcX~xpK8egXQY6D z*%*S-un}kCJWgU4VY1-F^;^Sd)@MSZqDwm?HPYZS&q%S_*Pb&{pB7tBI_0q4B+L<2 z69|*99DA-%DE3et+xa%#W-r!k1}s(V#~W!~7>Pqlq<&3Xfw003lJfK`PKm?!rP-3= z-I#ON^r?3~dja(HDY{ewi{{%?)+Z%Ws;;&+ubhR&F!~g|dsbSSy^ZuT z9K5|`EexuHhFypAsP*~p}_uId6dGEnX#XGP|5>XPD z8Lea>o;~+53nPkJ`m8AGehD_88n_op?_H8CAu2TL+6ZOab5_sn2%9t+J9MfzPE5b8~3XTzkREe;} z*~71;$DMLAft+Q;OBSs{P#|+BX=5{GT$X$~-E^ud5atlJGwteSsj;pnRbQ4G_<+_B9JXXF&#qItqyAI*1SR)o3Pt?@ z?Yy@;_5ML>Xn74drW!f7`N)7{3FAjW1j;akCLvz!B9yd3@}yNiNM5F)s7p8e;MhcJ zY~plh*|>g@uKghO#*4wxKS~Yw*=?!&kJ1;s+i|-2qZHZI#7vnHQEW2=p421Nqw8#m z;{jykn%*UUPg@QnA|^_Q+G{Yn4$AyUu4+LqV;&R!sSx-y2>iP=^e4&R)6R(?P-o}D zBvO8odW$f?vP?Qz;dI6AO>XqpPg3M7YD<>4RJ>6NGg{Z--<~Z2-)NN5LcWF4AODw7 z68cE#;X1x_WydI*ctz@~YeI*v;1q!u{c=TW?JqI( zhjoe(|HJj(w=Ga3=|{R3nVh)3=|}2O%b&4$j=fGS@xoE@&r;7|5K+oH?#IZn9k%>2 zbXGvS9pky8;&T{FQRR=x?H9>i02fN99>ziu=$}T>zexVNVr$=Dq=`l`5^doDGh`$L z5mi2OLkjdc^*!b_XmCfPKNIE)(p`VU8L5#+kq0IS8V2m@gpt)fpY4zgQRBHH$9xP1 zH`1#TIsZ$uR2&FbX<^6N2iv#l@qgg$WW#Hti8lQP-40@of*7Bc|3{{XqxAeY*l8}< zV)>sG>EjMK&;KA=I7%P>PwFsy4VxS`id9_k-|djBEaEu1$JnuL#=DporRn@Hsp;nS z>S-eX>JHIc!7!JGQEmzG+~h7;`&ILGwdI>WcG`>iT9fZh95PXn%i7B%b>9JP)Nj@Y%Ap3-^e!46_50iSI@n{a>%L!i zfC-7us7u)8fc%uhcMpf}2M$QnH8!Y)6*zpiaUi%ti!Wx1(9G49g*Tg+sk=tX0Ka2n z>k@KsQcq1ld>@DSmG%sXU+GYTatD|YhrDJ7m@~e_T;y?r(|JHIV+yVZ5 zhxkbj_$wVa@w19ELlfy!4w-R2s}^ao16PhY)a+%4c!L9RSq`<#b@+bS;XB6x&kq?6 zwFz-Ry551(Ne%^=9T1rv2u*BNM|8TwcSu}ad_RZpl{T0+Scl)@kTA)iV1q+^qC@-- z4)K`|-=z)(!&!4J7v%)1nWytihAmNQwifZRP!m%W^w1A*;YO5sM&0RF(Y^v55P zPcyaSE#@?RwzU4g^qHF8#EY8WmKtV2d6jk>^lu=wvutrv>*N1jLbMsG$-g=wIuQ!b zzbYa65dPCx4>x&gFozPNi*Yo?e?)?MWlGII$*qnbdyIA8zv;9*RUI;-iyQqz_n8~l z0XFif`~KXdely+2UU63oD33K>%P-{>%JE^sQb=zsK_a)F23ABCuY3uQJ2s{V~bi?3&#u&H5ka( z!Kb^|eK&I8#2ts)b1ro-m15oZ1+8M*P*mYi`?(Go@Zd!)CssOeCCz~oWe#lrwq6}P zoUqpB{kBov_XAB{)Jm?epHY|a%z+c74n)j#sM%r%4oz@C+C!5K6={w`0r1^hO9bao z0eE!R;@MDi!J#d8Ik3p&PQ|mZ5;5#Itbe94mblGnx+!?Ylos-hYZCI zLiDpkdpFV7)n8-z|NH3_v0>?@D z8k~bWb=bP&Zz)EndrbekFWuG+q_Yns?}kHPsw>zeCl>j)=O!mX^KK{IL+PsDMpTE{ zrv9Aw?LcTh`|{^?*t}hj(DR4VFs~VhopN$e_0_!B?KznHq{Spwy>pnRJd(nkU7%S* zlRW6FM^aC}$Cy#>!XE#&Lrys8nOIcLGvnDqHJDv)nZp&1!!|jpK?aV4*H-Fqi+I_&@4cnfM?0+x-K7>;J$XW5b`F<>tYr<2bh+ zL-nd~Q0_bhS4r)3g*2iHGm>32s|u?YU(%r}$-V#T8199u2&@hMF4m|oXA^UWdB+_! z{>6C*hY2AU&|2XgRycnyrm!cHk4csCMt%xq{p#;Sy()3tcES^B4-cto`cw*Ji#}P@ z__!2rnjC+UWNf6PkVcDEf6UGcLT7c1PrxAcf*_ZXvaW%_!Dk&8gTd(Q`>6nBs4rkGpeyd=3h+PSh)RR z`m0)cgDqub)tMiSDlutgbx_Z>Ct(a{Q)zb9mBnHH7?&B7Sj0}@@|l^bf1>^TIr&}y zB%3W*AA;N+IcTE?>um&a=-R2EA$3HTr%R57MRQ(khzUO_FJDjns(GI!Nnk zq!av?hnBu2&-Qwe!p4;~HC*0H#bngUsl26_2J7TVFD5*mv-I(dO9Oe_8NdNY^!Qae zxv7gYN@QB#e{@reqA9Z8~_3%xuB6l#10AJNxAQa##hl{`3z!-U# z_N(OarTgi_FJ&J}jMK^4Eo1|&ag{y9-VTua_mgOrz4+ZKWLVqHD1fOURbl-XY;4k-6hk9~TFWJVVG&Rp5)hq0$`)Ni!InHk_@-c?2 z1w%ft;jlAg`hGf7PmU2;1sM#h#aJ6{qxMr%v)oi1=0JCUt%l)!Y$>*iCNj+6u|6 zH?#z)Zt^AGvdA?7kG0ddaa~7-R~#E`G{1WK0CJ*~7{M z_v86C*~jH6;+V2}m)vT++_Pmr6Q7Q1B8gAhPw#rme*BHSw9H%H78VB3GVJ^^k#hwL zcpUCyw#aOV3q#4;kc}8y_tIMp!h$I0Uqe*Zk)Qq$4n ztXfXEpWJ{yzLz@r$se)aQ%a?NvIoD@N;myvKP|@OFSqbwX^wVlCZuzNm3sNhfAd4E zOnLcHT7cZb2ThX2mHH`b-MO>OJ&GRd1nhuagT0g=Ap2(9&3^8l$JkVA+eZ0x?Ej+f4@mnBmC)dvmcncH8eJL9$=lRkk>0*1c;-Vl&zHeZ<9n{t;I=3GsMiHC5H~AfOBj z{o{9&v5A}-IRq7BIIjWcD-QXKAqKteVOwRp@1~EMV7xjFZrT-FhuyTdiQLQC)*>VY z%MJOdyD2PK?!>>oo2CTI3%$NV2BuA(;nuai3C3Hgep5M&H|?PgP30*WFJaqc{v4d| z(sPBC@Lc}{9C)DD!;u;XPU!O2Li{Z2{S_$T&muq=+o~&uR#D^2wfJVXcz=~}SnOy0 zlo~8qnRK*#{v7mn;AFF@8_-@=Y8ef%fA7U6Llo5vgcn(hoA z_)#8fv9qL*$Vi>=NGv&i;1dtz5>& zYv>V0U~O4rE*7W4>SKREjqiuJJO`MqR{Ag$H*E}+-!e7>e1?umy*EXN z$;~r91K^tgtoa`2olp=)tBT|T3v(@5F)AxiVFi2I+B74%@g61&iQ!zoU0z(PvhNeC z#vy+O?^Zd~R@exB=(J$8$v}iTXv|dgq%d63xZ<`t@W&%>$^7vkBY?*AGHh z0tQ{r;~f;pgdh$T@NdA~yMb<-%X5pkhTPd}cs<^NMW&`m<63gDGk4L^=CYp`hrIQW zm(84AK|K3@YZpCfE_ZStVk^_sii<@nl|nDkE8$w(s{sm^Q6}VXuSqmHLjKu={>eIfYZfZ;VM>f~IRwaA&slBcqDO>q{a)Wmfi2{P{KK8Jt%V%v z`u9$?Qn4*}(#;lf+rZxtX05TtgX?##-jGmM(JhF(wmE4!``);dlB4CY*VkFQeHgv$v51*WxnY8N91x4p2#)|a3z*FqDq?dDJb zgxunA-Ly|-F1GQ?eYN|NoW)6*2L!A-(Yt7QjNBn`2EuRGuZ+V%Q+5^Go4G=;aa`$& z@U|WFBnBqVg+%wu-j$aC7M>6bIit6>~w}YwhI4UXC%f1kBX3 z1ibXmEQ?-}vtC5fti8PJ#hBmQ%iq2jW9=Ys5IciMs*#6Y`0@@KmmoK-|62i!$%X9x zj)$ts%L?e%F0wbPm7T~V3G%Ow;mwKi8OQLPB>AXg_?2Y&oMSkuqg-wH=4(t!<&Lta zV@mIrUxaL)qP32_GEO~u5^8|3e-*BD)w~1-R)~i z?JhTM{m0f9ao<0NJyrId?1(<@kq8l|e1vZf>Wg_!+ce%{`Ld=RDXl=(B z>-e5B9M}47rTkuU;}?_8_mV%+)i%TzVe^|sJ8;k5KXE4R>cg#G?R zE)P_KU10bh?gzYsIoEx7nkvKZ<`%l%Pu|Us+)T?~mBX4108zK}zDV=QFNeE5&m^uY z)P54VEK1WCnXTydt8#nq&H13S4L8{Y=NRRBF6@@bE+BbPLVt`s7xHLifB8hat$9v4 z2k`snG7&eoW8O#@9-{(v$_P6mR|iBzDk4vMe}LSCpPNVP2FQ;LuLBdwJFpC~YoI)r zKbmK4J4jw=;M?cY(V=pnZXVqlDzD(J&9wEW^~2;4-EulTOm5zADBN+B;mnVHYB>y^ zXxJ1lo7{$DF5i}-hs)jF0|3P!65(KR9kfp}7e`Bm%MD!`At5c$Nr|KF!?7&Zi-ObS z1fK^DSS+tp+5T^-|9Io8A$^!8`{>H(i!^yEYZ`Hc9LG=2rA{NDjnPC4N65YS)Li;$ zg#1?EFB{?P#+i$Ub*wyuU^C%nS2^4_!9Ku}*13%|ZX}iqk8h*{_;)?b;xU!qxRHED z$s_p>^XNnT`@9W2_Ei>UX)`-w1cr>~8|ld?`7J(mqc+i+|GFH&h{%6k?iBbDkYSEd zSPuC(_(XqC4-@|Zkh49D+&QmR0^@=x#(@KG$isM@Onze^q!ks*n zljM#3*Bj`}BrGH3f#d+^#G)J67`j%oIyIS_ojMoo`PBw`j&%OZ4R~=%9@caXGkn(A z7V}FxD8G5&+!!-_T#|~8VF3V_ZQ@Pdvgi#cwQNaZ zQQ*xQYT(YbVviV{Sw}ObVDab9dRjI`4ipaoEfb!#&~5wH(NV;Csgw#yMdeRwVrR{o zpUS8mu%4bzk-eJsTMsg@c2<+k&eH3YYv4pG;?lghShg_2;*!@}+fJ1S>%uzQ2=bqW zS+WJ<58AJtSMTVhc62DX{W?1Ew%kjMMcpf}B;_&bXu6Jk-T~_&4Ts;6+xmWrG*&?7 zt(sONu#$64JKF4>Xu0d_=#6P|hp;PPF1v@zCb!pt>jJ`QkD0U6hWV^M=Ks|YbNxGDEuEPr zdu6;2KCG-4fQ=s?EaNrGUk8{Q8a=T;;mXY5nwmm({*o;~#jbVA>FYSV+nvOy<4>?sVWZEwJD;E_bh?ZW)&78s=Zi$V@#Cc-(v`^2IO*ob?g! zoS%eDd%mJ^)8(-GTLJKdwI=i&%T)LkZJdrNa`hTIF{k za|5FFKU8$uIud8dBmW<3-yRoLx%I#IaGT+}H!y&JFaur~yrptY%^55OElfl!I|XWb zxTJ=rc}ZvR3ZmvH`WTv`=VUNuM@v*Xm1w8JIF^^Ab-F01C5YywR3wtB;7FeL zJ@4o9`(uCh-p_Td^{lm?^{nUSeHuU_f5KOlZ0=kk#`}cw|7j)LK35nwlEm1lduSm{ z5Cm{WjJuTv8F?zMc07%FbUMki&smWF5`6zwZJv?URRL#LT-3D+QVoF88+9S%&BeMjdBI``KrNlDiD zM6r-f!TwD5x}Y{+0Lo-#RN}&MBS1tO9zUyuaR?(tKw&>BVYvdAZBfF$Rl@25;9^q3 zPAFkIgw-iwUnyZ0e+Z)zc32KG?{4(tvN`PZqe}jvBs3z-sDvF*!YX|Mj1u;t5{7km z*%l?NMhVNsDOQzA*e)fk4i-h761GDLgEt_%kq6gM#oLuYiw3}8a-PDrDq)SVYm7?R zCMC>>uv{gKDPfg3=-Z-%tx>`_gjFhGE0wTZPXMEYm6(;lIxN#~R00<%VLF6ySX@BB zEKtHMm@CyOVRMu)^lsTkCG1rt%!sgDC2X1!R*4?nqJ$MFVQH`{vMZIqNlG9TVRoGo zmaBx-LH-(*u;-O9J@TH|!tN~)!h0WA!bqbZ-tu6N*BAgf*PuZDz>v z%`NP6vyf@7K_(7Lwj^HawWjNU&;*3hTnFc5O32s?QW#fD>8dz&lI1aD?PmzrDS1n9 zQjO(NW9>glPO*l39UR3o(E|*T^U)5y+NM~py|+9@dEGgmM9WfR^*@m42^pi9$DJ7c z;>aF=aHn-f_P}&tlq9F?mZ+rTFFUe(c1VXs=b=v^teaA1S7+K*M|Na~w4;eiO1cmw zoxa79?bjjQ<4C8L)A@TT=}Z?K+4nZH4~x-H-v&aY9S;8F$iBXrT|`*S6(!7c-jV(D z<_B@W8v}B@$!{Jc~nYHnaB^3Q7LofD@#8 zz&(H4%x*3eruK(5gA>&hYo<+V> zcZ|BpDx8)lXXI)ADmsk+fL&fBMBt@aEOgJ5Dl+z!*FfmHSQ7;<*g5A{MV4g7lalR& zzMp2&cBLKFS;0leNiGEdo-0l29jy8UF8{*KY{6pT!LKKH@;lA>{(yfP;p8F>)uB4IdEb}I1sfkz2yQaQaf$oTg*LhnZ7Ra4q+y%b z`V~TyS188I&1;P8?<<6I_tgedEE~NNZoSo%UBxB%Dit;ZaGK?G0dSYa1wb_+;MJDI zZDQ}Q6uPTW;`b|sW2ztDV(+aI`kGg(?^9+q_tSmK(0GaJpt^)Ovhfa- z?tAeKp_R`-S<$6j?SDcdOredSz(6Yjh|2N!ccpTdx7Zr1u!?VH`ZYpw@7tgesojIn zj3+AYH;@Gi>1*ddCSn>fKxwF8OVV8f;;yYlS|Yb|L63JdRJfW3Kz& zKVZdcB>{VjUX`qNtk$oo~W z1?za64+p_!1MBdvn9Pi5H%?HU!o}&vtIM}*3*^3O*RpFc1b|&PgEGf)ugV5Pqf}l%` z^#Y*WAWXpNo7N3N5Fg9l-hipWU5~O88-%W!SRd@OO2e`R#=j|qbix7b9@a|i73=w( zgV6@iD%`5u0#KPQ$vw_J1~4$;GprLTdQ+I_-sX+1UyZXudTJa)1ZkSHnfX<~?Qx6s zst{u1zuj;j6fXZGvygCrYH7*@dExgI*R-nHZXydO6y?e*tR${m=B!IuVYSHRzYdz#yn*ed zGG=UG-)%(M`5TyO6W%!+SUldsc)*3Vh@n+(;|SrSEO(Rei05RKGI|4Bze(5}z7Dmb z=TGSDELoZT?6iSpz9sa=!M8=;Ld4pqHwycz-V&<#m{&3BR~{Z~t=xJ6VKx~@@7<-h=5iWqcw2Z=bz&Wxyj|$$-O40B-}{esY};&v%5!_`v7aDNUx#nm)6Rjja-T$IL{+8sJhV;i8pr zc@l&m?j&4>tYhPLU`V>EDb4SVr@VS7+D)Peq5 z+Fb*9$A)j?jWibefnfL(hs5Mkq(TVk4QuYpnh{!;)I%NLws(y)91RNY&0gj5Ux|Fn zo&P^#*oSzdyCsml;s^+4yFL&iRdd#`uRah$f@dhn$j#LXF`0*dc9a*i%x{k{;-M6H zMn*?skIXeVKtNa!Bdy!)AQF9C(sf(I!fS+~W~_iIugv1CL3qzvXteKzciEX&W)E4M z1ed&CPE3>q1eI7!U5HJzq~1U&sXQ#jD6d5GKXuZ0%DQjdUidb=_pgPe00A~y*>~RxG3;Oag_K9PAdpfv!e`gbif_!$ z<$fq@0`l(XB20}|r8LxYbjCjoC?c%;hSm!Hsw}oz&P2xT44i96l5`eoil_E8*0X?=kB-br92iB)DrH0|3yJ z2^`~l@@x9|?c*egp+n zx?whdH9LI=3vVnR3%k6>qE##?_4FHT!Ff#4=l?50%kG^F@MY6K5yHI(Bbt=z7jLvL z*70Dqp9tNf;wj@@N8-64^56v74uV!OI*a6~j9tU-A-5_L>~a7a)J-X+> zwy*Li--l<%>ig$&avaX!fMq#@Kyc$mw4b+ua6O&^q;)Lfu}#1O+XQ%PGn@aZ5Zx;k zWO79FsRUU$vJzLkj-rXvh-9?>uTt{k=b-k($YP$0Xy+h@Y8>04MrYhp2+vgpIJ9bY zflIz8JH)-_5;vkl+$%0|sLyA?rJ*&X6T5Z`h7ELUZ$eH!U#{;d+ml|^bP=_Dg|~U%BM1d?ov2iGR3i$4WN!3n3mN|K=A$f7Q&D?5i&@gW_1pe*Qw} z{X!ndRflYiq0svPSq1%-0s88E5C(NlMIVAAF%QRRhCy>Sjh1yC!#{QI9LS?qRc0kZ z;GPCZP63pMOhxrV_ta5HO7bWb;fB_9aaGDzw6v!Z>#u zYG6;V^$d2erxDEK4Z{3VtNC52Cfz9cp%${w;y^ z6MVt;p|%6}wv@P>^}+sjMDS3Zv9neG2#QI%DYb;w_BD6}j9}+iuFB&1s_EBIh{R4n zt)=WfT`PgwPi4&iD`9NsuMtj$&P@P#N6=d?M3-E%fKlvoT-8C-NpU9Tj51 z_LGhZL;T(a-{z`R(z(1otmddth;ugd$ApQziY+-NnEUC$eZ>60bGIJm`?=-!@vKAT zXPp1a5bFEoEa|wgcj!gXhJ=Ii6~pgd?Mw%ImFV-f^B?)@;OO7#@^8fdx`jDyo0hYF zCxqqvtL)0diSYfITLr-Z5ebL@q0gaO`dpq2%WE=wuf_6b-f82aBTVW0mSiw)mp;&*T?;KY;fgowUxH9$4p zb|mM%&tZT`7hZxr{w_2J2eCMzHwracRz{ma(agLVSFhlEsL()HuqhbfC*W(J^Hi zJJg8Dci6T~LJog}&2NHzZfD1uzyxY`tqE>G74thQ4C_pIJDag;QRlX8=eT2-zn3)a zqpawx5Y%n(rx0oMfwIl|LR-f+sKgxKmrI%Ltk8{L%#NKEhVT(gdro*wb-RSEIwwSd z?{=OO26s9KDiUiKE|tNjMkN#cF!MMsO!GcS(YUuNV<~a|i{9@j|9zzYP{VYWC8(8tr!T^3J`}k+!nQn#k z=-FMQikSaL6ii@l!kbPdtXRSxy&$ajI}5%bEm;iBYGOZL5X^l2z89K>P~Lw!+R`b; z>LqMpi!d3=r=>;c5r1y6%rQ-PyEgxiF8|d0|6a@#d8z z;INLZrvpj$qX2ewl6Myt){2cHBbTw>tyq2V_%b%G6$_?xY-TG)WM`JJ^{qlyhz<~j z&>kDi!_)QVq&_}d!tS*Sy}b@&hQ-k2!TMhkQiT)v$^FD=|LJ461wP^IYp=$}u}AKC zs@c1j1Yd70hyrjEQWmpAmmo|hm$Hz{=w1%6jLX8jkZN#Am{d(Ds*%?>WG-RfT^3HO zCN5u%*t1AkXLlsho!cZEU*VmN zTsD&EOxUDQ5|dQ&ehhlkFN?>RO-d-y=z#0b#)Q*zb<6?e~-Mh zn#Xd(kH`TWaA7>9dgi{F{&&-VO1j={mW@ z6HjRuvdkO8`taWoPVtwE@8_rZmSSv9hnx4GO8kKi@qaI7dv9W;(<*lPrtmx_Au?_W z!^BB-vX$F}o%-b8UBkBC64q)a!R1e$SRK>CCbwOnaSL#M11-SU*3200oN?%%4z#=_+nB*l!oYJUQeOi`gl=FgftK4?)*{ z(pt1VC?_im=>0B4^({u4It<&IeT;KTxL1!w7W=%kP+C|a@ z?@;#E@4{g35h%`#;{Ik~KmRUd@|RfRZP-LT*>ksrH|QFLT_}WIxh)tv-9lH9yUkd; z8(I|(tiZf&aBTH6+HbPHcZ5DYu%hEASE)>Y8ojJtuRGW&vQMuY?e%cuh3c>m5tZYg zmED1v+}A?xqHdvj(p$P%a@4HZWWlj5$b=iW8Bvx4H+nGwL?(56T)nhLkRQE1VkLq zCCo9iPaIfE_1r>s+JV&xRMLGt5Yd(kIO33&c3!BBm`n}8LCK&kx44UZyxzq7+uyn% z9jSLIzWI;wkraMD>2=!bnRuB)t$#;NRhcF%Ll6z^?!L+;>%m0m~^5R;4COg85ee@Et zig%<5&atyWP%R4aX{33WbykUek{*`q2$JRU^6FC;_@zTAE73OpTEG^n#27xCy{!_H zy@+Q|o%LepRAN^?fN9*sK70a8brWN?60_Njb_?W*&T%8lxEm{S6GPqqx&RHVTND%y z;@7ikq#jfayewYwj@0Y>AUoqoYJ+XTplR+n`C^PHg6%_W7m0DR=56z>HecjwIRU#f znZ{j=jBHG`E=3oVHv#KQpEK4P_{e^m=OA_XAIMDZVrc3m6l|Wr+24UWkz~Z!&pHql zOOoepve#p|wQINz1m{t~WoC63qs^y~y*q6$0)4vTodPt7<8Q#g!2l~*YTqYgty__8 zJL2lRdHXjYkWu9J$Z=hzxGjil^ylpsf!lKu@il2`Yb9htlI>T!St}4<=?#AD%U_merx62#OAATm+)7* zTP+kG0z!9k39s*NolD`^tc4ZXG61n^E9Zs1L=uE|x?86sfdoL9lHeR5gxxO1XUAC! zobjP91-~0-eTfQ=0)Qb(J~tHXqvSguXZ@3sFIVf5uZzJtmhzcnfB`O(Xvg@d!TK~s zbOQ!KN`Vtmpqo-)T)Z`%3ha*fKyFWa`0RLV8in@&hOXh?##;wccpm_WCTmaMvxhYa z;r+P&003>)95qt6>2P&4f7}3!l~Y^i!&41@s{@N;+;*+mZ9_P1njeo2 zy#jG(z^6{Ok2Et+jhN=QYp;WyJmE-?d)F}L3-wR*5g+lyM0u=rIeXJbe22fzOuphUtjaI-75}aWn5%!l;|)m! zIaaH?n(R8Xn^RF#vq^s9NK!BGerVX={lwG=OO514vE@Qdz<@e_8>?IAAx~Aj3GPeL zKpik{E-|se{$ipG$OH|W=P&BqSL-<~+u|=y54(*z3SVoZdTzyV*NWkuB1c~eGX#kJ z`C;sZ0I`Rh_mCHRBS4%(6opGk%>o3mNwws4c3lwTRVU`NC{g@MTnl=@uBs_98`pB< zF-5`diejv4;Oi_VP+Y}NXS)N%KM#w8QR#g-*_tqw6i~FdAl!XG75THRQgaU;cXFi~CCRm)(PK41~F`kEcp%tIkE#U2WzZmU# z*ExHhyautTESAfL&-XY3#v7PjE5@n59Li!t#79+M3}rbXVmQ6$;T`qGP>K0)LVm59 z=X{#6q*>P=y%%a$Bh3dP;-HYnKj+I+!Ew*EIriwGw&2{{led7qH!vie=|aU+zojO7 z9Iq}r<;^9Sm$J#BVwBfLR6Q>?iIs(l3pMQ^vXC&bJ3p5_7ACHun;uuIL3^3`Lv76X z9?U(THkGN@AZrDj2qFNBa z`h<(P2_TY<3>QOUP?WRSwJ4HEH&Q?)=Vm0VQ5vEZNtZA#(!Si)Pffceh~ z2_H6Y1s9x$jTdTDA}%OQ+n?daB~;Nyj3p+i#iTg!7*X_9gqNR9w9?HYG=`$E8iduv z__C3zKm+?ILezH!5%N?RyZ%f&!X7*;qy)s1;!b1NKuB-)NTe8S{{0d#%7o1(LCw2B z&9~-5YGkMp9z;-^>?I%>VeY?zE1$XEXg}$})w~5UFG0m|5Y}Q;OyOFDV?rUg7`MZ@ zVp#2hVI8DGjs%J~;LISDXlOVKXq^J8^%AN)HrC5=Slf5?7SPR^64aGNb{0FOqNYTD zZchSyXRlFYTB3D7-gEGzo=ddO#ryAg=EeG2X)6gq3FFAV{%1C|vl#wN&}FV%#yrFY z^N>~pybLnt_=Y!>Ft1YDoMv@DF5}8+VMH_Jo!YGwRyDUw?xoUOA={nBtll8ERM%g>*N|&NT5~=HpL!q}{)TOc?qC`J4 zN|tDil8M%d*Bv!^QA1Ko0=NW>zU|}F>gJ@Qpqa2YwdiDI47Dy8YFkU&+g96Jjg{~c zhDzH~6O03fGZz}|W6+M170OkCa_i8(BPn7XuHXh_|26wQ*rr;ktzFu4keLcS`5&Oo zaDg^Mk{?n~GA9zWdO+K!1C%}fZ@`7QaNHlDGq626u@liRe&&jah_dtw~o!6_P|gI;TIm!Q_evR+%YD5Tpn70YE=%TrWQ{Qm*S z|4GjUWQN7FBQau6ACO!s98JL<(esi1u8jco+B;TUuy*x7+$TxO=k3he5{T%50d6Oy z|4}pP`ttURDqy)p8yxBYbMZK2-E&IB^h#gT%%oW6#odBnIAT1i^4*)lU7E*es zdLlECmGCEkM+4AK0JI+fZ3IbO7w2=JDZ$(y2rHFaGhl(?07zy|fPL%)Z_8JKT6Q!+ z6f%f`;F2zS63p2V#Nx9=_WLK?>A2`qB?yai((~VPXG@&Y$VNr!g3PyG!v0)`Bk^Hb zrQ%1S@8*rE-aJkTwx(Kf;KtR$CeBLJwfX$=3MqWI63+8h%|Va0_VDq8?N2 zSBIN8IeZlV2qL`hM~qS;##2Eq;m4HlVxBc5ik+U-02;%wR4Zz~I$Y0#W~CLHgPv^? z#4bp3ZH~mx&^wWRNOAm658BgG*ya0S%;*~v{v2nM$^o<1yUSulmPjQ!D`z>d>?NzE z3gJPeCVRPi+dleM>wR&31GQgpYy9r=iY?fN7Y{0dTGuiTmb1Snp;zb7z;#ZBQ4GpG zC>%c2b|!MlCLQBvp(eWRNC;wlsC#HICCw(2mg-aFZ2ghIu(hvD7J5hk!MqAWi_b)Y znzUqVmFm7pMe)Hi)9h8aHhx;F*jeKYXk5FsN6^~Up9LpN2W-j=^dk?Z% zP;aF|M<@OiMkT0CzRWE}OpI>VFA833k>CXIlGI*WGJ7UP?5d6iLXFtUy4LbpmjTY| z>Y=fyy8nsP!7EMn(Y!)xRQYv^s12j~gGzb(1MP$A+0#YAVSc|&1o7@T5}>`-$T+?- zIq(V2hFnL3K&TI7jE)jUPP>!hg5OG`@eJ9kI2|R3WWcU5aQD+=i~|DpO39-H#41Qk z;!ZeVuD|Fa3}kA(PXPdi^F_^GTf!;40pV4+td_l-D&~@sIjSD@R4ri-%#XStA%R4S zL`rj5R;ct(6Ym6;W;b2N9o&jhWOndw6*UAl-(tw&!Ch;BS%*eDS~@GuK5Kz-t(p&M zpc`rmpfxC6wBD_@Gsl^Osc^nlF5K0mCe%7`0zq`=RH+6gnl5L)}FVQUbZwm2r-AK!6rsj#{l zVF!cR$N^#}QtL;Hl65MpR2GTDTk0#1P6H)Ul zWTtXHD6$_~rWrN5YRr0ArKFTu<@@@uky1uw@S>RZN7Z1OW*{b22d0tN2&tu8*Qq3M z`cdaV#)%KLtTd1rD2``!A8Xtn;2HvHJcP{IF?fS(s1vy|!3iHa5{C@e+Fg(6SldAH z@zIe^#Qs0R_r@S`low3dqo-n$*o8r2MmvATd2tDQ5m5)SDoU`OKdTTf^I}*l_0q(T zVcfRI%?FK$2QQ`{j4LBM&S0Rir>1oZDwa3{>{1Uv)34p=FOPr)S$m^iA9=Hgki=bo0j=u0l(&M+TD0}F2Lu! zXMpc{cXL3e^PVHa&%2LYc|jH6f1VGBIM0u)R~b{I*I^kD);`7U;}gh_w-q-Yq|B7P zqf(298*8_zLK@OJbyu`{dU}ROIUP`W z1K&Y-H@cZaY<*DZNgN@T_mBd2U|xg-lroPAzzM^8ogKohWW@AC=OQO1AU(P+#rq&PDhKnq zXv*w3eQ<;Z|Lx%ht_XWpv%NcWfn%^0GnE)Qzt*zw3gbJC~Xb$ zgPK&1$$(j6KpNM%E+raydGr@jUJohn5Es6%)Xqj`nqQ@xh6dvOH@tHWV)bfwoKuYd z9r$lehCfShG^pnr*P^2-ysT#L4H2VWkalWw5d7DTYX_kmCt0chG_62P2Wcpb0P(@w ztdM3b5WWHGMg!SgtZ50u%uUBSrm&qu#OQ97&?B5ug^8*_v98%Gu?I!PvtNdY;pSUd zSYn4e^LHHW^Aolxx4C)RCh~mw&zQ>p$;ViG9^UG6()xx_8!-fNGcgE(Ppj{m;X!U$ zH2!_!(3WpXz9aWu>h6+?P48?8ukr+^gSK@Sae6Pnw&0C{L2$Z9SaJqjugJreJudo9 zp-axrjpS+xh&DG5_*Xq~oDKmIit~rUY!VP7aUCVN^M35z=}O}!Dgss93gm|LViZ;sTbc`!}EXM%<0BQ;k-eL zTSIXlb%+DYwa0ynIF6gWnbN)Q@_iiNcV=+4WDJooT>Q)Gtb#$d>E82g8;9SWc%lck z%A1F8^@%9N0_nmZL#&0ocSGS*@ntXbb*a(3Zy`*K?1D~~RM+??ugyPEn13lHn)fNx zzrkli{ajTeulitoL+FwCvJ3vkR7W~)V_L;$Bj3?NKGIr(Tbv5!{CT!o<6Xw_(WfN- z)=2zqcHwX1-B-~_1TkotbrR4^3B4Z_BC>rZ;}AoN%hNp=7lF7tGmN$K;<-JJFkEdq zlvEZx)c?RDHJlZdRM57!w~|+_r@WY?b1GhPxKrXt2#(f(0)Pdr1BFvUEPyT?%zGCe zT7|Q!6&*Mnx-&i_F6C@AS9<|-V|Os!wfBv-eL0cb^jt_c$bNhlIoeEiBK}tQE4{7c31e6bbG*ORqaIwoiw>(c74k zp)j8sw=BMZ4D?S5z1iECTEcV5)QqG~N<7uc)x)@i!5XfJ6uhh6q?UPHX*No$_EINn zl(hHLrDJU)5+)&G-YoR7bNHnDk(@mgaa+(dl}R{D7Cf>qp5N0PVoc48@05H4UE0Zu zw(T?`A;+FFV{%AZ0zxN6vy<0TCnWqgs# zCeX1C+3pP}T+R`h9nYfE#Za@>Rt;$H;g(Gza{UN(GF3^vrWOyedJF81 zc-S2mVRslnpE%rANFY=I1WCToD6TYAV{1tCUB0Ml7&<9{?F4y}$Ag?nT-nP!{EsYV z$#{^(4x%6@i;c&31X%1H(1A{yY(`6KTspENPjT5&$J2prxu+g1lOG|MX&#I@+pPdX zi$X7=z>d8ZVY+ksAA#hyKUkn?+kGILw#sr42#jxHIDc~)j^UhYOpPlAE3YxlrZSsL zgyb7BMjt!wfs|Nk^K^-&ye0(j+1mozTjx=<&P=opwaVY2M(5$a`Xpo9-qYybNcps( ztl}@Y>|QQ1M`H9LUGM^Y)SU6ITDK{y>XXXpw3n;?{gMhgZs;%wI1oLM1J0>N=oN=A z7Axbu#f!VPe%Y3aJLt{a&8Xz2Tcos-eZ3ba5=WJwZ`9z4=S#vJ8&#=leQwm-$XG?E zCoue*#zzUrm#6&G;^m7&xVvgvEqg7++B}T2Q)N7v2>_x578QwHD{f_u$NvcA)$o%y z$Jt*!VUE5VE$t0e-@9_02E=hlp!O&UZ$`y!u~;5FQC$se194_(ktK|$WBU?Ymf^@Q z6k<4HT;qdY^W|O|n~z->)l01V&Y(Y1(R-;S@CffW0>(g5p|~=9g;-iqKb#vC{RG!H zosdghAKv`ho0$JQV4m)0S)8@<=7H&XiRy^Bj1r$J-?rrFe4G)e=d!1u=h|s{%)0Zr zyfz3$ut#s0l{lnH?Z&0H0AtO3qDWfm@<^Uf$_DN*SL)+tmisPQ(qMPf9jE>jyg>j4b?s=cA($E?d5 zKBi{60e!z_Nk*B*yt}mG47?#BaM+P5AZ!0imAWhk_7s^!x3H>%fO4Q$%ZJvX0%v)m z?L&;UKV!1@PN?LzPt2QcOs%(Y33p&VogaXFFsYoz{W5HSKXXXe+OxY{P9Dn1r|y{7 zl$l+v{j;#Q&cV()KfqY~6As||8MDfCqwzRYh%sH?-2I!6b4zwyZyfdQ^~$K9u8)Vb z=q;Ysy4ShvU$B~J%DmDnzsqk=KQe#k#+`R_Pkap?*y%CSXXkwP(bHh%yjL3#F?Btc z@C)xh;thpAcW%XLb91J(!JQ_F;jAugd&wwlgt1_Qc#_ZC2`CwXBqdFq z`0OV&)D0SIlYis(ob|TUp8Xa3te_5vl4L7rc$E*?3u*iA+Y35SaPTWQbsg!#_L;ew zwdhBx&;{zzmN!so8?4YQ5uplG6Fxof=;zYWJ<5zv^MKd!-Z1XTP5d7DvrD;@&kD8eY7(osCp zWkuX|gc_)FXwXh~9p=!7SQ#)p(eb$q#yQ?nOXSpMTfQ@LZF~O$xgHbE)!aflC)4>U zOy@5#U8clzQ;F%e`bYdNkrUhb?73-ezhKHjW@hsrx%m|^q;S^V8ZdX-etaJl(jK$= zkDJo^RCv-lt1~&gbMd~Y@+~Wavhl>f7alh}?sz=# zJiWwt=UCz+z58xg_vyD?=<|V}Ix~B_u1|SX|IDoIx@lQ>_uVc`OGH?W^sSrL7w-#; zuVsF|_(rCF@%2n|+T!0bg;l+J3n)ZHA^nh8&L}4qP(ZL!sDMHR6!7-qtC@?DZz2lf zP)MO3=M>;9gtWy!qtFYPro~N}`u*2ljOQkA<`$pN9KZM{q-)CL5axrh4Df>E1668O z*HUv<{gHR4V^vWt>2cE2#W`Fy*t3 zQp~+yaeK6YE3a^7N}L;?fB`8^Ce*gldM@(Y1fz%&7Z^zmtp=Q=hB~Ss(upeos&lO5 zG*z04K_~J4ScxubQ^rbW`fz?vxsrgFy?Z zd%z|4EB}7}n041R=EEB`9vNlr{VMv#W`R%4GowqOLRX?gr4E$7^8zt=#%fiXvY_E( zJ%)(T?9#LaMtnsyK`;r}-iDKeI@UYDs_IW1d=ruQ$3d&$21-}v!)NFE@QHPEjcX|F z9jO=bv^BRm82K?SE@!#%!Sd+7rI{tAuhcn9jH_lt|l!iUc{ zpJ;XSj`u|~u6U}awT$;EEA%j?u0XGF5xn)}W2(Fi+Wn$ z<$cR8!)5cH_mPUPPx@_qBY#@T((Ym3NbqAR|Z8=jt zWO9N`xB3`yqJ!496cdf!uv?pd<=(HiEx(>VKYgS6ZhF}~@I`bGx+3_vs5@yzn-`+Z zN6c^7Sa{cTqR_*qY&a?$4nb_gLO60t8Zfvfzm%UD(%S>1e%Z~ZY-N64%1WL~MZ#-5 zFv>@U$%Td#Nbs=&6#Od~lYnh=^Rs<^+mT3x5px>BI};tzDbz2LV}{1A(Ve&=aDF!R zYX*INcsvevh1pTSA&j)gNmWDx`p;mqvk)F?;VLS~NB3fQvlEVVQbNa)-n%4B{3EX^T*pRBP*X51nnh zoU40TDKVLeq{GZO+M29CR~v^MDs4`O$}5h&A>6J&GF3>i5?QIIk9G@bHFm-#-GbRE zccQq!EsMCKzkotp%5c{my=U-6daO56xv5*HsGvB=?j*}B0}KHYwR(d@q@4<2lMaVB z+h{VBZH4`Na*BL*EPWHu&j3KD1xP?TqR&XiA;>@@WBc%1 zh^a=yrB?ed&BFSEIbklqOn(S4JFfh1z?fyS&HywDBkt1o>?Lhk!pW)SC632Wz>vOb zc&?{48RFTILKBp>m9|wW?fSF=$bV|m2Pk1io0bF^*ZfbF98xNAB{P|$PDV<22sJ>G0Sm~>2k?ohKZn?FME`aKq|5;HLb5pw&q0`C|>w)h2WDt8Gw~x}h)YFSD#FT_+B0u0 zy^{In1=Yx`r4HDhzh|CW+6*K19&F9quq*FohP{zGwG)7N6lFh;{Bp%|*{J})JP3gV zRTuz>LZUPHmn)PjIgQE)z%V3MBaVOzLs%HX`YvtDtU-ms(t9v??U^$G#OJ6q4S*~L z0Hlr3cGtFIl9O9}6M)?UP!}ZY`fV7=`o%w)+pS-3SihFVzh)kU`ArtF36}H(Skd~$ zXWP?|h3w=$nie*~*`2a7EU5*?-enjDKalLw+G|)WRT=UOK2{l`p?tn0NLwojsL4h5`%GUtnWQd>l3j|A&6&7|oMY zKSRS5Dx5mTYIJziG18rePHjvsizXPmWQ}tWWCGU7Ax5O5X1G9Z!zHfvhOWq(8}jr^~RFDUbM=J8RV!7h-; z6jzVqgf>jdxh5DN^)}+Qa9f@RU%v-8)Dcs!hN-Z`zJeF($ebx{@6P|{#+}{PW%a_e zgWr6=h{8cDeJ;E8h+o+iu1#z=XyAQDlyz;Wc$qh!kgROjor5#r;1kO#R+u4$gALrZ zPth)|*d2KpO7;z3OIG#Wv=fH;bsG(M_pS-p*n9TW*;9Xtp1nfDjXLmF07$B_HNz}C zjI|X8kH~&yWT(OwZG{guKfh;6DatkQz9V|@IHYeGS4(3KANXKaA>CzA_!81>;QhG+r2zI=Lxvs;Su&8Y)sAh39e{z;0%zzO|ke+mcPmDBhMoZ zc7BTB4dh{L8j1M+a{R&P@ZCrG9*6H9^0)qZe0MjRrNT}06YCNYEr0VA9wC1>Av1M7 z-l6jUR{Ya=(K|@~A5Vn`$loUV_L0B!^z9{o^Yrazp*pXbCQ`HFlys2Wh6jLu>(M4#2#-h(q&kAl}EVF4cUJD;j}Gqpv{j7Nqro;nO3(cS^NF@>aOJ z3t=J>*~#^_9ZYBjl`q2ZrD=bXE{T$~1i(x`L`wWLhH=^PC?p+iq$zAp8H|cr0r5Xj zvD2`{S;-F=w#_}Tb_dMFW2{0Va3N8$NNx>W<^tL7A$@D&Nofs6!Ss&Le?5iL z4#yVWI6krrKv|`KXxSWi8ZW{Hs>V<+UTZX`6ky)JJFG}Lrc8JgD9jIkj;2-CbWE|Dr%58)D= z*pSlEg8WoD93H#$7zmL@?2l$}1;k0t<=~SHP}7M76kDNlN|FXTD&&=w9F9Uo8F^;7 zm1$<+78Y24Gl<*M;z?81AqC?HK_or6=_cs=i%G`X9G)v8?@;x?s}IZvdXM31OBGj^ zKMEu__5K0qdf)OcVrGUeH1!+@ug)gq?Q z+~A{dQtE0i>$m7JHBlHAj0)`E?t^>6_kM@n%hTMy1>J3X?~QJD9Z1v@^JGpkVWf=p z7En^Kn%{-`EyHus&DZ8vSSa}!R$v5n0MbM5Yf?TlHCXHn8P7ck9|Rcm4+;u8;|Qp7 z5zdd{9%k;C4~A_oYb`0hj|6YDAQKJo$-{OM71MzCw&Zv4u=RQtZX8T;&{W5Hm?$&= z*1gW*pgGvfNJst&=g4{r4#T1mHBE;|qiUp;?WG5oq%@nIuAMpDo-Me0@G|zg-NsB3 z8AfCj(f7nqE~PmFm<6;YPY&V|Xu|=V7+E7QGqeJ(Z5my}H8={`_RU3COCHCTMdYv2 z6hZ{ETZUoj*WpX>Za zo45yZrr9l|A=ypa+7ml`ut_ z1|8mcj+~TeNX1q(iTPG^N}e11PWZ0`W78rlI^>vCxw#Ivu1J-5ajEls6bA;N%teB4 zP|0Ow*3daqNaEBC<~pEK7lypOF1!ik{RV2AC_$vn2L*_7`&A)@?qI%9%u?T{QmF0E zN<8rnjM9nH5-}nbsZb)Db2gDg=Q7026>}3VuP6ji^PHX*0D2JAXhxUY0#~3x#7+yG zM=>1!$&CE`lzdS0u!?0)5<^r4UTpFtF-n&ofU|&oxYROOS?O3trGoV2194}Qu*ykT z=oTEIhE+8H%pM13pQ*G`uWJs;#OJ`!5>n`!21%4#&@gZPr9gvJYXDvAt|y!sxL z0N=b)xjX);LZ^vOfP`Ig)HH!m#7<7W<3K2Ed}v>+Mm8@kSi1xk(PAN5XZ!s)Getaw zg?})7*NDG6LQg{L&H*6vJTZZc{v#cpd(91W`Fuoc3kuM*$lsW?&emX|GKFhkKBm*| zhR;YwU?FF#Hx`#6!uG_Dg@M*=2XnKO?gEAP=)*OcZ zO}(rKaMm<6#~6@22Sbc?NK2kS4wF)}_K!xa&mnv!!b2#$*N{2yQhNLc;y)2@TEd~F zTZQN@up7wWi}y*q$=y_gH~G2N;Z5DaOuUJ)$KXwqDP-T$G;0C+xl3-^cyyY_rr>*c zV(`Y{#a_qoFZFq3P#ZtyjuF%9dG(0s*Kr*k)|14+EcMo|3-4rBmMH&0Vk1ljs)(f4 z)qX96q-fmKWj(ItP;V{1jCtH1*WeFt!5j$GgAW*-{>hJy%>y-Y_*cWFoq@C@)dt1KI-R*1QP%X=7Sy8&tWnYV#pY19l)1VkP4t9P7;xZDE0}O;8H<;%9diTXn5D<6zpXqrx*?VYvg#FI8L(WmE%O=PWrEeaJ@iqcANoW~CXVQZT1;HYskP zA|de2zyNz-CMh0y_W&3z$~idtYa57(Hz%knV1hxJ_MjfEoVfV$6|=+Ul~E=Mno zZST_P9W0KiD3$HXL{Mc6SAJz8EsK?>pmy}ffv5dBX$p$$m)mXuws@S-bVbtSArDM+ zVgzr~_2c$TGedJZpmoOsx~i{M9*>*y-u05qudb_qI)6P6=ARmzx(?fOFp8GMr$)sk z;p7+_%z=*L0v-OGsUcmVD%eaVc0aQ%DpwVEs^jVPc9F+V=*UfL1}E z?9@0=!d!FLE7@5fNS^&QwpmqSUbF>?C=&rk?MM?bThWKrcym?*Y!a%#jCktw#v{B6 zfDA{0lxGYm>IBLHyXPW+$^Z}qSb+qXcVQ)r@4?jmx%4p~%OmhEL|Z?J`G1Q&?QSm5 zeLQ#&S44)CVO?psRtu~|E;Yl?xJFv%0XH@ENnfH;+$D=OzA}(bpbmmMivScMXGWz2 zXd|qG!DM#eO}1=d0Omvv;6#rJNKEU`ry|3FH0~PR;WGhPk;bz9GJj3Aw{Z>mZgtV> zOj;)ZKpP76B-h>z`VDG?<|h&;lEg|^IyE8XYa*-Rrgu)SE0}Lzv}udgKzfp z$nKeM|5Z2bZM+x%RhYIK;et7eest3oBXA<->eJwngv%1%$e(Fm{}`5G?KXjg96Xfz z#pl|+l%3$EJfQM!HK9)#4xpG{t)iiMPN>VIi1MlP$q}72cAdrZwwTo zQZvnhw=Ppi6Q&BQ9-S&GD;d`QFDn_aSYcWS7At&%g$cJ@RyLf%0)OTfR%pO*(0Io%@{>G$Np9K(NpGO- z$%xJmHydlo$4Guj!B&k zHx=>>LsQTko3oq(@X%Ov*>t`F22y`0FB<-e;KNF#=fH$=_Z(vTo|C7W3V|U`#Eq|q zNYWtMb-t|QDBKB9mEr+hj=avw*Lh%D8<3$g3_wQSwh|%xD?b7@T>yw&IoX|B+aMKJ z?#xWiU)MM+F8%}dv8c=m{JRS9&ip%EkZ^`6$e7z_|2ksR=80pqU>P-{8Pr#4M^%_) z8L6A)Z?tW;`jY&O{v%ucI(FE>dq+0kwb@)b*$$Gmq-;pjU^vvUd8>a= z{(s=?u686Dta;aQP-tF(7|E^{iR!1qkzF#v9`7l6kjWi_EvmR*37Q?>dDFR6$^B3J zykX7Nb3!t<8?06z>|`~g|0DMonJl@U#_HEu-|1pRSe4t@wo)uBF!Z9vCgV}vst1YK zpTYveo@j|3jg4Aa*swKf%9R06Pr(K*D{bVW35Kg83FzhzUt-s%i}7m5B#+?5=!4hpniS0T&k#p-LdL^rwBg7Y zkBsri2!DYXpU7ff6^C}g5&<|Cgyal#3I-qy|4%F3=ol?>wV3v&%iiqll~={C#%sh0 zTr1W#WyisGrtfM@D8#{brtcE^h838@VT~=mo3X1c5me(mjMX^G+IE4Rd{rFWr34!{ z37K@f>16ANA+)yfiQqJxxoNAs>R{yiZ-nod{{6spKKPe16@ic-ecW9~O&KVV36!YXHpzN#lC)70r>sxvRKUuKCfsf zwK=x=VlyiENUd!14YrLT*wM*gBYpdc59<+jD#q7ZkJEcU%W({j^SLaS=XOoVkoz6$61b7SqO=#v;4ZE8*I&y zuyYhwuEQp0BN~sZ>tuDsn(dz}4m6jz?rO#D!BVTCWY{56$<1XP&h6u>L64&xKSa8$ z(GkJbItFla8r^UzEjZvT;C|_fgEf1hg)o!a5`hNEH>5O&!cPMTn_t5Q7_nwKYP9s~-$o9r#wo*+uFnH{IOUxNNXH+R#{y$K zXaWuZT%^M75o+8Xp}{RSDl5@dMtl$;hOVMpM@XPbwqwMlU|xk&N1MGkJB5`vsnI~x z;GNW9gLmpXjnotBH~>;Yy@!H&cLnu*3hF5Avsn+I-i{ezE-i~e8Nh;V`9KIYW&qLj zY5*=F+7*aeAX~HxFb3b1IOpL%A*}<_N5-?suZxfRw%}mJX0!&KILodc_77%tuZxeX zj{d?t=ZpP9A8h>2a^p`L#zxK;`}*ugUWps@16bL7v6pJpEcW4iF^Vr`|DG>)cb_~S z2bmhv-E`RgNylw*w$Y$qo(lyfie}ABtpfF=lA4C%tPA)#_HpzI+7WqY-BU?R#qnGc z%WdIxzM$?dsYRfM*eeS~U4RiZ---uj$x%abIGeUeoFrYssm9Oui^Mr*I>Sk;#rA06 zb!tMS^;wkh44w)+&*OOx&n9}#d0WXHm-nk|u4C5Lx}_UD9^er5JJ396QPSqk;A{Gh zJ9qz>DIN7mD1%N^adrztE6_YNt8|=pqoGN#E_WldN+a#=k9TLkJR(M!_2A(G95q0G zK@3C7aejZ|Su&FVH1Tl9yv5|{fXl9j#%LeGbN1mmCVMdW9W%mvp7b-dVRf*rrw03o z5SMQEO8x?6#pA!!4a=U}yplh~ze~AE?LZxb-FOj^gk2TZM-z6r@Cy+OQL7R_V8LD7 zc;3#f?ThVF|d3R964qO0vLx%S7d=Rz!7LH zGSXX>R@4Mi&@9RfvZBfs6jau~RndWvME2=oQTr^7j>x_yXaBiUj_wlN z6OPlDsggE?@4;ckYGX0>!-RNa(R)14hxL02aZc>i(Tbgb0m@q!VJAdUe%#}Db+H&0 z@}YNIGL=G`2WaI$I+|L`v#2FvNVwXEOB_EJm#Cccf#8SR-prBjZpigvnM=gygK~_u z=`*87X8_X-zo`BfF;&C%FA=+%^%!D48WE_T8HSaw?nUGE@NdEk9Eb2mvPRn6ti>ox zr{nfqdXY|2$G#@aa>nVng!3wGJk16)p+2%L=-A(*z&cmQB{o3{_3neDG3Jwt&?|P~ z5@ahf$hQAgcpES-Q**^xtbC~`nn!T87Bu#LUs~}P1_XKA;}Cy3{!ja=aZRpFBI&ph z=Q!Aj=wJoWCajKK0sz$@cU}zcMTU^8|4r>2F133l4p5vCWwgJJG$mvs|JW5qCU;H4 zudT@RMy8g(@YPbp)&T3pzrd2}&a#>zED|Qc1FS}VVb%|KaEZ#+;;df)P%}uX_T>_B zW(am4%co405Wu(bP3hC&p$vyt>3i@6h2O|!_m+t|FLZ~)jI~BqTp|YfRhq$_Azb2Z z6w-@rEx}nDQr+xW2{t6h0N)&VNhNyR1wFtZO^bMRQ-e=IMiNL634B7s*ks9~nG!18 z638Wz8`w1-qMubKa)~0s+tGeRUQzbKQ!rthaH=KJEI~Yx2@X+naC3ukPNW{^Sxn0` zI15K(Bod6&m_#F*fNfaHmEY)(UGZ*h$-jdRPA;cBuVaHiOEO0JcuR;JHc2Ot-5G&p zun|>ME*iHRqCpjT_I~r#Vkf=B-R-bm%T%~=^$e4~s`1S>vW1T?*;N{ExcT}~;nd=5N26{AkF>$Gy;`14;WHw zpu+p+dB-(65+5paD2LP=sk9rQ(2Q`S{R5oM3S@Q-agJ4?_ay-=L7IByD&Ts%!)EOUhzgQI3+-C?AXp@Ub2#g7?{L+MkX_Z|gy}kTG+*9!uyLTNQ%cblKuR}Y zf4nTDRhaWpKQTxWQm7OX&}WY7A)%D{@5oH=W+=Fl-@KCEhRT*26|C=68H8HyPmaXq z+fT@x=`*DEcEAwaY$CIM-7QC=3HhFQf!S7w;a*byl_u7(LNutly})h)Z8`8w6N_Fc zb{!Px0FFzb82zu)fU!kwQFdQ=@mWg3;E_~21wRxN#0OY20Jqg;#M{(N_H2hLw~*nyK%Wm1D54( z28+*w2Iw159NN4!B;fM84_Vq{URCMy57bTV;Eqx&Kk`X*3eWbcY}yP| zcoct-Vrv{Pnwm+H{T035wI$hm4Suh^zL)m|o=<#~?>&kCvDYVyz~c~nBghnPK-&x9 z)A?TqU*%Qv2`(yb42v1Ym^(-Pk$;DeYIPQ8T~1 zy1Sxw9BRel3(gxSs7O1oZ--vSnCcEp^>R%6RKh~6@v_SW7IsZHG22Xj?@IOVP#ZP| zZ<`ou<^5Nwis^}~dHgD5xA$DbFIc6{cL};x*vq>f=SP~ycyzlZN*W{J8@l0Ez$F82 z>fKeoFW?TVUVctDTmjq-cP&xRmTtI->SsDUMR9dibQ=AXj2DZQF8Hs2J5>FHeckXQ zfV=za@IrG}`GbJBKv>ZR&<)>D^&4d%e|Fscx!#7d`2HX_c zRsIEPK+((3>4w)+14z9m>eE(%`P9l)haRt)&L^7fp-1;g3-RP;O`==!Vx& z1E96q0Qz;+vz!_LztjfM4Zol2H{hoJR6a)_-F?&m#0l}i9PvWH7g7U2e*xdp4WEB4 zpZl0P)g`vd4p=on5TI*qOxupVhX2YpL9j1$81(X8<-XHl(A#&xj_NQON)w~LGde6X z2xgYGHsT6g-36m`;NYNw$vSLw5Nx;(n-B!c(_vGBVCU8krf_SEvR9&poX}U7(~7fR8PP`4GlQ>RBbz`o`8cI8t_*EPcq=3 zh6cP5@KR7iQ6ALLfcvO^5Iq4WYG}N8iW&gb6E8pw4fvDPfB^?JG~j=y20#r(c~Cpi3uWL3P4Gs82YQTW+>xSo21E7YY zd||(?@)^_ssGfjt=!Tz1^@HdMIH)1&9}B8y@eQE{j2EDWM#D+e0H~q(0MyWc$5R6$ zAvbS-Tpc8+qP&&ZIrL`q4){WZL;h5Qk>o-gRlxRYu-_qIv;%(x3|33}HUJoLSOE)Y zuwMX6GGJkJVzl^v0*pAWD5rud67V2^r3P@IR`5H(hy{y+b`91JSRL?9z_K*hSAY>m z7O(;hwhOR!;Gck9q`^okA`UHJGd0+@t6k`!0lZNI{s#q#Ws8E98f*(-r3UO?4fZx* z#KJ|nWg6^t!0Ldo0=8O%y#g4qbOBqh!CnBY9r!D#qWruDYyc1*&sxD|4fYgZNe1lS z8f+b4#PUUjJ2coDz)B6+HyUg;U?c*Favd712CzCHynr1q2#lcVUjZP=1Og}*iX~YJ zSUYxrfJJJs>Z|#PC)Hp34TBp+#rpHS%JA^VmE?GyxlWyF{sqcN3XVL%H~(9;xYAI@ z5X0}nO$bih?h+#->lO6X-(IiXNKR+KeW0o@AQvrZ7RX>^Mwx>+{o+1w|&Q=`l)RzS+G*wM!e-?EyAs^h&E;rkzDiCgN_)h@W# zHBsIl3IV$VBpe$3l?@QFpJyj?TFHhH2ETH^TS39=0so}0l=BIGi_Vk54~S37XOeZ_ z`?iylQmqs>fo;Y`1Y2|&_^z3ldAgXOztjY4tCa@Y5fYiMM44SH;?Tg%elUzca~_@L zhK@=KfRffo4~_Kp{uP!|+_^$VnD1Z;qm`f;fh#TxfwyZYM%@d4DPyHty6;nTO1CLb z0f}%1dAx{s(1OzebS&Vra3@Mpgi6~`vq#(wATDp=>pn@D;EFXvBP7(aF+MLj^wh|e z)o^YXzPebC1&Aq>?umZf4L?nSA*`zwXS14Q|47kG^l&F!qGA4V?>vBaR0iHo@GOAZ z7ciSw7T)wmeWiMRmt(5yOp+@wCQ{1zMxW1ip@)Q%FdANjSak|inuf#%G-Xj(%mhT? z=i*%eYmkZg{RDGO^9`A?DGATChAo(LH!2UFhSn5^P}&m0^>}~u0&SiM+wS^a+-qJ6Jl8CH7=-HHFbb7N5jt{^=# zGFw5j1S`NiP&tYoZM`b2R=htwGP?-JMe{$zhTs(sTg^92u}FdV%aJ2;F#JrQm%~oE zOt}$`@%Ne^FGM9ce+HB(nv#NYkJ6ZEg>Jy4)7a?RviAT#fZ&|(u$c`UoR^1S-btYd z;0vF}8ymt0xayW__cBtA_4rK@H&Ub{kP9R$#WE;|v>7IKrYFVZ^^cPRWAQtU6j5Q5 z&WIE9V-ent@1&7ewy!JB!*`EkJ9%*T4k;+dp#Ik)b`_QOQ zcWzA6ZBKhJdQ?}LZ06BVt0{#w2;_2p1xdWVdxiC|417g>QViJDC1fo zH`9AhsFLl>nUq%)DrI?aUyTyV7oi>(sdkm|q!ZIr!R`5uGs=jMcX~4X$3!k%r7W>K z&bBP^Mhr)xoVoN}aK2m(zLLx#3LNr1iz7~o{=w$w{0esAl?7Gx(x@Egx9Bs$z7?>3 zRURof+qp*v?%}7NR?oYtS3?;T5i*nvSAHnfdJs5=NS#V-`I2;0@BCgb{XHp;t-hTd z+HiIFWlq2a*+5RIuP_C#Kn+TDP5zMI_lz2EZiSFUK{r3~_0K>tJ{2LcE6}@&utWwc zNaf~1QprUWyNO;N9OnpJhK=qEi(D}k$#*Ga`tLBW@|Ea9!sM#cQ1jNCl5)sti#Wl> zc>g@~^i#_y#cX6n%LwG2nL9Vvb=*{m{YpWoMbk{&<2;hv0QGhUy0)AWBp3Gc~g2wRh zy7-}I)hO3%a!kYra(F}qtdkF!rK9BJeI;PHrsYsOIu%}3esZeW(M&LGa9CB$hssc9 zZHA+HIpT-bg~U{(IZ1G1Uxme-gq?y+JLw1@4uM^d7Iz)y^;N`Z(ITz|lAk@qZ>b!V zxI{OCr@%#XV9ZnSTqq|x5seJujf!da3v~ZiqPKCkR7)sK!~6)9+J3~)5yoWOs}0>E ztt|c(u~;~Cme@K%Dy3-rN145d=cXx8Fa`fbC;Zs*s*DBv5xqCIrRQ{K)*7O~J9<{; zhGb&<6qQ-=9}`~mmA*lZtaORNFQwkc5Uw z0$q)AO;G%|hqz*V1@zH9;ocv?fyvz3N-XMf$|c0tl!HCk%kRw1m!?@j9V+tws(RMtf633kqTL4ptxCUbiNk&$Z9eF}dt~Ps%klVTg z{%BpZ&>rqxhYrwE_-7#bpIMrJ+yVj(!q9|SFqY6o8|n@;PNaw${~LavjeJIjOz4P# zfa&mbAp|6x>Cpg|>Iqt3eXY%q%@i5-l%YYLYmM+OMCTw3!d__<97qM-RXs)#8sWVa z1$#7rl+a}GG`=H*>aqR{BD`g1eN%?Lxe(vL2He=>i||hG`X2U5?B;;^Pa3}j6`j{r z7?(x|{WjYjRUJqky&O)4*rIbwGr+R3EIm4NUW9kzS)GyL#)Xk<18^C^bO!b&MR+sL z`k)$!GsXA-Ou<+Vy62158(Xt6`G)Z#)c#I|=u|G!|X zt{!|M)! zyD}ozKw>$}-E4ddeNPE}cMHA~@631?UZB;BcP(3F?~U}%MIT1uyS|rJ zuNfp6uJv=1uryTng{Yfwhw5}0m7d*889q6i$LfuS%T?liP)EsEXY&>M`$cjUb#@$8 z8U*XA^I$=h(TU?Y;!4z!#Ub9o-$^cQdZ^-Ag;j*PH1(pVb3(lXjp++>RJD$sq)i`v zoYKo1jd!g+4OU7ps8z4sqmOL9-m!y09S^EM8O~grAE7c%OzA9>HoBljWGe8!Udh;y zDx)Ea>HpFfQl+H3Va1L15g8Q;gs?=$^y2_kbAMwW?^-MY<#+cKO98)yzw?qBotHKM zVJbaNEac8(^?6jOb{)#?c}%V>1Kv4#L7oDolyevmS(Ym2@yM4|o9yGmUsiL?FFFDr zoax+H`U=1GWi?**@MSNn38t;P`7GRenAdkR@@P)wtRgejZd(V!?0WVU@THSqw z`ojqdQb5fv9La)DQsdDt`hGtC|M^L3@LC83`pK;8B()YI=BmY=IjuGb5z!%eDzC<& zD=hhB=a?;g{VUK9l|jUyJ3pv_|7_C^7k5IIbfc5iIE<9RIddc48?sICyXxbeW1h!5 zvmBd4%vmsPq@gzoJ2n;wDpN!@%iZNQ*=yTvy!dQeEh*bjyT3t2ZEYq``l!iFWsod$O-((jfkLs7nrO0lvsR^T>&bF&vrrc zKqnnIbL=!=R|x+V#RqGDfbP`jz=6PjQ2SjDvh6>t{ceDM%#RyLLH#z8UnHIK$xCkK zO|+mEM5M&{a!~hb$c%T)ketobARXWxy`?7F$NmG_mAk(l0QRCVaY5)-x?(Y=KyytM zI{_pAmeQa@e-2v`o#fM;p=%Msn|9W{G%^d=Y_6Qc_=j^=s zn{U0QmUdON={+^B59B$q;gb5}gFcSI<1H8BQ;3k_8aO*9k#3#KAIS#tjjyXk`F?Oq zc8fuH`R2lG`gJmChk8qTD|&BwV?k3d|E`^OYZB9#m?Yu$;@h7__d})ECms8V)~^% zI7=LZf(Ap!HGq82o9bxO&o^-P78?2f2447`E7N>kW3u%Z$D`B z)=QeE?(coIbta^N@(kID;(XT6`J#7_fBG2hJnd#^ZAV6lTfem(iQnMtv?GfIj%qVa z0@M)PPbox9Y`A)Cg5%h5ZJ=!Ef1}|{W)_=Grp?ynOeWsz`d*y&8e`~^?qE+_=zAMU z-#c=Xnr+4o6P54gw{B7sFI9w_@I>U966ckg45+Whm z0HwfHL{frgvjop+SS&xZI~~yOxn&`X9$ zwH-d%e(vHlsCVq;jzB}8b7L(CXLmfK)NH&fhZy=HmhS}4Rli`|q`-6v?6LYbi-B2v z4h*bwm=vg`jaE$O>lj}(et)|ZxPJ`#TEe4N-0?^F0@M>bQwZC*L^7F16NDSO9pIdJ zk%@A*gAi*$9hw97oq&;(;hwjmCUDOdbF=qx&~_IU5fzPow~t0e1Ng6T zRjco=UHtHSYV>4*x?t=Ey5}Q4%s}_n)ejqt{ZG+76XjPq7R9bgTBP*tt4|TJ)L+f3 zCN7HSHUCy8clGA0f2;O>S@ZuRUR0@9Ay4Vf=j1i%KHGZ%7!TqB3(%=&f5}D%1vy%zvQB26S${f%M<}fl?D}{ zg%Ld$3cG!CwKyna-d;RxnP4piChOhr>fK`>4j9B8Th-iE`=`Y7 zkB;>2B?7<*pB>;~M50S+#JXX`jVgklT_)=xH}saTg=^dW>PwOG2QKN-g}89~i%w2x zT#9!xo{5frdl9U-g|Zi}2*TTXAM8peFAf9YB;Q5~K8$hsK88h3$UOpR5eB4>0NV&Y z^U7jV15w5L6sdXB1@HsM&W*vJzYtOA(3`_%3(`?V9~j(4F9c zWMiO|5TP|(*d8^aa~FUoKy+r$v)JWN`AZ)_***p^9Q2yVmlTb)6?#T>H8vEDk=RSK zMCEWcZ=#?M%1J~sa^iDsM%s_#(2vgHj0Gx+k>mHO`=MsmzoU+Mj%nyaix%|ESCuoB zH~t>dCypXz6{z?X1gIKcwji|oCtk2!j^iIK>D7ySK2$GKAt=?OC$!sT+>{h3N|}%3_3KG;h#mrh+)*e+T^s679tqm$o*^A{)SUH4j~jZv^PfUchO#1AZ9F@y&za z#u9Mg%-z=^5cJwh8czT1nugAIdy8n$a?{D|eW*kr(6PC$ zgdhG$jg1sl8zuR=hkFfmX;L-ckUEJWBEz7)|6>$#TGDKgyRrebVdsNw!>jC~g`+ zs>y2flynr6)uKfXC}MoYj;e5OZ&Oo+QM`1FR6>U9=@9qpajI96v!~UMh3RkrT+wl2 zrS?diZjsRz#zf;xqcL8H%M;-dqD;bs0QnS@oim5dZn3@sj4vBwD+T&cU<`Ep#l#ip zMB9me>oAu9CgH_sst^M-V}T?=gz8P8|EMQ!Ff33p+Uo5wxe_W0&}&+yX8h6p zzqEQq7*RbcrV8nuAEPuAdf z1Ku7rwvYi8t&orFz|1KpQqiz!&E;}D-?BqZjR%FVhi&P#u#?$8LB8`WH{21dymN;- zI1%ZvYiS26&`}Udn9Chi%cL{}rYpXL#r)tWY7sI&QgiTbP#5ae@spi7n@lkk(;%qY zYURpybhAAbi->Zb5T$}Bs`FTHdkXYf<7siRuoCdd=8&4FJOD2bd=nb$SX7XL_ZSAf zzbl?7F?xb^io!Z6d04Y3Ts6rfVXh8 zEsDx{fe2m|8{}6^t-TuMh4`xYhG0FDVE-i}GflHGt+ak-v{ybv3Rv<$$LJjx;{lZW z26ek(w)FRsrl|@Lr#@Y3F2!!a+H8bvt(F#jJtm+OgCOjD9!Yeh1SyNw?;vb0&VIY% zmxU-~u)PfGk(z_))0!*7`QeY%#E>GS6$S->N zE4cZGLJW~E4L)I6cBBc{A!}t@jhg5UtxTc6mt2ggWw7z zvJqO@`+c@18SB39dfKQ~!_$TL+ocYdPw@%6)SF#6Mv&Kd7EKiqDoC)k^`MMYC(u0J zj`n~%V`xt*aZt#Jy0mOO4iF^5R2vc|UW7FlWrUnTAzoV2L_hYU1gnDu_2gG0#h3%z zZ1a>wW;ckX>~Y1{L#+Tx1jZ8YYyF^eqohhZ>awLk01T^S1M%!Q-zGfQVSO*A;5Af8 z6M)X{G@-K&WEnuDMspD^lOp6H-fX;o0Pl&c)4(kFO_SiqZ(G`^N-GApVC)D9CJCH} zfdn7|T|A>+mr{@nNa*28@s41;&TugbS0*EA0&rnoHGlatHGd%Jl^N)fuhT1N7xT(> zR9X2n@B6trQjX;lKUWiEh0pq2O=pC7v{JYC`+AKZ*w7HpANyQgl)e;*Mf;v+H=Jf4 zwWh)0rSWME?#65q;@$QvANvJjK@LylH+`WF1$lYo3pK?w*3Do3LOo@&J;Pu4QjKO) z@EMr7ul-D?_{{t)-}R;X&WKH^a;+2odz7WlIf6DMWD~GMC#Iw{MN8@8N|6Iru-VKO zzU3=*h>f~@qA<$~^R$SjwgMs=1mbw0;^DnIu84M`w{1%zH;hlE}qfU=pv4wnJF{{2tr z`hgI?VA3A@7__PLFSd8|0!8t zeR|cz8PPnq9TB!-bd?wK+3o7?!O2pyG8ighs8XiVtkmLM2-ZZLo%R~yt^zl6K4-6* zebWfgLZRQr9&JH-3&rWEa)zYkjJ;2)O~<#S2c__4`fjNY`w@(YCX57`y?8FwpJ~6& zc@FQvi`^?7fk|AG-KnhUU;OvI>P@C69_2UfQ?D>R_$Ys8AGX2wp4SfUQ&VKqj^(`X zesx5SU54?YAjez2Tnc=R=^-T+HS`7H7cS5xh7L5SQ7UtUjRC(Km6v3G`+jw>>BdL+ zn*G?T-|$!WtMj9;xfg0*bc8rzE6yT>vstx#;&)Bb+(_3zOJTtlr}G#gGEur#U6S^Y0E&%5l62i!aH5tTkXCaX zNC(&`Ia_(a=RKfQ1Q&7x@$k(ECxjbJI(|<{mc6q<398{AwQPuE9DIwVfE$d*jml`v zAte`2$6?b0QQfv$#{IIMcsDxHP7*QBRmV{|E#by{_^}Q(GZM!u1^uH>pSp)<98^c- z2X9(B6dRj1cwE67_8j}QI(qf%Qf)a--udMF2#QgMJ{()gvk$5BhrD?=`lq9U6E-2L zpmrrrY98$AQ{r<%he^3i!AI7H!7CBFASacIU<&F=N zqWHrNp|2<%ZpD3q1pRN=rp54FiiAJdb*uYZ&GI;`|D`4)0a;GQ>Pke7op?ZtA}FLpE#4{{zOZmStVG%g%>;ib?Nlm4T&EAjcnH2<%!{#7X0C)+e+6D^S z77Mw9@N*XZrS|a(-y26fgZ*9b7Et zsOMa7g|~$<*LJf1<71+C#$3azqV{t!#OSUmYG0~N5j2W?&%vlX-v1Xwe+SLe8#K;2 zinko&azR1n+ybJmOCdzS5*C5~0d@`KR5UL3c{(H)2EK{21$>X)%z1^>ToUxY0`IMO zR|@*%Tm(6{YQafm6!tn6pYry&oQK`b>)`E1?zan2zzRaDVMWgo|DQyp+cDz*7h7mh z*B*+(N}a95y#g?@eRO`!?0oz&Yg}Q_bk)b>y!XDGN2E&z>7u!h-2?si1`HKzQTn7d zOyXNmR%{fcgKQAT;j}9rzSGq~b1pz0PbmvZOlxbLUMXNsSn(EMBaDGQT9glp0I#gj(!+sToWS-YI_R zWDX%FX1K`%$A==|3o$t7n^Ns+JRiri1ytu;l%+g~veA=9D@!K6SfP+d`@}Fw=78ZZ0#qn=QpKcg-RWo?p`-}b%D z%9DOqNAa)EsONv}y}=&vNs-GD z3irD{L_VNUX>|_EnvN}4qExClL9z@bO{$_(04P^&9V9l|x)EV@CN}X3mjn6uak_KC zUA`I$m2VOGQ}JIYXmBoq64FY~H{;opj%AZ$GCb*0l^guoRs>}Y21k4ViqbCkzEYU5 z9{zxjh+;7@Fd_w;DZaykz^anPi$d5SHW9%yROu9W5Rh|X%Nc%O2un0=Kh2*EVcD_Q zVP@%6(h6I=(g5oK{E{fyFyiIdfQSirTMrCUJ{`?J3}eHA6)e`}{}p=yKBx8gPr|Vi z2LJLPgTE67f2VHncf#QBg2BJkht)gYxe*o$VecOguf1}>{P^Cm>Dys+{4-lWxvSez zwme-*sG^Rx!dZm|MaPrw7!ZCelwB;(;ss%BQr}}+wXuQbVQf5{u@Mpf1uSSp*_1oE z9)U^cs4Bh}8yor#%JZazq*DHRFLqCF1-2!nU<@DEn+;C8Td&^_XEExM1Kmj*h*MRM zE=kS2CN?UT*Y#%oO*e1lFZX66OiLYnUvE~Nkbx@pLmvB9&z)4(OG5OR*2X0YJ8r%P z1z>v|)4ocb9K&xgvw@V<7|H^H|Jns7@}Vh+0?;lvkq>RfZ?UP7)c83w8+*QxgS7JX zLSutW!0<4y2aALb{t&$DO6nm8DHsJ2<3336c@c>;pqdm#M|sSjoXFF|F|lr570$*b zR-OTUplu7HYBEbZ<}hfMP+V3d?_Cr5&TuyC643>n^EPNQxY%Ybv=~HlAcK?Xigpz# ziNJw_jKQQy(B46o5PlReqz~qG5zIdLfG}JH)==Ek^<{@ z^TQFKA7{4n^ge8e>1X|aRx4lBhfPiB+o~PwXqyoi499a3;rTa%`JO&3DfEcqP2?ew zY58+Jy zO(ct@kji!arAoVefBe*wu9fRR3zkXC;-^ZuyaV)L34Ryi_mtDKKZdxr(TrdtoKKGy za2qvNY^k~uc>r%!*_gg<_?9SG@GgJ8XMKOQ%U3dXooUtk z{1^ki-1a^nVPS<4vxC0B+rq{Yl@PldRI=yp<{w$uL{skjyswqbIUjnTBgxKjWO`L>c>dW0`I?J_c{dvx)K)ctHP=DD&M>Y^ZC0x09FRk(-qo zErd_0k(+I4@ZN^Cx(L+=iyTH%LYW9`-hPfIJ3u1-*d$~)C@OALNZj=zoT}YLptUp|8x)yct#!P1AZ;fG!Yo>T5 zwzRh%eccoi;Be6B0`oPF;ir zZa9n4n{hJxvjwITzrJ-=p1IrFouz&;F8l(MX&ASQU%W_-FAmpx-hdep0s*k*k6c`8 zUWW?>!B$IVKqneJ`W8CXXjegGQ@u%Ay>z;(IqMWt6C@wj1j&ar=Q!Qf2=Oq*GLx^} zWgWmDdeNfTaNeoerD-{8pyjC1wH!6ja@0V}!C!gNGUVbT#E!MYyC&9J4`H5kvDSLX zPQSZu=dk)tPM2yAgXQ_5{3dOV`3#a&o~^1VZL~zj?bpmH*8Ng|Bs)sH?}6BA{hBXr zv}Ex6quB&kh-OD5LbD%yhLRz$1Q;wJq#4t5xeyFz` ze-dH|lJS=`psp`EaE4zM!*c0lM^n#v472wh`X2aoNHiZdEh>(;$FNHW`#~-Z2Q~_1 z2=)hkp3*;{N9Xa&W7#OEv$|YUJwRZ@840f>4{Ci(UYHdceDCph`P4Y}NCr5gur?@6i-+hSb3jl$#Cq&$!%KMOE;uro_{0Pj6CMjg zu?bv6wen%{EGy+$FPZYyXOT}VW!Y|DB0t|A;hyjc=ozg}dL3UJ&n8BXgCf}hEA_82 z4q+~%cLS36u6Q=p^j#89NnqE-e|bt6AJbt$_U^Sog@F{Xlq`4DZ+uMxi#M51@>dgB zwrRk-{BQ!h({#(b{H6gc#q?edUp|1Pn}6S;c^J94e4g3D+Xk@9<$v%Y1DQ)+!=D+* z?i+Gus#Np>3I))9^htWNBmbn=_3VN*6^u`5T_g9*Oka7rhkra>Ocp` z_Cd2cCP%}?V6H);2ntEftAy znh%XYr!~h|9o~-l9ew^VzH*;clis+EIahy zo6l7xKb^!z1=nNe*T8E(;*svk_}$5Dv?)Tb=Dt6zrVk&K!qU3xnmw2e<_l9;QpDt- zy8fAhx`w~UccrkgwoKGTc4azq8leHOF>f@+JTjF{2(It^KBsT#9^+%b+LHMGR0ttU zw(wt5fdW6Y@DYPpwDt*fGd6VLu_R{gs$<0ZkWF~7-LZMHY@+wW-`BO2#f9d{;nY`D=8n}3!Z@32-xKejY$nOCf+gS z&RlKT^Z(G3&LOO$TN#Pv*e1sXpCN{fYApEeE(ac5#dGq~^=J6f|RZ;lU_8jJH6N|jTpm&KEw21{1rOets5D7X|gG4hs079=Ue?pVsE)ptbSe_UCJJ9Phf;hDqvKYx5^dbCbLH zlC#z(C8)Rm>)K5Gi?zwYyH%H32Do654}^p6NP~Tkmt$W*)E$!!Y%NM|)%Jy3sw}GZ z#N!6Gxeh2#=VD*LO{Qu#p3#vKGcNa0P@d?~R=Ok!o6;tm4wYdKk%B`!gY#WDw#V zzw`K!EU}A_Ah2+Xsp)sVd?cHAS?k++fF9xpJCPcj5@IMPuM;>)3e z+5{C;z2u26mzJ&B1VnurzpuydJt*shQYQqyiRa^+ug>sWN3oRa4n`tFH+Ujl6-urX zKVU-gf#`KOSJCrkoTWTUY>q>6oKZe6yDklFTXAJ15mzF_rN2XAh|K$iSdDz7nWD2- zJ`yy`WP>&H-$$|d@M4rf0+OuSzC2|#OPSvOvz`SGLxg4_uN4g76P!C}^H7~x<=uon zA5&P0x@oSd&0J~^2l9&nD+D(1+lDb~Xfw2heA{T2W?L%e#Bt{AekS5ODI6*7G9V95 zdz)uxu=L($084vI{N@a1HzmEzS7xvjxeres#xncS+$X_jO5eG>cP2}=5Or1XB8cT^ ztiydzq?O;2$&%z2{%|InWZL-_-`(ceFdECl59Mkjuu%r93&04T}LA+gOfK zB@t?CqiQ6!dVL;CIsZGD(1CN$fxD*R(uvkIB%eWUkk_7mpg31**|`xcrgn|$Rj~H$ z*HhXb%IFs5dw*Le&kKoKLEoee5=^wQEt-d+fD^H{Tv&-#6_J+%0Sv2Y_>?~cS$D1X4Wj%72V4~z<{C4s7YD6zhqxABZ| zP-|yj$Y+gX7l7gN4dd9Yy#;4HFM`L6XO-cC)z+)tw?5=6$3sWi>nPtjo}~;G@L1;k z4#bKo70=U|w-9ar1jFC!n7`Po8Bdr1dHUfG`Nb31#ipDV{^SI9UAidzp6Z>Af*yv$ z7;c!_4(dsKxvR2v)qCZKe8@yL#5MX2sWv9Kp<9^9hq4CWr!Bembw##T{J0kpm}h;z zgucPTm5$a^p`fE$DwH_i3ViGT7>OHTRq%gCN{Rm2?GK*cFdp#EO!Nbbr*FYNurCR* zuaUyJKby!d&#jo$EfcoFRqGI1B3j=O()Zj6ygq%1+YYw6as46xT9tW{SDMc3fdyK*=f=leo3VOd! ze?JTa5&q9-l0uaneoIo+Wd1`w8&KjwQ8PX(B@HH~`+5k-bgtbCde;u=(P@&-DDW*T zhva9kN@T#(NuJX$U8bx<#~Kmt;rfo z!+1jP;xz2Ho?Yxyzy?K~-LXiOf7QAD|A$N_5$w3{~C`Gi82GwL_2!re>ay$A|#i@h1?4v_4F)DHMG0AZ$W zS2hB&L#2M5i^IhQWc;Z@mg`DNbx+8jCIy^O*WBfk0{(wWfuG0WnUdy^`}VuCw~VAw zgi8$wm1@_A%sfdQNcffH@q$5yfIvh#8pmfaWd`c(B)=;bPUVQ z$q!4IpF9lVIUq|8{QqUP#IKyh^1|9taXViVYhGl7Vu*rR{l+Nr$S#qEs$>T0$30FD6AUC`#gR#c@ zpmqsZdP%jXaSmCx1$TeLkhkta9MSL}K0@j*H$$$*=c`d>3}oRC$j2VfLYY#%Y2Qeo__g;{DFh)W~SvfEl^V#{R6u@0V zfpW|%&1pT(Vnx?uMN*|e0ZHe5BKXf2GJBR26RhM}yd<*h3-PSMK}~3yXktz9`JuFx zhK#VS6{0%2G>czW#A0T=hes-2P0FqIF_;94FAmdLhqa+FmQ!I;6U8Bk_iY(o+9u+6 zQKq+-@%!^k;Q%b)4~^k(7J;ol+sbzrv6OyKq5<6JqBU@T7VkHOU6dM*+o?!Bx9k=A zPr^&QZ!rpP1a|0y;jSqxD(bo2MggnuPQB-$ykQC(I%v>qI$Q4MbTx)*k~U-Ky9&Hq zUO>=5W0ozACw<8jK7K0Bi`fVahUja=g%i_y4Wa$*AYlg9Z6?RQ<=Ul=lQ2s94f>bk z$G2%nUi@lrCC53xaG`=5xSaD%3+eEt%(Hlx;lF*o#k*2Dfdon4nL-WLSsB0T-ze8oFe2LFXd z5~0O4_Vs&AlH*0H<1{Q0q!M7K)i(F|~Y^ABM zmquX5E)>rVP@bV;91e~ z+KKN_j*f9?&!IK=(z!n@*wtA=XTYuxQI19%)H(jsB`nIc=3?IKQZ}(~^hC{fN$Te= z{-lW)U&=;I{Omlaj4e{&HS9VZPe6B&C)y~7=awcxHt7Ddjg+y$1WqKVF~Xwe599A# z%ChIafjY=wXncQQf<_TYl-(c<0AwDC_stqc>S>}fB%)eBLVIgt)D5FJf)ar zn0npGuPBDzfAAE(s2C^UGGe*87QU{SMNJ(2ekYeCzM*A02m zKoCKkIhIPR7r%Ay99NM@ zSU?p=`*xsW%ClIHxquQeuo12>)Q|_p?>hniU)S(gtfArmZitCFSVHo{Bpgz3-?blS zIDd2jfAJtL-WH93%><9c4>CZ!fzH}#_+9@$8i^f0cWx}ugaz-72$DYANIV4&US}DJ zOGR23asya_C8W`}V)U!#3@11=f`d;#q7G-4XPYbVMrx#px9hil$`1xpKkG%c)lm172u%vUm12|ZtnBww}T zi5PzAm280J+MhJVJSnfig4>ea!@289<~6;9tV>t1k^htP1~TMe4uy@f1!{_N2xqh& zhDY5LBv3wU4l#v%%~cRNv)z2>RcuJ;Z`Z-j(l*-```B&$!c-_rJn6{x_f2SJ8W@OY zB~PEpY?olvrPz?3eZ9m@uAXOfo9Q#MP~FO~>;4l+=|J%NF)WSyOPt-I(DZES1;Gqf z1%v~^Zmii^H^|L=?MyZRXQ5@|{UlvH>=`drhYE3%x6Wjj_HKZ_DM>w_+h(!h>4TF>mm7ki$F77S(lB)7cu4cX{xTGjoNrC)& z7{Jl7+)KAqk%@!Mvz(!_@$0Jh?2V2gqZ80_AI6=}^NC3m!M zeltHjn?(xjji?L@_OP(h2I!X{g2x zqkQx8q*^+j8r}}eaQF@OcKGeOq&)uC93}!Y>OmAJ0A)KqSUmy}?!d%zwF;$bSF6kP zh#4GZK);D4NBJh9(drC@XyT|r1SWWd1g{R2nkbyK6*FP5%$z9@nG{Tm!8656oo9+^ z+($WEXgV~%cbZZPH$uvm3B2`s)@Rg=JLFo=QUn>pW)BAn z>;mCHu@R?avKkF}mruNjWrzQJA06^yeUtyi@4Jbmr|!F&Hm8OhKfKuUl!pe%Zp%Ns ziKVDpuoxHym6fqt+pp%oL0EVfFp>}*C$#!IZ4z`uv?mkw4bzjXrNPJkRu7^L0IREWSlo{!F`$T8~VlaYs%Sx zm~j{~5s*@>y#xcAG2})P{D7G~?d-2~RV-ow(XQcTxKKpMb zQe&MrmnprsfZP|h+W5G+?D7e*Sd7?zTD>#-IPxN-$BX;mf|lny*A;(;LMIl-d;41* zxjzxLM40kzQf^Lv1WDhARE&x#r1GD9`&>3|g3V;AM8@_KwKxiN6B+&yVu$&*+DzdU zbx4EZ59#ki{@aT6$Zzfm#{nT0LHN;*T&m)Feo+O>89`ONi~V9$QHtO6S^q>39uoP{ z`ca%MM&grqP5g}tHgR-5zDb3dF9ppW3F+sXEk#tcfUe{(k}D}2b$=Wmj^H~mS@B&e zAAJkEFrGeJ0{tI-MxP{+apX?9a&rh@a|?@?C-J6RSdL4+Ct?Qt6)L6v(-*BD?T&8` zQGIj>><5IR;%?}q`{Vas!0Bv062IHgV|rJIxVHc{3-w9`oD|9_sBbpvOA_@}$LDW^ zJqM$daT8De0$F6n$wE03dOLf8%k#ZL$cbe2#!9ZisU}031%8%a4GNX^&8!^LnE8;EG>5E<* z{U}U+{VH0%;e~%=Lq@y5MiLe12go#-hKaZYnk$>s_t56AI!kEMs9K}CLQGl*|Ht3h z(6|WT;J<)_k-*1aqkw-HP%Bn`693|FEGMroTHG@aOQTL(^w?-JRKmo?rYxd#AA5jv zQk+Ai?Ac>N8Xqjv3mAJV#yE*zb{oqaxCdjr9+rYujFGO{knp<*o%<-znYD#C+{O|{ zpMc@(R~Xa?i(gB0>@B6k#xJR4af6A~oq*$290psDp5jWAoDO(bDA;JEaWkXm zOSrd^h9S(LGW~96alQ4IeB|vgthDfpZ)fQx^(00O*K%`e3}A%Fvw3I}yk&Jl>A&QO z;v)Dp{28GnX0Zq5U!lf#=R$?{45;_s+nI&@eH!7v&3{Atrkode^a7TiC(6wo=Y0Vq z6Ti2N^FC+%X5+l|_>Bk>W~+p!4<;%T1o`&xC@&o95B5rxkMk!Muo&X)WWWIAD|PSAtVQpz@c58MVf2~6&pPx4EO+) z*HjBd)CT;cbNac6vBvnG!f2xxNE*9A5B+)%TNX*`Bh)!u_(k~>og*IE=^6g~G0zLz zjyVq;I(8}~Ivppuz^}N#z5_~_G`hqF@h~6EEzc#qo&7c(I1p7!dd>>qvY4UDk=_%y z_Cd^~D`}K>`#YVSZnd`^>UY!$BlvH*=ylg#i_Cow1FNXB?L#OFpnGQ(MiqcJtNUo@7{ZgAuoQ1*h_!AsgqFy7 zR{-v#z+UX%lD5JO+uPUZ%-TaXZ#ekET(Fbb%~EAt5-ONF(6MUTK*!1z6&1O|I{RfW zpE5T$ohL71=ee+023{i_(^29RV5b{tk!T@XEmHO=;QgmKLeXCPA|T*dmkNEdtd=17AC zY0NG{gpUq`*s^u*qTEwN(1SJxX&aYoy73x2Cdg1M8(v%PUACab%j1K=7SVP#dT*nq@O?n`UE6g@u0tFHX^PxQ#exK?u+`fpV zUQgJu7gsA8*du6=jzOLudgllX3DVwz*8KGr7CTs@usDe}>WMFGE)5jGbT;>(DjIwa zPP~OJeY{%EFpIA=B!5?_LZVb?B?Yw{$2WfD4+A&HVGRo8Uq*Rny{#eWalnzUijDz) zPHl$J%kERNMs7r3yH3rbuXJi2b{1moN(QN*qt7xQO#L`?_|Y543c?5A@w?e*kvt&^ z_n)m#fgq29A(`-Bh8GX1;s`d|7S@%i;W=#gvPIDIqdf7d`AK25^i1FV>&;HSU=bKC zk})7^Pc1(zHLqQic9PC~68@YNGI6Ri>l5sRy?Ca4;~*)n8vBHvG^GxfizX zc663ZLj_%BP{-NZuKJVCk`1Uw(5(WE{Q^muADsL??W9P}8nGyR);THnQAmOL*(a*>UuFo*z{%0ULfb9{n66<~09eEx+i{E=MK-wBi6gUb^ zd=h+q1RTpw6HRbp5`@CB>kFId|3VOZX!v)A;{w@fxS!2MceP>nV25~ZA=>?HbS9E8 z$+bz)hJTB`LeID}`>cviB0w4yA-pTLVm+8a6e^_7g8pfg6$u#Sduhd^e7!Wvx)I1s zhR|X&I%2O5_ohWj0dS*cOI7;GBCJ02rOlu-Ih5T?l6tv|uaKqeRW+(L`HM*47scn` z>*!8>mv;FfW2nMoFY4@0zK-n99|YR%FS#Uau@6DIHS>X+nPl7THIp1!tN?_$k%SWl4>Zvc?=MgAkwDZVMATrc9 z;e-9X$2gC)1uJgK$c_THYD0mw58v=npQ(fR^lCO>dK0p@5oWlSo0^3d2GJa1Si1MK zAI%>K3Bz5ap*{siU8hyb{1zOaf(Pg09l?!wU*1^FiYy*|;^?j`>KrDHM=WOZ=u9Tu z09}h&f%BK$IQQX_Rey+*Ll_7T?YvZc@n=K5HE5`QT9`7WaytSFHS;A5hZ2Elo2~Xk0)sC=UeLnbSOPF2$ z@-_K>mLLzL0B5?KbucEum>7c52-Lp(TqA=&+_c08ZOee{OYCbe17_h*7YJ7=`V{`iN1dXh+{g_2D=apf1#r(^ZMFBRfzDDVS1FdEt=> z@Fme?lw|y$_z|gU;TSZD_g%)I6j{b5YAL_JCm$;u@NY)S@4F#qkiQjt6DXqqp&1VM zW0Gm>Q_Alpl6T)xazUL8?;k0H7M%9n$rWLF{@X(r-U$yOS9VC=$-9yA0A)!>+=LXd z4xkybtOll#L;zhfG9$xPYgy_Vu)9ETFFUs*PdEzF!hZm#-p&>L_hrym{f8$mXVIoX z6+C-6&_SYeC9SeP`!@hhf&frP{KnD+sWXH#!X^-h~o zp6jZ@wUdK1%^yxVH4pt`0DpW18#vB~^CH;gPBRi%e5fE-Bl#|M*t{fx&z2+RmYye- zL_)?$hii);*RM|P?96&aIDT08Pb*l|)tTrO^)}c>>5O!Pf=SKidZ&cKi|{CPl$mtr zBu1Qw|Ht9Ghb-O-Tp;PY8Csou_Cs(lI#(tBzi1%;4k(a^fWx6O`j#p@yMq>txG3h_ z@9KNjJ+;TkMDNk-Iy-vZgpADag{0mp&f9Y-vvz3Q)I}1mX}lf2F2OKL54oIAc$g*h z#wTMXDcWBU3Fnk)Pd1KQ>{|B=V0RX2W~muFp*GN5I*sVSL3$KEk5% zGPQ>uy|rMN^%kuf1xjmk`R%#(4rvGVF5fP_v>3f|@OvL&F}=5r>5u4cU{WT(cWq=0mPH^Ozp#c4J}35i^d+H9 zn!gzxq0=*FNRbmVYxN4&IcetZl`E@J$H8bfKUBla$@x&s$hanVcBQFuJ#M(2h6>iB0;fK;TE{0F<2ZZu zT6^w@o+yU)Tl-5*#<$$PHqz=M)K`#%mzKhY{YdLe`|(`ssQg9kMVM`~)0sOB+9?{T z3lTJMkS{T2W(wdRfNIgj&K>(Zvj}m~PNZmv+{M@Z4TeSPQiRb#+A!l*vgFir;i;!* zU$|=}2++Bf+>b*}(B|whC24vk=lU*9pM=bFpphN0a}a{^T~53>6iumQp~}H5(2Pt6 zQU6z`Er-^6JuGe0fOKT%T7|MjV2)<2fS7$CHRY-;!>rMNQf0~bO?Bb@jTjzIRK?&h?wkWL+LBKf$J&A&wU znyZ0L3Fzxy<_$;ghl5v2&3C*4hp(Z%8$JgujI9{z?f6@-hK`|9;7dHunl#+oxkPGC zdk$KapX7!Z1Tl_#4q2G-ZtW|XUSwEltDWD=8-TO8$%V;W;;f7+a?u9BGDXa^LD1}7wNe~%$}VIBiWNuE{nB1yy$Uc3 zORL*^6=s8G18UizDGohBtx!w3mGS-7KIgy%?S1bX|4{DPKb4p^r)>@W|~_m&KpXeYz%=1#CoaJ4WxmcA(q>XzpTfbiPc z0N}ETJ+wiNVh!u%h&u`Vs)0hmw;>uk1J4Sv{KLerwOPJ56(3I#3fvI&$+eBQj4N*f zj*Zq-?GY(DS<`W`5jXKJ!j$lKl+jsK?e%Q?dO58}VPBy@>p!YCnI}QBtJIcYYknH5 zpb;-2l4ox_+|WgEu-jV-uZ`*gw$qNv1UhjjYJ|8TJb1k|}ir(9>+rl!7j_h!6O& z%sFF=(h=Y)oL&Jplf zorI?_a+g~sW~gFt7M|U>85(Y)4T~5x=iD!3u+=mzFE4>w01Y+*ahE}Wgv8O#ludgh zd@5hU61B7{#SQ>NSIh{Akwt>~2k=J|FbmF}zqbPuO-R>)aca~ry^0>vX4XkF3!){9(4zpZ3Pv;{R_f?Q0BsRMihuvx=o-Ro z6M&M6g#9$3O(4yki0a{pMvwyM;kM*`DBOgZ+xdKY&CcgDYAyq1)mW=w#>v%KVwgD` z4)DYtP7?9e{Zw*|BGeK^5G6FtxuM1)_B>0S%|d5pbkvNFL_7%Gh_+0423rPz1Vl6H zK?FM61b&c{W_LLaGO7mmB6n+kNV5)8U&S+Vzom6>Cr_xQLv6{=0tg+bhWOiL^?8)P zjPkVLM3C5XCpF&i%VM#T1L-kp>C3j{Cs7~k%6TA7pI5;jFYf`hG`Ev5r_?xAEc4>? zWh@fDMtX{An;hMQ2@?L&95;FS){s5tQlcG;5dO{&b_*u@mr6^b%DjZ7Py6DkAuzli z&)gH1j6pX=J3HpW@kLwmEI>t#bf8t_Xe|R#?&SMGR4qAG&=I2w?)2v6jwM<6ZO3m) z6Y!Tf2eBezK|ez6OX($W**D6@;kTs-*NRZC#t9CYA(ll^;S+k{!u=hE1^l*5L0mf& z_72Wnwg=@S#Z_=pQECtAZ9oqZ_Fi4&}e21qnR1nDG-q}NCc zl>8L|t;9TDi+~87U1=v?ryatAC*3$cXiKKh6FE40kc40rOPu)*Y?BU9BB(vsktVpz z$k@3uvbD-9>Meu%IZ^(7C~OMRwSH)v7|kV6G8Z$ZV-%*avo=tEQ8)Y2taSJqVcRCk zpAH4hBmhojFJby#hk0cI+%1VQ9|Mz$^S&P288kVhurl-JVBVs+zk11+G<(^>34RBW~hm2~IDdKx~suz4m!gF_lm$77@4%7Ja+uO^MpI6Olg9?ER^skcxt zvCXZaHa5>E!F$jGST!9`+!^K(+U%^y^q%lM9GTp#5XZw*8Vd%7MEycZWbI;rPmHY!xaoMnIjr_xdNifi`xW_iG5BTA%zoe|sW9bC#IecD0~W!zIYbtvOF0ML$p(KkMl^{SHJlIkIs z3J?0JZ2V#`D2TWDc(XsMWV>ngOg3r@Zl#pYWYf3E%L+pUlUhBssMP^_BLx#ZA7+3q z#jN)Pz5R_3ECUXiq2U_{=p;yB4oo{K(eV7mvNHGw2x4UvD=F<38sH@+;ehL2g~UAx zHEh~*a!R&eGW@?qOxr9+s|Z!J36T!SpXWGc;M5F3O~fhS-+vRi2AQUpW{`RzD65yH zwtmHmnv_tdH;($K1n^HK3M#!Sy%m+3u!=W_;ou3WvJk;{a%;%XyX`E^TD&uc?JN4mQHxbr^%X|JHg&*2nu z3#jMkQboNEiqS`wq^h^#@1fbL>SX-Ae1EDs1%ERJrK)$~@6j=->S+8OeO;=01O9&0 zJypE}f1goO)!XnlB0N>S9eYZSQ*2ofo2q6bAwDiuy%B#;_exb?K*ulKmZI*U z!_V3n?hJ3k!zq(!if*!&OS2ZG3pl`eLDAtX5sQJn0$9clwEWo?q%NDWB*-tgTrgP< zktK`_K|ww3=@w`~z2z~>wqS>7z}W}>3L!x~o%Zzcci>Zv;cIWto|is#*0S^=rtalI&_7J`@}FIVI*YoC6W;p>(LW{&1#icHwGn<_ z7m9iqzhf`#f}}|41pG9wzzZd};&3HHQ3;0#i?a{hMWI2l#6sscNhp}NBucjALsgSV z&aL*0c~GNzErTyk4giGPO%T*KgH!ahUPwzr8gxuSqx7_%I09!OEy$kHa$QGS_6BV*;cCz9bww>A(c^y@Z{4ef6{; zXcTZ%q``~ z0}78PAPwlB*I!TbMp}QQ0sVuM^|bK-4oYZ3f6$1Ix`jBjH#jxuDrQtFS3#Ez5#<1Y zGe*4y#}E!wnBGVsIwMSA)Gcv(njP4QM;d@?u<2=oG1t&16HpaH^fUk}LZ9p;s4CL* zL=cpij)I_xc_Z~SptgRb2O2A`Mx$sK3cfc01@V#slmHzZqPIbq3PlR%!F`&D};zE?u=)wuYD7<<^g}}l-j}dKwQiVn|9v+dL9%%W{bYMh52901u*--Bi z>OH4JNHsb`U+G=?a+==vQGqz#~DMsnx8QsiAg zJueSz9tWE~(b1o?Wd<7T+F=#8#veNh@rJvW*@7~M^)i&_*~uLc$lt;32L6`ir+ES2dETLT?f z*C^1n@gi8uhG`A7%qZ&&a4EPTbnZGjfeqweRUb;Y+l>0-JJom2DTJuB0GTs9*7k9v zP4#RPmAW=s1*gcFdKsSQSs!_MT8DgR?Sx_Et=Ct@{3}jEKJlVcN0V(iw4$12TIRUjNbOJQ*gY`nxVW$R=7ix5f zZP>G35%iyn^igHv(mr47w{J|p2uG= ze9so7q*{1d*j5xCB!xq>*Q$+Yyu6aO;_NVIN~-F}b)?&}{c5f8Qf)Ka9ECMsZ1aIv zxM+q|?Ro@Kx~}HZWcJgeJ-Tg(3G5M#Q!v?#t}K7A=86}>Y5sw0KX3zXgd;hth{7XM zEgyID?vDd;gG84%bgxDM+PTM`fnEwn{5bfDQzRfK0?HRYjE5wvPRJp-q{BeuiM8~K z19^YFa{$g~2-=iuCtpeH?BhV{ECivV;D4p~UDyrU2zd6%7-Kvl&GPGkcm=4D6-xoi z5bUvOT)l_pHvR+m-EpdYScmmjz)Fg-Uy(;;vJehZs}@-WtO)gCJY-Z{>bm@TpQ`zE z0oBfezriDV&>uCFow$Mf^DVFI>eS$ zv*4mIOI*E?r*GHOMOedj`LwpD7iDVYvyqO^ zdU~nI_NCzExLiPE+n=GL_qsg1o0%)F+GyU@t+ne&;_`%)ofutp{vz(yfWvz-joJ=; zk#i;7jJVS!ug866HC0|X@_E|!;i>|cRLRHga-p3vM4^Dv(iswlc}@F^LeN&H@XD?m z_{#;kt-glz6>wfiv5vt! z7tDyJiV!&p&BJDjU>4IJ8^&7q;?Q zOWDAI!C^k*#@?TP3(FlCob24?PqClf{!o{gXZ34^l!Knr0`prlI~JC>4&463*8H)UU^dZu%t_(eQLo#{g7G z2bEMdeO3WZ;LqQ@B4d;7O5s67=mE^$O74nWf9sa$=+$3X%X5~p*g*jM=CSvsk7E<8 z!F^fbpx_>Z0ehRD;PwOTUHdKt>{r3fzV87knzzH(hVc;>4x*~`fcnSbYz;h9cd#`BtN;>FcCNaU}o* z&3OR$0d1OyM*+uQ?q9FeVs+Fl&~^5P-#v8p{Czm+?0Y+_psFuH3l9A<60w}!uOPxE z_4X1j8$jbgdlv5mVIy1U{Kc-iUTtlo>WdOPTP4Yq$OOZbWtZ{)7GC3xPhHc)WZ<$;Oj;I0I5 z>)c>i(k|dm7=})haO`OW{=I-llaWWmw}7Fx17%DAIJYP6FXL*3&gF}V%R^~bKy~&Q zGDvlF z!|jhC!EJ^WlT4)&g11ZFf{Wa~-)4v!+}f5x^`x5XTzhcMnnovGuc646JzVW)v)jm2 z(CoE3YIbpqd=~k0_RH$50fLK!lrxmxTd-x_CpwGEA#U*k=VkRKpzU64dX8+N)oFuI z5Jr^&Hxc1nTXGyae*v=L*-zKx@B8%S`TbV(+jQ?0=fOEwrmveLcK4qHb>%s9vH{-8$ zrpZl2M007yU+JX)*JCVucevuq2m8V}w){oB+5q)_o$cv3_OBOZTXK$Zn_+A)d^bn&&9^8egR-m=|C*wG^<`hY z1UFGivh7M`Ue$80mVY0J0Hu4em$%A6zMxDdd zMmB5X*_Fa9HFBudw3@<3)W`!y@R34b0`cjqqC)^mZEIti7y}^*4h}#X{7me8mDteQ z^EJSZ2FP%BvPPbuHGLcph1bd%F}!IXPS;m0xQk4!h0iJ3s&m9BJX$xJG@mMpyl7G2MxxOG{7ZAx^dS)47pJD>I@yk8!FM8qSWrD*t1qJ{cUBBs+Gs z$$1U~;=9W)TTstnNH{CFlY)f_({4scDcHnkeIjO%r7;KhF=l;|ok4>3Y4Db0r2W8x zUyY4nf1Ve+natm?&+FvyNW|#D@o@*lQyEti-DDa01Q$u>oM3+4I8wOSv+r1N8VQ`!(qW2o4a3=Q+xa*xT&4R2+Op1AnW$JJZwm(B(J5= z;_e)RZXz%oj68o&z&9Hgbt=PVqni0UYN=<_jZ6 z+0(maATE?YkqjO7B>bZmJGbVwGzCFcL&3}`-}z@ujq}f*HPoIB-?PvTJ*X2VKJ$=o&`Xv`)*eVRdy%2&+FG2 zV(^&o5+&2V%Is4Te|hw!#tvrqB|_a?jBr1A+5q{-@r1ZVTi#c`R}N>Hirl?3m?wrp+||?Q}j3Z=u{XhN?%2s z57B;RxTH{>h47v!GuhpahebESE4dx$&r$+S5iKhtg4--yG&3T&0d^MsmOR1qo0HxD zmYnZAyBo3$$dWXc4pfBKz>euKfsFouoU3pR3wd*K@s9|w6Y-&gD&!Goh5tr_ai0oAFUt=#0A-A&||<{I^8u|C`z!j!=*?ln=!E;)6 zOwO(ui3^jL6~TR(^hJ>I{noM9-jTWYVpneDE4?A~|f zvhZ1d0n*%yvTZsE)&J}J+5)a%ibUzS4*1mfS4RUi<8j|>L<8OMo?P3Gq#NrY(>;r4 zlIsz9?lNO9)*}Y4vX*^bFW=zP_j$x*XWMe+cuPp_*WeN)_0aTq%%diAuwBc2Eo{jy zxnhi$*{9M{u;fA`9nti4x2NTr>#lv-y{$|B+y65B`y!U-s6eDqip$XSd z!3`Ql_Z+Fd4g3%{c;_wl*lzhTlk*i8@PYhr`*_#~xa`j71grAn4`f8Q0v{0&S+fFz zDS@zZ3S+Rgwbe=6yQ^(Zghclj-0%~rd!fOXg?}io@QRas82eBj?vr3vXAfkDK16Wy zZ4g4Y!P)3j%;uUc-QV>82=`DEcmYH=N6eksL(RC66j3`C($&6S+fqJ3!8}AkAN#Q! zV>%qcW`8XA313^GJ#iBks;T%W4s(AWANCRog^%jyQ(2afjjditUe!m`fu~fK>^aE_sH=9ypJM3HRonH9W7;fd*t6e!xlTvXpW0}p|R6~ZNj;c ze(S+DiLsLYe|UsYN#-PAt-(-=z||zKJso_MWq&3{Mj(t7obX7}B_(ws8WbWj)xhW2Z=c8sV}Jb+(Y(O& z{@1}{i8pjCaV_k@SA-BaZnixZmc(NA#igyYPm$So`!HX;S=<)Cyibk|_&l&iUpPE+ zBtJQoEWtZ;<35$;M7=0qPgPiBuRjI_>vut&sQEyto6;G z%TdvKJ6+qLvaDfU?>IIuv$w<=K9##)jfL0j?l%B~=L`|Lef9Kpjn{{;!Y}ZQJcDm+6t4BXPj z5PBzs#w%#sE3G&-qd~SsL-sFl$Us(TWO*~O0LX}|VKhVdefCm=oEfteHKCYEM*OA; zQmL>Xk>QKobgKrctp!ZnFXwc}4hzeki?k{Cu}S;o5k1bp4*bkYLA?ys{@>X@_REQ4 zKelVXJZMrC=8pu6a`14k#dvlE%}agZM~4W<@rYB`2zUKoEc6hgNH;U;;!kBF;y}p( zFZ?4j;$3yP1rFBo3toy97$y+MzfW2A0omen{!yWFH=B7t9u!4Ee(5O$$NP9U98=8Y zQB4268SIq4AK9NP8E1NeJt2Rm^vkBiR>+5U=s)C)k-oa)Jd?M%`$~2$itP zf7g#tgN@%oBUrz$<@khLQZvHAK0$Y|KY;}~S|SH~rS@Gog`@ZTzm|t)?gD9&@ebVR z0F9&im$qbtly*6OX-jb;Xg-lD#e9a=q?pd<&|C4C&lKxxatci&pTgt_wXPC>@GCL>F(H@#K$3|2EeEnoWZs*#)DK#aHzVn$gl{t+5?^;gX=WV=@-K-2dC%rUdsvcqz8 zpH$Jkc{u(J#XlMU!tgIZbTd%E<%j%K45%VvMh5%WVL37;7hV=LT8g7O9sSX^dkTjS zJY{@fG&_&xW{f})ERlxzh27Qbe1(Qb21kKGh14eK#i{5}lqsTRbkiuU%=n&Hm9e2r z8JO4K33TX);=Hg3ut!K2Z(wteKpDOZ?sJrQ6|ztX93=TNI`pW-w}hrxguIPG%w+Jj z$-w$bkN`c7&}lZb69}9~vaf0zCy+Y*1VV4ov>!q0a0Fp(N962Y)GMb4{6*M!M(2cu zIF2+aIEMHOJIUja*^lCh^*Fc>0?ro6HkeI2D#yqX>0XtMaAK!5VCe~YCzw5XRE~Cf zoLI`hxy!)0p{5Eh)91RRmT!o3VyU1LOVL+tY!%X)0D(19;4hgp195+KTA?tB5=jwP z#dpU%qYdY5fLxYucdeRgccp=+6H*(`x9!9o27c|zL;T>3(FkW0jyrDuS6I0}%2U{g zvX8`!c9i)DUOSXvHZ@d98uP!-5{^oB*ElM1d->eg634Kq3ld|UR(*Go-2TBf5Ug=2 z4DvGHZJ?fW$Ll-I8xR;sX!rm=ZT}Tt(BFh_Z)59E@bf{tsb4?UdeT&{_SL-s;C4KY zquCCiyfMN~+9E=ac}BL?3S5NIoHZPi;|7M{jq*lF;56SB>)>KhEWvHqklLF7$4Qhb zgZM7u5K3uZrm{~O1xoKLH#3Bv^TFLY#Vr*!$s+1UIK}Gh4kg2 z1|VVA#v#-f>@$)T3IZS_yXNsxK*=BHgqOsST}V z?;e-KW_n|woHW!F)zrgoqdXeewhIupNFwjDol+WDe2aubn|TEW@?vNWt{4+%ajyqW zcg=eQNIc9kPsorz5WxnYlDoH88FNaW z6h8m2t4tYctmT}0{=1N4h;sLAV#9xsZ}BNHtA6S1$seH2S_Ax0Jmr0Wlb-6^{ewI^ zmgi@?{a{7%t1wfjQP*k&PuPnxc&d+${g0dw`HhD%Zeg9pt z)3e=Y1s0nW6~^LD%RaGaY7Uwz2RqM$J^TqMZgoXk1r%v)%xQUwFBDl7q%3>>wEUT= zvvFDoP`Glkj!fSLhl$M9zVdI*iv`l`2Eo+9-a{S}$xn_A# z#sy951zuZVXuxu@&lno8TsTIP2Fwbj4^1hBOrfbP3uJz0THQ)KbWGXtCjJ9!s$yDfZcx~()Ixu(W%1meF z(WI(qZ-7?K`ai>J*1Zc&3zj+0gM3WNB(sqru%ct$iEQv$IpnI!n-5*PvSehC*6oin|e-8kaRHgXQ-b!2RYIc>ZPdq3zVI$Ky)RV z*a7=a32!32cKa3YO5DXuF)T+VSdS#8UFrt$3}q#30K6?jOw$B|YoZr|f$`K=C&8eC z1cO)a3{P^Bb)!92w1)o#Ec{eX4dJy<0vNg=%{!zZ^XQCon7;|?lE=XKaO0M{WECRB zBAho#0_*pOccm4ZaT(-`WB^Mx+6{+<8V@xDryv@XH-(R&2YkY*6fXfw$0blvFkT|H z!&Q3Pk1&b$dL$;KcfH0i+ozsNFW8Ws(LOJrO2hh!WFlsE({`mld+;Z@fBRZ_^(T2q z_u{V*_zxm6-aoBnEk7f8V#Uw0H3G5irxRS{GBhDCj2d;*exw^{s5DylYUHn z^QjgXAWaYa!CpBp4-9}vUt!zQU$v6L*@vAuFK-OjOX7XXl6(Z4&wmoUHs@FQAAtb1j&2ZthGA_3`w71!FACZU#XWeU>VSXoo?v0ehH%^@ue&7A^L+(5 zpQBjc%km=Mmo-BGd;YS#p89W*iba;yD#!HYA5%pB8X<0Zr*FoSPWE01Lxy`u{YC!7 zWs5XLWGh=?so;h06xr*o@(O~dg5cSPwh5jrw>;BVhlg!-%e|FXk@GWvYl$w&2gWOg zJRHSNy5;YO8J!aEA?4h0IC7l;a-W7*T2%ymykil}5K!j1@HQ+d5P^`3zsV`SJn=q6 z)B9bU^%e=x%>7;N-IvcZHSsax4>?9_W|qjNwddf&iJY;#gZsK*723&Luz1_Ciu^V3|A&1#!@ztT zc6jpBX@?lobeg*A2W-s2!2PcP3;e^Sup99ah>yBC6Z)%Uw&?CHFw4xCNEY$C9OO^O zR~?J&y(@BQ-~bfeRytTUsNt4B<@*L0i1Qr!n|S!Ve2BoeLVxV4aKa+H{4C>@XmjGxSNt7^8m^pg1hM+Fk8CML42wjX(4xJum6|Qo7@lh z@6$@IdDIWkZy~7S<9SZ62!Wo_6r2Jsd?SuxFD6>s#DB)iG6Y5!>QrG-Z7# zTO%qrv4&Z)j|p4)F;R&L+=m4@2eL2ZlM2WuZ~B`QxIY+`26-uWg~r44zc*GU+!urj zNYo(2PczwbUP_|4ntkM@tTsJ9gynlHiQdq6*RC7VPho4kmC7*bW}%Y8RXI~(1HwS* z0iAI}SgMb*IB5}_pJqWQB+0uuUR^B+LH!W2AkXYyZWk?w1oS~Tkg|KQuYHsZaVQJ! zrbLhN9B>o(znR?q!2iu6qN`?Mu+X;Sgjjrblu$4ml6_vNRE`l=&=Cb+>mGbQ63+b=0$16};v9pE~JE9jox3Fr<71l~0r zFp|84%EL_cRl?XbUnMyH-gpF`!X0Wdx9yt3^+%W!yQ_xUf5GJ1OJ)1|kgM0b%!Qvl zW?SG*E#CQ>IZ|+M$Hg8+8Nxd+_JxT73xAU4F!d4up>Gb14gi_iU}11qu_357fLCh{ zaM45QMY#6ZUR*~N;BfOYOMTrH)KhfmDr*oF>IiPQG)A@|-X6uDc!WSq?14qokXP!j z=Ee&(O9(58L+5ruMi>TWAR`*E2=}2HhVk#1+Nv1$L`n{`Nrih^7l7LTOOisyOJ< zg?pZrt}Hy53(wuzS00hgHgohU>;NE|2EjJg)eM430v67IU~B+7cMRObZ2qnY^o4jJ zuEs#SD^x=;`&v?h!nFA>>f!2vRQu>>^5YO*#g7mZ7h{G}vIq*XtKoG0F0$2rN@B!^ zg6q8AJ@E$2Q88T}JI6$SCCy25!0)}>iCBMt#v!+}js^*=gT4uJ39O?E=ph!-h|O^! z(kj6^NKWHwQ;l^rSSEP6NS>o@d<#&Th53)etwbwY7F4c3@qUGD-mN~BIK zAcnW`ZFAqTmPqhT_JqGO*~$9{=!;S0GQ5*=@GdPE&Fm%luRWys?a?7uNy1a-Hetsx z*ssXEyaT@pqYrx7T_d3mq{w+BceEmC6UB$fK zgxw=2@krEO?~<^5#3!5Ghz8C5vTatx`#>lYe={rYt|-~-)HarjHk&YOe!g~B9@d(l zui$Fly(%h0jP#e53bMJ!p(yK?u;?bh@(1q8B}2R;1(Mk;$hqvp?nrGz_UWwK~%rL%lNia@N-;Sea|~@G%)MQOJ3VV&ps@bJFbL zUKz6xyx9*+o~Ty>^*KJ#9N4`P$hil1Sj4ht)5xf}r3Z&~SOy7VWz^@!3}{GR}CT7jxv)_#MOv-X%;x)a2q55Vml=DgVrA@wGEU*Ih^&cJe|c498=^;2IH% z7c4+4+Z)RU@g1cH{Wl5OwsIEl1&&@tUY8jruqu+ZG;Ftr1PO1?q@CX(QHDboU6#TQe5Ge%>+t4Vb zQ@wa^tTDaQhv`ZKl?BjLwg`hF&uuD4?WQ7+279u#tw0u>2%e=kVqhT=86e;T9BmLM ze#Jj(s0xe%s`3;`T>csYlbtVwpG^)LrutN#fPrsrKGmc0TL3(D>IcB40UHUZp9_+r zGEST$$$9w-TOXnr%Ae;?iLG+Blk;NkpLfCu7LDwBjR`{5rXWSN3{=LN5cS|hL8 zh{*u|TkVWW7T0WCh1s?eORHnvOqw-Bi+l;gvz)wK=pLis{{}8|EEYW|?s_o@b zYfxqll>t)60QvDgQgk7>+lxLzrD!jTr9D~bUKCqs60T4m*dlknhe-w1>~F-$c&F*c z*r9L?9CWS1HJ93UIOsqJ(lH|@@?JqmT?KMW!dpxJvu3C71GTIM3*32s&!O5)W7hIO zSWh;ur^(xS8Sdm4VRj;`8J+k8u=|tBpO%k5ep5(IVq+41?=eM|gYA@u*#z}BgyC$X ztpy{V<|`CW`FL~G@0hJZJfd*r0+mHMOcAz~^AvyyOhJ2B1^0nyyCUb?Q_I_CGwRF^ zW#zFOgtzFyuAfkuIyE6i5fwU)v~}mT&Z$Fx&}ujurcS4#)3+Y8w^F^vPW8fhy+={6 z2|!c%sce6UqKrR?V&S}L%`$ibjBE*t{bCB`LD=^ppQL}Sd$KJlweyf)hI~t~u!K8t z9m8qT-IffhKEUj9U>vJI;~&HdLY2WJ4R_MBgO9cA*?FGM7$GuTWfj}_%hBeQikU5`W^DcZYyJpox%MT*bdTSM~I8l59vY#3HEIym0 za^^J2`H3SX!m$l z0aeELV8Bhxo`2&i&H#M3=i}Szng3`Sk6+uKkMB6o{8edcjAwm()72idf1B396KVW@ zPkRISrn`sj0H|qD*mwYdZ^<)%eHxEe)?R;o8hhQM#P<_gG-^Ua2mBTa^XsucLc9#_ z2c^}VUE%7dxF>xd(6J2^)n-wm#IIOXoH9K&3Hf=*r;vF#Z8p&J7PN+K5bd(Iu#Is_ zTAv2&qL^?iib^OdOet)oDKVx-0Aht_(%9uVrMGuA)O0K^Ug>FKOW3G*C2DBXPu`V{ zi309hLGZ=zS^dQeaQp8n#S9B2eU@yHUk8uhFn>FM2&EpmkTMzCMK)a7z*F) zy&qDoyM}uEG+v4G{_>o6<+_p&LdI@IwRModIQe<#f~)^;GMYYRKY5230X6WuvKr$c z<5#0sS=5!~ySU-!(Vy7o3Cb8}3mt34v(3Pk)TI5k!Fx_Rr~R&>-w)z;E`&NywGX+5 zWkc5um@5p|+8S*0fSK#B>ouJSSMieH1<7s1;=m*;I!vcxZJ?0}PFcZSO&15}^*)6# zk^=6fo$83rXc(-dBYNHu7SK!Sn{ufGe$6O?v0ww!j3VOMz4V)4{E)8EYH&CnVzYbU zP=Z(JNk1)F$1EijoFEib!1fJ}EIk7oKmHm7lO>qWH({HS09hG!d0N|MKxeMvUQWU0 zD$zv_Wkh7sKQ;Tg^iO#26D2f4)o;{k?5NYHQzZ~bK!g*91W*IZ6SaebO9AaK=4Sd9&*nlFH2PS*Wm&N9_RH%Vn(%rUW7nmkF6i~eHK6s#=9tdgzsTxiNH7G+9 z@K=rn|HkB*f57EDB9$LHNM-#uO7|NLqFm)cl;HUq!Rk9Ujc*ar9qzts*Uv>rP8yNC zfpoI1%6suhK{Q;Q>es*gsfdsN5Tu{r;=Nw*#ZffrpwgTABn-D!Vji z$gZPqhV%DdjkuA;!+yfHTa~`1S?AbyR;AD27XeHh1WLl3W4@5#2*cx0xRT^}z@Fg{ zgVG>J!ZjySr5N!7q-AEeDG>pVZuS}jlE)us18qu_6StjkZ7v(v=HBNlf~3=|c|Jq> z;p~}puTL>_!3BOn_1{(ZS)Xr(j>h_+6m4D+sN{&|vC;rI2!9q-T#h-nybxSmhWJ!D zkKu|u@(?3qtgVMI;Ve#?BDUl#2V!x9Bw<)N00v&SCVP~+W=fH>6$BHKD|$q)SrIhxGqL;FZ5bAMjnB>gYgTwqybm{7o^}q z5d+3P0a<+;%JH3H3)JRQ?rSAJ-G5}~wgw1Y+j63@M|(s+ks<_pR;I@50qtCDH9y0H z?Z>6}y@lU(KLhH|Gwo}CT6%x$7b`y9^y!N3n;KU1*!0V%bIk8bo4_H0KAfZav)++jb}HFAEUF7IrU4)AYkR_Lxl>YLSR-A0NtZ zJq!3PG^VR?*$d(6TZXc)ZOY83rta9uXVzyn`j%u`F{q}#h$Vo1Q;KJ|CMmIZ@WS!Q zYV&gFuh2*yZY$fqy<JJsuGtI2e0Of(e zWvIObFUvhWT99+5WwWgVlo->HX7#Xd<_RcD(vw~7|hJRk@Yp{|^3R*m_3FKn{TP6zoY0zsrH&i&iPhx5OIO&({He8(s|yEs@$ ziQ*lYv)w|3-32X&%7MV)ZDJD}Jw#dNn?r^i^6DR=Z1KGnAA6F@*_@$D3Zbe3>tS57 z63adqs)QH`M~6bu_`_-T+fZeJ35DklQ*M@FLv4xkc|Wt!za$gN^9ox$`+S&^#G5zU z%30emCD&*GEe=VS zlF?EaTau#mCO9^yDA#*tY)Dn&__sNp^+{DyP2EqkyHb@0d?8=Az*m_aPF04Ou5@Do zX*!^UhpaRuJBTBNya_O4510fOE4e!`!k4FR>CawG!>Qs4_6h!&YX8Ijlcvmf;zfjl zJm4Vj+XNMxS

OXDyjy?p|IfYW6az*q+f7idv2vn(s)viv*ZB^Z;Rn?y$>_D8W^u zD|mAS*v9~8UiOWUnf%V$wy)mkHw0-ATFl9$v0r2}$q_BfCbdkc~`JF96v`!MM zjzbIHc1enHVpHWMJqrnRj>isUM=N=NCP`{dGiTZ%2g8rPwo0po22F*O+naw7oNuKZbzmDPI^cZ3XFK}Sk)gi);Tz%obG*Zcw!Qw08y)!v-8-Yl_CU$8g_NN|A zEGkn;9Z36T$CjgAOe_p+O}*|1@AeIjww%T2BNI;d6CS^qC|JJ{Tv30bxeVWi(SzsdbUzvCmvKsH!k%q}-+<$IO9aAi95aQF z%0s&gafJ75Zx(i>ziMw1>UNwuv~848A2@M5wLiqhj*L=z_E`()x!(e`n8?!vcf|re8y+TyclKgM6G_Aw9(?hUznBaON zL2y$8I(uxl0LCGxPL;yRpncSoW<_HNo8?ZmXugfSQ+->C3KmkZ{zJ+S!kZWlD8HdU zx;Eg#B%&Pn2u53l(HkSSgO^VQFTadJR%g_v=E-ydm(HGn{%kU6J?Tmo1qMBzyM5Kh zq$@YAGvgap@$=U0Wg8`YPeWN4`3jobO7nrSmYwk2*olSR1mM0#KWDHHq!00{)fTst z^zNbjcEw5PEuSzWj#)n#N#dAc>5B8l$*AWsevL-rH-hRB3#w{DvXb&fxGV@ zrX3j!;xDe?&(hyRQ-sH;KnreT?t9=kx5znslhX-n!-J1+-nay4`2f(J!U2-AkFT=b zpRBfLOoP4OgpCFaY^~3V;fVfRa)1C%MEN+(CxF^6LM5^U0CKd$&<^g&0ibxc1A+E> znViH!Yaf^kK=jwnsEuF@(n)@e1eN*xii2nHrrbV^q;Qt4RS=@eZBRL4q}&{W*FOFC zj24z=C0gfviU@whRjD3c-kI|RPEmVMPx^LYD@n$*2hrZK2Lm971;}*EBoS_gaINpO za?al%@nuG#1AaDji+6fb(nf?Lr8Q@)H{n#<&IIu6iwJdFh%0&a($f5I@l8+qzrs1By#V;;y>L$64QNc-fZcV#>tyNmb7!+6h+ zaZ*qbH|~s9jJ_A^FH#6Tjt0Lf1;R73T}T8bqkbc^q#v0XSN6v_@k9d_4x!oQP$Gc&=ZyIora&LI*Pd6_{HE3D)m% z!FqkWVBG`}MyeU9og!v#;HL-#wr(N8-oEAG{M`VS{;osg6VT4rXzv#MZ9_ZNCbrQG zxuEH5v8EQMl)P<2)Mi9d*;Ayqg9l5shQM*QQ$zTRXma6=fY^z@Ramrq?=1taRRs+70kL4||b?&@~aLF~T*{ z?n`NvNUOx=k(C{u=`6#CKQd7Jj69n`uVs>Fk{$YQilALDaFlWoe z)>NYm<%@A8`3I3td4gAK8kMsGQfs+@7r4jTn#MqS1m}?UYMVeKE>!UEcSszFa@HOn zV|SfELj;+|?IUad6{vM+i3=$%`MIrN+0SjsI|w+SlrCfLxn)B>mr|A@Vwx7cMnfgy z=Y5B@QICH&0_9sUFY(u9s`O2L>_)wJahGcg+G_JM?f+vgi#pRSiv9gYrG!oh{Hn7h zN4c*X2Qi-Am5Z}Rb&g^;9XiR*7B)E=+kY}LO9UQB~_u|8Q0x*HnwHZ-r zF9$&A)C*E&?JfHBo0JDd7u$K0a=Ui8!dWByX65>Uyb0_>{O~zOJA7i;$qvvv3CMhb z-JPM9V8{KJldZm4Ns8uaA7rQ(Ffk5vO-fMS&J{cR;$~$)3@`A{;c6ol@N6i3xO$is zy%7?^28>hsjVZvOAUEt-1;q);A0*($>6En!5$g)kc!`d0!xv{(!gV!%qNtXm?wo9Y zwrQLaGnS(q@iYku{P$m=zf9NAP{$p{3Qh7{k2JDV1dfYHVgqhbvYdQO$Fto<12y!L zBc}5qpBkKz`0C;LT{Ht9HFhwtYiI^449&ov-zqyZF!AC1KJf6v2EtF73#05g?qp5y zgj-)HLG~)t78W#frx(xA!Aj1?kmAj7d?a;_p-ho`Z_9Zh2yN z^%*SJXO8t&f5kG~88(7l9IhB=3{E!b^$ zRHEm;=$ZF)4ULNd0jZa81|ynn;F|)VD0_(Any;h|_5UyR&wSmv9l=x&0-w)bx zt_Y){)q(5m$&DZj!8%e+$Ee|Vx`Q|lD!GrZgsZ`k+mwiF))XLk^O|?Ws=fcJX5zK_ ztis)6YM<9G9Lav3qQvww3i4GpeI!nMp|$Nm;>6Ql;gM@qc&u}UI0zu^75*K2jUL{O z?bJgfR#bb1dk63e<2r$K|A0;vsxZG3<5%X>q&U2V6j4eg#EVz@t1(pL;o3} z5)K7S)YA{LGgFn=Y4!(kBX{4zbdrG+{PUJMU|=M#RmW+X7sT+>=cVLI8xNsR?L(K4 z;*a)+A&Lxz<7zF9aZb$y{ zvCxSP#koq5&L-EDZ8X{-1KJ|gc_7v924`%zgp(z2OFs@{FB~gDq`qvDRy(jCVDQcc zQ4BvzCjiGu?7>jiQ)lpdI`5AITh7U$aoiY7K^LUA?JYw&rY9_^6cbUff3iu(xI3MqYI zzE2GsFPY-lnmb`Kfw8B8)!nHKP5@7aZ&iQbA0`}ANoExuF+RRKQT09wy$x1&()Y}C zmoiX%j}5s?vG`5_%E^u~`7R|}@dlt0gmpTC76Ew5*m{?8z3HbT?804eVS4-+n?4Qq zCSE(jewwC?jula%1m_zt{<`?TXQ_?56_u1hUiepYgpDgy!V*epQz!}Ol=tir!+k2e zcEqtaA1hS4i3z+BXstXODL_G@D3I*|)A#I^B4wy}kR2~lvTjd9)^De~+3If))cqJ- z&+CNX2T+tjy}{X8xS>hYrl<-Uv{2MB21p7na!$MK^in}obxToq;}}79z)-V%It(@5 zN7%;cFw|T=%s!tEtIi8Y*q_sJb><&OSnLcia!@J49NGq&w=jhbhPaaRZ)S)qb;j0eS*D3AWl)NjAV@*! zGP{e8MkP$V8y>qqFx%bAu!QS@6S7AOpxt4AgLxgC_hG2HNLflE!s#RIp}Un>-!mYc zywX(m{N0LeAjq+fjt)8Ru>59#Ve>dT@ZB9pheKdDbW}LJl>K(M66HOM40jPTm1NV5 z!))A4_$WJ&A`Kw-3o`9Rw@UM1I0rA-2_RQM-%1_9w`8)z zGnE+g&A`y>h*L9#iT5bc&g<~G4l8UtcnQfVPkaK^;x znNS6jJ$7et;x<7LwuQ$*O^A-(MI)sCqRP-han;AS4;3Di#QFnPFSsUMDO~p=8UfpP zSK-(PTUx92=e)q$`n!xi)0)>>l zI2VllVcFVqXurSMy?jlnz)sIn_BxN^A`k&-LExBO=tMe+H=n&F(hb&0FeEgZuw5r= zTpg@!2)*yK<~w~c!7u?WdI6t-879?67)F^wFw>?PV=^4L5dRhEWd{gwJ^Y?Y&pJp) zAQ5NGJ#F_e>bwdf=lfg{OWMqk+6GMHq5y%yzJ*W&K^w+G=s0F-+Grdzjo{K2miLzI#~S~J z0Lt_5->@>|{Xc5Q`j<^Wq^syqv}>UJoxmeS`-WbbBlhUG3H}NOoY_1a%(OEb4mjMG zXY*1-bT2U@WLl#`3F=wB^7d9@2R1Bz8x}t)QR9g;z;9U9Or@vy-fyvt^ufdKVys`@BulK)!nPy`#-nFCm5!OJvikOWHh-9kdUch+I`CP|8F%k zDi13A6zwSaKMnK00XFyk|MvjPyrrzqm>LI^!?VDk{?|z$W^;{$E~kU1j)sq7yXGos z;(ctzJOm=P%~K|dH_>mW*q>dQr#wCay8?nP8@obes}y2)Lt9=!%2o%?vO*77NyFiE zLcfb4y})A1*U^k_?7d=a$UDDfM~jsaqCbn8uZ*H&4=#gevuX2{nWp96vXAEDMv(6} zU`pOW`z=2PZpUkmpgbH)y}VUo>pb{cT&9}!0PC|rNoa52mIcayM4mY>Q%wR#X!yEA zOn_rR0q^NEJKMZK$#r5gsfhnHOYIFWG06)Qgm0lRUM0zzc44BX!av$lU(p+ZeAyX- z`b_o8qBiEn)pZ&^M+?l?0?^O|NPkNdYIq+)mO2unsY08-rP~Hl=;d zVjoaOjlfx>0%Bjq@)_OKR`d|@MV9Ku-;5dY*bU-m*8_8jXf0T8jb!3%Y}Gkm*jeCW zC5G*IK(U%;FJea@P-2yfhdL;xl*4Ah7Z65`gy z$|UD+5N2ox?6gF@qFS>H;R-DZl_Q`UrrnVQl5hy9&M)MaRKDgMDGm&~PX2nM_GO6qTj-ave|7YMK#B3aXJAp=Ik;(c(h zAfmy3o^M`aUz_fOC*8XVtlv^x<&I;yOO;_ZjxvNmYs8UqOQycMaF`xvKz}`)u(8f9 z?1iPun7$cEz70qt#3Tc0mDtCvx^YYhD#`z{2%>?Xzyg;mkzxe1Emxw$_F%&@ZyBOu zZPZD4bg$_p@0!Ka+0^B5;LHN@X=3b9V{lNomP|v79bkM7QN9QIETg)hccOhWXx?zZ z;_13i(w-;VMR`u|MEmyvod{&d^>nlWIsmgF2Ur7zUM+?|k%o+pU0mA%mmrOHaqNJj zoZ2RyG88jA3~`DD+-2$tFz}T8IT5p09#q06 z{<^>*+K8)&_IGf`98ioDS2aJ}EKTUj3#g|DJbF3~>6liE{|Y6h8}tHLDQw^hC2Z7z z_D(vlj6$r8JJ0}z!w*2!UQ; z*q)0f z*=){33PQtZ4Y92cDK{tc58XshrBRdL7cy$M_pFzp9$1{OFM{tmmFq_H>X|pXa|R3U z%|g`tMz56{`N1w-R7t-x9^od?L^9m_mP&B$af}j{HiC=s?c?tQ)oEX|kDN*$CoOjg z{;L)!qWEw4uX+dN{8ox{*J8licnu^Jjn)SIF>E7r?h`PV93IXNGzpT}!6LAO$}c%P zxTYl)>|lC@akRG{*3><_AnzDQ`(Ng_u}~au2ncv3&`h+uLOcmd)CMQ;!Tr*jmHH+2 zwaOFesuMmc6o8L#7REj+QToz28|Y1>&G1sUgT3?bEt&kg6#fIGzEZHcQ3y@m4b1pb z4{a}LiV}h&=ui!g|NFEyMrBHHeF0;4b3y4Q5d;u{Q(AcKivXFfuHFgo+S~CHob8*^ zSu{`xS+m|O>Q93t%{%Zg$~dSE zJ?bOR({Jf?SPcHSTB$YEAINA+tRuM*!WXh zGWq+SKG;EDPQKlA`1^vs+5xQo&(#3l2mohd(YLK+2`iO^DB4w;{78%>`qt>U5WB?3 z2iaXKm7$ZN7)fhFtb=BF+`QL!WKFf#|H0dv$3<2B|Ks=G8Q>0x3ik}FvZgY)qO!RT zn#qzIqLx;o_Nf7^-e##}I;f>6?+g?@rKYGYfN7K((xOT!V`VsPtQ27&Ff1CzXF#8JJ=LM)p)%9}vGN=Wy&Z+|iDpK+Y z0YD-4qX2H34G0~K!SBMJF#4eL!nyhioDJJp2f@BAS5&VJDD0`Z6HyteOZ$NrU-t-l z>ZYFfV~TjTZ=;Er5V6QK-Q(oU4oC z-@mBv5`(R4Ez(R;8kpJdZJHq0>2E748I=Yl?#;wKb24wgC|It zpSf|s%FNIC`GtyEjN&~PDV0-He7%bgTej10O$CP2RBRb!&PQ)*ZVtHE*T>Uj!8l-X z>T%$Z?X;v2c+(DhqYozF4cd}=GKCK;R0er3(v0zP(|!D%>5<9&vqGh-`^)gxBZsvi zrEviqE!0tcXXfJ;EA6KwAG)=5)~Q?PmiM^(*0II^dF#9imntx-s*TtJ1{gVM?UaY1 z5M)2XZAfh@BKvT^CCZ5Iw1RZb(L}R>tMDGs^hn^2XmbERw-w;o`HjE4L`fLy7O3#y zIR}3RbdPjS?wDlK_(YZNxwoqV6hO48+?R$$L}Oiw9*%q``ZlM~DvgS2)?K)d=M^ar z(>YD#mmern=6NOKM@;7;KJK4N2mcs=jBo_RJL?h{=@nn`rTcA)afAK`I53! z8v&f*M=w=OQu#qXcc~KKrIHYsb5}1_;*?UfLOm2fyb?f<$Ql3GQh2rEzwTuvUaG6- zeO^}5rS0{6;mgVyFB5c^x=QEj`6DGtxD=bg zttCpb^j$swphU@RtJW|Tsn?P=_7d{BxdZ{NHRxoS5=AFnm5i@4G_)qn>sE=^>-o}U z2>U*DfbU&~8Gdzuw_dIcmv$ZCk1SWlN)-qA@HL1VhUqakmCQuK z(q{Z7EK7#${WWM-DLDJX_`iL!#@Tn@e~bPSXK&kY=I^|UwJDm)&%CNcS?f^P05iq( z+7+32K8Kt+B^Teq{X7_iN~OT`e(hv>XJP+df3#r1xC|omJN5Kiiw`Cy zwfQ%Gb`=g@pijO0uIB5NEi@-u5oSm+&R=}VV^=F7BUJQqo*Wh0es8&SSY0LXIj&&C z2#|5ose_1Cx%6|YDje@YOskyISAX%}{NQS=;7j$q^%^Ba+j4KD@a}7%TU+oYVda)? z?gPV7s74>q;M}7ahhvhOe9zYw>I1m>HRWEdwbN!^^qMjz$Q?9x57+{s%K#m(f2;X5 zMU;B)=U3MvT38umKfaL|56uY{7}R_37p|sp@?Lgi(L&2u=+y&x<~4YkxE7lhnik2m z*q!sBJ3`%X_{ika!m7HbS2SN4m+tAo{;IFcHD_Hf=W6qf>lD)f7fPj?A*BPA?$T2| z$xj^d8Mys}QKG(tL-5PEEouj3( z$RF$Y%rYfKp9Xn_e^jRQ=y)U)MrH5wLC}kc0E@K*%EG?A14}l+y>bE0-v{D84K#TqdIPaNU=+p0Y~Fz2+}xga6GCZ=$+S<0j-}D?TB(BKBZWm zm&mWZu5=yzcN@o!|C2@@J6_euzjIdUpO+2zM1W6M8+3}*^sYb?@{46BKjz*cv_GVV zy6bG9;Q5m&2yBj;W?+QmZ{q#lR2Y#0buQ!HR7Pn(aPYqKrV<%;&pygg19h>;nqW|c zObX{-WV<9ZO#FhMeNzbw><+|&N+7e=eVjPP9lcn09y>4Cn?LlH(yFE1r`}Tj$IvoA zE)Mhy<;`y)=v6n4`F1|G9nd0rh^bo-%v(`KbapGuU*yah_~xUu}{ElNk}@Q-}e z79~NWL0@mdp7|T0`4-&8HV-tI5)ru0sO)v%0q=Vi0R_qcB!9A&dW9rFG9;6+$5kr96cn_}4&$5JXc@K^-zw#g7Qv#*WjMbOlQwHgzSHi0MyswNE;UQB} zttiqfjK5h8J}5Mt@2yq_jV(h?`wJ$Z-ni-f$S=^w(+Mn9K-@S(C+e3w7?krLhc z+eks>-AML~x#5T>og|OG^{()`BR+=Co(cnh>myjh)`s!cA1hNj0ThMU{sf8?M0vQt zKqCGvFi15kb33&2RE3)*{DY5`j)V#I{M5%vnfM2Pai`MT7%8-*Qq5k5J&XOh)0gkx zsSI!1pr-(BR$0E_;bxpw^>20ArHBFaWOC!0;GUm#>N7s5R=Gf?5A{;CzPpti@eTgQ zZskMm9n2w*f1;f4QV#4Pou+N-y39QQrMpfOASpBvJQf#GeAnI?8SXQQzl4lbv*YoWv@7v$NvjSA7cIZBmYuXO1gIZ zGJYe^=AUMI8jkzY>xCYx$oarb>lcj8v^Psw~z3hm8g4*ur1deKGgp$dxRd!;_OCWAx zARH=Lm~}e}Uk0R(wf4k)YB0qD)rl7hMfA*x&gi(8SaK?wI@fN<1TaeBfEs^o1X5jo zV6H*5Ra_Ycxd#);)v;Jqjwf|SBkCfJ$G+Uh5V?$?r@p>>S6v$+)VRv!!jmjF!OU0h zRa$4EY&zV7@=!JpWheOVQ_GTj#XMZGcO`>@!>Rwk%CD&ZvyS+gKrPEo06+}Pn~dP8 znLC9V5+R{d$xPIR`mEwN_5$ibcft1(Z!P5lsl@=xL*zM$oBA@nu+s$$i-L*Br*sYe z*6Bj?BB4#TqwDw4e0Zri4a7f-%GfY$aC!DByr(sN2-BwTk&TY5<6o&7^+4*t|Dl@> z?v9NGHhyRyvIOk@89DK~!C(l7-d)hw97j|d&65`RBV+|UeA=R!1jsg=LOxTkf|@|P6(MnfmAS*9_kd3rVLHLd;}dYgu!Cr7Y$Gh_0f=xbq=_CP z*_WS@eXT6|Y`_7t%MX?;uU za%VT&z?+iG6~U6etCIj+j^*}khE^l~3hZLnx|{8N#dL~54pq1O#ZUE=UktMft*rLM z$rz0^$1rAGa{}~VP6+e`91{Tv%5G-sM7u+nb_J2%-25X8vLZidqKq)TIt;;u7p^JN zo)=K_st?eCsGpm3PDA}G0vLp{w>-f@RP<>COyPe(#)y*Ci)e3m#J<#v0>5^~sPxo= zX2-*`1mWk~eCNSzk7PaMYL4+`j-t(&NjNR)#sI>n;k#8T6hR?3S@N;L3VP4w1 zvHbkafKcyb;7kLq=B#q?_YNpU5pMLtl~lc-0my0ATs#F{ve7@V`k8uVq$rgJ^3M+{ zxvhV|euV7TBhmhitTAvGIkkRlueb(t39H|FYI2$r7qVNB=QK! z;l$R`fx1m)zl@b6_R_gR|9S0UC1|(}^Jq{CL&y&DDeynY2lI{+rp?E^Rdhnh!Kkro z{_XEN<6U{~>}ALm_mt}W8m=F{CzJO%qRi#BPx|S5P~~vZ*i;79+%C^K7YcB$o`Ew_ z`O|ZjQ3a|fqEea|P-OB0(|+oRa?gMup<@`;!U>XPaDGAB%YCuN+N2j7dRhf(Zsz7Q#k0>muKISP5-&K??$=z{Ha~ktAqjyT~A7R*Sji8|7^hQ;K=e zw@Q6L4>W+R*YU(c%){j|Cwd7bo%Q_Yw@R-6uB*_igN9Nx!Z&DX+)n=7cgj!Fn4Q(* zzX#JTPOY~8pnRwYGrqk6@k9f4{Az=;L5kP$wa1n5(g^%M4wlUNF%LPRL?MY{{}alD zzz1>g&OmpxE9+n@t$^ag6zRp^Iici)2SPxkMC1?Pe=z>YG#P^bss|EGlD}V7VqG?j zR2VkG2e$9SAHJse@T!x_D_$b$C1r0u;*_#m^3ZYr)5`aHY~*5o?zFO43Lna6|E#>eA1;g{5fqG-` zt|j%VS#R_+Vbhm`pJ_RBoXnIU-OfwJNGdPYg-$MaMItc;e|m>gPCenOF0e2@!=|KL zBVhb<7XpdtJ^T@luBmgEg~ti!KZUNFjxox8YDk$l%X`wqq)l(Ulu3z&(|nP5NKAWf zJ#f|g;KZbfr-kz=c=nk#G06at$%IswopbV%Hc3GVKJz9f(Q^hpmuSyTV$j$GpY__0 zA`u_n)t)=k^KR{VpAeJ~izLEJ@ZbCR#3XvI6oORc>232pKQW0e8xeeUqp$L~H^o5y zwM}{6bJ`FPfz~`do!!URG%DKy;_#w?W{sJu2{r~4WS;(jKXyj>ez3YqZbrqwT0sS? zb*E8rEZ&hi_}E9raK52Q$t3ZmSPmXqeXU7J6Rm`rgq9S>za1R%cBE@4C(T$ea?eE7 zA%|IzxBgY!-HCl#9!19|%i9CBcR6rg@YPINKwpjV0JYMnmZGK(IQ*nT&139dHU{^% z5ovxOA&T$!5u}=ve9{N)LV3e)FpFRVAy<+YA9xljF&lYpxXn5SRza7%p?-798<$Y- zPI&_cl5?1KHB@3b(%)|B543dW4v0rfEjwV_c?8~2fBf6?*o0w2`IHMvz8-PF=Xk>f z1j69W^oz<6FLivuL;0?YO8d|!s`aJ4L754}q__pW&ZGiThoSt+MWuhZ+Al~2^>rB^ zD3Lq0nS|eD${YO$NX5ci0m(j-B8KoU{!qS3^ z1Apsq$mNQ zH3H-hZCL{<*I_QD$dX3oWRP?VR3O`>;JnSPgsd6KWk`hWykpyjxwoJY4+yCILMKRb1a8@`Bf9?LSPlS)ID(wGU{fBN)uBZ-UwiW9#D~JM; zKFXOLV7*fxMY^dcM}sJdeC{km7=PiqQrLpV$_?dVv5rr>p-c%FV%Bo#fCbnV2^|9+ z-p97_GdB>y3jo*KLWXjF6XEWKPL)pKBDGgs4R%|vs!C@TdZnH}%jDh;7^tu<>Sg0l z-r1q#O4N`;i4+rfjYCPi)n3tmZ_k>!B8=sV16C|%y@rEukn)K<3%3#Jv2-LdX3Sdv zt|&W-eA|qbzu8IKLGrY*QU|d_t@G@yIt`v?`y|NXf!nyZ$fCR&X+J@W+Dl}Su%nC- zk=XHRK2KyX2P0Z1lMo~i=Au!+XnMBdc{n#oxavgCpV4en1iOV#lUShD43{UcsCEm2 zj|_h1l14DLunuh7JDiP9Uo4D5mdP4uJbHIQOWtTnj+9EMy80fnQMU*4XPv#~=uN%0 z5?=8C4Z6t@Vrw4VeK{m{| z6Zp6p3ewGSf`7LMpP1DeNl`M8$(@qJ($HN?nL2&Gs@Mb)-E}!>DXT`^LZVqZcCYlx zK)zGQqIza;1^X5v*jGX|U3e2YTi`1U%PN@f;>-^QXeUL1DuxAA;yUBZtgYN%&(>-< zF>NTX*0c5Ee*T~byNBDq3<(a03j*Q^=<=2_Fg~?lcP7Cfi1@zi&@MFaNqeF~t(S2L z%2>!o)hM!Iues(KETnA<`~_3w*r4`-{;5Jx9@!;C_`VekN-FyHJw5V$1yv%(Ym~vO zeb1OV<*OUKAu>R%W`c;JJFXGK2tp)uN3<&vcZksCU-TP1?Whevl)=x-tIIl?d1p@+ z*)|2*m$IAK$hOHQ0rDyZe>RFYLGM)gb=-BVt?riYL3jeF<*5CRBU| zPEF5_Cp+vQWRp#)pybUm7rj^@!YfK9>lL3H=T&2*s##6+V(nYGu(l35_LX1yGpXr3 zpW(%xlP+K47raC7b_C9_V!(3e&~U+Ug8olHG{=acc7RF6e6>qr7yIg0W633}E_ z#zM(ZQqr51*V-VA>9^J)+|$6)#W8%8fsK;}_2-oatk`1ER652-c(cvo>(w{BF=Wxe zjjh-~F^rFC#S*2a3)M?oF-Z)rya4AZC>luOrJX{Y9+8xRyuz3DqQ$QQv%*jMvV76X zA8yS;gAoL#29MQZTNLJ+^JByq91FOVo0qg^FVohnqOIAf4U6(nWmi7D4NH(>T30V@ z!+J_Yp^N!Pek?*-`wnhc0i77c)BIVHe&suQT;}(%XGeb1pLx<@TFhmIHTc#g$cYnm z!Fl@5P$}|D3g+=Tk7w-VQ9}`KcL`W;gPw%iHFYH&pIHrqGA9dJN4G#rq0$uybD%4= z@F62Pj-nUlAxokqgw9dKOvWL05u3uojYigst~$Q0sRI6>k@b}nk*_qeo)A;^7}*4I zI`0s`Mt91<)mh|Hh;v)bHjxYu032&-#))hA-w(gn;CNdXz&dm~6Qp$-kUz6Iz~R{D zN*R%cHE=mKSs;!y1+e_ylkP!bj7s*S>~95`v+#EhXoC7K3{n6#ld5k{HrrG1O#w8J z&zT_)e;|tyxAPwZS>J*1=F?gUzP-jI)M&!8KY;&qQ!*K3)0$U;8{ekMQ;O}Kj`V#)D*DHXIc%SCugV_9TcdmXdn5#7?OW>bEb$~!z z8;1W12VWS%a6t^O2w~iKXVn52wnQ$%N495=i_h@I?O8aSl!Q_L*cX^}`pNid(&Bd*X!V3;5GLHyn`qmB%wtT_3=I|GV^LZxTGn|bbw!R~H+XW9K zncB;vE0;fzl#t>b`{Bk1k}9@7ko2u&h@BN4)XU%{j0)Eoa#K3c{Y7Q|-nHxe4LXAl z(st%;#5M(A?Qa`seioJS-*DDg>=!UDE-F$Up3|*4(U1stoZ}KzyN$6?AuJ8%YIjD;0Z)m6RA51Y2y?Ia0zEf1Kea` zt*dD#AltfZ{cv^gJfUR6r(C?6B4zb#vY{Oq3Q z8w5iqB${lA>q2aphz&Y+z_$r*Sy^|ReKQU@g1||vA3-4-vy8vnD8IlclXXEwm|Y1$ zB?5Pvl0y&qyAj0bc`J4!5rOOYO%2r0@VoJ4y!><^JUooXy!r@np!>^bQzYinWpteq@U7T+!{ZHk7%foRIb|f2VG!W0? zc6d|Xp$0zh!H{rX_E3nP?}%irLat(7w8B9+vBRf8pEw>=V}Vc;{y6_Bk_AB4<(DH_ zH;=l#&_ilFzh4wf_3sHXOB5;w#2-AMzx)(m83k5Ep3e8G|7Y@>QLI~}yc<^z3<3(H zU2K{PmBO_0EXj^8$aJJa=;gzrS$FA=8+>jwxH;Pmz6Jj$9=(BU#zCaWfbJq(E<)v! z^X?>8`vFG64Z?#4V0U2x4qN*WHduNflDH@XcuAUAi)dlVHNt) zWW`)k_x-FL79clS0E=;`*t+8|ohygRkYh{}EVE2FU>bG3V@+a+4_vx(;x<4c0*CHL z1!7SEH#x=&n5m(=;Q!Tl(~iX1F|+)Dr0_bPCcLmNq&1#hkS)*Djsz95ZnCTkve`I} zo*GKRPeCRxwgkphKiY+@5&e7g24vx}MyGblV5wwZIrs0z9tr)9G!Vd8Xy49#gJyRmy+3W-86W!Ji~L#=_tBqr6N3b{A`(49?fRYl$dO%6w~(|aJ; zOZ}m_5VYsTJ=jRAjJ9P_DKSKvD-h(^B$Sx1$}st<4XHP~XyIL?fuyoR&LF!PfqTx5 z)E%R?k)j|l7_=1TM$_)z`wT|SM@lW{^f*(Wow_>{Ou4AnqeXe=-XNlx{-kmwL=jsd7-m@`Nl-W{L1XnzM0oM(f2Ml#<`#<9oAT4biah(~VCiJ|dnagdI;-<0;AM zF1)QU%YbjDQE|>P@qA-Ei}fxUp#6><$iInaJ+1hzmfIa)BERlMx#)_?^VJ3gn`O}p zDz`*hLuyYI714)#c~=?Y@Uex8iKA*nT|BD_DJQ*Couj5>3(+?E@m@_7zA<}nMRj2U zdt0=owKp%bA$EE%JeA1;b$|QXq$0e#zg2TWS9DL`eA=6na)ZswVuSOy=IN6X=$)af zIjJ+=<+k^(+@o{8>woK=$@Om7t#^whXSs)4-dQUfMd!;WT3%MBx!%pW^{zs2mV3#Z zWTL^K<3^o#toxwf_H0g2e|N1-dI^)*)ZSji@$jv(dE(QDewEbrd7ESwNT282{&^~#dC>(Qn9PhLyZgm4H^Q}Vne zA*o%2{InP$pL7ZD_hDtCSY5roFZ)Wgs>?F0HYpdgY((puFmnVZRd&XRr{dj`_TGE* zF!OZh%++sC-1@c&-+VA}A50vqr8;r745s9&-wNMb={MketG%0a&h}qYzgyJ~(gBht zfJCkM+O3N8zO(E7=G))r0Y+;1k8gjE0VSBez|ux~SH=QlR3--ZwWy~{d%+(fvmb$D zB0xA1=YD=V@@Dg@{%j;K9mu+beAEMswewVHkP=oGN`ZOeoP^bjUgzHrWHUVXc85L4 zLp2apuQ9W1aumEVhz<411I5gPawTIh+f78T-tfdQuH4JM(|?N}{M@|&`!ZfKguNn# zLXmnOTOq!}ci+cC#ew|C``CognC~1M7ijuj!ND2<`e#`NOHK#yx+p$+C`%J3Rlhcr zy(LM*y7K$d*$gEIJwlyRVt|T$53Y)dFbw7g(pj9^dmwuE%3u$+)iu&yWtC+0r?h2! z+|3^ zLAiD=Z}hBiKytH#-cQE8qT z*Z|L*Q;>ZMVQVLKE*fV@!IF9B_X7IfN{CO^g%qiS6hnH_AZd|lpqH*Xwm*)#d*-T( zJqj{z-V}Jt*3A`ab_03fOHd{F4Zcy9x zT_0fK#ybC$#y4K;WS zOOy?>OSsrBF9uEsM(oS0kY3BZg;6IkhzZY^uXb;H$^tSMgn*byR#j#$z`jfEWHyOd zwkZ4!o+6aI?nKBJfj2Fcf$Zz?o*IxaXd2uusa+nHIcqzp_ch4+@F?o7LeR-+H$cCV zrgMYst&9XqYs7hlkyYubM5_t9tJGnzoj{+ zW$R$-2MJcYI}Q#Ix5AN6dIJ_`7LettPU}hr4WpqpK-FM|PpXPr9=KT!N<`d0qTUC2 zyf1E|;6ILMy{xph9nlQ^Cp8{9JQ~Dcx(N*`rMguybL7>e`LT5t?6}RM$s5g3*=yK^ zBK)SLUfQlaiG$}9CSW1WN24R2AT%4h&j!gBYL%u<@K_)V1J$K>l=%~hlB`+B`=Wuq zPDPK?f6`@&sB4{)Tuul}bVO{fu8`XKoPnAut+QdZn&xbG;VMe=Pek!UbWC9Z$FRM= z12LQl>nPyWn}kVnoIOG01LcmR%#Rn5UIA@7q;|r2y0t*0vkAnk?q;IuK%#x*-5z2A zRx-{P;X5?~H^))xjGYbr8x4`I+y-~XGVheY-r=-Q!LFe-w z4ih47sWhQXATo!a`Vm1LnExLR{#}TGtdasN`$?0Ep^)!uPyNZU?GGHPrJ$t0 zLyu94k^ccK8WKy%&z?@$o9Yl+OnrnPJE5ue26^)=Huaq**n1`o~u{7 z&O_fA!$;8EQD1X;heudnFC4kWIC85We+2xB*KTkbkv0R@WwQ$Y=r@R({V1D##@V-u zA1|52zS0WJ^5%Jy+2*!eu3_U})N-55Tn!^*?E*1`pFJUZ^3*BpQ7@3wV!?MX-#P`R znr^(}QD)T|P5K|!OpUhX=Ev9z`j=Ocf7y>>kme#Y4S8K3V=3AX#3^)toVD)?qE{bz z&a-4c^r9~7nd4K$CV=CmnafZ&$*>#CxJ>c_-~Cvm!vFa=GmGi`%g5R8Qp7pF)57i} zRt=`59F{C~&ftS{SX5Z&j2c64qBVO$XlcSlDQ`V=_ftS?WRzKu!@d(6_`|s@v>OPs zs_K#FYhflJ%=LE=W>qgu1o>(re=`@%)sDmbL@w*u9<-|zW(o3&wA+BA0xUPO#hh;u zViKcyTppX*x-VH&0L})eBz^V#{XEuD>Za#E<*_j7+yQ=*{@V`lu&L~Q>4O9O$W#{Q zn+11IP4yE{`2iQ7U=t!;qmvH`ei&hk2HiE<`}jN^3$1?T3Ft_WP$2#(wg^UykDp?j zq>rO{?mt+^q2k*Xl*5fPJW ztpx9rIb90QDE}n6=m)SY-=h&?9fNdo23;EaLx>Q+H3TdTbkjBru$`YUiUygMXW0>n z)8qI+u!x@KZ1hI#xJPFs!d>0KrdeHt_Zz%H62=6x?s`qOc=KB~f zj_pH`^BI*U>b8>WOX(dAi>?CO<0&N537Db?z1Km{*9c-|$`2pih{G!Q(p+4TA+VDd zHNRa6^~n1Iu&KNT4zC&Yjt?}~BrCW_8a7B9riX0Oc`;1zR{2XYCwWH*-#wiv))2tD zPzs6#af!c%lPeoUkc{?=F)Pb*EIUpn84h+0_$C*ElfKL3a2gX2f` zz)ply1uX@RpPJctw&2?-Y>BT?wlGN(D(2xZE|k@_A4?{x<^rXq4G5$YlvD{JvAqlR z7?7y3^NncKpa^~f*6BD-=o6SIA;uzjgU~=|??oVVfwpFyM@(Y%mk!<^1F-N{pJAa1 zLryyQap=NrIR0$S&^0^f8sqfFq;C<;)&v`xh9G*7oNzZ@;b)#*%#LrOdehoSsfu5YBZrGZJJUn5S8&p?L?G0{TMpaz}3au_B{=Vl?iI}ERC zEVAKM0Bj6av#ns)j}cUXb#V{voBTfrPn%;{Js$v84K`^S4T7|kykUYqh?mV^Oibk4XRvV7M7Si-ZY76piW&&V(MZ1=V8xgZ zPcSmGY(!0gpC2qT-hW5iKpyd68$ItblQAz91xy*$Luaxa(WCSW2lwZZQ(4B!eD(}E zIG!_^GWhI#HcZFa3w&QbOA-5X-{)AOM|YHs;p>O6p}hDx_CQCXHl$&@vQelYn(qoD zbODzD`))7ZdNxb}=lAgevstEebRU0mDlU2WVmA9{PZzn0*`bj!*9y680$+@aB&O&?s+ysT*XauSSN^wqvo*LhV|zhJWvwY6n=OP{2%&q<6Pzt!@1GQR!hz2 z_L#rFj0*d^Xb))_$LeCwPE00 zUtohnhLn&|~(jD;D+hb>{9gJ=9kpdC3x>-($RH2}`7HRZosU zSC+6*!Ds)Coq{67&Qrpmp?D?_)joVu5i4r#J|N2kezk}_LOV}&*qiuIDA1q#HxGG< z-Sp^#cKo#+_vlh)llrCd;V;7xVH$t-Wp+}k{G5+3X1U$bo+b%@psBgl)pWA}rMOAL zN!=X$*qVS~-l~M9hV~uyLS|o(pNCLl%|_3X=KzAScs{ZdZY?EjcL+7D=8wQ02N2Y> z2o!{OqAO2d#wwFrx^DHKyLM^J{{a20?CRjl`N8EZbmi*-dVc?MmP*sFBEqwJIh!=H z+}W6nTe>lqdKb34=0(`)*E7_FxuIjQOtfvvxa=mNE?-hj_DmIUcob`ew z7ze1c7kT}EpZZKEzP{3hVvc=-f_TAXQTB$bRpu2OC6=jtEoZTWnW~H00nT0wuf&h^ z_CxIvP^gOFI7nG$#!0IdiX2)!{T240D4ku(_rJ<6hcEmY3E^<0x?mu$y=|5G$yIDx zlIx{x2q)U~w^nOeXAHUFwE)Cgt!C%qUG2vJ9b}Q-az8BS>;qT533FJrD zuq^4BS9#CZ*dtx29m3W>fUS5w=Q@#qEULueLKaWzzSib{55~aEq1BLf$nTnL^fmY+ zziYD1lh1YEwJcJ)evv=2mL-V2`HHnH!e!wE%qTd8A8YTI%&)Iy%-4vMSO5-?p7{&j zejN)9zgycMprWh&aqD17-OlsZu?UwX72ygz`~uoMx{l2f=khUSf9~_;^Z5Qz8H*XL zj>08`!0p3^#@z%E8llQgLjWnhC4ewhrvd>)4Zi3;Eg+5mV?B$so+I6Z*whHdQMPH% zX%IBzU$y57=;P(*wGe)ncu9Vr53EBx?I{ZS7VL<%`jg}4JP6|M1FdiyXe}6ECn)Wm z=^h5+cqznW8%B34+<_GC+BXC^s6juDnSLhz=mr*PIO^>AC||mP4UL_fVz0x!41vP3 z%pE98ZWnN;FD9^)+r@|Ye;t41cHuyE-y@xH)MLjG#zut5kq2WLG5lEK4>z($ zl%JgCe}YjWN~rk+qu{mq0bTe5uQOBsc0$}#Xt1Su6Oqh{Ro)Bkn|5}gIyyyNC2e#{ z)8dxVDNQ+8C0us3^K}+7rF1RIV^q*Q*_UHf?yE*h0ryo&b6b@Hw^gA9xqUG-`L$&s z76zmnFcY>|XGlQflu z`s2>B#_}QH3{$}0lTnBaM89_=0#_t5Yhy=8;GIp=xk62)UU48<$L-w~JHJ^j|M}aq z=;h9~pw__|bbA{grEA+URS+JvOLy6i?yLS+dl4#Obt}^C(zma^MCxMon+pR*^z-Y` zV*@1DPkwi7D}^`tWl)*rhe-AX4ad`30B;0#f+8I2OW(RkC(I zKRO5TqjM&ul`QzbQTxSzLG9aMR{x3G|2^yyD?9yNO1~~7GTo03~s)^B2M zV_)xpWZM4=^x3uM|2_Kfh9r8Jlv*$4Widj7^K_8RuF# z@J}-bAid8T2d6w5e|I1&(J4g;l6{q!V_Ia@e+(H^x%q0KiC@~nf_&W0q~*na%)78< zukpE4I|jDH_i~(BhjC_sdkCzkj_x60>~;0`CI7;NXs75@$eeZmaM|oWW82C$8X! zD)ylDB-$x|#9Tw1!FrfX2p(Bzq#R^U0C`(4sn`Fiea@h=&i4)A3AA%ZgR{m*8JkQv zN3?Ut*px=k#76o(Ihv>48SNY%Tn^2z3`n6dyl2UWqsv)EY{E&0t}^>Sj6|d z$0G3d4Bp00!G*;n!Y1HP4jiQVDdZ7n7!C}9QcUK!k_lXme3B2?$`afD0Ief}ruNA~ zRw_=VvHZoYEIMEm9^=u%2>iETL zL`^^-7WAjI9I}1tGC5SR%iY0}X9g)biO;Oy(<@!669mfcgOg9+u37&Wyr5$3CEHM zvUj)%;a%MHK1&pf=r-M69f>};M-yg$0)ZIZFo8@2-Y2etB{@8XDq4<;NImJ+>Q>08b0v30#3UcKcVyjR>F!lT;)es zYfd-RKQF3gT?2l?4aCl`c8gxv9t{{;68QdVHn!7#1ZtAUJheg&wtqnJt_~6ow;$cA z$1`@YxQ?H~fN$Aw3;5*aY!J(qRXC1afH7f-1%Z2$mhrVaSSQ_5vwfv4lJTQESbM7_ z#r`#zyA^=Sc8GXK@So$4oLPwis7|i1D3e0R0+LgRZS)LC&NGxw9NPFo#1UJN&D)|9 zPNou0i%K|I(_-+Y7L{-^b#q%<2q(F@BeUGA4jy_Ivm;9hU3@n8wSB!eGHV`mH__92P`4#Jb*;+j0laI z872~6MVsaj#cxyi!pt!K{s-)L1BjkX=H7*T%ZDt}yNtXy>U~SzUBtaVVquSM!|&2V zzHsAbm2WQ6mj)wm!5&dKU}4#lOywm zl4r3DDR&e;u#+@^taR1}|E%f?DQ`|~5U0La4;{BkYp89p+?!4H3}Sqofq%fLGt z3GLOPyID%dm9)jMA1`AL>Ie7mVj>>6tR}k^-?E!^Onns<$v4~vy*6PsNsfOtEgY`( zbhxJa5I>;Br~H6-sv}2PJyL4)`Gh4tc9#v7gHzJAJd5d>mgjrN_LxP3cBKA?9{(#K zFMonCO}E`13x5Dh%SPm}pRzvTpbqs;{-EA9h1GZm9-*Figax0nv6cVCAPPf%X7#%Te!C3uNP@C$&K5&sZigKQ>UJYEUA|lT(hd zslP!acJX1q8WVZ_XRN;;Xi2W5E6I5AzUCZQ>J~5LVgF)L86a@=q|Y*{+K0gZxg!sxnzzJLELqJ-*PZ&x~01l;0V_s}!uYD1?)N=SoqALhE1i$6vN@^+uI z=X?DXihy^mzYFhLPrU0p-6Fg4=FeHbai740)3yu=`QXU+thaWLT_I}zoxSznrkL?8 z2z@+;{{L5ld}JLaLX`GoBj*yuXe;`M1f2 zy4pC-Yyb)IsKjr73$Rd>sC5rZ*QC7LdC@fJNnE^W4n4c^qNxbkG|_neCTPL$*WZQT zr+kVfHXsdu^a-T{e_}5S3U=dLX~wtsR=##G%N*g}BT2(`GyRlM&LiCIK*nO?Bp`09dJ!y8|`H~IerC+ch z{TkHZRbR0Cr3vl%%`aG>E8j^WDQmxE3*CRC+FbYF_@2!Fv7g2L>E)^YtcQHK9YzTL z1&MBP$5_7uF!7i2AqQBOmf~mBK9c#i1ML0?47|!on5saSs))9No~n*<7-khDO_mk< z**tye-AD|L_vL!FJp=HlqB}*IN+bf@iG=E$=Y&I*OMeUw%FQQF(;owlRnD}TqiA#g zUn=(JBM&jl;9lx@|NAi1+5eeVRV4%4DSI_f{)+Yb%duduxJ6WJln#4Ei>UsJ<@{eO z4&eD;v!Vaj+WmQt!%Y6m+INFI_<}0p3y?slD}UuM0Eo>~bq6K9>vCYjRNaNvR<$G% zT62WONF9>-=SNu7Ko_#D=xDZMr&Os}17hP``I2W5eB?s23g=1YhB@4^J#rX-<{Q>F zddLw6UzY$kA+P|%GTg27fpd|=0%e@;<#%by=UeuM3L|&vW(LF;brTHMHUSuuD%T>r z7WU+~Y`Dv|5(D(_`yG3)Tcq%(q`Kapg8>?@ML`mm)bC@JL#l$m91s1T4H1{}N#C<} z?oCZRiQ8Ukzh^5_k+Fh2g)C3P3m@(Pg$@Tet3*|iVp z@sCf09u#W-LU{PwK;dH`KNNb3$-j)lWyd;?%0PJ09f5wGzRSqqiTlI1Dxtjg7}Lkk z!#PE%KWimK_96jHZ-ATXP+j<``5#wwstgl~^VRlmxXHtfZ~(t_3?4I7jE=?AIDUTt z)SJPFnemx!Um_PbS5;3Q-@t};rO&Qc=l5%^#lZWBp+^$1+^aP5iU#(BRj(WOTsc}2 zgu)QI-SbYE;F{E|vf27lYPuF#09Ba6r_BPc57(rt?$gVmWcrG5$C>^`M*0^x0_W`p z7a5M6z3_|7T8wXnkbQ%pfQp#{eT%5%o$wGkWnEg0tToV9*@g=C_&mg)NXERz<#0-Z zGA6+ZQHv*UeS$?RRXy2G>hx}=ccqJYL^!ch!Yglv?}RB))(4fYfmGPrT8@S^~JrTWn-MZ%+z|p zM`ooQ#I8o7VAQhb=_{HS2sKv_l}_(Xa7aIcoCdM_wWJ5}kwxz!BhnfaMP-UT}5gPaPStv0wa;IH~2Vu4@ zu!woWBo6VLJZMP#dFMHO=_)S)01j?K8G8lrlkm3C2l%^HC@DlVcDT-%2X3gwN45%C z7o&A0)$nRFqH~92Y-;{w#VYdbx8WLfhZNLAcLvvD4GLomY8<#&@C^Apl6D9QWE%6J z?!yivMD#+P$x-CTNwP^`WdM9@8uQHd3gqmqMj0C*O8RjX__<>U=V2KxyLQ5ZHsJy@a&aOW>B22S`x^^xuRGqP4Iawi;sI z@sf|ZW}WDpmkNt+Mt+waq*tDw1Dy&|BsZY5D?q#E1?HMb5Jm|CdjXk{mEg`?AMAPe zR$N*QP+=Rzc=EMBv#6YuJGOEpIwm~6Z7YB8$kL%Rdhgl*mIg-_Ws0G9E=;zac4R$* zchvr!eb(`~-&lkd)QM17jMH+`Hun(XKgY)I1xzHE%b-fKA9N)NX1Ea;ngncbg8fvK zp`KirJlN*QibPMVfFOl~g_5mU-%D6WZ>+KE4ey5=<9rJGTP5!%%O^`#**bev=wB2@ zSPP+Zvb7QH9t(vLo{NML_652UuNTA-7sq+RTn3~VcVESs(J(P$jmm+kjqA)cN(Y^( zaRLzHH=$xQf<_zRP(2ZYyFL(3xKO1M;#h$=xzK9TB)s#dH=n_p1Ch2_k-g8ACIgPa z){qIvjX}vcY`{t>(uGY*KElElK0La(6(HJfNwi_A4?*t~f|Ohru-1SDb?dY)M) z)SLm9h9j}Z#nFQOOKb!0#@SzmFA%0lAfF(GhY*XQ(qe^QYGmCf$dAunmf>M2`V}ry zMM#J8D^{Svr?$WN!lT2b7yf6s?uEyOXTLab^W>L=&B6l zBd~}Ro4xS&%}p=FLAQf{lE5w^R&w%l;iDVyn_RQkJjXAeVPRbxuX`n!&|W_emDzyr zlrZhLZ`Orim8PA=|F<#cfe50?#eapTG_iXOv!C42=DVr0o|?^{Y+`|W{2a~~H?asK zJXY-v+EJ#%NH%+XAwH&G5ft0b@hz!mVQQqT_%F&==*Fi+? zTvEjKly0Oe3ceQ`na}VnE>+YzhNb z3Yqk{^;Z^PnEk{K=g`*vO5=ZG$1q;=D~%sdvrV(ei=W2-+xNM%o|w(g{>p;7D|x@Y zwJu~I$Ps-l!hgyvG!YD02Gqe^QFJBgh37P z=qGwz;HfdL<=6?b2^KHCdY}9uVx?$pXa|9ti+9`lHH~O;pvae=gJC6`Z$8IDeIXCT z6BW>UJ9v)u3MM*t74DlvOw0!ySxK_cn;fTN_`4^V64eJt5blG(A|UQ@Z1DormI57o zEO}ysI;HCP_dm0+4k|6WgEu&XIZ|(AYEUU9k37i~{_D@IRX_v=8{P)DremugKS?G% zR(bkI-uf37pr>FTp8X5!odE;lHVbS6E@^5p7*$d&l;fRCZ>xTH>TRFJ`&*t>?Nm{xdbhjDk#z*`8Xt!qY&!W#;GhQ6MsrK+@WEZtkpLH&y3-VmHGAG z2-rk+I8L4ikwOt+XB13ekClm^GS{4e5P}0DFJs=~kXYi4(vdMdPc-bi2G$@0ybL8p z>MIB}rnb--=H%{Bzat_r-r?wd0{Bng=#mZaJz0juDHP=yPi*Rj`GcNo9BQ^tUY_gQ=i%Ly|i2xU&$=hGrmK zb@V2YC{}N-nFx~N1I_@PoIeeS*b%%te@5q1*%kC41B3mQC;!g6!b$z{-&uz-D@4KP zn$EBCG~kBCgl)0FKL*pF1w>XOyQ}B&!;bA$U{I(GMbpWzr6f1vITmX{#O)z4Ll^O$ z*5kaIPr46-84IaFw-LURIZI}PG)pqp`Vw6FC^evr0Um?@8|g0}#?6v+QozhL{yb8J zse0$zEpKVqzb%FV$O>c_fPes9Y^U_ zu?sA?O^d|<&U*n;4X^slGh%teQ+ha~z(l2@X)BqpyTJNO6BPc_1!Q2V+RQIsVCez( zOInuNGKgjxM;cuD^9(-rB8wgBKFU29B^j9hYVXbPkxr=O8 z$7X-{J^;zaP<#=DJl}lnic|z_Zrcq|Q&Rh+C4A{0EMWB8GxeoZmX8(e&)z`^{}arf z!ANfDl{D3w3uK^z!MyDymMVQN^6{70`{KX2-(@yfdf{U}_A%I{u3eRwB=ttAjJ@K=^=WcAr%ID__{m26eQ$wL_-@4U7g& zpxk;PY3=j|E)~NUMP5kCn_IUg$ z@CHzNgs%~k!wbb4Lvadaewbz`7Hd*ya9sxH%Q3qAi>RWE6l#v+|F@g?s%r?dxweS^ ze2sk|eX)pdxXzYIZ!O{pH`r{=^$EsuWM9zCWiX<{>q9e_u_g;WcjHHHu%7-;F9KnQ zs(v>_12ZWh(MBU@%_)ocPY%}6T8tT)y@c)MZUoH*1tMrJDD0s{0zs=&2^zJ* zD!Za?EY?Q=`j-E!c?@iWageTXhg!(q8^A|6`}Wo7SDn6_x!F0HE~;fi{rKN!v*I1& zc!QI?ZTpG)i^i4uk<$^3R(8!Vh<_#;En*+uRWeS|1x(lT?xKG(|3WfmOILNgo6dOE z<3nT$5V+qs@g6=(Z(OrHeoCmd9LKf{H6ig0=rwJu15Vn!GW9=cI7dKsK8ujgkO<|`m{IgX-=1T~n z-aOB<-D_H{ekcE_StCw|TW4)Y4uoT`wK;Et-^Q^L@%&^QK(em6 zx*RCh4#0JMC0587kPR8$9G^ivc zsy?nb@*zV>1NyMEhW-*^nCrrEu@hCGOYxwcta8`bt_S+@>;tWhR!`_-B_Tfs_~aTv z#kKBFcyBXIHIY^mbL0%(Es@FW9x3=f!-N%A6fgaPYX;hCD4F8mX0 zfw%WWxP;9EueV3YPV|ld-`W-o3fQaP0DkhBHv~cEzUjaPbFE6+P-HWWCI>ssggyNG zbuXhe2lI_pgU-G4HlP;Oz+r%F&%ITy(M$`8R%L{$9FG=C#*_D#m-&Xvo7)ut@9=`s z{Vwlm7U6qLNXUwWEn;9#IY!8*chnX3qWa6ak+VQyD9Xg&~481oO8~(W6rzp zGUu*%ch4PjrYRrClqtNyHSJ>)JdD=GZqtr(PMfUi?o+QtMVfjcG&8PyJt#I6kx6zC zi%i!$a`jiIg!*@zDmfUt${GtCfz1;?;!|GG8F|C@8TgKY%H%1URU(y1Al4*iRYJ8(@C={RJ&?od8092sV6iL(hq=Y52Qu1 zw9sM_qAUPpBGB1wCj#=XP#Nc`@LvuE&5amr9362bym)V<305vu1SFPydF>1Yojnk! z=c&_}Ki@Jq(0h6P47nA#yyw7wML7+t_DFr0k=)PK7eB&z8{WRWAu2E;a2&?hfaZw7 zrBjX~4ZfJB=Yi3Ik$j}5u`_SuXMEM`31r*Y+!)T^@iVT77@qT6(kHuxQ4?dJ^XarM zWa2%@F9K%Z_c?7>|DF<6#2@uHKI8Qys_aLVWB$fzUaeuD+W)M9k5i0uxPCLP%i0Z8 zxdhYHA6U{89?jKbffmGU$b|(p69u`6B38is z>MZ1^#__10eB%YK^YJ%M5a9AgPMH+!fMe0lP6_t$8jE$CtsR@G#nz6^_W!Z==HXG5 zcjNatGeOQIq9o*GV@U!cGrI#sZUEl+Xm29p{`X4;4&d@v;{Ii$ou)8GXrsXp7-}&*ZW7V%$#%PKKK2- zzx#Hd&Y3`8{87#X#AHV9F(Y#>_>!_X+$okT#e#*0@fB3apuG3v=zBj_BIAsyl>-OS z#Y)$VuLkJ@ITWC0kbd*Xtl=y?Yf7F7$x54-Q*|AquN`XPlT>#u1|e#V#mV~hwu+_3 z-;(u=b5z)DCz#bs@1Bim#;{a9#W-8nZ=}u1?YeH*KaHF+dUbuIe+fBV^3dpEif@-q zuNS|;3#eL8G$%IT<@up zdkf6#aLb=_oZLIG-R!e6k_r`D^?qoK!#^4h-<~npW6Beijt3{X5SJUOumjzD#L?bXCoJwd(rK^9PK%gW0JV1nlYxK(rnYCF*D z7EGx?(3RP0X~yBG|N3rI;~ir>l%{KrT&MvamfK;B*^`lG{5DNbwe8l8Kc(sC`Z|wtHrZ78~ zIFAsukijJxaR@l7`T-vxHnli7;oqGVtRu-j zJX#C3PqR1BTE-tadZ!W**FZZJ3YvRZQu`{kCj2c;FYfH;eh>qLu7nMXI3{`am$vFU z=)4k0l#V&C!P(n8u%u?uLe1gez|_q5x~mAO(LUh>?(UoV)zWdYc3LN{VD~6z<1GVf zLk9o1B2SO<*KSLT52Oyv-)ZxwEgaRc*I`qTw5bOZK*-LrqM9)7dM=9~S0)WdUL zQGN2gd85tO#FlWL(&{-c*xddBsaQzzf{osaE?$s&p{uc&ze)!7^1qXp#JjvTlT}Af z*9A&`JqGM-HKDS$MfK@e+I4)#vtHS;QT2s+aRnB8i{MS`|#a{-n z#aD2@KU-5%(Oof!7Vnd7MK!ZGDu+8qte@4{80V?rrLtO?i0i_fMm;zoc<6Tng97ez z|3Rwj1S`aK?ZAG%Z4(n0wk}KTHcsB9pXYC0Hn5v%R2^pnHjGky&$7nYCLKUsO}_z? z4b<(J)z2NUPu<$QY)ZGBF(B}bKpU~Cr7<;fVQMl5Dcwk ztrI0L7JV$X4 z0=?cPkp2L9141kvGn|cLp-L5wfJFQz9d)Yj*(uaP@yyj{6Y%;26+p&ahtYs^n$MV~S;cv}0Xu$3t4q_a9FDCSNDI`GYGG?Bnu`gn#^ zR8$T^pRcUm595~4Zk&%Djka7T?|F1&3_||ekbo!vh)|0><&RrGEPy%%K?FJ-SA!(+ zWQcLEJmJjdD{OuYLIR!I)vB-cXs;n`YP+QPgWG)(MG&W*F$9`&J(b_ze;wcwrkL5I z1~Zq~y2D`8>B6T@71om4vYtV&K37SWA1>(ct=aOg#e1cY;75k z(`(AQ1^P$C08HVSRgM!CybCUEs{z_oZ>=`@sTsquv!$Ca!3VgbSFF21Em|_$MVf+^ ztaxgfae05^oRNA){7Yl3ZB+`4i$>}x{_yiQjBYE;JZuB_Aw1zyyZc`7Ew+8fSh;em zwbjd`4#cL#DpVvCsT|$_g?n~4VAl)(i1Q6$z<7A?ilw&v`Fy zshqRG1{+DK?BM@VG6tM>CEj^|QvR+%O0uwrLkm3lE56On7v!gtQ%KmwiJQwfp%P@J zJ0lS^i-+{(ExQ)5$_poYgr~H>9p@IlAwQPioG?SKoHH>^S)J+Syb89e_BX1JKX+gf z0mf`xA}`yFdY?YVec6ba*(l(7_6I+R@roD%wS8Y( zb(<)jbda;Ki5`7@BvotzG2YU4k=<8?2B`4znkb!Dz+1i&S&L(H=VMV#a*#K|K>-mz zZo{S*dws5c3bubn2KaSEDen;&-#bPEo$nT3pW-xioxd zLMk~4#yu{5>{;75{9%q_Jnzzn`_E$%nr-Q{FsjZGya?S`#dV6LLnJnYvBl3G)h(RE3(&|4m#YEeekv#L+1W6mGqPE$tkS5eBi9`X^& z*v=p^hST>2qdW&j*`9+(_071=!UzR_e?>+~41YxqZ?h+LOHHbX zM1rg@_C;ZUKDQCdv2{Agzzw|+zp&4DF0AMGPU8p7bKnM%YN z!j-mD)J;d#@>IL;Mf!ZbhLF%$dqq@N&brXqIGsNc23nPhJ_)xQ4HD3kcz^2p3{lWy zK8an0S>~?BTTR2=AtWHE=Wc;E9dh?duI-C>~`?KV1Tw;(pfnAtzK2r z>iZ7ZhQ(-VJY@BKZe(AmU*4iT534t-p?NNMs6?kdhXcm4c++^iCZ(3-~nFNfzB#ndYOOz!Tq z*JiwzvOYtgQV2UZ1ez7T?(B-k{PNG@^tNME3ezjQq4QX8?hV*nrW^rhA9&VVaa>TT zBF{7&V|Y0SD_78{fnM5`JRjp1q6FzEL4r%#Ux(*4K{m3b>#oLd{EO|hs1Ze}**>M4 z?ew2UcExG;jRDc~QY;Hg_Rd70E^mb}yL^|k@y5~4MiKjNK1X=T5Ukod4#O*+qUIOl z)27{dWhaE_{fo`#`RlYi(TjJ{^+;a+EOag72_EeNNvnS6t(Z~cuj&?tR=U{PC>Xk+ zqOyB47+Tri>k%rO{k6TiIY;%aSm%vY=BTYJz=_>w)q1MPVx3u0)x8j=a=pWnz?C3Z zDFmt2RCdQh6(aP$o}&631C$z}-sva4PdO?gpxh5v2|Op}gxc~5_BGgRDzu{jE7n+d z-7`fV4e~^(jpz<e=b8_+? zo3F2;G#U$;epl5?-?I5g=-lJ)B>ieBAg_Rp2p^Rdmca5vgy-;=Ii5)AWYt#;hHH<) z--dcaZah?+Tw(Hcp?6kZk;1CW;T=fjyhFphct@0mLv*f)ndWX@9AwL60iC553D1gG z`X}Q|ic};Rzo~u4n%jN{7HEwvw~Z8{+68p?SY&gfBbgPjqHzR>)+;JGySo`A zhRiVmE3&WTmfltu@-N|TbQt8`9V5=XOyy*4q8FXDWd*M@eN<%ebJfj^>fT&+xUQeP`5}n+Y;qPm7X4fiBlKKY6Ea((fq{} zad>cSaJ~HHqrzBpfXe@ptsRw3ZOe_xU7J#q%p*am$tM6%zuIUQ}! zc`l*~iqaMb8?(UArhT?nbqU9PETTCnC?$|AV`s-|-SiqO?dwcKf|HAeP)x z|9fS1y~?woo{SZPy68>LDgE<=6}^X+32KG%YT{Z25bZT_?siy<^KnG(VAJ}WKlm;*0xJ?p;IHno0-|Q3m6`Ls!`VfSx-SU+W|Lf1Mn4hZX(tZ? zS*~T)p!Ndiu5TL2ZacIsL^5}Z@D zIWYrv;9#4Yo;FUo^$GqWw9aNUu`(06lUp9z!gqcn+cwY+l*Ue4SVwwSGYgPw30$)Z z@~yh=x$ZPxaS>&6AT;0{hMV~b^+r>``HzdtnRir(Cd z;o9OaO93}3W)@XMkd+!d?*VWtD?9Idu9db&uq-DltIx;jBwYS}a8mF@SX(80b|xCZ zo9C;(_wQ+|kx)nd8kZPDfL$Eq=9BKG{!VlSUrE9X= zWvM4hbDaCq(LiyqH?;F2OYdtU&f!eJNA!@*Ee~P0660RXV!ZySk;!qb zgdh_gH&tw1o*b9!T*emCc;{eLzbf-1PDH;Gg?9t)4B;>0!sv&T=(s1Y)yZc~!#~r< zixDIh+mWVV&UihJf%sak@P-_hE1@8+5!Yhd4Ni5~IPrD_fr=weVNpX(?}xZfm31k< ziK(oDc(RY;Vb@3IH7H>(AFXZG9u64DCgcDn{LY$U1A3` zC21V1u7a6xO?()K#a?*K8xh^3lY0TMRWi0TWLG;Ts0-|t7mFOyM_LZ>({=~03!&3Q z{Mo`_>h4!_%Lk#m;6U6-Xu;9%7G>N{Vhg77%}NAY%Idu?*^3dtzZu0n>)yE5Zn&CA zXbspeUsvQQCGWI!>H-g5-s&sUy^BPbX&!6op{oVcESY!RBxK%wmM--ccG)utXT-{B zxz~@a~dp)8pO-KI=37w?yX_lrQ!X7Oamlq5npkG}_GTDQivW)4w8I%r^_h_%&q zOie3`ZvYJ13W}&6yscXfAQJ=Qf@N{OzRp$gtPA$UFmF!OzIls2>20>Q@$JU+%k@lu zeDWDxMVNv3NZyT_9qfBe0DDBtkG?~T@s3H+ZJH!eAN|)+$Djxy?|*@$n2vRyE4h75 zOF?3k_-W@}8s!o9#f>%}EdGotTIkcoO^32!zI2E}G98|S@w-Iy2@5CCgHrq*KT~~| zf)JxX2%(-ehY&0aGNBY1G8;~KXk47ng+!N#pI8d}aGyv_4XyC3J(3OBZtNVdXAM>z4W-#d9Oi>A zrz@1oJ6bwvcq-cQ+AH)Se!+dm1(YHpB*h~yKISGE-Zoq)GNuWTj}Z-$5C1E>DfRb@ zYW=dZdOK`CW^9!2`@XRe;|SX)DyzL00qn}WMqvVCYAJAusBQ>&0G<%3 z08N=?QPu|~%Id$Pt;&q$x+x?xEiYO)#p3MRZECJ?8sR8HWn&prirY{eCAt+u zV=-tPgyXW*Hvf1hTaRhnWR3gsH+4P}I{}`ou*#a9Sg3A0lAwZk~PRbW6pnjQkQU5sK%M938fzrh4 z5bn!KbTRH5G++9CRaGYH!dv3N%_|e5)4M71Vq*!n@t60}Zv||qlpg2JYHnZdr3|v% zJxf?&3=yAXFb(L$+($0tZ83kNd8ve06T(Vs*=JIK{o zR$t`WT#Qqj%n|MI;=K-y)54Z$ji`#Na)3%n_RfqJNKC>(lPk&#Txvp23Aw?tswxJw zsLYb3`EcrRAJ!`(PAJbiQ}#c#rJMJJ*#8=keRTgJob(=jplY6)EB=@vBJ9raycu&U zRo|EV=mxG!Olf(_1k<}-1y8RV1_Mg4wI12462nSq5nhv`AmA_M??3j|LipKeC}#!F zb-|#n0TSy`Jr&KUoTziG#J6^zlLgzFm4+oevpq=2@n52zs$Dz3LM1g-Rkh0{pTDuL zYx4P`i8YdY7wEG4$}%ki=uJ>VeF5PH5P=!!TS?Khad@}zydZ1IVlD8u!j`o#{&w3P zuhij27DYi!d12&&_(Dk%msyJEbx7R8A>*Dakz)MJ#m_+3F7KzOe8M-y zLl7HIKP#?v3(CxU{o-2Nd7TI@nTHuAMT0vAdlThVRPF;5cu2m4X;v2C{KFZe!{99y zJk?C8o5&trEQ;<>ybavnMr4RnZPC{a0Zi7-M6Sd zFTnr8d>;&gImlRtCSu5g7?d;D7qeLT>2J>bRAfg=8^0BxUBK@@7w%;tsN6G}Ch6Ka z+1xmE=7!1JvtW6tTo+FDoxBuUFE3L~m%6qX-p&TQk<$GItnAFyLihT7B4*hDyBM<8`SLTwIzFH%i(l!1=IhD8Gxir>6IIvv?P z9Z>y~g1^JyuqfU!U&%gPbwUt-K5{08iQEve;Wy>RiAg_}8)8PrBP(1Ll?9qZNpg;C z&(N+{^V4E^YWeULvs!W7D{# zWaGbcleB~doPHyO<5bg((UbLbM0r}hsaGQfGqaVDNY%i}2k`&uEmsbw#EF#5iedPb z`>1$J&6RpjHm*j`VWLDeN7F&qNkv;wl^_%LZ_ZsV7F90gzp1Bhy z`ki6#ro>P27DWDP)xEa!c{2eOCmoH{p~@hcr<`+FKAhIH|C(KpsjJm;!hpGsQ>l3v zsXfXEWw$lilpd{mNRnx*6P%%u>#S7SX4$$)EJ##Kv7^fI$ciIepp=f)dp|7cI4>to z(2CAWwNE-$ijpjoknimTbI(j9qh%5k2^(Kuqn~#%GF`wh0Psi_q68L%dK|n(yWQ28 zMi5kt_4kLn8owg=V0f?9laq)lBx(maM9rSw)r~FDbfs~}wd9=0_1Qh@VU3-IgB-5o zf1OTV5RR@9e0GXMVw4h+rT|WRTE0$X$+1|yA-E`WT;3QZvD`5w52sh?y|Ww%bZ}_R zR`mo5L8`wdAN&}hlwS5o)a!eb8DH< z(<1;v^r5%7Ho0f!-i>kw^0|~MMX&$Wygu8y&dGXp(d&|LSK4#$UR;TrpB}6<1fthp zo=L8ys9$hSEGd>8BH^MhE zkJzh=2;T{S*slKzph8FUO%SWO^xE#AO7Kv^W-FDGSBsVmOUb1TvAsoAL+f;q9 zzrxwA;Z$~&X^k#NZOBQc%HT5Po&G<-0@2eP=u+{-5CCddhyN5wAIf0~jx6ExG7S6h z?{L*;NAjHc!l5S(%pm zZg=932X=^2HZmjWUemSrKcl*L*qPLW>1oR7WI=(Lv6YRXB@Rwe>?Ud8;$vtT04qFH zZLP2y8>Zt6z0yBd46s zFcrcp|1V2}6k`0X9Zy4lZ%AyZ)HK{15XZ0RATFv(L6g0;cO$BXU7V&g0tctBA-(R2 zB^k!wZ_qFFzX3i<99si*!aSHpJD!DvqC2Des@-$S%tbyr_@_bdxH~0J13%!^1SlM4 zfZ}IBqpv2ZphZgVl{QGt{SSgw62v+QRTq*KV0t7w(P3g)V?{}-FNkhKk1vpjmU2mI zZg?UC@RC5qsm*K5>u2^^kV_Cs@Tr0f#~&sFiDzAq?h6TDvpr^Hjx7?pSW_{l+zi5= zRzKM%Q9VV2?CnxQ2cNZbKskw{yr2eOt2oHtMU&ijmQoY$;=uFab{C=?tAmLecKp<- zEiV8m8BbDd35vZm9ZyyB3z(QuYEOaM-#rVJd7#=VX)3~k7VDP2E?YL|CA&L}PrCiz zIhKz9Z(DBNT9R1FNT5rvnLXR}FPkq6cL?KttNUVtxqEeA*h0$>OrUIDO9)elZzIMa zN+AZ6f7)G#tQRzWXLIitw!#DyAga}hPOet9d~5T8{GRe}ZMpqk>opcZO|ws^)lbY* ze8osk8y1c5JOPAhJHk`#e7<}n{@_}BD_>et;uMbvCh;#@j_6@#%t620_}dI!^QT!B zDIhwC^KB`=6mVWT7(-b!eHf)2Uhf>FcqAQBLNO@m9+*ZFda%cP)2ZCE(Cj25WDVZY znBU~j|DtD@yw%B;Fm}bcUID@63UCJmt9E6P9JKWQB|KwR$#Gdps_MX zKcyy!G3OYmL^7%P5VMAB5k1k;@*n11;{+9JoBoO@&!I&KUjUzA9p;niXs9CVi zkzYslsBkD+XjNvdvy|Qa@+?rf3`c^jzVp>3D5Z}0;HyifIqZ)3G;A2no;kMAKBOu` zU7InZP)XWBSZ>Ds-hAi%N?z~plu$7YNBgsXXoKXd{IHfGaI@X*W0u-gR%WS_@A4y2 zNv`KQ5r_P`b?NyfxG%+l=iOrS9cD5wlWw-6CM`ea)||6Y^~EDVa~7&#qX<~56t#$k zE@G^8_|1#yEuE~QiGi0dOtVr+s88^|Lwy1y(SF0JK0i)v8Ox8u=0Gwa$2ar4A9yQH z<3lYvO)?OciD&bi;F2Jvd>_hpmwIvJRY%0T2LwDkyt(N3h~tWnUnh%yMi@u=gj2cK z4^@)W496^egkPMxPGpjUMFsKaIug+YCMIp&m7SF@q{p$3W+IRfQHfXTES#0u;}l?q01=lJ094$S7 z1zYCEmxnnP?#)^H6S^#A2j7zEYAvswp0!-xA|(FycYDsZ#M^Hx>EQmU!WC_rGJ!sbiYmjY-*1M`OJQmnjYVsG8j$~iPd7vyfc4+LO7L44@J zWdpm#2O=3{3CImmB1*@MZVa-{76LI9m;yn2(!xNRMVoIROGFL3(VU0h_(0h&vzMj&(=p>bQd;RAsL8G{G>3QOhhV8+fSUEe+SnC%E0`1 zxIAIo%51Ker5ihD>l6J|-bhTI{tSqft4e+>0qJ>gTnfQ=5N?kpZXCSY8+pNN$!|$c z5}GiDf_>UnacXJtr*h@@7l9SmGM;)X${(tAjCO=oev8>FTUX3|zp5yaYFvROeWEK9 zxDlq4g3yJC%Izm92WDS7NnDb+!;^!peUf|10=rwdgJhU*1@Ai8E60$w0w*WJkaD_p zIZcWL4`0j#TqODB&9M z&&pmO<_!tSmPAR`hLGP8Re6P6Yi|@%wIssF4318nlzE|2eO}PJsH~etlJ}{eH`p54 zB3RClRH4lut1{IY0dtpvXGV&-?TzIWFg(FnpsH2@5UOP=`A1M+iTRo zs@87th8|)YX&LLUksw+65~blIV(;33+G)jpXJaa}&8A1JDA8Z>quQ}{)9ovJE7z~S zC2qBzN{tkvXfTs~)s|ZSY6>o6GUsH=#Lsu*t#PXnXOV|c-e;h!pF9Vvw?A5t8|HV8 z68ghEDy>5N%G6+`>X|(_bABf(aPSV*(@LE}Nv4uyR_3s$5wP6xo{}qxViWe#T@{3T z4vGom-qlF{3ggxlCwbk=y(Fn*w0NFVTV1bvJtfb1@@v<6BO~CVZ=4TOBRd7E!bxM> zS>b0tWskzBy`mg$dH<5&tFX2J>2F#?kteV$sQ^!AL}*%m*fepPSu4|5K8m|YR3vYr z-ApmBqX_2@1h)hkr!sy(NLkIOYU=DUC5ALIwMBV=zk~;(cGjMccK~V{n2;jp2>`Zz z*D0QM=vi~{XIC~`-gS#2#2hIgeL^r6j$x-=1Las66p8?=+_VOusn3d4P5ul6$2k(r1V? zUm2C=E2GkUr6tXajS08wgH_eI?RLG?-~M5bDbpt-uLT`SGT>KsB|_2l%ItzcC>$v* zcaTOJI3HHR{5K5uhUWE$&yhALDEFWDdyQ@69EzMQf4?X982tMPaM(iE%HSVJnndQj zheA{LppqXxc1A%~zO?yn?CkX$uTf?v8u!sGH9w2>big8trB?KlA6FEYe{OSc_y)7x z_Ty6JB_GO;rHUar?XwGdjlN~eHLwvWTh98hCl3oM*(xN%50UCulBe^72re68D>^}3 z@py#6K|vwevE%GkEKs=&NXSa-j@sPe9D+vt#=_Bz7GL%ktUVfet+Bk!^a416;QPan@qL_3E+GG0u3bvEWhK*mX2o*~;P$^Qyl?mtOe%x+V# zCbXEQUOt3@>=D^7FB5_j+0^$rGp(VIz93zO`l@4dsx5WwQwjm0&G00DG{U9oSjO!!aO|B33XcbBl z&XRUduOWTJ@SU!Vwbm`6y=5KWW6k!=d(rlEH=UDi9mVdntY?#9a@NPnSseAUZ^@v{ z8!a9>9lpBYcyFuo*;peL>-yh#mz=3&&i_*-BIicNfG9rEa1J|$0|w4?SU7~389~a; zN-B)=EA=dII_0|-m|yxD1Ri(>A+zqnK?Wb_tWsGW=?5UE;K(h=v^uUkTYFk71{v!r zsirgdt-KX{sF8?K1m+$Kb-ijrC$(iGVodulB}r5hjc3KDS=e8x_P%c6n&e@^XIG8j zoi)s|LDHfx5ZqxER88-;CKSfwAwn|N{Ej4jQ7&D4}hy;|=i<;kOVsc+{4J&cJ zxpYnpK$be#=6t|&^n6nR9P^>^WR*V3FK8AeS%Bd{j{e*1QSk3S6@t{$-4_CNF;n7{`A zu;;*D^yjQyHdunyZ$N@{eQSgJ)CEub2yZ;zo?v$@LLn#c2&U9l`SE`Nl=4P%|tHow&{)^4jrO#sRvHgnqCnXvoK8NyijXihk zV}}Zh0& zCEro}jA_Vdq_E0buN!E=Cmdb36B>}u;)h*Ms-_E6$W;A~s=NMX^DV$Q6d-E4UY`yC z7lKfi3%i;q_>opMf(o5lh!EwbwHpMs@*&cy#2Sj_Lr7p;awdVsp3F9EYUHx>dP@;1 zydM85)y|7?pk<~R%baA)$yUrcDCjn&JA(mA zm|P)~$`angWQ#9TBDef5E_froJ?|(Qv_!+p|83RC3jL-M89&Af!jDbdYOxxEMz9)}Y!llS&puu%PyoDVr(3vV z)tuU2R8$*(Dt}8ZZ?&g({{it?41^_TxR|XCjJ|z@s}n>E+VyT1*&A8<#Ga;Q`bigH z58jYc5YDsZel?ELWgwuFMA3w^DC@IRM$@xOYcro^^{?F+w|X;9zT$k0Sq?Nwll#k3 zx|=o-IF&?h*JPvj=eq9SNrY97;dpPXnm0XHb-x$IP!Z03DOh7Q=3fyOPE?ZotLuz3 z5GodK8jI6N)C20F1kI5zx|hUj$}w2XGWqrC`TJSm;!?$LY71GvMM)ziI(!_2V3jsv zE5EtgN{;acZEgkE&1VNs865#K`BSv>d14cSvms=fPeRYC|)#NsjB2Vb^rN zr8?g_URj-sQ?X9*TWUyb)}|XAY>t(`;KMgnldY^&{Itt=(N$n?TK-NLkYt0k=UDeQ z^?^ieEU6_6^Prq`{@US3;fs|>s$1k$ddt7J^%@Zf zAsfUkJgHW*#lHPC_9B>`?0o3Dy>;_QM|$Y$y_%X%oE(0WrudV>XAyn@BB?wSD+*BH z0r!nnR+|a`HG`8R;UDXzCZ=y4xEdD`_hsScGtr`ezKxt@;%#^KX08+Sa1$;r#ssc#j@Ct$zlhF5XqFxd$ zQ_eGy)C1SzV7zmC9qF%VqN=TGE(|bc-AJ#QH?OcJEiV^q=D43(qR{6)MxmQV^A6ea z4a9~-_{JU*6{fDN$25G4%NCgFNPp(Yh>kfuxo=aGATl31taBe9d+Fejng#e=Y5F z#6-!k6vmzDmcsbO7nZ`vN$JU942JgL8Rb&>O7$)Kyw{kG%^-^kSK0jT_ZZmO&r;$9 zgx)Hf4*?XCm%c5NiTe0kesA+h{AkTLR-^aNZ;D%;f@UeDhB1pr_Pmo7ufPu>N|Q5j zMTR)vnr8O+GTln`oN}9Q1rTe8Vzrq)o9hBG@>RbC6=iINK zZ@VUJUB)2`BDUyfIZ%->RH1zNi~rPWU)HA7iKG+(f@)26$j8!#6n(t zQA2o!5_Ec(na^nF@a%1hFvRb)#ALG(g)F|7F)fS94Er0utk4tv9XPxOUaqWupH<5q zF5v~|Q&Aw4(AHveOUxyv;M^^fLPB4}^AbW0gef;&9_?_WoNXL^Kp$>vOE5AP>a&tH z5VM;J%L4oHS*n?hx`q0U{`rg)W*ISGFRHgmU;id^RLo(4TW_bOPTtA0B)CN6)TZ!Y zB@&ol}*Y?7OT_jVMZtvHyoBvf)6B^#+{}XB=>iw|!^=kdPOf_?UX`=jB=DQMC ztP9*zN*x*#r9h}+i85OWpiF$6IWb?h)Y5b{1-{IO& zgYu3>HIM(h3T?TPBhUV_wN~e%1Wu03x&m2aEdD%ku<^zsePI0iui;d?oNMP8r}iWc z%eNg-eOY7Z(Q~QIofATl-AP(2xlXeo?~1WD-}+a2jkl0-cWK^Llhw0#zm=eDYP!A6 z=v}0*^^0(b@7zg+~C*g zXZ8_$5~D;Aea<+WI|)ELvb;gbPsrXsAr#9|h`$pYCP(4s_B)i^VJ}g@ww}=GyT>j9VJiZ_3m2y6!g~; zb3L}Mmq{hg(H~y5ajw1LD>UB)OVYa+s7hpko4*QrQP2+liA3da5ikL!U7}`7FO>v* z%cYAqHkJar&6PRbrOj#sMuZ7FsV6L?j<9VAlhN@a3Jydap5fq8ifBl)Q?Fd-oZKs}W zJh4L8Y?)seYgg!b^GZ6{WgEI1(-k`Gjrv0aXZPebBM@Zi;=~i)T6iuU`v)r_Ve$iD z@XjTOueD09^lRC>iG%@`DokEtpaT$r@|&h{Hsk-yL9LcAYn8Y2rEX7)+`dZ6H^gTa zb5CByyq&+adQdulY4xDgw4U6Dn1l@aGZ^);9a;756U6ClML%(heNVdu|i zV=VdguBu~34gRi-#^UpP}utNT-mUZYQU#LJ;P^#@j@rJ|xXOjyUPs`iS z#HK|h*G?EKp2U~8^mwoP1FnfU5psR}%ih!=K^4i+DI|pp$oOP21*mUxhQaC)!rN$V zt*L`dUq-nkS$$491j?nWoRr6F3XDo`4Wevho_2qfE0yRcHHbzG6r1 zplRiH#S>F_`}m2CwqNLRmqzGNCOB3HdI+V8N3huYi21oZ0iue7DEcGZ$iQ;kXoZDt zUyM#vXD5&ghw}( z(s~tn#8hhz@s5(3@~z_JDXDR84UGlGV|r|uheCXJUSJCBYA1!U&D(o?oT!uPjKhln zqy6e4)wq78?(*La#XA9vm;kXj`_V6CmWkbAxjr$;EFcm8UbsPZo6p*lwmt#Dw{c%) zI{lEkc{*%OJnBM&;_661Q2a0E8xtcE+rLplpPd6mY$@^x>Pci*vZBh? zobnZ~IhETE6dfGAt<@9>=v}7|F!FHSbI{$;H>C0)*B(Ugx_Dcn z%P-V;0{lIOgKK)^$3c}p^TxhGmF;{#j^-mqrwLkCrJ;Gtsw_tYm1Wlk?4z;xJ{PkKy2gzk4zVaLUY8ijM{~ zrmwNWw{3%B}dOS>TH*|f8L2oYl*wOiaH_Qwwb8uLP4NdP4mBKsi0<#{qLyy zKPShpnDw$Z!B+B^(UvPvPq< z%ag63vGVH4JPArWQ4qBke;kx9Zd2VgpUZ)o-k$w9D+uSVil^66QM9j7JbjMz?JL%O z@VW8KrV$zbcX?Kv79YWGn~}72%tPiYLSY{FL?Xt_(%PuBybi#K+!7R!XU*)+XcL~n z)I*5QA>Gc~pFindZy(fUZ#n6cp6>0zldaOv{XV35?O7b#rWX3&Q#gY0RTyOq5H}x%3L1r*vIL~Z^qet5jau=y{pikQFVasBilLPM&^{yoZ5D)rkZjl?2>7! zD)MX_8zk7T_V-3?gK7&x&rge6J!CY_A1=y^_VfP$FO^!U_1p`?G{Wp)`*HuOLriiu z0#aMD)~H&myGjL;^N2_1+_iX>0~Mp>!eHYywfM}i-R6+sAxE}sAGw3mhxePGcer+p zw>@&e{QUZbJI31|IcR=zR8K6bmlaKESj#nW?pWHV-qQGyW%C9Q zvKq-~nb(qM_P$DQ6XZ}eF824;Tww;{u*m*UH3fj6>n}bNUml7WVpD9cI^yOMD~FFa z5JMktZr`Ik6quoeR(?#dU^wzrQ4WXM8j0KVH3(fby*{(v^r@4%t)Q1N@DSZRB3^g z$n-f zynI&Lm+{Lxg$PV%-hUu2lGkD~wv##Zl4FWm=MPoDv4{%M6$en%nAeaBhKYr|?*uadWJ(7T^3-DK_<3vD3sZ3Wx zm5-7Ojq$VsjA{Y1D#_Yt8Owh>9Hry=Ov|&%U-KWN^8cE@p?EbORU$3)!mY%^;To?b z-T&J-mr&B7`|!E#Bs6}M{(=?b$tQoyS>Hq&98x~y7^;lXJfzgUygWl)Jn@$mQ{q+^ zU?+Vr$-3XZN(l{~r@S*y`lF-HTLU7}B+%zL(P<`wFX(f!la1g5jF{lI8FJ6Sa z?0%)?D>zJTHpMUw>Vp&7W;sTp(`Q0!S!e`+JhDRZ#EHx#r!V+VD+96iP1VdmL|z4T zypOMve5lPM+YOr2?kw`O^WOoT5>(=VO*j#GEt-55-`>cgpwt=MkpISO*xDi5lAcxf}pS;}0%Iv@s-kAfC5i_lWHy`m7N6nN+LP zmRa?#h@^OEIK@MvH;6BBJG@JNo3&DPZ+}d*y-(}i^y1?A!7US z|BXM!9M>5wIe+Li3jU10P8H@)C#EvXE)j=_Z9I9@*F7(eiaUALv(U=lgSn)O6>HOKCZF2qy?iM?HD zY?Kow;1x_5-j57WT)s&Z=}(qD7Y9Z>vz@KPS8d1qm=LE-%~5R$$h0v{SU{y3{sR8j zU*-+HKy~O7REJhAexb37>d-2Pyp$J}E>0NCkx7Yu+G$N@tSY@eqmq}&n6>yCvif@? zOSt~mek|0_DokyI{jTGp2vW)Q5{E@Wz3N^A^OxkrTKtN~pf%IV1X7RCHv~6Kq8w=w z(^P(YKze>zPKphDmhpt;$u>eirs#T_>zcfW_aO^I*@DRu!4R`nC@EWvE_69zq~t+Q z4jLc+Mjt%-kEo6U9Jv+5esOMB@f~M~;4&5R?boB8L2S$T-jZNI~KX@lu$9#MD3njOh{D<;4 z!D&gY`9SflpQuzH=r9?}9tVraAi@xf=uG8(vCr4>S!Ka7034yKGfMZKCV+ZID3SD; zO2~18H86*SDeh{(5&Qm@v_^DjK%smb-HogVglmoP3Dn@0{cAys$9Y(S45b{iTe_Q z;(V1wqZ;be~7&g=2Y;U(@}rbG&_ z#IVn_ga#cDk{qb&#}K2guOHe=OMyfbg3CCdQSGXN{CfR}F%ja`SF_2Ku$Z2u!uPyc zid%W1cG`{)@k(S`M+~Zbzx6ufrH3hx;XOxSBgG)G;QM3_D-%2tia$PDiFDpfbooIJ zEGopSK-gO5kXgi8l1R}52ki|9Uzc*FjFwfi2-X!U?(Ss}`mYMii{yRm< zmFCw{64?bi^4vS*2IgLk$?O|_oQrt7aubkK)xIy@Tt2>e* zzyTi`Ren9)Z}wCC#g*M04YB#B7CdK|;x?~Oy*3m^lfkOrH0SXm^L$71dNlH4e%?7L zBES*R)D7Dy=UK zyJbsDEf>?K%xrsTDBEtnAoTqg6bZkO!LrY8Z~+oWx`NSwI)*WBK7W|!naod3*!$>^d=0V2aYjxdp;oi+s<)ZU9wupIi zd$Mu;Wr@09tYy&|%$wV7CN|T!bdTvA;hs$CdsX#+4v z;q)ovr6siZD7jGhud}}RLUNlxv7f@C?OoQ1qjI16Fn9R?C8+|Tbm(z!Bmq6@Z1gAX z!WSCjM+&+l5sS#J?7A{2q%j-8C2}M(!W)_Vd9T@zK`7270ehU^q=7bY-8)io?}r9N zfQfKA#>R#b4h{wvIuYe3ay^qB;b^pFs|^p|sI2akYuuyxN@@p4A-^@9Dttah3y)5o z|A>2LB{z%L>=vz7fpFqDOi^yH-J`JrMb+zPywz(+&7n9xH&0N_n#0i$nhEMYhhhI{ z>!M`gW=qeU>}?^;{aoYNQ-jm%Gbx=G-1@-A5ntez9NH){Mgxgs_$6x)bwz;HJy>ZK zml(m=&`BsPjQ=*pj;EL3ui-2@C(oL}ym)-{uz>(ULisL^Lm5ZLj*ayJy#RLODw2qm z=}mv>y13PS*H!Vq7%us&;n)Fp18G%E)QYOsaLt3m@7tG?(v3GuQU}^1BaCl8NlqC+ z95^I>B=uBp$VgC4T=a77d+5e}q0J*vvJHOsxj!CP8B%k=I*U?m3IPLl+9WKtqF-*wNtz1z>bsdENvh_VMA?~hU#;t+i_5~_V7?`MK0vC@0%vattRdr3j3E*qekYF@Z@$nNcC<|f+EpmH--Ui(bvS-6y9^B zOW8aZom#=~t7Xj@R`lr!UrqG;9CAHSUw`BW&cYA;68g0?Z4^sc4Acd`M-3*RFTBk! zKazlRGosZ@bj9`Fj$6wNjH4*ZL*jx!Wahda_eR8YCl{$z4lI*2;hn_8OG$c^t(GQ^ zqGvy!fb|1JV`D2e)wdJ3*-q7wFC}QAp_nQSDh%nt1G_t6Z|2MGTAs8OvP|^aX>WF( zGEDR6hun}i#4{2Ef9Z9;y%U7*9yo+QZotR#|zfh}>F-gvt@_A1w z?r;w^bI}@W8B;X&qjtX)8*Tnn63(pRxi<*mN%}y9=(hMzjOE^%UkxRCauq8=wrkWl z3dEe}s=lX+yrJEb@FEQ*K*I6l2W+K_?5ICdOwwytLr;*w^#tPRD^zKzFX|`= z)YJqg&zW8m(l|{+XD+MnWsum*a_sSw4`HatfJZs%Rydv9mlaA}>01noPQV;b#jgY( z!!BydaPde5c`R_*i^3kppg<{{EQZMY2-JPH)G7&l{Bx|4u?TIIiRMLTn$gmqnZ9Qm zJoy-ZavZ70o>8C1-~IjYud-il7;%yaU#>XwZ#Jd|^vPy9eFyBSuY+VFXdy}g=ZVmf z86$_EiY~8R?cFN#GaDbWD;hvg1?V#)y>1$#(Vnj;G#g!C<{SqaorC}%8SFh?#yZ6l zbcMj+1b};--o&6E+Sc5Lqd->Tk>W{_p4YQB;|$@&;S=K2Xq#1so=MLn&v8^lCjiJm zbnNHeM9lKf>~UynDJ@I+U4PQh1aQY$qZg-2Y@GvTo!8t2*@XcoI!SA~3tfh-D7;$P zO7mB$bd{-{Oc{i%N*S{}Lq?J5%5r2WbvWzRealH#GCH(xdY#$#Ff+o5(MksM>9-xM z?KP5&=Btvg)_(}_H&5S6Iu5=k(x5)K|0N`d4qTdHbOrS>dL=Bj zwE66Y5(fh1iIc6)C+Wd$jA_BL*7z!IXP3Y}U8>rkWt*^x%))OO3*gN7#7czx2ZmTQ zIGHG6+B#yo!YvH~nO2CeZG6Yl+RM#a(7!8Y&xGPky6F**ToO3pyA$r%*FR1Ke>A3} z6~d3@MO?cJriIs?{d35W8CJX=RUYNo^*N{Uepz6%dCMaqh-2q2DyfhELjRf z+wla%3PdaTjI}&fd%-FUmFJ|+OcM~0*&(l$W<_$n?stlN!P*nK;z^Oemp`UnU^s1k zZdP*rl2uh`PpMKk^n70mKOzEl-r%bil?^2A30G<7VI_At#YB=%u;MUohjS!NLilrX z%cIhhmq|)~L&rIa8%bj7VFPKf|#W?p<-C?x8sHfR3df)il zi~8^x5)o-RORvYVP@hB8tMrfY4Ws#A_3QYC!k3lm3U$Rg7ZD7Rg_4Y;-O4#a4o*a8 zHyqSn#Zw}Mb0^*fb~#*DG^G4vqx2;`LzCstVfjYwOM0?jgK3BmBlH^*PGWK^)??|H zR!-;?f=S_v5o+QF;SFLX>=I9_-OL+2T`2t}-Cg84@fQa0Y)M|GL?UT~o8L@c{N=pW zsxVipvK~L-8>0}-H*Fvg)_I);)ZZYk1)y!$D!I3_>-&)@EQ7W3^Q$5XWv` zlzD?ryOVZKqeb4lGl2KVWRBa<_O}!#KsSz*dW__E(za)AZO2&N9M4&E!^r{!xx{Mi z6!K<3ZEHGb3@XlzF78(+QagNGqOh7r? zc#>iH<~Suxr>)E5mix6yNhGj7jwPupjxfsen74X+A^s#0^-rjJ9gn? z0WA=r5;xvjfgeRgX7+FVY!SwW)(@XLGm?u-o)!jcwe8l>=GQJHaDNKct2KK9825IzHx-0*#tx~-4EC*CNUhLW4dqPHze z?Jjum{;lMBn!b5FTh(zKzS4mkTmHQ&!9G zw=NsBRo;ET6i8Ah`Q55Fx!1gGrkn_MI#)!dER1Q*2gap;pv+{SZAjM!lA^@rBOQD+ zR4bQ|)$0>IooGG6%!+{D&J(@4;osqLW6t4TCD;v9Gw1Qh_=b1E#MoN0nG5VSx4F-J zWG+q7xd?4Tf_tKKI+wy3MHbyG0DJ;O;Z`ts3}L(*zA9%tTcaH)jHUHbA2Fg<~spej)(C2rD=z@`Y{FJlW3w3He;Ux72|lv+K0dM=vBXVPzQDG$8Q83ihKOa-vW+JsJx=_k)^rQx- zO1Jf%-c439cdFlvqGGtN8Ub32*Q{t%09kDoVk7Fr^j}GcVszsuB zDVr%=U;?6OEq|`pEfoO5{lipwwu3mP+?AEV#f5JnZ&Qz*S0c`=X zVibMK7P0NZ+%&ycQ|gwG-2yFBE3K>qE$<*Lnj5&y@AW=s4x-n4ulM)){sHIAInR04 z_w(N0@5fw<=0UXHHNY556)Hd>@ zcahnzISkGUSVs|*%Xzmt%L4A-LU9V0ZHD|qcoP}iHdZeq<$KAfbEyAoBocZpR)jP~ zsWgKeIg^ll6IOI;R{=RR>qI#t92Ir~chj>&P*6IrRXkatyuPY=8t}=DHBSoAchOz{ zJNPvMR<9}+Rc+D~Jku15IX9trLjQ@75dhF;w7ej|j1IoYTS%=jUsSTI5}$M1a3MDf z^Ut@wYczGI(H#TE$LJ5VcIPMFHIB1k@Y!?HQz_90@iZXGG}cu#DKefDZUk~_n}O7b zDe0nJq~{Czbr?}hG!5l@2*o(nV~_dkL<0a1iJSg>y8ER#B00D1_LoWIj9~>};&i~`A7jU;3cVo5 z&qzml9F4!=2E^(@7`d_C2}uvctkCEohSTx16^cp}IhRhLLq6zOlnvxyB^qq>fUJ*c zt!H?MXB)y)V5;?kL>MDGKEt$;kgLrA`J91uPL29nSA=kQB}PUPp3GV4p@!r8p74KbkZj_L89BAIOy&}qb~WG=Kpaa@e6W(Mj5RWXW<8NK_L)E zM>?KE?OnAPp(Ip~t%k%bs4r_lCCpeG;C}=q0=pr`2qOV@Q)88?f4`6jS89bN(Vi)~ zoG$L?1o87Rn}h}B5B{Vs9W4o#j`lr0r`b@KR-TNdwWZ1=Xwv%8`ch$9Us3Py>n!;H z4+d!cX`Rb3O3Z1o2Kl!Uz?P`bqTr2L7ZsqY)~NTl;-w6f9CSJT%OE^A0BMk6x&<-^ zaeW4ma3cCdL@0j)A*k6C)LlZ25E23>nezm8N6BPp_PRlF0!D$bD-j~n1`6Gvs|GzF zL%{F0TcBYg-Inx_vda|X4I^KZY)4Hrw@pl`E%C$UskK&%Dk(3cBxYv#Xl1p`dwd7CyYl

>(l9KfNW&xi`0O)RPEwmfd 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

&pmQAIJ+rO#3 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

$*YnmAlChT1%ob2=A-MlzLTi5_r158h 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�Btq z*rkYPJc?N9FzJ{AuJ-X5Wu1Uo^i<5tPKG7>86cm5 zMegaC6rPT$?wgHS{n?nNC1V^3A4MNX!6f+tc)0fxthJ_N=3D@-^#V)=03)t}2MMmh zEcsg4yWm=Qm>>(&h?{`F3ByeY^EhaWlH0JBbRQ;Z_hC^5E__n~#)AbIR?jd_UxaCv ziBWesW<}3n6!k22_;Q}Zy!HjG#ry|{wywfF?KRB0R%4pffwh($FzEmfB6NR)N$a2u{xY7aZ0b;rT6i z(15aJm=-KC;F(+pJe1&|I6H)jrVxrFoG|O*q_{AYa<~uSN;hS>qbX`1O<8?7B?I9U zr@;(K|B+N21M`YnCL&dE-)MzvKlNzqi_Y@E_g;)}{seREVs9wzFx$-I7JJX5gDcz2 z6QA&&Vb(78>NN7{HuK%Z-b-mrMVmRg$a^RCRJNJRia>&1XfwYn@}5DH;bhW7-ZPBq z7uu|s4*w1}@e=Q7v*00bI4uG4uZO&oL*gJ&c-$K0fMDZ8-s#jj0cI*qfs+%LcrTy@ zFSeQYStst7+RUv>yys9SoQ!_hdj+kpf>cfKxfQ6ph z|FV=Zb9R|`yg8=Wdjjo!xy?Mg*n5Fd{)!|^&9)`pv1VUoh>5q7)8=bF8^$v5?GVf95laF}E(1Mya^VLT{y$Vjgvb17elUn6wTd_CXoVwII znwGr=DK3Qq#=j25u}+fVWX)2m64$huALA$o!FeV*gL`OdDQEnEt^2?F^E{Q87x>Q)t`U`>!j>6sPD(Ycusqp zdHLgzchBc-=JLmZYW=Fs+-se5c0&0|y%#u=x}@41~-mjl(cx6ORU zI;rUe$~x)$31XGON!`y7tIT^HP3mhif3qY5aB}ujR(5}dSWkhZb3ep-3Uq1?_`A^Y zS{}UB(gK0SD?qRBcW6rM#QA5Nd5Y=1lq4c^sp*|YGLiX?>78#NW1GKM*P16SftTJA z%b}F%4s&6-_d=2vV!l)EJ=e$&l{#7G)WzP(=CqaGV@XMvdGSi`e3CQ9TxDTIq)DFk z&LaJh=2=gBFEsL}$~cv>hrRib`LjFt7GIu=dy*M%!u9yh; z%fIzoe>oyTAz&Tpu1vFSu{XkDU7FT)m2kOv>T}*{roPx4Ng6I*x8yl*;Y73XqLcpo z|Ixqlb)wOmt^3@CF8}g~yHGBZxC>9Ood$()BTv|IfF2m^0Kjpsl1CjQ<$tIOxY*X8 zD&_E0g8#Tu$s1i#euWgHTqRFF1>`UihVyM@^RU*Oa_!P|Cl9g&(V^Xq_U8kB)|r2dz0gext1Dtau$ z+^{lcf-mKDSwo8zRw~?~aFmK?%fC_K(Qn9j$0;mSxK80#g}1&b^qv%>!>wB;wfCH1dTc)P-8g|?mls&L{usehM3TmG61`_Okm#7XtT6S!W5 zmngIoXi(w56rS|9jAzU9RoK?AQQ>{VrYkTtAga^D!e5~eo%$I?+>?=rNS$Mu3w8 zT7};VlJ}_a%nzqQ`jAi#oLE?_aGk;*gXCjAl6uJsZGGB2JVVn}xFATrT7~y3JZ|$e zNFNfmiHkQ6H∓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

eo3XQ-aCJU61EPPc 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 Da#E$S delta 968317 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∨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 RRaD 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�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�P9HcxE3 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

c#tC;SqznCnV;D|r=ps`f| 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 B0IL81 diff --git a/viewer-dist/sql-wasm.js b/viewer-dist/sql-wasm.js index d1e1049..63714f0 100644 --- a/viewer-dist/sql-wasm.js +++ b/viewer-dist/sql-wasm.js @@ -69,111 +69,111 @@ var initSqlJs = function (moduleConfig) { // The emcc-generated code and shell-post.js code goes below, // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort -var l;l||=typeof Module != 'undefined' ? Module : {};var ca=!!globalThis.window,da=!!globalThis.WorkerGlobalScope,ea=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type; -l.onRuntimeInitialized=function(){function a(e,h){switch(typeof h){case "boolean":Bc(e,h?1:0);break;case "number":Cc(e,h);break;case "string":Dc(e,h,-1,-1);break;case "object":if(null===h)Gb(e);else if(null!=h.length){var k=ha(h.length);n.set(h,k);Ec(e,k,h.length,-1);ia(k)}else Ia(e,"Wrong API use : tried to return a value of an unknown type ("+h+").",-1);break;default:Gb(e)}}function b(e,h){for(var k=[],m=0;m>>0);if(null!=e){var h=this.filename,k="/",m=h;k&&(k="string"==typeof k?k:ka(k),m=h?la(k+"/"+h):k);h=ma(!0,!0);m=na(m,h);if(e){if("string"==typeof e){k=Array(e.length);for(var q=0,r=e.length;qm||!Number.isSafeInteger(m))return-1;try{if(e){a:{var r= -e.chunkSize,y=e.cb-m;var u=0;var A=m;var F,N;for(y>k&&(y=k);uy-u&&(P=y-u);if(F=e.lb.get(K))C.set(F.subarray(S,S+P),h+u);else{var M=e.nb-A;M>P&&(M=P);if(0M&&(N=N.subarray(0,M),fa=M);0M&&C.fill(0,h+u+M,h+u+P)}u+=P;A+=P}oa=u}return oa}u=q.read(m,k);if(null==u)return 0;A=u.length;A>k&&(u=u.subarray(0,k),A=k);C.set(u,h);return A}catch(Ma){return-1}}function v(e){var h= -Z[e];e=aa[e];if(!h)return-1;if(e)return e.cb;try{var k=h.size()}catch(m){return-1}return"number"!==typeof k||0>k||!Number.isSafeInteger(k)?-1:k}function z(e,h){var k=e.chunkSize,m=[];h=h?m.push(r):y+k>h&&q.fill(0,h-y)}),m.forEach(function(q){e.lb.delete(q)}),hm||!Number.isSafeInteger(m)||0>k)return-1;try{for(var r=e.chunkSize,y=m,u=0,A,F,N,K,S;uk-u&&(K=k-u);S=e.lb.get(A);if(!S){S=new Uint8Array(r);if(K=ba)){ba>oa.length&&(ba=oa.length);P=(M=fa.read(Ma,ba))?M.length:0;P>ba&&(M=M.subarray(0,ba),P=ba);if(Pe.cb&&(e.cb=m+k);return 0}catch(Ed){return-1}}function B(e,h){e=aa[e];if(!e)return-1;h=Number(h);if(0>h||!Number.isSafeInteger(h))return-1; -try{return z(e,h),0}catch(k){return-1}}function L(){throw Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");}function hb(){var e,h,k;if(null===this.db)throw Error("Database closed");if(0===Kb(this.db))throw Error("cannot export a paged database while a transaction is open; COMMIT or ROLLBACK first");var m=aa[this.tb];var q=Z[this.tb];var r=m.chunkSize;var y=new Uint8Array(m.cb);for(e=0;em.cb-e&&(u=m.cb-e);if(h=m.lb.get(e/ -r))y.set(h.subarray(0,u),e);else if(h=m.nb-e,h>u&&(h=u),0h&&(k=k.subarray(0,h));if(!k||k.lengthNumber.MAX_SAFE_INTEGER)throw"rowId too big to fit inside a Number";e(h,m,q,Number(r))},"viiiij");Rb(this.db,this.hb,0);return this};var Z={},aa={},Oa=1,pa=null,Pa=null,jb=null,Ub=null;g.openPaged=function(e){if(!e||"function"!==typeof e.read||"function"!==typeof e.size)throw Error("openPaged requires a hostIo object with read(offset, length) and size() functions");null===pa&&(pa=G(p,"iiiij"),Pa=G(v,"di"));var h=Sb(pa,Pa);if(0!==h)throw Error("could not register the sqljs_host VFS (error code "+ -h+")");var k=Oa;Oa+=1;Z[k]=e;try{h=fd(k,J);var m=w(J,"i32");if(0!==h){var q=0!==m?ib(m):"SQLite error "+h;0!==m&&wa(m);throw Error(q);}}catch(r){throw delete Z[k],r;}e=Object.create(g.prototype);e.db=m;e.filename=null;e.tb=k;e.kb={};e.Za={};La(e.db);e.Db=L;e["export"]=L;e.close=Na;e.close=Na;return e};g.openPagedWritable=function(e){if(!e||"function"!==typeof e.read||"function"!==typeof e.size)throw Error("openPagedWritable requires a hostIo object with read(offset, length) and size() functions"); -var h=e.size();if("number"!==typeof h||0>h||!Number.isSafeInteger(h))throw Error("hostIo.size() must return a non-negative byte count");null===pa&&(pa=G(p,"iiiij"),Pa=G(v,"di"));null===jb&&(jb=G(x,"iiiij"),Ub=G(B,"iij"));var k=Sb(pa,Pa);0===k&&(k=gd(jb,Ub));if(0!==k)throw Error("could not register the sqljs_host VFS (error code "+k+")");var m=Oa;Oa+=1;Z[m]=e;a:{try{var q=e.read(16,2)}catch(u){e=4096;break a}!q||2>q.length?e=4096:(e=256*q[0]+q[1],e=1===e?65536:512<=e&&32768>=e&&0===(e&e-1)?e:4096)}aa[m]= -{chunkSize:e,lb:new Map,cb:h,nb:h};try{k=hd(m,J);var r=w(J,"i32");if(0!==k){var y=0!==r?ib(r):"SQLite error "+k;0!==r&&wa(r);throw Error(y);}}catch(u){throw delete Z[m],delete aa[m],u;}k=Object.create(g.prototype);k.db=r;k.filename=null;k.tb=m;k.kb={};k.Za={};La(k.db);k.Db=hb;k["export"]=hb;k.xc=Lb;k.exportPagedWritableOverlay=Lb;k.close=Na;k.close=Na;return k};c.prototype.bind=c.prototype.bind;c.prototype.step=c.prototype.step;c.prototype.get=c.prototype.get;c.prototype.getColumnNames=c.prototype.Pb; -c.prototype.getAsObject=c.prototype.Ob;c.prototype.getSQL=c.prototype.hc;c.prototype.getNormalizedSQL=c.prototype.dc;c.prototype.run=c.prototype.run;c.prototype.reset=c.prototype.reset;c.prototype.freemem=c.prototype.freemem;c.prototype.free=c.prototype.ib;f.prototype.next=f.prototype.next;f.prototype.getRemainingSQL=f.prototype.ec;g.prototype.run=g.prototype.run;g.prototype.exec=g.prototype.exec;g.prototype.each=g.prototype.bc;g.prototype.prepare=g.prototype.Ib;g.prototype.iterateStatements=g.prototype.kc; -g.prototype["export"]=g.prototype.Db;g.prototype.close=g.prototype.close;g.prototype.handleError=g.prototype.handleError;g.prototype.getRowsModified=g.prototype.fc;g.prototype.progress_handler=g.prototype.nc;g.prototype.interrupt=g.prototype.jc;g.prototype.create_function=g.prototype.$b;g.prototype.create_aggregate=g.prototype.Zb;g.prototype.updateHook=g.prototype.qc;l.Database=g};var Ca="./this.program",Da=(a,b)=>{throw b;},Ea=globalThis.document?.currentScript?.src; -"undefined"!=typeof __filename?Ea=__filename:da&&(Ea=self.location.href);var Fa="",Ga,Ha; -if(ea){var fs=require("node:fs");Fa=__dirname+"/";Ha=a=>{a=Ja(a)?new URL(a):a;return fs.readFileSync(a)};Ga=async a=>{a=Ja(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1{process.exitCode=a;throw b;}}else if(ca||da){try{Fa=(new URL(".",Ea)).href}catch{}da&&(Ha=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}); -Ga=async a=>{if(Ja(a))return new Promise((c,d)=>{var f=new XMLHttpRequest;f.open("GET",a,!0);f.responseType="arraybuffer";f.onload=()=>{200==f.status||0==f.status&&f.response?c(f.response):d(f.status)};f.onerror=d;f.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}var Ka=console.log.bind(console),Qa=console.error.bind(console),Ra,Sa=!1,Ta,Ja=a=>a.startsWith("file://"),n,C,Ua,H,I,Va,Wa,O; -function Xa(){var a=Ya.buffer;n=new Int8Array(a);Ua=new Int16Array(a);C=new Uint8Array(a);new Uint16Array(a);H=new Int32Array(a);I=new Uint32Array(a);Va=new Float32Array(a);Wa=new Float64Array(a);O=new BigInt64Array(a);new BigUint64Array(a)}function Za(a){l.onAbort?.(a);a="Aborted("+a+")";Qa(a);Sa=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}var $a; -async function ab(a){if(!Ra)try{var b=await Ga(a);return new Uint8Array(b)}catch{}if(a==$a&&Ra)a=new Uint8Array(Ra);else if(Ha)a=Ha(a);else throw"both async and sync fetching of the wasm failed";return a}async function bb(a,b){try{var c=await ab(a);return await WebAssembly.instantiate(c,b)}catch(d){Qa(`failed to asynchronously prepare wasm: ${d}`),Za(d)}} -async function cb(a){var b=$a;if(!Ra&&!Ja(b)&&!ea)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){Qa(`wasm streaming compile failed: ${d}`),Qa("falling back to ArrayBuffer instantiation")}return bb(b,a)}class db{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var eb=a=>{for(;0{var a=l.preRun.shift();gb.push(a)},lb=0,mb=null; -function w(a,b="i8"){b.endsWith("*")&&(b="*");switch(b){case "i1":return n[a];case "i8":return n[a];case "i16":return Ua[a>>1];case "i32":return H[a>>2];case "i64":return O[a>>3];case "float":return Va[a>>2];case "double":return Wa[a>>3];case "*":return I[a>>2];default:Za(`invalid type for getValue: ${b}`)}}var nb=!0; -function ya(a){var b="i32";b.endsWith("*")&&(b="*");switch(b){case "i1":n[a]=0;break;case "i8":n[a]=0;break;case "i16":Ua[a>>1]=0;break;case "i32":H[a>>2]=0;break;case "i64":O[a>>3]=BigInt(0);break;case "float":Va[a>>2]=0;break;case "double":Wa[a>>3]=0;break;case "*":I[a>>2]=0;break;default:Za(`invalid type for setValue: ${b}`)}} -var ob=new TextDecoder,pb=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},E=(a,b,c)=>a?ob.decode(C.subarray(a,pb(C,a,b,c))):"",qb=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},la=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=qb(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},rb=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1); -a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},sb=a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],tb=()=>{if(ea){var a=require("node:crypto");return b=>a.randomFillSync(b)}return b=>crypto.getRandomValues(b)},ub=a=>{(ub=tb())(a)},vb=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=qb(b.split("/").filter(f=>!!f),!c).join("/");return(c?"/": -"")+b||"."},wb=a=>{var b=pb(a,0);return ob.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},xb=[],yb=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},Q=(a,b,c,d)=>{if(!(0=p){if(c>=d)break;b[c++]=p}else if(2047>=p){if(c+1>=d)break;b[c++]=192|p>>6;b[c++]=128|p&63}else if(65535>=p){if(c+2>=d)break;b[c++]=224|p>>12;b[c++]=128| -p>>6&63;b[c++]=128|p&63}else{if(c+3>=d)break;b[c++]=240|p>>18;b[c++]=128|p>>12&63;b[c++]=128|p>>6&63;b[c++]=128|p&63;g++}}b[c]=0;return c-f},zb=[];function Ab(a,b){zb[a]={input:[],output:[],sb:b};Bb(a,Cb)} -var Cb={open(a){var b=zb[a.node.rdev];if(!b)throw new R(43);a.tty=b;a.seekable=!1},close(a){a.tty.sb.fsync(a.tty)},fsync(a){a.tty.sb.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.sb.Rb)throw new R(60);for(var f=0,g=0;g=a.node.$a)return 0;a=Math.min(a.node.$a-f,d);if(8=g||(g=Math.max(g,p*(1048576>p?2:1.125)>>>0),0!=p&&(g=Math.max(g,256)),p=a.Va,a.Va=new Uint8Array(g),0b)throw new R(28); -return b},yb(a,b,c,d,f){if(32768!==(a.node.mode&61440))throw new R(43);a=a.node.Va;if(f&2||!a||a.buffer!==n.buffer){f=!0;d=65536*Math.ceil(b/65536);var g=Vb(65536,d);g&&C.fill(0,g,g+d);d=g;if(!d)throw new R(48);if(a){if(0{var c=0;a&&(c|=365);b&&(c|=146);return c},Wb=null,Xb={},Yb=[],Zb=1,$b=null,ac= -!1,bc=!0,cc={},R=class{name="ErrnoError";constructor(a){this.Xa=a}},dc=class{wb={};node=null;get flags(){return this.wb.flags}set flags(a){this.wb.flags=a}get position(){return this.wb.position}set position(a){this.wb.position=a}},ec=class{Ta={};Ua={};qb=null;constructor(a,b,c,d){a||=this;this.parent=a;this.jb=a.jb;this.id=Zb++;this.name=b;this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146=== +var l;l||=typeof Module != 'undefined' ? Module : {};var da=!!globalThis.window,ea=!!globalThis.WorkerGlobalScope,fa=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type; +l.onRuntimeInitialized=function(){function a(e,g){Fb(e,g instanceof Error?g.message:String(g),-1)}function b(e,g){switch(typeof g){case "boolean":Ec(e,g?1:0);break;case "number":Fc(e,g);break;case "string":Gc(e,g,p(g),-1);break;case "object":if(null===g)Gb(e);else if(null!=g.length){var k=ha(g.length);w.set(g,k);Hc(e,k,g.length,-1);ja(k)}else Fb(e,"Wrong API use : tried to return a value of an unknown type ("+g+").",-1);break;default:Gb(e)}}function c(e,g){for(var k=[],n=0;n>>0);if(null!=e){var g=this.filename,k="/",n=g;k&&(k="string"==typeof k?k:la(k),n=g?ma(k+"/"+g):k);g=na(!0,!0);n=oa(n,g);if(e){if("string"==typeof e){k=Array(e.length);for(var q=0,r=e.length;qn||!Number.isSafeInteger(n))return-1;try{if(e){a:{var r=e.chunkSize,y=e.cb-n;var t=0;var F=n;var D,I;for(y>k&&(y=k);ty-t&&(M=y-t);if(D=e.mb.get(Q))G.set(D.subarray(O,O+M),g+t);else{var J=e.nb-F;J>M&&(J=M);if(0J&&(I=I.subarray(0,J),ia=J);0J&&G.fill(0,g+t+J,g+t+M)}t+=M;F+=M}ra=t}return ra}t=q.read(n,k);if(null==t)return 0;F=t.length;F>k&&(t=t.subarray(0,k),F=k);G.set(t,g);return F}catch(La){return-1}}function A(e){var g=aa[e];e=ba[e];if(!g)return-1;if(e)return e.cb;try{var k=g.size()}catch(n){return-1}return"number"!==typeof k||0>k||!Number.isSafeInteger(k)?-1:k}function N(e,g){var k=e.chunkSize,n=[];g=g?n.push(r):y+k>g&&q.fill(0,g-y)}),n.forEach(function(q){e.mb.delete(q)}), +gn||!Number.isSafeInteger(n)||0>k)return-1;try{for(var r=e.chunkSize,y=n,t=0,F,D,I,Q,O;tk-t&&(Q=k-t);O=e.mb.get(F);if(!O){O=new Uint8Array(r);if(Q=ca)){ca>ra.length&&(ca=ra.length);M=(J=ia.read(La,ca))?J.length:0;M>ca&&(J=J.subarray(0,ca),M=ca);if(Me.cb&&(e.cb=n+k);return 0}catch(Gd){return-1}}function Pc(e,g){e=ba[e];if(!e)return-1;g=Number(g);if(0>g||!Number.isSafeInteger(g))return-1;try{return N(e,g),0}catch(k){return-1}}function Mb(){throw Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");}function Nb(){var e,g,k;if(null===this.db)throw Error("Database closed");if(0===Ob(this.db))throw Error("cannot export a paged database while a transaction is open; COMMIT or ROLLBACK first"); +var n=ba[this.tb];var q=aa[this.tb];var r=n.chunkSize;var y=new Uint8Array(n.cb);for(e=0;en.cb-e&&(t=n.cb-e);if(g=n.mb.get(e/r))y.set(g.subarray(0,t),e);else if(g=n.nb-e,g>t&&(g=t),0g&&(k=k.subarray(0,g));if(!k||k.lengthNumber.MAX_SAFE_INTEGER)throw"rowId too big to fit inside a Number";e(g,n,q,Number(r))},"viiiij");Ub(this.db,this.ib,0);return this};var aa={},ba={},Na=1,sa=null,Oa=null,ib=null,Xb=null;m.openPaged=function(e){if(!e||"function"!==typeof e.read||"function"!==typeof e.size)throw Error("openPaged requires a hostIo object with read(offset, length) and size() functions"); +null===sa&&(sa=H(x,"iiiij"),Oa=H(A,"di"));var g=Vb(sa,Oa);if(0!==g)throw Error("could not register the sqljs_host VFS (error code "+g+")");var k=Na;Na+=1;aa[k]=e;try{g=hd(k,L);var n=B(L,"i32");if(0!==g){var q=0!==n?hb(n):"SQLite error "+g;0!==n&&xa(n);throw Error(q);}}catch(r){throw delete aa[k],r;}e=Object.create(m.prototype);e.db=n;e.filename=null;e.tb=k;e.lb={};e.$a=new Map;Ka(e.db);e.Eb=Mb;e["export"]=Mb;e.close=Ma;e.close=Ma;return e};m.openPagedWritable=function(e){if(!e||"function"!==typeof e.read|| +"function"!==typeof e.size)throw Error("openPagedWritable requires a hostIo object with read(offset, length) and size() functions");var g=e.size();if("number"!==typeof g||0>g||!Number.isSafeInteger(g))throw Error("hostIo.size() must return a non-negative byte count");null===sa&&(sa=H(x,"iiiij"),Oa=H(A,"di"));null===ib&&(ib=H(Lb,"iiiij"),Xb=H(Pc,"iij"));var k=Vb(sa,Oa);0===k&&(k=jd(ib,Xb));if(0!==k)throw Error("could not register the sqljs_host VFS (error code "+k+")");var n=Na;Na+=1;aa[n]=e;a:{try{var q= +e.read(16,2)}catch(t){e=4096;break a}!q||2>q.length?e=4096:(e=256*q[0]+q[1],e=1===e?65536:512<=e&&32768>=e&&0===(e&e-1)?e:4096)}ba[n]={chunkSize:e,mb:new Map,cb:g,nb:g};try{k=kd(n,L);var r=B(L,"i32");if(0!==k){var y=0!==r?hb(r):"SQLite error "+k;0!==r&&xa(r);throw Error(y);}}catch(t){throw delete aa[n],delete ba[n],t;}k=Object.create(m.prototype);k.db=r;k.filename=null;k.tb=n;k.lb={};k.$a=new Map;Ka(k.db);k.Eb=Nb;k["export"]=Nb;k.xc=Pb;k.exportPagedWritableOverlay=Pb;k.close=Ma;k.close=Ma;return k}; +d.prototype.bind=d.prototype.bind;d.prototype.step=d.prototype.step;d.prototype.get=d.prototype.get;d.prototype.getColumnNames=d.prototype.Pb;d.prototype.getAsObject=d.prototype.Ob;d.prototype.getSQL=d.prototype.ic;d.prototype.getNormalizedSQL=d.prototype.ec;d.prototype.run=d.prototype.run;d.prototype.reset=d.prototype.reset;d.prototype.freemem=d.prototype.freemem;d.prototype.free=d.prototype.fb;h.prototype.next=h.prototype.next;h.prototype.getRemainingSQL=h.prototype.fc;m.prototype.run=m.prototype.run; +m.prototype.exec=m.prototype.exec;m.prototype.each=m.prototype.cc;m.prototype.prepare=m.prototype.Ib;m.prototype.iterateStatements=m.prototype.kc;m.prototype["export"]=m.prototype.Eb;m.prototype.close=m.prototype.close;m.prototype.handleError=m.prototype.handleError;m.prototype.getRowsModified=m.prototype.hc;m.prototype.progress_handler=m.prototype.nc;m.prototype.interrupt=m.prototype.jc;m.prototype.create_function=m.prototype.ac;m.prototype.create_aggregate=m.prototype.$b;m.prototype.updateHook= +m.prototype.qc;l.Database=m};var Da="./this.program",Ea=(a,b)=>{throw b;},Fa=globalThis.document?.currentScript?.src;"undefined"!=typeof __filename?Fa=__filename:ea&&(Fa=self.location.href);var Ga="",Ha,Ia; +if(fa){var fs=require("node:fs");Ga=__dirname+"/";Ia=a=>{a=Ja(a)?new URL(a):a;return fs.readFileSync(a)};Ha=async a=>{a=Ja(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1{process.exitCode=a;throw b;}}else if(da||ea){try{Ga=(new URL(".",Fa)).href}catch{}ea&&(Ia=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}); +Ha=async a=>{if(Ja(a))return new Promise((c,d)=>{var f=new XMLHttpRequest;f.open("GET",a,!0);f.responseType="arraybuffer";f.onload=()=>{200==f.status||0==f.status&&f.response?c(f.response):d(f.status)};f.onerror=d;f.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}var Pa=console.log.bind(console),Qa=console.error.bind(console),Ra,Sa=!1,Ta,Ja=a=>a.startsWith("file://"),w,G,Ua,K,P,Va,Wa,R; +function Xa(){var a=Ya.buffer;w=new Int8Array(a);Ua=new Int16Array(a);G=new Uint8Array(a);new Uint16Array(a);K=new Int32Array(a);P=new Uint32Array(a);Va=new Float32Array(a);Wa=new Float64Array(a);R=new BigInt64Array(a);new BigUint64Array(a)}function Za(a){l.onAbort?.(a);a="Aborted("+a+")";Qa(a);Sa=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}var $a; +async function ab(a){if(!Ra)try{var b=await Ha(a);return new Uint8Array(b)}catch{}if(a==$a&&Ra)a=new Uint8Array(Ra);else if(Ia)a=Ia(a);else throw"both async and sync fetching of the wasm failed";return a}async function bb(a,b){try{var c=await ab(a);return await WebAssembly.instantiate(c,b)}catch(d){Qa(`failed to asynchronously prepare wasm: ${d}`),Za(d)}} +async function cb(a){var b=$a;if(!Ra&&!Ja(b)&&!fa)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){Qa(`wasm streaming compile failed: ${d}`),Qa("falling back to ArrayBuffer instantiation")}return bb(b,a)}class db{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var eb=a=>{for(;0{var a=l.preRun.shift();jb.push(a)},lb=0,mb=null; +function B(a,b="i8"){b.endsWith("*")&&(b="*");switch(b){case "i1":return w[a];case "i8":return w[a];case "i16":return Ua[a>>1];case "i32":return K[a>>2];case "i64":return R[a>>3];case "float":return Va[a>>2];case "double":return Wa[a>>3];case "*":return P[a>>2];default:Za(`invalid type for getValue: ${b}`)}}var nb=!0; +function za(a){var b="i32";b.endsWith("*")&&(b="*");switch(b){case "i1":w[a]=0;break;case "i8":w[a]=0;break;case "i16":Ua[a>>1]=0;break;case "i32":K[a>>2]=0;break;case "i64":R[a>>3]=BigInt(0);break;case "float":Va[a>>2]=0;break;case "double":Wa[a>>3]=0;break;case "*":P[a>>2]=0;break;default:Za(`invalid type for setValue: ${b}`)}} +var ob=new TextDecoder,pb=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},C=(a,b,c)=>a?ob.decode(G.subarray(a,pb(G,a,b,c))):"",qb=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},ma=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=qb(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},rb=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1); +a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},sb=a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],tb=()=>{if(fa){var a=require("node:crypto");return b=>a.randomFillSync(b)}return b=>crypto.getRandomValues(b)},ub=a=>{(ub=tb())(a)},vb=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=qb(b.split("/").filter(f=>!!f),!c).join("/");return(c?"/": +"")+b||"."},wb=a=>{var b=pb(a,0);return ob.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},xb=[],p=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},S=(a,b,c,d)=>{if(!(0=m){if(c>=d)break;b[c++]=m}else if(2047>=m){if(c+1>=d)break;b[c++]=192|m>>6;b[c++]=128|m&63}else if(65535>=m){if(c+2>=d)break;b[c++]=224|m>>12;b[c++]=128| +m>>6&63;b[c++]=128|m&63}else{if(c+3>=d)break;b[c++]=240|m>>18;b[c++]=128|m>>12&63;b[c++]=128|m>>6&63;b[c++]=128|m&63;h++}}b[c]=0;return c-f},yb=[];function zb(a,b){yb[a]={input:[],output:[],sb:b};Ab(a,Bb)} +var Bb={open(a){var b=yb[a.node.rdev];if(!b)throw new T(43);a.tty=b;a.seekable=!1},close(a){a.tty.sb.fsync(a.tty)},fsync(a){a.tty.sb.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.sb.Sb)throw new T(60);for(var f=0,h=0;h=a.node.Za)return 0;a=Math.min(a.node.Za-f,d);if(8=h||(h=Math.max(h,m*(1048576>m?2:1.125)>>>0),0!=m&&(h=Math.max(h,256)),m=a.Va,a.Va=new Uint8Array(h),0b)throw new T(28); +return b},zb(a,b,c,d,f){if(32768!==(a.node.mode&61440))throw new T(43);a=a.node.Va;if(f&2||!a||a.buffer!==w.buffer){f=!0;d=65536*Math.ceil(b/65536);var h=Yb(65536,d);h&&G.fill(0,h,h+d);d=h;if(!d)throw new T(48);if(a){if(0{var c=0;a&&(c|=365);b&&(c|=146);return c},Zb=null,$b={},ac=[],bc=1,cc=null,dc= +!1,ec=!0,fc={},T=class{name="ErrnoError";constructor(a){this.Xa=a}},gc=class{wb={};node=null;get flags(){return this.wb.flags}set flags(a){this.wb.flags=a}get position(){return this.wb.position}set position(a){this.wb.position=a}},hc=class{Ta={};Ua={};qb=null;constructor(a,b,c,d){a||=this;this.parent=a;this.kb=a.kb;this.id=bc++;this.name=b;this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146=== (this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}}; -function V(a,b={}){if(!a)throw new R(44);b.Fb??(b.Fb=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(v=>!!v);for(var d=Wb,f="/",g=0;g>>0)%$b.length} -function Tb(a){var b=fc(a.parent.id,a.name);if($b[b]===a)$b[b]=a.rb;else for(b=$b[b];b;){if(b.rb===a){b.rb=a.rb;break}b=b.rb}}function Ib(a,b){var c=U(a.mode)?(c=gc(a,"x"))?c:a.Ta.lookup?0:2:54;if(c)throw new R(c);for(c=$b[fc(a.id,b)];c;c=c.rb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Ta.lookup(a,b)}function Hb(a,b,c,d){a=new ec(a,b,c,d);b=fc(a.parent.id,a.name);a.rb=$b[b];return $b[b]=a}function U(a){return 16384===(a&61440)} -function hc(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b}function gc(a,b){if(bc)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0}function ic(a,b){if(!U(a.mode))return 54;try{return Ib(a,b),20}catch(c){}return gc(a,"wx")} -function jc(a,b,c){try{var d=Ib(a,b)}catch(f){return f.Xa}if(a=gc(a,"wx"))return a;if(c){if(!U(d.mode))return 54;if(d===d.parent||"/"===ka(d))return 10}else if(U(d.mode))return 31;return 0}function kc(a){if(!a)throw new R(63);return a}function W(a){a=Yb[a];if(!a)throw new R(8);return a}function lc(a,b=-1){a=Object.assign(new dc,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!Yb[b])break a;throw new R(33);}a.fd=b;return Yb[b]=a}function mc(a,b=-1){a=lc(a,b);a.Ua?.wc?.(a);return a} -function nc(a,b,c){var d=a?.Ua.eb;a=d?a:b;d??=b.Ta.eb;kc(d);d(a,c)}var Fb={open(a){a.Ua=Xb[a.node.rdev].Ua;a.Ua.open?.(a)},fb(){throw new R(70);}};function Bb(a,b){Xb[a]={Ua:b}}function oc(a,b){var c="/"===b;if(c&&Wb)throw new R(10);if(!c&&b){var d=V(b,{Fb:!1});b=d.path;d=d.node;if(d.qb)throw new R(10);if(!U(d.mode))throw new R(54);}b={type:a,Cc:{},Tb:b,lc:[]};a=a.jb(b);a.jb=b;b.root=a;c?Wb=a:d&&(d.qb=b,d.jb&&d.jb.lc.push(b))} -function pc(a,b,c){var d=V(a,{parent:!0}).node;a=sb(a);if(!a)throw new R(28);if("."===a||".."===a)throw new R(20);var f=ic(d,a);if(f)throw new R(f);if(!d.Ta.xb)throw new R(63);return d.Ta.xb(d,a,b,c)}function na(a,b=438){return pc(a,b&4095|32768,0)}function X(a,b=511){return pc(a,b&1023|16384,0)}function qc(a,b,c){"undefined"==typeof c&&(c=b,b=438);pc(a,b|8192,c)} -function rc(a,b){if(!vb(a))throw new R(44);var c=V(b,{parent:!0}).node;if(!c)throw new R(44);b=sb(b);var d=ic(c,b);if(d)throw new R(d);if(!c.Ta.symlink)throw new R(63);c.Ta.symlink(c,b,a)}function sc(a){var b=V(a,{parent:!0}).node;a=sb(a);var c=Ib(b,a),d=jc(b,a,!0);if(d)throw new R(d);if(!b.Ta.rmdir)throw new R(63);if(c.qb)throw new R(10);b.Ta.rmdir(b,a);Tb(c)} -function Ba(a){var b=V(a,{parent:!0}).node;if(!b)throw new R(44);a=sb(a);var c=Ib(b,a),d=jc(b,a,!1);if(d)throw new R(d);if(!b.Ta.unlink)throw new R(63);if(c.qb)throw new R(10);b.Ta.unlink(b,a);Tb(c)}function tc(a,b){a=V(a,{pb:!b}).node;return kc(a.Ta.bb)(a)}function uc(a,b,c,d){nc(a,b,{mode:c&4095|b.mode&-4096,ctime:Date.now(),ac:d})}function qa(a,b){a="string"==typeof a?V(a,{pb:!0}).node:a;uc(null,a,b)} -function vc(a,b,c){if(U(b.mode))throw new R(31);if(32768!==(b.mode&61440))throw new R(28);var d=gc(b,"w");if(d)throw new R(d);nc(a,b,{size:c,timestamp:Date.now()})} -function ra(a,b,c=438){if(""===a)throw new R(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?c&4095|32768:0;if("object"==typeof a)d=a;else{var f=a.endsWith("/");a=V(a,{pb:!(b&131072),mc:!0});d=a.node;a=a.path}var g=!1;if(b&64)if(d){if(b&128)throw new R(20);}else{if(f)throw new R(31);d=pc(a,c|511,0);g=!0}if(!d)throw new R(44);8192===(d.mode&61440)&&(b&=-513);if(b&65536&&!U(d.mode))throw new R(54); -if(!g&&(f=d?40960===(d.mode&61440)?32:U(d.mode)&&("r"!==hc(b)||b&576)?31:gc(d,hc(b)):44))throw new R(f);b&512&&!g&&(f=d,f="string"==typeof f?V(f,{pb:!0}).node:f,vc(null,f,0));b&=-131713;f=lc({node:d,path:ka(d),flags:b,seekable:!0,position:0,Ua:d.Ua,pc:[],error:!1});f.Ua.open&&f.Ua.open(f);g&&qa(d,c&511);!l.logReadFiles||b&1||a in cc||(cc[a]=1);return f}function ta(a){if(null===a.fd)throw new R(8);a.Gb&&(a.Gb=null);try{a.Ua.close&&a.Ua.close(a)}catch(b){throw b;}finally{Yb[a.fd]=null}a.fd=null} -function wc(a,b,c){if(null===a.fd)throw new R(8);if(!a.seekable||!a.Ua.fb)throw new R(70);if(0!=c&&1!=c&&2!=c)throw new R(28);a.position=a.Ua.fb(a,b,c);a.pc=[]}function xc(a,b,c,d,f){if(0>d||0>f)throw new R(28);if(null===a.fd)throw new R(8);if(1===(a.flags&2097155))throw new R(8);if(U(a.node.mode))throw new R(31);if(!a.Ua.read)throw new R(28);var g="undefined"!=typeof f;if(!g)f=a.position;else if(!a.seekable)throw new R(70);b=a.Ua.read(a,b,c,d,f);g||(a.position+=b);return b} -function sa(a,b,c,d,f){if(0>d||0>f)throw new R(28);if(null===a.fd)throw new R(8);if(0===(a.flags&2097155))throw new R(8);if(U(a.node.mode))throw new R(31);if(!a.Ua.write)throw new R(28);a.seekable&&a.flags&1024&&wc(a,0,2);var g="undefined"!=typeof f;if(!g)f=a.position;else if(!a.seekable)throw new R(70);b=a.Ua.write(a,b,c,d,f,void 0);g||(a.position+=b);return b} -function Aa(a){var b=b||0;var c="binary";"utf8"!==c&&"binary"!==c&&Za(`Invalid encoding type "${c}"`);b=ra(a,b);a=tc(a).size;var d=new Uint8Array(a);xc(b,d,0,a,0);"utf8"===c&&(d=wb(d));ta(b);return d} -function yc(a,b,c){a=la("/dev/"+a);var d=ma(!!b,!!c);yc.Sb??(yc.Sb=64);var f=yc.Sb++<<8|0;Bb(f,{open(g){g.seekable=!1},close(){c?.buffer?.length&&c(10)},read(g,p,v,z){for(var x=0,B=0;B>2]=b.dev;I[a+4>>2]=b.mode;I[a+8>>2]=b.nlink;I[a+12>>2]=b.uid;I[a+16>>2]=b.gid;I[a+20>>2]=b.rdev;O[a+24>>3]=BigInt(b.size);H[a+32>>2]=4096;H[a+36>>2]=b.blocks;var c=b.atime.getTime(),d=b.mtime.getTime(),f=b.ctime.getTime();O[a+40>>3]=BigInt(Math.floor(c/1E3));I[a+48>>2]=c%1E3*1E6;O[a+56>>3]=BigInt(Math.floor(d/1E3));I[a+64>>2]=d%1E3*1E6;O[a+72>>3]=BigInt(Math.floor(f/1E3));I[a+80>>2]=f%1E3*1E6;O[a+88>>3]=BigInt(b.ino);return 0} -var Mc=void 0,jd=()=>{var a=H[+Mc>>2];Mc+=4;return a},kd=0,ld=[0,31,60,91,121,152,182,213,244,274,305,335],md=[0,31,59,90,120,151,181,212,243,273,304,334],nd={},od=a=>{Ta=a;nb||0{if(!Sa)try{a()}catch(b){b instanceof db||"unwind"==b||Da(1,b)}finally{if(!(nb||0{if(!rd){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language?? -"C").replace("-","_")+".UTF-8",_:Ca||"./this.program"},b;for(b in qd)void 0===qd[b]?delete a[b]:a[b]=qd[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);rd=c}return rd},rd,td=(a,b,c,d)=>{var f={string:x=>{var B=0;if(null!==x&&void 0!==x&&0!==x){B=yb(x)+1;var L=ua(B);Q(x,C,L,B);B=L}return B},array:x=>{var B=ua(x.length);n.set(x,B);return B}};a=l["_"+a];var g=[],p=0;if(d)for(var v=0;v{var b=yb(a)+1,c=ha(b);c&&Q(a,C,c,b);return c},ud,vd=[],D=a=>{ud.delete(wd.get(a));wd.set(a,null);vd.push(a)},xd=a=>{const b=a.length;return[b%128|128,b>>7,...a]},yd={i:127,p:127,j:126,f:125,d:124,e:111},zd=a=>xd(Array.from(a,b=>yd[b])),G=(a,b)=>{if(!ud){ud=new WeakMap;var c=wd.length;if(ud)for(var d=0;d<0+c;d++){var f=wd.get(d);f&&ud.set(f,d)}}if(c=ud.get(a)||0)return c;c=vd.length?vd.pop():wd.grow(1);try{wd.set(c,a)}catch(g){if(!(g instanceof TypeError))throw g; -b=Uint8Array.of(0,97,115,109,1,0,0,0,1,...xd([1,96,...zd(b.slice(1)),...zd("v"===b[0]?"":b[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(b);b=(new WebAssembly.Instance(b,{e:{f:a}})).exports.f;wd.set(c,b)}ud.set(a,c);return c};$b=Array(4096);oc(T,"/");X("/tmp");X("/home");X("/home/web_user"); -(function(){X("/dev");Bb(259,{read:()=>0,write:(d,f,g,p)=>p,fb:()=>0});qc("/dev/null",259);Ab(1280,Db);Ab(1536,Eb);qc("/dev/tty",1280);qc("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(ub(a),b=a.byteLength);return a[--b]};yc("random",c);yc("urandom",c);X("/dev/shm");X("/dev/shm/tmp")})(); -(function(){X("/proc");var a=X("/proc/self");X("/proc/self/fd");oc({jb(){var b=Hb(a,"fd",16895,73);b.Ua={fb:T.Ua.fb};b.Ta={lookup(c,d){c=+d;var f=W(c);c={parent:null,jb:{Tb:"fake"},Ta:{readlink:()=>f.path},id:c+1};return c.parent=c},readdir(){return Array.from(Yb.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();l.noExitRuntime&&(nb=l.noExitRuntime);l.print&&(Ka=l.print);l.printErr&&(Qa=l.printErr);l.wasmBinary&&(Ra=l.wasmBinary);l.thisProgram&&(Ca=l.thisProgram); -if(l.preInit)for("function"==typeof l.preInit&&(l.preInit=[l.preInit]);0xa();l.stackRestore=a=>za(a);l.stackAlloc=a=>ua(a);l.cwrap=(a,b,c,d)=>{var f=!c||c.every(g=>"number"===g||"boolean"===g);return"string"!==b&&f&&!d?l["_"+a]:(...g)=>td(a,b,c,g)};l.addFunction=G;l.removeFunction=D;l.UTF8ToString=E;l.stringToNewUTF8=ja;l.writeArrayToMemory=(a,b)=>{n.set(a,b)}; -var ha,ia,Vb,Ad,za,ua,xa,Ya,wd,Bd={a:(a,b,c,d)=>Za(`Assertion failed: ${E(a)}, at: `+[b?E(b):"unknown filename",c,d?E(d):"unknown function"]),i:function(a,b){try{return a=E(a),qa(a,b),0}catch(c){if("undefined"==typeof Y||"ErrnoError"!==c.name)throw c;return-c.Xa}},L:function(a,b,c){try{b=E(b);b=zc(a,b);if(c&-8)return-28;var d=V(b,{pb:!0}).node;if(!d)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&gc(d,a)?-2:0}catch(f){if("undefined"==typeof Y||"ErrnoError"!==f.name)throw f;return-f.Xa}}, -j:function(a,b){try{var c=W(a);uc(c,c.node,b,!1);return 0}catch(d){if("undefined"==typeof Y||"ErrnoError"!==d.name)throw d;return-d.Xa}},h:function(a){try{var b=W(a);nc(b,b.node,{timestamp:Date.now(),ac:!1});return 0}catch(c){if("undefined"==typeof Y||"ErrnoError"!==c.name)throw c;return-c.Xa}},b:function(a,b,c){Mc=c;try{var d=W(a);switch(b){case 0:var f=jd();if(0>f)break;for(;Yb[f];)f++;return mc(d,f).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=jd(),d.flags|=f,0;case 12:return f= -jd(),Ua[f+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(g){if("undefined"==typeof Y||"ErrnoError"!==g.name)throw g;return-g.Xa}},g:function(a,b){try{var c=W(a),d=c.node,f=c.Ua.bb;a=f?c:d;f??=d.Ta.bb;kc(f);var g=f(a);return Ac(b,g)}catch(p){if("undefined"==typeof Y||"ErrnoError"!==p.name)throw p;return-p.Xa}},H:function(a,b){b=-9007199254740992>b||9007199254740992b||0===(c.flags&2097155))throw new R(28);vc(c,c.node,b);return 0}catch(d){if("undefined"== -typeof Y||"ErrnoError"!==d.name)throw d;return-d.Xa}},G:function(a,b){try{if(0===b)return-28;var c=yb("/")+1;if(b=d)return-28;var f=V(b).node;if(!f)throw new R(44);if(!f.Ta.readlink)throw new R(28);var g=f.Ta.readlink(f);var p=Math.min(d,yb(g)),v=n[c+p]; -Q(g,C,c,d+1);n[c+p]=v;return p}catch(z){if("undefined"==typeof Y||"ErrnoError"!==z.name)throw z;return-z.Xa}},u:function(a){try{return a=E(a),sc(a),0}catch(b){if("undefined"==typeof Y||"ErrnoError"!==b.name)throw b;return-b.Xa}},f:function(a,b){try{return a=E(a),Ac(b,tc(a))}catch(c){if("undefined"==typeof Y||"ErrnoError"!==c.name)throw c;return-c.Xa}},r:function(a,b,c){try{b=E(b);b=zc(a,b);if(c)if(512===c)sc(b);else return-28;else Ba(b);return 0}catch(d){if("undefined"==typeof Y||"ErrnoError"!==d.name)throw d; -return-d.Xa}},q:function(a,b,c){try{b=E(b);b=zc(a,b,!0);var d=Date.now(),f,g;if(c){var p=I[c>>2]+4294967296*H[c+4>>2],v=H[c+8>>2];1073741823==v?f=d:1073741822==v?f=null:f=1E3*p+v/1E6;c+=16;p=I[c>>2]+4294967296*H[c+4>>2];v=H[c+8>>2];1073741823==v?g=d:1073741822==v?g=null:g=1E3*p+v/1E6}else g=f=d;if(null!==(g??f)){a=f;var z=V(b,{pb:!0}).node;kc(z.Ta.eb)(z,{atime:a,mtime:g})}return 0}catch(x){if("undefined"==typeof Y||"ErrnoError"!==x.name)throw x;return-x.Xa}},m:()=>Za(""),l:()=>{nb=!1;kd=0},A:function(a, -b){a=-9007199254740992>a||9007199254740992>2]=a.getSeconds();H[b+4>>2]=a.getMinutes();H[b+8>>2]=a.getHours();H[b+12>>2]=a.getDate();H[b+16>>2]=a.getMonth();H[b+20>>2]=a.getFullYear()-1900;H[b+24>>2]=a.getDay();var c=a.getFullYear();H[b+28>>2]=(0!==c%4||0===c%100&&0!==c%400?md:ld)[a.getMonth()]+a.getDate()-1|0;H[b+36>>2]=-(60*a.getTimezoneOffset());c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset(); -H[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0},y:function(a,b,c,d,f,g,p){f=-9007199254740992>f||9007199254740992>2]=z.Ub;I[p>>2]=x;return 0}catch(B){if("undefined"==typeof Y||"ErrnoError"!==B.name)throw B;return-B.Xa}},z:function(a,b,c,d,f,g){g=-9007199254740992>g|| -9007199254740992{nd[a]&&(clearTimeout(nd[a].id),delete nd[a]);if(!b)return 0;var c=setTimeout(()=>{delete nd[a];pd(()=>Ad(a,performance.now()))},b);nd[a]={id:c,Dc:b};return 0},B:(a,b,c,d)=>{var f=(new Date).getFullYear(),g=(new Date(f,0,1)).getTimezoneOffset(); -f=(new Date(f,6,1)).getTimezoneOffset();I[a>>2]=60*Math.max(g,f);H[b>>2]=Number(g!=f);b=p=>{var v=Math.abs(p);return`UTC${0<=p?"-":"+"}${String(Math.floor(v/60)).padStart(2,"0")}${String(v%60).padStart(2,"0")}`};a=b(g);b=b(f);fDate.now(),s:()=>2147483648,c:()=>performance.now(),o:a=>{var b=C.length;a>>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a, -d)/65536))-Ya.buffer.byteLength+65535)/65536|0;try{Ya.grow(d);Xa();var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},E:(a,b)=>{var c=0,d=0,f;for(f of sd()){var g=b+c;I[a+d>>2]=g;c+=Q(f,C,g,Infinity)+1;d+=4}return 0},F:(a,b)=>{var c=sd();I[a>>2]=c.length;a=0;for(var d of c)a+=yb(d)+1;I[b>>2]=a;return 0},e:function(a){try{var b=W(a);ta(b);return 0}catch(c){if("undefined"==typeof Y||"ErrnoError"!==c.name)throw c;return c.Xa}},p:function(a,b){try{var c=W(a);n[b]=c.tty?2:U(c.mode)?3:40960===(c.mode& -61440)?7:4;Ua[b+2>>1]=0;O[b+8>>3]=BigInt(0);O[b+16>>3]=BigInt(0);return 0}catch(d){if("undefined"==typeof Y||"ErrnoError"!==d.name)throw d;return d.Xa}},w:function(a,b,c,d){try{a:{var f=W(a);a=b;for(var g,p=b=0;p>2],z=I[a+4>>2];a+=8;var x=xc(f,n,v,z,g);if(0>x){var B=-1;break a}b+=x;if(x>2]=B;return 0}catch(L){if("undefined"==typeof Y||"ErrnoError"!==L.name)throw L;return L.Xa}},D:function(a,b,c,d){b=-9007199254740992>b||9007199254740992< -b?NaN:Number(b);try{if(isNaN(b))return 61;var f=W(a);wc(f,b,c);O[d>>3]=BigInt(f.position);f.Gb&&0===b&&0===c&&(f.Gb=null);return 0}catch(g){if("undefined"==typeof Y||"ErrnoError"!==g.name)throw g;return g.Xa}},I:function(a){try{var b=W(a);return b.Ua?.fsync?.(b)}catch(c){if("undefined"==typeof Y||"ErrnoError"!==c.name)throw c;return c.Xa}},t:function(a,b,c,d){try{a:{var f=W(a);a=b;for(var g,p=b=0;p>2],z=I[a+4>>2];a+=8;var x=sa(f,n,v,z,g);if(0>x){var B=-1;break a}b+=x;if(x>2]=B;return 0}catch(L){if("undefined"==typeof Y||"ErrnoError"!==L.name)throw L;return L.Xa}},k:od}; -function Cd(){function a(){l.calledRun=!0;if(!Sa){if(!l.noFSInit&&!ac){var b,c;ac=!0;b??=l.stdin;c??=l.stdout;d??=l.stderr;b?yc("stdin",b):rc("/dev/tty","/dev/stdin");c?yc("stdout",null,c):rc("/dev/tty","/dev/stdout");d?yc("stderr",null,d):rc("/dev/tty1","/dev/stderr");ra("/dev/stdin",0);ra("/dev/stdout",1);ra("/dev/stderr",1)}Dd.N();bc=!1;l.onRuntimeInitialized?.();if(l.postRun)for("function"==typeof l.postRun&&(l.postRun=[l.postRun]);l.postRun.length;){var d=l.postRun.shift();fb.push(d)}eb(fb)}} -if(0{setTimeout(()=>l.setStatus(""),1);a()},1)):a()}}var Dd; -(async function(){function a(c){c=Dd=c.exports;l._sqlite3_free=c.P;l._sqlite3_value_text=c.Q;l._sqlite3_prepare_v2=c.R;l._sqlite3_step=c.S;l._sqlite3_reset=c.T;l._sqlite3_exec=c.U;l._sqlite3_finalize=c.V;l._sqlite3_column_name=c.W;l._sqlite3_column_text=c.X;l._sqlite3_column_type=c.Y;l._sqlite3_errmsg=c.Z;l._sqlite3_clear_bindings=c._;l._sqlite3_value_blob=c.$;l._sqlite3_value_bytes=c.aa;l._sqlite3_value_double=c.ba;l._sqlite3_value_int=c.ca;l._sqlite3_value_type=c.da;l._sqlite3_result_blob=c.ea; +function W(a,b={}){if(!a)throw new T(44);b.Fb??(b.Fb=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(v=>!!v);for(var d=Zb,f="/",h=0;h>>0)%cc.length} +function Wb(a){var b=ic(a.parent.id,a.name);if(cc[b]===a)cc[b]=a.rb;else for(b=cc[b];b;){if(b.rb===a){b.rb=a.rb;break}b=b.rb}}function Jb(a,b){var c=V(a.mode)?(c=jc(a,"x"))?c:a.Ta.lookup?0:2:54;if(c)throw new T(c);for(c=cc[ic(a.id,b)];c;c=c.rb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Ta.lookup(a,b)}function Ib(a,b,c,d){a=new hc(a,b,c,d);b=ic(a.parent.id,a.name);a.rb=cc[b];return cc[b]=a}function V(a){return 16384===(a&61440)} +function kc(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b}function jc(a,b){if(ec)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0}function lc(a,b){if(!V(a.mode))return 54;try{return Jb(a,b),20}catch(c){}return jc(a,"wx")} +function mc(a,b,c){try{var d=Jb(a,b)}catch(f){return f.Xa}if(a=jc(a,"wx"))return a;if(c){if(!V(d.mode))return 54;if(d===d.parent||"/"===la(d))return 10}else if(V(d.mode))return 31;return 0}function nc(a){if(!a)throw new T(63);return a}function X(a){a=ac[a];if(!a)throw new T(8);return a}function oc(a,b=-1){a=Object.assign(new gc,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!ac[b])break a;throw new T(33);}a.fd=b;return ac[b]=a}function pc(a,b=-1){a=oc(a,b);a.Ua?.wc?.(a);return a} +function qc(a,b,c){var d=a?.Ua.eb;a=d?a:b;d??=b.Ta.eb;nc(d);d(a,c)}var Eb={open(a){a.Ua=$b[a.node.rdev].Ua;a.Ua.open?.(a)},gb(){throw new T(70);}};function Ab(a,b){$b[a]={Ua:b}}function rc(a,b){var c="/"===b;if(c&&Zb)throw new T(10);if(!c&&b){var d=W(b,{Fb:!1});b=d.path;d=d.node;if(d.qb)throw new T(10);if(!V(d.mode))throw new T(54);}b={type:a,Cc:{},Ub:b,lc:[]};a=a.kb(b);a.kb=b;b.root=a;c?Zb=a:d&&(d.qb=b,d.kb&&d.kb.lc.push(b))} +function sc(a,b,c){var d=W(a,{parent:!0}).node;a=sb(a);if(!a)throw new T(28);if("."===a||".."===a)throw new T(20);var f=lc(d,a);if(f)throw new T(f);if(!d.Ta.yb)throw new T(63);return d.Ta.yb(d,a,b,c)}function oa(a,b=438){return sc(a,b&4095|32768,0)}function Y(a,b=511){return sc(a,b&1023|16384,0)}function tc(a,b,c){"undefined"==typeof c&&(c=b,b=438);sc(a,b|8192,c)} +function uc(a,b){if(!vb(a))throw new T(44);var c=W(b,{parent:!0}).node;if(!c)throw new T(44);b=sb(b);var d=lc(c,b);if(d)throw new T(d);if(!c.Ta.symlink)throw new T(63);c.Ta.symlink(c,b,a)}function vc(a){var b=W(a,{parent:!0}).node;a=sb(a);var c=Jb(b,a),d=mc(b,a,!0);if(d)throw new T(d);if(!b.Ta.rmdir)throw new T(63);if(c.qb)throw new T(10);b.Ta.rmdir(b,a);Wb(c)} +function Ca(a){var b=W(a,{parent:!0}).node;if(!b)throw new T(44);a=sb(a);var c=Jb(b,a),d=mc(b,a,!1);if(d)throw new T(d);if(!b.Ta.unlink)throw new T(63);if(c.qb)throw new T(10);b.Ta.unlink(b,a);Wb(c)}function wc(a,b){a=W(a,{pb:!b}).node;return nc(a.Ta.bb)(a)}function xc(a,b,c,d){qc(a,b,{mode:c&4095|b.mode&-4096,ctime:Date.now(),bc:d})}function pa(a,b){a="string"==typeof a?W(a,{pb:!0}).node:a;xc(null,a,b)} +function yc(a,b,c){if(V(b.mode))throw new T(31);if(32768!==(b.mode&61440))throw new T(28);var d=jc(b,"w");if(d)throw new T(d);qc(a,b,{size:c,timestamp:Date.now()})} +function qa(a,b,c=438){if(""===a)throw new T(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?c&4095|32768:0;if("object"==typeof a)d=a;else{var f=a.endsWith("/");a=W(a,{pb:!(b&131072),mc:!0});d=a.node;a=a.path}var h=!1;if(b&64)if(d){if(b&128)throw new T(20);}else{if(f)throw new T(31);d=sc(a,c|511,0);h=!0}if(!d)throw new T(44);8192===(d.mode&61440)&&(b&=-513);if(b&65536&&!V(d.mode))throw new T(54); +if(!h&&(f=d?40960===(d.mode&61440)?32:V(d.mode)&&("r"!==kc(b)||b&576)?31:jc(d,kc(b)):44))throw new T(f);b&512&&!h&&(f=d,f="string"==typeof f?W(f,{pb:!0}).node:f,yc(null,f,0));b&=-131713;f=oc({node:d,path:la(d),flags:b,seekable:!0,position:0,Ua:d.Ua,pc:[],error:!1});f.Ua.open&&f.Ua.open(f);h&&pa(d,c&511);!l.logReadFiles||b&1||a in fc||(fc[a]=1);return f}function ua(a){if(null===a.fd)throw new T(8);a.Gb&&(a.Gb=null);try{a.Ua.close&&a.Ua.close(a)}catch(b){throw b;}finally{ac[a.fd]=null}a.fd=null} +function zc(a,b,c){if(null===a.fd)throw new T(8);if(!a.seekable||!a.Ua.gb)throw new T(70);if(0!=c&&1!=c&&2!=c)throw new T(28);a.position=a.Ua.gb(a,b,c);a.pc=[]}function Ac(a,b,c,d,f){if(0>d||0>f)throw new T(28);if(null===a.fd)throw new T(8);if(1===(a.flags&2097155))throw new T(8);if(V(a.node.mode))throw new T(31);if(!a.Ua.read)throw new T(28);var h="undefined"!=typeof f;if(!h)f=a.position;else if(!a.seekable)throw new T(70);b=a.Ua.read(a,b,c,d,f);h||(a.position+=b);return b} +function ta(a,b,c,d,f){if(0>d||0>f)throw new T(28);if(null===a.fd)throw new T(8);if(0===(a.flags&2097155))throw new T(8);if(V(a.node.mode))throw new T(31);if(!a.Ua.write)throw new T(28);a.seekable&&a.flags&1024&&zc(a,0,2);var h="undefined"!=typeof f;if(!h)f=a.position;else if(!a.seekable)throw new T(70);b=a.Ua.write(a,b,c,d,f,void 0);h||(a.position+=b);return b} +function Ba(a){var b=b||0;var c="binary";"utf8"!==c&&"binary"!==c&&Za(`Invalid encoding type "${c}"`);b=qa(a,b);a=wc(a).size;var d=new Uint8Array(a);Ac(b,d,0,a,0);"utf8"===c&&(d=wb(d));ua(b);return d} +function Bc(a,b,c){a=ma("/dev/"+a);var d=na(!!b,!!c);Bc.Tb??(Bc.Tb=64);var f=Bc.Tb++<<8|0;Ab(f,{open(h){h.seekable=!1},close(){c?.buffer?.length&&c(10)},read(h,m,v,z){for(var x=0,A=0;A>2]=b.dev;P[a+4>>2]=b.mode;P[a+8>>2]=b.nlink;P[a+12>>2]=b.uid;P[a+16>>2]=b.gid;P[a+20>>2]=b.rdev;R[a+24>>3]=BigInt(b.size);K[a+32>>2]=4096;K[a+36>>2]=b.blocks;var c=b.atime.getTime(),d=b.mtime.getTime(),f=b.ctime.getTime();R[a+40>>3]=BigInt(Math.floor(c/1E3));P[a+48>>2]=c%1E3*1E6;R[a+56>>3]=BigInt(Math.floor(d/1E3));P[a+64>>2]=d%1E3*1E6;R[a+72>>3]=BigInt(Math.floor(f/1E3));P[a+80>>2]=f%1E3*1E6;R[a+88>>3]=BigInt(b.ino);return 0} +var Oc=void 0,ld=()=>{var a=K[+Oc>>2];Oc+=4;return a},md=0,nd=[0,31,60,91,121,152,182,213,244,274,305,335],od=[0,31,59,90,120,151,181,212,243,273,304,334],pd={},qd=a=>{Ta=a;nb||0{if(!Sa)try{a()}catch(b){b instanceof db||"unwind"==b||Ea(1,b)}finally{if(!(nb||0{if(!td){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language?? +"C").replace("-","_")+".UTF-8",_:Da||"./this.program"},b;for(b in sd)void 0===sd[b]?delete a[b]:a[b]=sd[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);td=c}return td},td,vd=(a,b,c,d)=>{var f={string:x=>{var A=0;if(null!==x&&void 0!==x&&0!==x){A=p(x)+1;var N=va(A);S(x,G,N,A);A=N}return A},array:x=>{var A=va(x.length);w.set(x,A);return A}};a=l["_"+a];var h=[],m=0;if(d)for(var v=0;v{var b=p(a)+1,c=ha(b);c&&S(a,G,c,b);return c},wd,xd=[],E=a=>{wd.delete(yd.get(a));yd.set(a,null);xd.push(a)},zd=a=>{const b=a.length;return[b%128|128,b>>7,...a]},Ad={i:127,p:127,j:126,f:125,d:124,e:111},Bd=a=>zd(Array.from(a,b=>Ad[b])),H=(a,b)=>{if(!wd){wd=new WeakMap;var c=yd.length;if(wd)for(var d=0;d<0+c;d++){var f=yd.get(d);f&&wd.set(f,d)}}if(c=wd.get(a)||0)return c;c=xd.length?xd.pop():yd.grow(1);try{yd.set(c,a)}catch(h){if(!(h instanceof TypeError))throw h; +b=Uint8Array.of(0,97,115,109,1,0,0,0,1,...zd([1,96,...Bd(b.slice(1)),...Bd("v"===b[0]?"":b[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(b);b=(new WebAssembly.Instance(b,{e:{f:a}})).exports.f;yd.set(c,b)}wd.set(a,c);return c};cc=Array(4096);rc(U,"/");Y("/tmp");Y("/home");Y("/home/web_user"); +(function(){Y("/dev");Ab(259,{read:()=>0,write:(d,f,h,m)=>m,gb:()=>0});tc("/dev/null",259);zb(1280,Cb);zb(1536,Db);tc("/dev/tty",1280);tc("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(ub(a),b=a.byteLength);return a[--b]};Bc("random",c);Bc("urandom",c);Y("/dev/shm");Y("/dev/shm/tmp")})(); +(function(){Y("/proc");var a=Y("/proc/self");Y("/proc/self/fd");rc({kb(){var b=Ib(a,"fd",16895,73);b.Ua={gb:U.Ua.gb};b.Ta={lookup(c,d){c=+d;var f=X(c);c={parent:null,kb:{Ub:"fake"},Ta:{readlink:()=>f.path},id:c+1};return c.parent=c},readdir(){return Array.from(ac.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();l.noExitRuntime&&(nb=l.noExitRuntime);l.print&&(Pa=l.print);l.printErr&&(Qa=l.printErr);l.wasmBinary&&(Ra=l.wasmBinary);l.thisProgram&&(Da=l.thisProgram); +if(l.preInit)for("function"==typeof l.preInit&&(l.preInit=[l.preInit]);0ya();l.stackRestore=a=>Aa(a);l.stackAlloc=a=>va(a);l.cwrap=(a,b,c,d)=>{var f=!c||c.every(h=>"number"===h||"boolean"===h);return"string"!==b&&f&&!d?l["_"+a]:(...h)=>vd(a,b,c,h)};l.addFunction=H;l.removeFunction=E;l.UTF8ToString=C;l.lengthBytesUTF8=p;l.stringToNewUTF8=ka;l.writeArrayToMemory=(a,b)=>{w.set(a,b)}; +var ha,ja,Yb,Cd,Aa,va,ya,Ya,yd,Dd={a:(a,b,c,d)=>Za(`Assertion failed: ${C(a)}, at: `+[b?C(b):"unknown filename",c,d?C(d):"unknown function"]),i:function(a,b){try{return a=C(a),pa(a,b),0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},L:function(a,b,c){try{b=C(b);b=Cc(a,b);if(c&-8)return-28;var d=W(b,{pb:!0}).node;if(!d)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&jc(d,a)?-2:0}catch(f){if("undefined"==typeof Z||"ErrnoError"!==f.name)throw f;return-f.Xa}}, +j:function(a,b){try{var c=X(a);xc(c,c.node,b,!1);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d;return-d.Xa}},h:function(a){try{var b=X(a);qc(b,b.node,{timestamp:Date.now(),bc:!1});return 0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},b:function(a,b,c){Oc=c;try{var d=X(a);switch(b){case 0:var f=ld();if(0>f)break;for(;ac[f];)f++;return pc(d,f).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=ld(),d.flags|=f,0;case 12:return f= +ld(),Ua[f+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(h){if("undefined"==typeof Z||"ErrnoError"!==h.name)throw h;return-h.Xa}},g:function(a,b){try{var c=X(a),d=c.node,f=c.Ua.bb;a=f?c:d;f??=d.Ta.bb;nc(f);var h=f(a);return Dc(b,h)}catch(m){if("undefined"==typeof Z||"ErrnoError"!==m.name)throw m;return-m.Xa}},H:function(a,b){b=-9007199254740992>b||9007199254740992b||0===(c.flags&2097155))throw new T(28);yc(c,c.node,b);return 0}catch(d){if("undefined"== +typeof Z||"ErrnoError"!==d.name)throw d;return-d.Xa}},G:function(a,b){try{if(0===b)return-28;var c=p("/")+1;if(b=d)return-28;var f=W(b).node;if(!f)throw new T(44);if(!f.Ta.readlink)throw new T(28);var h=f.Ta.readlink(f);var m=Math.min(d,p(h)),v=w[c+m]; +S(h,G,c,d+1);w[c+m]=v;return m}catch(z){if("undefined"==typeof Z||"ErrnoError"!==z.name)throw z;return-z.Xa}},u:function(a){try{return a=C(a),vc(a),0}catch(b){if("undefined"==typeof Z||"ErrnoError"!==b.name)throw b;return-b.Xa}},f:function(a,b){try{return a=C(a),Dc(b,wc(a))}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},r:function(a,b,c){try{b=C(b);b=Cc(a,b);if(c)if(512===c)vc(b);else return-28;else Ca(b);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d; +return-d.Xa}},q:function(a,b,c){try{b=C(b);b=Cc(a,b,!0);var d=Date.now(),f,h;if(c){var m=P[c>>2]+4294967296*K[c+4>>2],v=K[c+8>>2];1073741823==v?f=d:1073741822==v?f=null:f=1E3*m+v/1E6;c+=16;m=P[c>>2]+4294967296*K[c+4>>2];v=K[c+8>>2];1073741823==v?h=d:1073741822==v?h=null:h=1E3*m+v/1E6}else h=f=d;if(null!==(h??f)){a=f;var z=W(b,{pb:!0}).node;nc(z.Ta.eb)(z,{atime:a,mtime:h})}return 0}catch(x){if("undefined"==typeof Z||"ErrnoError"!==x.name)throw x;return-x.Xa}},m:()=>Za(""),l:()=>{nb=!1;md=0},A:function(a, +b){a=-9007199254740992>a||9007199254740992>2]=a.getSeconds();K[b+4>>2]=a.getMinutes();K[b+8>>2]=a.getHours();K[b+12>>2]=a.getDate();K[b+16>>2]=a.getMonth();K[b+20>>2]=a.getFullYear()-1900;K[b+24>>2]=a.getDay();var c=a.getFullYear();K[b+28>>2]=(0!==c%4||0===c%100&&0!==c%400?od:nd)[a.getMonth()]+a.getDate()-1|0;K[b+36>>2]=-(60*a.getTimezoneOffset());c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset(); +K[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0},y:function(a,b,c,d,f,h,m){f=-9007199254740992>f||9007199254740992>2]=z.Vb;P[m>>2]=x;return 0}catch(A){if("undefined"==typeof Z||"ErrnoError"!==A.name)throw A;return-A.Xa}},z:function(a,b,c,d,f,h){h=-9007199254740992>h|| +9007199254740992{pd[a]&&(clearTimeout(pd[a].id),delete pd[a]);if(!b)return 0;var c=setTimeout(()=>{delete pd[a];rd(()=>Cd(a,performance.now()))},b);pd[a]={id:c,Dc:b};return 0},B:(a,b,c,d)=>{var f=(new Date).getFullYear(),h=(new Date(f,0,1)).getTimezoneOffset(); +f=(new Date(f,6,1)).getTimezoneOffset();P[a>>2]=60*Math.max(h,f);K[b>>2]=Number(h!=f);b=m=>{var v=Math.abs(m);return`UTC${0<=m?"-":"+"}${String(Math.floor(v/60)).padStart(2,"0")}${String(v%60).padStart(2,"0")}`};a=b(h);b=b(f);fDate.now(),s:()=>2147483648,c:()=>performance.now(),o:a=>{var b=G.length;a>>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a, +d)/65536))-Ya.buffer.byteLength+65535)/65536|0;try{Ya.grow(d);Xa();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},E:(a,b)=>{var c=0,d=0,f;for(f of ud()){var h=b+c;P[a+d>>2]=h;c+=S(f,G,h,Infinity)+1;d+=4}return 0},F:(a,b)=>{var c=ud();P[a>>2]=c.length;a=0;for(var d of c)a+=p(d)+1;P[b>>2]=a;return 0},e:function(a){try{var b=X(a);ua(b);return 0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return c.Xa}},p:function(a,b){try{var c=X(a);w[b]=c.tty?2:V(c.mode)?3:40960===(c.mode& +61440)?7:4;Ua[b+2>>1]=0;R[b+8>>3]=BigInt(0);R[b+16>>3]=BigInt(0);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d;return d.Xa}},w:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var h,m=b=0;m>2],z=P[a+4>>2];a+=8;var x=Ac(f,w,v,z,h);if(0>x){var A=-1;break a}b+=x;if(x>2]=A;return 0}catch(N){if("undefined"==typeof Z||"ErrnoError"!==N.name)throw N;return N.Xa}},D:function(a,b,c,d){b=-9007199254740992>b||9007199254740992< +b?NaN:Number(b);try{if(isNaN(b))return 61;var f=X(a);zc(f,b,c);R[d>>3]=BigInt(f.position);f.Gb&&0===b&&0===c&&(f.Gb=null);return 0}catch(h){if("undefined"==typeof Z||"ErrnoError"!==h.name)throw h;return h.Xa}},I:function(a){try{var b=X(a);return b.Ua?.fsync?.(b)}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return c.Xa}},t:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var h,m=b=0;m>2],z=P[a+4>>2];a+=8;var x=ta(f,w,v,z,h);if(0>x){var A=-1;break a}b+=x;if(x>2]=A;return 0}catch(N){if("undefined"==typeof Z||"ErrnoError"!==N.name)throw N;return N.Xa}},k:qd}; +function Ed(){function a(){l.calledRun=!0;if(!Sa){if(!l.noFSInit&&!dc){var b,c;dc=!0;b??=l.stdin;c??=l.stdout;d??=l.stderr;b?Bc("stdin",b):uc("/dev/tty","/dev/stdin");c?Bc("stdout",null,c):uc("/dev/tty","/dev/stdout");d?Bc("stderr",null,d):uc("/dev/tty1","/dev/stderr");qa("/dev/stdin",0);qa("/dev/stdout",1);qa("/dev/stderr",1)}Fd.N();ec=!1;l.onRuntimeInitialized?.();if(l.postRun)for("function"==typeof l.postRun&&(l.postRun=[l.postRun]);l.postRun.length;){var d=l.postRun.shift();fb.push(d)}eb(fb)}} +if(0{setTimeout(()=>l.setStatus(""),1);a()},1)):a()}}var Fd; +(async function(){function a(c){c=Fd=c.exports;l._sqlite3_free=c.P;l._sqlite3_value_text=c.Q;l._sqlite3_prepare_v2=c.R;l._sqlite3_step=c.S;l._sqlite3_reset=c.T;l._sqlite3_exec=c.U;l._sqlite3_finalize=c.V;l._sqlite3_column_name=c.W;l._sqlite3_column_text=c.X;l._sqlite3_column_type=c.Y;l._sqlite3_errmsg=c.Z;l._sqlite3_clear_bindings=c._;l._sqlite3_value_blob=c.$;l._sqlite3_value_bytes=c.aa;l._sqlite3_value_double=c.ba;l._sqlite3_value_int=c.ca;l._sqlite3_value_type=c.da;l._sqlite3_result_blob=c.ea; l._sqlite3_result_double=c.fa;l._sqlite3_result_error=c.ga;l._sqlite3_result_int=c.ha;l._sqlite3_result_int64=c.ia;l._sqlite3_result_null=c.ja;l._sqlite3_result_text=c.ka;l._sqlite3_aggregate_context=c.la;l._sqlite3_column_count=c.ma;l._sqlite3_data_count=c.na;l._sqlite3_column_blob=c.oa;l._sqlite3_column_bytes=c.pa;l._sqlite3_column_double=c.qa;l._sqlite3_bind_blob=c.ra;l._sqlite3_bind_double=c.sa;l._sqlite3_bind_int=c.ta;l._sqlite3_bind_text=c.ua;l._sqlite3_bind_parameter_index=c.va;l._sqlite3_sql= -c.wa;l._sqlite3_normalized_sql=c.xa;l._sqlite3_changes=c.ya;l._sqlite3_close_v2=c.za;l._sqlite3_progress_handler=c.Aa;l._sqlite3_interrupt=c.Ba;l._sqlite3_create_function_v2=c.Ca;l._sqlite3_update_hook=c.Da;l._sqlite3_open=c.Ea;l._sqlite3_get_autocommit=c.Fa;ha=l._malloc=c.Ga;ia=l._free=c.Ha;l._RegisterExtensionFunctions=c.Ia;l._sqljs_vfs_register=c.Ja;l._sqljs_open_paged=c.Ka;l._sqljs_vfs_register_rw=c.La;l._sqljs_open_paged_rw=c.Ma;l._sqlite_explorer_register_query_plan=c.Na;Vb=c.Oa;Ad=c.Pa;za= -c.Qa;ua=c.Ra;xa=c.Sa;Ya=c.M;wd=c.O;Xa();lb--;l.monitorRunDependencies?.(lb);0==lb&&mb&&(c=mb,mb=null,c());return Dd}lb++;l.monitorRunDependencies?.(lb);var b={a:Bd};if(l.instantiateWasm)return new Promise(c=>{l.instantiateWasm(b,(d,f)=>{c(a(d,f))})});$a??=l.locateFile?l.locateFile("sql-wasm.wasm",Fa):Fa+"sql-wasm.wasm";return a((await cb(b)).instance)})();Cd(); +c.wa;l._sqlite3_normalized_sql=c.xa;l._sqlite3_changes=c.ya;l._sqlite3_close_v2=c.za;l._sqlite3_progress_handler=c.Aa;l._sqlite3_interrupt=c.Ba;l._sqlite3_create_function_v2=c.Ca;l._sqlite3_update_hook=c.Da;l._sqlite3_open=c.Ea;l._sqlite3_get_autocommit=c.Fa;ha=l._malloc=c.Ga;ja=l._free=c.Ha;l._RegisterExtensionFunctions=c.Ia;l._sqljs_vfs_register=c.Ja;l._sqljs_open_paged=c.Ka;l._sqljs_vfs_register_rw=c.La;l._sqljs_open_paged_rw=c.Ma;l._sqlite_explorer_register_query_plan=c.Na;Yb=c.Oa;Cd=c.Pa;Aa= +c.Qa;va=c.Ra;ya=c.Sa;Ya=c.M;yd=c.O;Xa();lb--;l.monitorRunDependencies?.(lb);0==lb&&mb&&(c=mb,mb=null,c());return Fd}lb++;l.monitorRunDependencies?.(lb);var b={a:Dd};if(l.instantiateWasm)return new Promise(c=>{l.instantiateWasm(b,(d,f)=>{c(a(d,f))})});$a??=l.locateFile?l.locateFile("sql-wasm.wasm",Ga):Ga+"sql-wasm.wasm";return a((await cb(b)).instance)})();Ed(); // The shell-pre.js and emcc-generated code goes above diff --git a/viewer-dist/sql-wasm.wasm b/viewer-dist/sql-wasm.wasm index 4731f026a2c9cb18f956edbc037db32d1e533d23..a5030fd0e87a44d542d8a91e7f865b8670284085 100644 GIT binary patch delta 417648 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

tIK6>HuJ1N+ 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�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 delta 389373 zcmb@vd4L^dmG@uUUHY!iO*%=ZyOY$t>4Xk+Ck=$KCD0X;5cWmfm!W5z5fhjpk#TtE zMQ)>Pf=aYhP*D&NK|w%P5i}@_2#66GMMXdbMMXhH!8O0n_f&N!sPoQ0KQw)7d6x5> z{hVj1GcMl!r(alB^CsSMlJ9w*|Gnt&_twtnmb>|Xe)o9)H2<{YqweY5u5M1}PtZNx zJ3j2{Z@|;jxjtPld!}mXrj*~P%xPZMfVWc-wQ#yxE2tn%6|I7v_+i&SEp7Vq=S;() z2I$0ox~HdW{DY&gd)jH~d;JCJZT^z}uKb%4KhMP%ae0 zLg1IY!u(YrkA7(r^?pq^KOtF3v57Ua{f%#X=C4{aO%oqq%cK ze`XC}3sI>*qVHl@C=??vq*lleC<%cs0ui-vn7bl9fUbyJip&g)VbNdW7j`XGf?_zU z1SDli7m2Y-QAE&>1}^a?iiz?zNlMHgX!TrJs6_o`Zy=f%74{1K5L_$(34XI21VOP`DtndPYK2;f z0T&A^!t#s|ILbw^SSUieO1aeKNvTj`aJ?g=e(&D<_)%D^GQz@wKDr4@0}kdi;0})w&{YK@frBNpdC-HzK%!zLgkzyDKMbM@yLbjLw{Ua`CMcFmi=su# zpfcnsuIlaWjr7jzLWZc&14;`AFp6>z4i=h`;iv2u;3G=GBIROv1{h_?A!80AnhXyd zFBUyI6MvL|1VYhigZ6+@Z~z89KoB4n__b0Ys(HvRe;DT68R1~LTWu~X6v0HXQFCP& zun5kAT8Qw}s1p@(k zz{!XuT#p!30iQ8?Jr!?PFDw?3Kctp%`reRNbT*)(=XfPSgxPiFm!mnb2wF*+1)&52 zuvdaz{349Sf1ck&G$=kK>I(xUuZJ2`n^Ws47D_(gmS_M7J#Q@XB0s3kLL|E&6v9?Y z#iRslFtP#=g?@uxswEKX_rvF_VUUCTW!{>?JU{9k=|u~8;Zj6#v`n8t6wCvIU>Mw2 zB+76@(I2RyeAWU?Q115{UcCm}fe|k#^sR%l88temTPRe#u`poB1<=sfCu(|y3eA;4 zgt52{6R`Xl(9ZMweZTGgEu6i?gc?j%V96*tS5b*~J2Z$m@#&9YirVQ2RiO*0jNJqIm z2N5kaYXxt3L9>VrLG3oBuI3lfzsPD7)OQKwAa%^ zk&ynqVyRe+`e!jx^iEF?1| zAAR@$hn7`eGt&dByUkh%aEMBIetCY6{wvb`%(Pp5b^7h<;pr~5J=53LW_1N{_FsOL z{lINfS6&?Os6W)IYZ=Uep7;KpE z-Vkh@@Wz7^C%mJAlP0_`Rf2z=@a}8`|2E-0=?5oIc<1}UrU~zkMzDFp`;i~KWx~6w z5}Y#Oo#6-nKH*&+1>Lt!c%N?s|1sg+-Uv>e@IKcF{tulug8!WGZfXR{gm+^jSUut0 z&8rL>%X}qIx zPUV}?Z|c9U|Em66{n`32>%XY~r2cgMyy$23pVog|f2#gu{g18RwSL?Bee1K0Keg8X zxpiIe_4ZeT3*xvd}>!+<3TUXS7Mxke0zi2(v`f=;2 z)(fqtTR&-?<$tjLJU-d?T9389-`ZzO@Q2oKTEA}ns`Xs!=dCAOKWhE3^+f9jt;bv6 zZe7;;cUnoD;{C@M%=2Oiln?Gv)u=#`L`>Nk-ez*CZ<^#TcpVxm>|6%=m^+)R6Z`Z$7|L^*r%MaDRQQua-sj&@e5vuZ#siH98}~G} zHnuhHYJ9M9Z{y32uQ%>%e5LVUjSn>LZhW=z{>F8|b-}wTY2$s3^DFOdyr=Q*#=9El z^Ypw|HQw1cw{cG6?8aG*GaHkQGb-Ebf2seu{-^pM>wl>KzW!qUh5GM$epml({n_Gm z!SnSW)SsxI6+K>mtp5G_c|DKTzgz!K{kyI2v>s`FtM%Wlhg;ulJ=FR}Yg_B<={MZ0 z`FFRz-1<`MuGZGp7h7Lw-PyXM_4(HAtm#iXwJvI1 z*!p1W1FiSBzE(?H57fR^dmn$_+uG8)p!J^CyIb#So!>gI_0HDSg>zfyw9amw)w;iS zU+v!7nXPxU-rhQ+HQCzk{^I`Z{^b7X{@{M^UUVfYzx>$bQH z+RIl-(wXiZ?(Oajx4rq7=0nk+n}2Hlq51pf zi_I6Bzia+BeeaC9-TRyOHNV=txA~{aSDJsU{8#gy=H1QhmAjf>Xx`cUeDn6^FDsvG z-qt+7bSwXEY2Ms?rgBsB>B`fU&oQsdPBynU{?hn!<4=u0 zHvZ7~edEQ(3ytR+zi#}h@m%AX#!nkh!;wE}{J8N{2_M-9R>Fv=lk=1zYCGVds zaM|*`wx4YMY(f9HkNu4+0xx-z2mIqfVh^y&$-5@gO*5DJx1^WOJUh57Oow~l;9r!U z)4O2VGmm)g#zIo9_IQ-@-OW+8PD|=0_T3)UYJ=yo9|wt-cy2fiXYJ;;eI$s(QIDUE zouKYl(;F7e^n>)jdzYmzo3$ogGiRv#*)rX_tIF+wpNs2iz}@UuPxJyBUR&3XAA7^W zlfhAR$Hk*T>>oj|_Vkf}fvDRR!6QMlnmv3XI7E=C@U|WAx9L5PwnVh5D(=Ecvl{Wc zIK67t#Vei+`eT1dSZ;^0pSTS}UNsJ@pPb{*=`Qq=CwvAl8u)NhCB zrE``v!X#K%_rmdj|HWbY?KunI6vp0&_d!4Lj;u%2`Eaov)}m@$8V+vrJKw5?Z%$?R{@5G!E)<+!=v&|W6QCLnhLX}c`meiV6TRr4yV4KSSI%8{ zco;|P>H*Ff<2hvm-3|v)+}O}=SZ@r#tAdo0z_>f>{ zum-HN+eM*mI5@FWh#C8#Mw`OMc9?kWLMVhS=$|()jGH{lx+v0jyGgCG5YVK=tNV{{ zJ{NWhD}tf80Qv>^z5TDLg-P#;8%8~^Q%vqimkumG?5aQvne?cjm%QUVDBvIiDX08jr#-{H~tVe_KEMwf*-Fw&~v68?+~n{s_=6ykS#0UaRiaNyi`c{N!1GW5ZQz zVNXOXSM!2erBU!}G#vZGf$K!e{Njqh(a*j9hU9|x(;}?o4otTXEb0bvB`)Nc?UbW# zTxOVsuGOh%^@f8utGCpr-g4Dj5sc;KzyC80bW9b%g(|=~9lF@LPIpaKY5XOX#y3() z@LIJcp|^Ktl=R3PV{ZTYPnbCMqW7O)wC}tfk4RVp&s@d9mcW8~o(4XMBo71~6Wn z>VG&WuLv%ks`co%1i+*x2q+UN@;NTLyH>r?}ein3b`AjCm>t_nDv!djFwZ@@@g zaNp4NsQ0L!l!OcvMgGohOCOv+&^^bGdqkJmUmld5-MyII)wpB4aA54>@S5zMl|)93 z&z`$JSlvw|m0SIOn#n6hSy526Q=@{0F4QO`FABKZ(+}JNyWJXWaBohY^Q)5WxMxEg zS-Za5nx3;@AsX$|3p$Az7wOqkQ6^#Xlqbc9hJ85-m^+k0P(=$#6BW@!D7M}>JTw}o zG}jCvZNzJu?+QBp+PJt`+8O(iPQ)|2p+qe-QS&4ULyYMut_JMk4&{#`H|1|Sdj;*H z2ziDU#>yq7gQe+{lIo+=r>d=|6|)uV<8V_aOj-xm{diWg2hb-i1G=du;&uhoG>L5u z)1W<+gh_1!i2X&>DKboQ8LH;HV?~Y-Qg@;_91dz7AGH0c;(4)8-}$8%N6B;Po7yLr z5#J{+s@uMIwjX!pLLU+qo?*h&VbK5N6lrRij6aPILdg41Fz zuEj-$*$Js2_3OFa)0;cH?9M=K%>2;SY2vOYd|JWa&ITVMjwfU7RwUc`FWi*gGrL=y zFT8md9(|AB*Oap{<$C-IzoNbH!clU+UH3CT>Ly-+x|^!i0c!9+2?4gv4R^d4fpZTt z?(|y=_g?gDnYYMepL;gykE6^#KxExM8JR*ZqVzpOv%4#$p2orMdPeEB@fv7rij-@T zimq373Qz(rzt+7g>VU#E!FcS;)Y~w}K_L$c$(3E1Kq`zUPkJYT!6&_cJyK8HpMiTg zSks1H;6mIYxy2UmB`8ls-&f`1P$YY-()JXrsiO>QR>^apDyQ2P4GwMzjrO=RO}emm zm}hrGR9)buuU|B$sE2N8`l?0a4g9nY-Vd@WpDn#|(PBN?IOXwesitq(5IF} zPrtEfpnKVL+r#F2qEPUYe0O>7;sD+oc{Y6F25@?gxUjmIf{aUjeg+)MzWbl-1o{O_ zaquU(7~an0y*a2>-{J?jwlYLv9Egv(E+179YUAJDOZqF4uxh)H5mb~rdQcdZ!U(WrXs)!)yXBWC-2CF7U`()FsaVe1+MyNgnJcKCo^ z+C3nLpSJ?t?UyD?mZooCvUuj3p$XhvPCUsQ_RKw$etyXTpz9Ay)~379o{3|T9=z+D zj=^{G&@qgcj&J}q@csRp@PF0m^#SsR%I9`CI9HlS{UjIkAlXZ@XKfE%WfD}=gL~8M zyUu;}3`*_90`AGE`d#0E4aPP0J=KGMocdKK#+JIgJL~W6097bw@s*eYE~(8&PN_Ix{42OOsg|4FF~2K+zHRFH12294K=#~#&bqyqPJOqDW(63A z2FyteRb*>cWNQ!yohrlgmiaC@a8vT!M+3Qh)f$hi)~Df++tXPiFPkW|3(5UI_R(2* zUCT5gW0faBbev#ule2HvOI({}A`&l`gl_N9OQ;Bvz+d=h9tAN78>9efQzNts!(5+@nxHP%jD3^;df@2PkT~mqa#?6?vw}hT%S6 zsNN~kOy;d?oeWcLcEUkquO3z(-d{@C$0uKNs!Ih2O7}PyhG4bTa zy}8;2anE}*rLw8sDy0QM?cR_mU*g<`F zg&m`p2sxOPH}CHcf+b#lb8N|?8*l=9v(EBffbpBiv8bGl^c+9EW8b;KB?MUeuDo%V z%#o7_v9&5GecEMOB*)5IfmK;0n4+n!{THdA0_dYbZyPQt$J$ZR~U9ey1T8 z?y)E?sTB!E4e#*FW$s1o%YdP(dd8?#x{!#K-KuKblRmcRZvM;C%JO;Xm3uAhUhM-X zhAb*z6Lf+97`T72M`*vOT74tTfOq3IcA_lq9`znaLWLUKm=*L6pa_oo4V65Qst=Pp z07RjtMY_)*EDY~I-Ts938RJv)8Nb>EMho#bF}a?NnGkX~cqZtSRIWG`gpYbpU@<7c z%jeLa>MzqN=LT`9Rl#+}MHg=*Kf(1i6`jlhIw7}^yp53Fhi@*d%S|otsQPo}WVK4b zv@-7$DHRVBr5R2KL}K1X31|yR^wxG5;49P47yTpZUcahXH5|Q-jgXn;P~NLFmt;9E z9#sdOaY@>-jUxij<*%`s_8QFD>n=!CI9ontGX--mSnWi4K@5A=j>-jzJ0&aMcgkj6 zgsP~TiZ!WK&TGMXw91H8DfuL8wkyKL?{EXyO|Yk1?eujqILV2~Mt4^V)3fbL{}5lWc7`kGAdi9OZ| z%dromb>AD{LenO@XjQxOaoLEb62lo z3alGsr1Vx#{$>02(%V*_@%G8dQ;(~AJEh@1iOYS_bS4fq>L!1(yxU>)%9YYr98-1-|&q2&dK4s0fF@m2JB-npyOvsaDG`y8uClAwxp z3f#rKHY^Mi#FHgElFKDl^{}d;9mE=x+jWsUk}ocANX(Ss{Qxw4!VuJwBkeVWmA{KJD!g0 zcsjP@=}J8ngANDl$r&26GPYVLNE)zirZEagMv&|Zlg0&UtHeLd95_8B{u7iA{JKxn z0Xb_dPQ#UZ_P>S1WU$ObWfZDe)&tUDwcN(^=#``Mmv>NnVjx_czVQnPQDI3&TkiI@SbR|=#p)AfeZ`$ObVT9() z2xRDnA^W7xV$x-YqjaQANRyB3yY~SPqlAOx0nb9~fGjwdRVgObNdkDY&(L#;_&O$) z*{AwWwm(W9NI$;s?3tuW2-I@Y#=a6L>30rVna*5$RCkYQgJ>cn0LnBFxV_960tsqa z@&DPnGV69h;P>q0^oce%5H20pDN3Sn(PVNWgg(3Giolje7$Au-@*5$FI<6d!;1*FC zQbH1VtW@9*kk{h{Budm)d9BhaUh-N0VA3Q!CAUec3zktHrQH)p?W$}AcQvHAN9=3C zx3yGN&NOP1#Vf~LlS9nAirn#n32Y6omH1~vj*{|QlRuIc*x&21cR@`kC@^Rs*VxGj zRj`TeiVZQ#UMQs!roC&@{o5b{CwnSdW<;^SR}i_c`W?^RiYrltY&=tFxvo0Mb#lh> zN8y$}aZCEc^}|R0CC5#YURNMZIGY+2P?{fufJ#v4igkn-H#$s~>_*rY?!rINWZLxVr8JWa?3u>=j zOpkeZc6#z5yLQ{iVB%CDNS3baC=sQ>*Jy&Vx01niXB5SlWd@D1n=YTXh{t<#nWu;g%(_dzK`3ut_sRVTxVx^L zbcHf(!c-VV(CW@AT3NFc5Y(`P|7qCC@K>bWFvo-}r8$Gi8CbVqlNq@{_y=D1x~yMw zZ-}$3jGvXkLGj{lA!!*%In-(&rEC#}r7dgjP~J!GP=qkk4rd0L!o$Tbz;fm?)B>zY zW@-H7VhcpjtN6y5!YByIw`nHN)U8BJnE_~%9<-hr4wZ_;r!*%5;ZPvu$>f&FGcnry z#rM%nhE##XYB|oXrA*r3(grV8Lw)qC#Il$Lqk08+FeLhIKM#~!M<|>TZ`;QLO|sFN zTl_6?lU$=dIp0!&$nrA&>>R_rIX&s{1?f|(cWu2X8-;v7pb6cZ()ghM(kXVmN17Zo z=)Wm_!$C*8Kbs(1pDOmN^a}^g4c=5uD=$A}F6lM=K@@xjnPetbzkYiD;Rg;Z#f^Xt zQ>kLH13dG=A9y6(o;rL%_x*k+szWCp`^hbrk`Q*Q%^;RGw57!@wD6PrFCjyxrkHiu zaruXBG*dUO%b!aYB%7gGwi;?M`OP-gdw~@mXQmZ_w_X)7)%382oakYC!4YEy5H2Ee zV5Wa3sML80&o75SD5FjIVMix9pynFs-Jsq*vCXTZaIt}&I`Zg!+NA(ZauyECoQ3m( z;Kn_V?(zFpVd>O5ZZG*Ldcw+4^73@cF^kh*95uhI^hQJs9$S_;zpS2)r;q)%eE5); zJbZ?1RaRT(A=KO+eqoqA1cyAQ3%t&!?RS6wPyF)45qvVQ6DCh94l{}066Q_ejXz>- z&VoZCw+-Fd!l$9IrNGnIu4@Ok*3#40EuQfvjX-e)5gdpb_2#5^u9 z5{vIB$~y)DM|6BWq8719crbDx>>QeS=x=NyuhJz)p4z?lBYrT{4NqsF&yo0-;0jai zd5NY$Ja<^T9*pO~ZtlJ$vos@*WALv?3G+H$VslO?o3V`blTo<(Hl|}x{7mYZRgiKd zo_U+882K(H=RQ*Cp7qnMubkCI6HiV?%8Sra+>yGCOYR#?j-#;5&S!~N^8f&mL2PA+ z$tCwl*JuuEi8xb}Xyo|+?pIKcPPx3Gfw9j~ zk&*Tc{S3D;oXoSdO|Qo7*%_i-rszaHrP|F2irTH%t={UngF8LaUJg0Duq5aTVw!7$ z?Dq9;$!BDk1~7?fS42h2~2W87Q7qf{B**d{e*dey4zZZ#+a=H14unAtLQ zGEBaepBRLM$qU=R*cIltdcu4{G!GUSVuDJPPwTticd_RZUM|DV%p5yo9Sd?bv5b>8 zQ$LX=8)n8#G3f_GMPOoM%)nSbP4t;Dsu*@QKYT=bd5kV2QUWW25w42yY*iT~_%0;d z{4S$)AEWTpi!ol<6O0-eVKf^&jArztx#cX&u+m^Q0uQjW0q9D-K@k>7gh)F`LtU)L zQ*W07yB@J@f#u+=yHecKH7GU+gum^sjc1&Y*FPSC!c9F|_J+L8O8`3B03w$KOHV;S zDHx|y64?w^XRi-%ugxG-D~Q_|+}=e&(DZVOl@dq~g2#Bv&pz=S+yY2d##>N>LzWW7 zG-SMWv7fy6ao@cSd8HE&g!Ekrx`YBVrXac+*WwxROcUGB$*J*0e7pUc&8Nlk>untg zp0hh8@w40qKLDga0LqcCG@}L8VloKfGH+JmHt+9Af9aX~CGoUK6eU}yc#T)wdG2y( zk-v;vaI*N&`hyvjWr@4E-W0T8rzh@_ahaU-DK=UVA=Z7sK?uznP0(MvHV>qD9e`U>r&Q!Xrc}gSActbu@Njhso0Fs8>%+ zzcEEV0+|E|mt|v0-qsNDdp%pULz6>#C(}#r$bHll{k&1{m?TC`1>>=mCve%+HP@FZi1}(SDvK40Zn%e-n2CGHVekz8G3{nN6dLx}X(_3a$l|HF=LTHCf@&7>iX} z0*@T0k&EsI^GQ}#+41p5VM<>6Jy+8 z6qI5WVi0rk1rU=rJ!@GpB4#kv6PJk1Wy~xL^xB$8>B8r7r?J8E#PNrv*Pi+y?=T1$ zLon4~!3%Xj=+LM)V{M&)kTzLS!a(XuVsMA;qD!v9)R>4VBqYIl`KD1axfR_h13}4^ znaRLF=|MkKITpHd=}jBH9y5IDC2yG1wPtXs>v4J1Ta$D))ftgFBZHbV^f%Qls9cl% z#4rrJLZ#&zF~Y7F6hAj;6U{1Ffaf7LouQwV*cUJg$SWxZY%Xgi>deK7py^r{CR1-z z!|kX3ih$^e%OwF5Rp;iH<-Nnn{1U->5#@mKo2dlQi#|)CYBHcRliwl;!vUTR{fQt_ zM}?%ZABB=eyC_8RChGJglb9-DX*lSv>{QmaONkT-dPiKKF`19M+}wpyOlAQ6nnl%s zh8DaY>S?J`a^0tVO=M`%%1w9^ZCo^D@=JU0TFX{W3debfVp(gcnYNIuO@Y3Wfu z?lwsvIY&uby-`$-5dX_VGK>?``^nZoJ%WU|>Rzzec_m7LLD*|dZI(^wmT?x$RF`GH zFt7}Oe}@jVOXv=8WBrb`=LB7iRyKj;9Ewb06k0407crhvFO#Ztafx@*8 z#?-votJ%r#Jyz;KQUb+bJf0(T;=_EMSU8?72AUDiVUQR&8|A5P|1LZfGsAJcrRMT7 zvUH-586@#kW+VKpjS!UYqB(WrL;|GEvYco$L++UPEEo^rG>C)}HZz~x`A*(uE@GIR zi!BF}QrunHt4GX}w7FFP}gYX&%e? z=tdqSuA8hZyeoQ)i52J^=@4e6Ao~2SK@mU7H8$lAe*d2IIOOGP{w@?TiRAv(gA6m$+k@GjG^Q zzU?7v7YE?NeE7_7>F%BR|CB_Y3fZJO3ch2@ieXMqR?|zM-l*3rQ;qO5`-hfM9AROC zX_q1QAa;-iQvvK@^2y3(i!UD0?+Pui$ROILd-{7)_gyUJ(|WK?>){xWdl?crObkNT zx?lzA2!YEmew9ozqn@|SKRP+XOdfQW5zUqTpbQoaC^V?4>}MqVQR-avq)19Y%-n&I+}EVIjAdhoh{H>~S-p=tSPMYBc14^T zSI__%wY2cYtPDnl1%&9xxt^siWMl5(V% zxPlii_ZNv{Lc-5(Wn>d_v$!eoje5dS$x;OB;I*Y5^fY3*AxjABu## zbE340_-;5jx)Uaoa)DJpck8Gwr)?S$g8u8=O zGOtljwg4N~@L*g@zxw9+-Q_mZ0HYb}Fi#{-TO)g-TviB{g_-s+Fk!OCaQ=E<0f+GVwWT6>pl?K?a$(jF2k49ooh zSNIkD47NK+KNrd@5Hs}4jgy#f^V>5RSeW!|$|QM4+_5Mhq{Br=X97mWH9W|9>~!&1 z`tFUTW%DTPxzjrs5}^n8)O_Zhu_7lB=@3?W(z`bR!q68EAZLCpMu2G93$1 zWe4E{QV1w!#Y&2c z2m^SS>ZZkDvDpF`0+r#)n{Fw9z&cH$0GM*(zM$I^D90{@YVv}y5Rjc zOV2uK!OJa_!q=y?&>Wf@V$BYkDoO*Pc||Z8Bq1IwO|nSFOjXu=sOFOy8xw3R8kP8P zKkxVH?@v;oKVNfCfQv6B4Mm(!aw-5p{R5lZxm{h8%@I%_&a`|MbBG(AqHp! z@Tqo_Z`^E6ev2O|?|iV?u(~5sl5!=jCdMqQXtSBcv zVboBoMvY3wC^l|-cwKf2s9o+>?&#E$DaK2O^GH3#Sk$F#68J>WX{@a`w;JFnX=K&id-YDE9_)!O)sEcPNIivCz$`$?B zV5%c-=)p+xh)4P*Os+4$ttjWh00ntXE&~sasRhgyN>D5F&8Jh!kItSXsh8=2I&AnD z4>NB;?6eZcJlxosWzIVfx)}q{7ws4{f~VlLZ8?CZo|qrjCqD(|A_GHazzAr%Xh_Wz zl4}&vO(n}{>MHq`%`6EgcVy?(c04HUNQ|LOU0mEn93GR+*If*Mcjm4L?hO)Yem#K5 z1fRDB>6x3C1oxHG>o#}#V5D^zP1tH3E6BvLy1nn#^rxGbb?+l-T}LY^CII(6q7%df zBML4w3gV7%T=+lS6t3L12KA@BeQg|*FNH8s5}8pV&ypAaYZVwH{lHrs%k0_ojQRb~4VFIE-%UUSfkh>`xk^6$Mm#~7C8P1{wmUCOwu=DIh+{h_N zT(uJgd*D$G3yxEgpphkK!Jxcf3rV`jNXI<`vI%kd83GE?!FqTi@5$nleO?-uD7t=H zjpX47E17I!1Fr?fwlwaLyO_;Sz;D?stdW)~v>lXYJb9GSRnS3!q0EKhDi#?aeJ^$; z8W-+hb1!?1reDXT-(n>7dNsYxO>Z)Lk{MwkldXqXnUBM*G-(h@83te^9&4H zJfIyWlNDac=ODl6PDij`+nF)I!isF@dARjgL0Bwt&c}%@Qt0#&)POVLib75)>fN}` z20n_PdG$<-<#;e0H)LK6u4CUiwBnc@CM(n8BTBFKww282akq=l(b$*)Jq2p%EBB@J znzxcL7ZeuCu}+LgJ0$oq;^65r5{R*P24uL@XJ#a>F7<~sArBN9qNel7jPdSBdHErU zN665tkUcXLFejrKF;I%`=Qh(%g0Y_b7#kJ$!@48}_wA20vsh2aFJKZMrlm$^YZd-0 zn^gmR(FAkAPhTh8VAidk{7}tk;i)W09Z!u&O-Y=o1;v~{gSMq{jk#S>tVG6;ziifrm?8jUXEz6%~yt zJXrgV4MV~YuI-qSxSlx@HQ^%bn*A!27gG?C8bv(RR6e~1q@-q@Mb0+q~(#Y91MWdpPKs!gJ$;z z3}N1e5F%=RhGk8N z+ua87Pl=@=CReXhJPitgx#8|1yw6<$?uRg-jwM)JLIk+Qiy?Y9jzPPv=dQLo^RPYZ#f%K>aPG}ypdRVJ&%ig`D+7yi$>hUK2wj7G zC3m23d7YZ72nD?mg&2OR-_XQWTwz;fMRbztk#%ku*UKN|GRwQ(3o-rWzt8iH|>vCqf(S0g5bI@~5^Mxo0DFg;PCq3#hR(u!GI zovf)?O&Rp2rNuImS2--62?pq_l!iwD6;n5h|&zLBLG*zm5fhz>F;R?s9w4i%;;(VLoK0oE#&HC*>w zQXt75F$?4 z>0J>#pjk1MF`xtw!j~yDExFM@&E|&V;J##PwkZjdRt>OfHw*HbQh2jjTvg)@ zgK-(4(-|sDkQ`1H7v?v$yCX+BCa4z+jHX1VMC&-vjB^b>>M(XehmTkSsEHtzMG;Mr z5^_q6y3|6B+$dc(*|$LbtSTbK>nabodvUBjSllHBY+`){D0d8^$$}ax9G4K?(i;vm zs|XgxWWE@Mlutf{5u;ZWFU)djxKGQ~Sjbf5diirxB(Zg!ad~~a5};_Z{fo2ZewDHm zRcS|xYGLMv($u(`+UXW(d4e(=g#omF1*|CtV%rQBChsGIA_i9t+#|gkpQ^&dV_abq zm>wz*C8IRW(Pg7HoK9(*ic@%tZo^X|06Lk=o`i8L|L35^x&e0)>Q37ktq@wx3RM%V zcV4KQmkJndR!doaE;*w?={`L3WV@F4=-CXVe45FA2}cSbAnOLqQLBP?b`@o_f>`7W ziT=+ilZ!RSp>$Wn-eGlO>CrFV%wFo`9>VWHI}jdd`~HUlk}*<1#3o zVYF!5o^<@IzOFi)L5Jd(ylY*|6%74r<94?5z!+>%+@C9aF&O1xy8d{<-+9*ecb@g` z^h}+}Qyp^0i!ZYQ{mQf7?>CyXV*xY7?o%^sARRReUU`|Jvn+Cg(hceEXV2?e z?h7rpGV4oHv|k*9gSqhj^STX05Vyf>epXQf6pZGzG%2?#GwWLE2^+@TnXYUJ8i*VFvluvp*J%dxzPii{`JUqBPQO zl8%{Z-Ael5bBEY?VJm;9>GU^LorZL}$P{U(;m)bTkNlZz@yv9)J5X!vy+hlG*PAHe z6WdBriV1x(qG&PiEcnz!Qi1SHE;kvU{GrfKL(FOe@B2dS964Nk}!Pwu$IToaoX%ZG9T>eQ%` zxp?>rIa8>EorXJwKH*qHAZxHg&UR*H>-VMb(|11eW+T|CgKA!|EX8hxIJ;LMpFk|R zW1Ks*HugnaCu?YPR>po922w(kI{tha4XhBddUlQBj&6C7+Q&qFn zZatm@=Ue!}go7m#xZByM98}aF#kRX%EQGW6R2Yb!G)JARO6(vlZ;K{*<{Yg?aeLrhU3IC*q*R0 z-El7t5`90KW4sr+#e3KGT!zStM|@WE(uDc0bCRBo9OuR%=1K_=B-P}7^k!ZUlhBqU zLYXYk!c1GRONiU$c24qVW<<5>lDCA|?g&ALjdiD0@o)XMOjJH$yQ!n)V4g5w-XAFd zhNjyQR&HkDFIc79rhApSz#-Sf!9^Kt97K6L@<3^YovbHz+rDv3MRz+3AGarfP-99c zi2mwLI=F~4(R_2cCi)~-Yf&{&+wRQXWZ{kih5#G`*0l*0iJe)~n|up?f_O}8h-FLd zF5B~nS9y;XlC|U?-gAYfab|J;H@5u{%Cf8ih*f~_0qT|5DCUKpkM+zOFUNgCSFc=Q7c0u+deY~* zk2}2qiEL|P(H4jn&V1o)Y9?HExHtI$SvUnBL9*bj9Uq{e1TZSY(bcIPabOwGsg^0h z!>sCg>WT;K;oG-g{zGr_u(ihAF2IOUdXt)(kIV;KkS*HlbBAWH=o$wVABz&bRN*L# z-ozSRpck%7W}G@cJfvHl!QnA5w)yo!yj2ull1|X~{9g_ymM1p&yL44~}aQEa`la!ZQLRs`p=U5oK34w(9% zmhQ0LHQJOd6QCRm@o<&2Y|dODc_~sA*dIGE43i0n}}EgT1Vh`XpK7NHU7{ zj3xnmM$su!5Y5jj88s|vR;%0)zL;oPD_u3Na!x(Xu(c-Sar5SOXc3IxSUe{)iF0VF z$GyrHA#|9^RnAV>2l{yP{$AZA)%FHhr>L1M2cWL9X~TrsuWZpUs~xY(5@@#SQE9mt zb?YbZ`;-(h2PtW}?F=rbR;|)XIi6uKE|!uq<%CsvsdD0WS~)3~V*1I_7px~^VYNo9 z=i1i%KQD>NO|HB%*?PfMZ^U+QaOK&vLXRtvB-%g9-Rj)2Zg zkZL@1Td>4Fo$T4AWZ%VI(rUa`hD4y>#9^MB_c&&Sg?HSS_#N#&afc6WtPwzzL z!Nlif+qAdCh3@M91USvixR!~cM(7z&!MrnV@34&+u~BWunmf`ww%U%7?P5#s-3N+D zfV3D|03pEr(R$ZQl^sJUjAdDel!<-5SD>YB<%({~kfIZ!F{cQ?!11W(@oyl}7T>V^yUz-{TcE1g-Dk%^O71ah!q%}Y#}S;ub;di4ko^y~c4sHN z!;gk|*6`)qFpzICh;V|e*TmHHDXRo^-#BqrZm~o%UyVHW(v;vI>8n1Updx$rArM$^t}+2qmaF$r$q`ivfv z)AWdPdWh?%3DN4p?gU(7UuJaaLrX?>rhwK8Nj4dOhH#>+>_D^}p_bjx5#E#K&}V8} zg}KR0JnVvy&P)c$uA=rC5$+5=p-m7`Xs7)_GMIAD+7kS5EE=5{Gg^3`i~p88g{-HM{}$HI5oYy(M@K%8q;3AL$?cQ%aa{n1u^W zzy;%QgB_!-Np9$0$%gCRUzEvZ1X7X}9f*pZ@if04X=d=z11FjlqJim$+F$91Og-cwHhPMQ9$ThBH-Z9O0kW1$fLqqBWi~6{ zQAI{`i=BAEl*@8P;W5Vr7!aXdW!9hu1njoha4qM>%mhx-#%dtj@xfdC7$HRiBKe;A z^?AB{CMp*2Z662{m-R~wj^$PHsm!eHGs3f!zi$&>J)l*aP~=1zJB_g}YXb*>K|>>v z=Ay^qSy|jH_n8Xw)u;$(iZ}!={u!~D3ZhSj6NcCY+lB?zGSH+ALZ~I!SF!m;q zcEo(nh|2@=pIQ7T9cpjqns|$MD7RAjIkVh(V{^2mV7A)YVR`1L1*T;FCy%MC=~_ZN zpkOLT8)D>FX+w-urRH>ZD7H&|Q*7V;i44u9rr2gBimq6gfQ6+en^GBwS?(Zz(NDhh z2_Q6kG?1xTbRc7idvU6)PP^MOv74*Aor7y`r!!j;J0TM!utka9gciDD(Zdq597{4Z zV6?JHZFT(R>5c^}GtXvWSvVIj*&Enq5kCR}_|`HUITh@)&|KRbbY2na{a0OKi%E%( zhzCqRO~06{n0^bckP-F;Z-Y`*NpKXUXAxn{*2)YF#4Li&KAPGEZkt67(jssUdOjZD zPv+u?|KdugNRdHePBC?{ofYWdc~MSN=Rlx%1SP2U=fo}A46OZLwJ(I~{F2O5Bu+eNiEm~_uGKZkG$oGOBvuBRbbMWU)INf(hgN6PdttxpZp z7E@=%vx4P3s`z_kosl_P79Vu8{%q@$b6P&@ytQDtdp#Z z)UVzEUMEN_iDJwXOl2AHC6Vx1%H6Mzz?i?<*O*>RVP4FDga!l*{=I^+M0ab${L)bKJ%Jw!XeY0sZ zk+q1KJ)#yRZTI~^wr%|hZxcsapcJvcv&9G)7` zm@&QeP8MxOuI2#Iww-AR8MrZLN@Cayrn(;j1@N-(n-feokq#=e);il;#IxzWMJ#?~ zN>eDXoDsKcD9gNf+(W~x53^l=8X`N77#XPsit_reb{lDeS?hSHq*WdK!8TG#n~vDj zCIrpx8qzX&2Rj_Zu%V4#)1FIJwHD9SLDD@8fQ85E6cEZH(;Oi0=;4@Oo8XRnSWh&z{os7&;RqK^)4w_>CIGmG0W~F0v*gdT95wMqLX2}k^ z(7iGz()rprI(=>oTX4+SNvrFC3#34f`|@nE-Nagt$k^_K-RA@qy{j6ML@S0=awEVZ zFhGfh0Dp7RhlL?RjW(=N0IabHHj5J(&zS^plnw`ymGsNna>7E!_bN<7Wnsa2^O=DCLrQsJVwfodFMkkWVcKs zQjy~jabSNXbp z6vJx_gZZ|Os=K?sWB0LAknW2pdFu&CloH_Z3ES(+%}Pr~k}Z~;bPdjx{LR9XDGKOJ z5O55)37G$p`Dx=N%)iQj3{}1__iRd;4D7%cAS{RZz`}C)&q!p>o_0S|QQv>su}gaF zrMnU2N|E(`OFv>V!<|x1y09|LKde2WmhHly7iZ!#jiS+e4ndM}A)$A6`VMPfq>>~8 z77x7!GXtsRezRfFtw+aM9LYjWefEOGs~b`U(lYNMj4D@m5}u&n|f1s zcpXkH-{CrH*YuWS4x2TLe${}x3XnD3;PG9r^zvhO@vlzrKXzGne+H+av9&E2w=*{8NQ$emr8yAp5`y^6W#vg6WGqHC&07-EDP5YK!IYYWBVqkIXK1I}!njGY5(_|hS< z93X(@AcT{m5;RGFwv7rAtnx97gfk41`<}OtlFdqgf9(J5e&3%y(2yfifiVA8*LmNt zZ*^s7$?9`h%rI)0G?cu@-nox~5k0t^Px?8_D|yvLd#XRME`WoP59=38vXb@Gom_@@oc8n zjHj4KePw0r^6BjJZUAzeO$p(2VCgA?xci5RTFYq1q?4N{ec|Jcz4wT-!w;$SO{FJ+ zkZ+n1?jyq0HeBP|XCqV@W;~9GDxWVGY)O|~wkX{8nIJvpvhnoYm(AropXBsSoOTzk zOFwbh?%m5s{AZt3 z3Z&0gFT^_G!E@iX@ho2}WfGWNM+b9gixw3|*%~Wa^g7F!=mT*m6ZL>6K+%Fbn~apS za1e|q=W9`Dh-Dwppf7yq;r`+o$zj@?*Zg8mCWPw$;Bez4G!Q{@#B%2i2y(xctrhedQG= z_uPnhFba2Ly6uWnt2atQ30`#nvQMn1%*CG=^&d~~`^2i?*VVM=%6|)fRZai%%FFe$ z;FHJs`=zIR@&o>3Y2~U*`W|L4v*Hu1Oo2F z1{(hmq<3DuwERwm@Fn-L^fy-@;XjZjpPF;j*FY4473<4rn$W>KJ?%@m_mN4{nFJyf z&x?HSN4%+Zls+FyVfq$CXW8+*0zT2x=_fz6zE7W@FzWq|kBn@T4jYF8PoI(g;ZyyK z?aN9c+UlCVqhZqwM&vD0BN@45sllgWZ#%kd_4w;S(oDP~g^EZ3q!&y5B z$Om%}IQ+u_7*%pZvWAuF>>auV(dVdl0KcSOeMjUM^3#nAnP!fa_+Tf&d(tbeJ0gPo zwe*kIt@J;i?sI*o>-Zv!B~SzNp~P8A*^t%F_6C6;IanQ@YRV@_D!Hx^i}U6bzLtOj z;e~&S$b3pNSw3u_g8^igIl1T-x}zLqjaoWABuGNO*|e!0CKubQEa(pGozay3YHo2x z&zgRAoSjchAHG!?GV#-?e8`4YLkV~GAtTsY7C`tfhd|0(6L0AVE^6*hb`+gV|N8vJ zyL;NQQPusC0AFv!2PZRRbHC_UaCBgDepH2SyaBlR-JBVgA9ow2>u%hq`$MHQaVIlN z5>`0}T!vdJ#cT-y{f4Ax1L;T_&7SDqJ)EE23+AwXcl!F;lwiQ0MsT#pGDxcWUR`8Z zHOt^7W&i^$c>ZR;T|MRr&|6z&IlRQ|F7LO8Qw2P^A_1p(@0T{No4sH^FPggd(1pBl zZ{061(?^+ut{c{=SG=&)qyW+c9yqRexB?6FFFe3B*+)L|?@38>Wyf+za#qWJB^6ca0uA%mdshl2!l#OIJU~x9s`E0|I8c-@Q3K?{jDPE7IES z%lh|_x?-rU2xQwwcjTqa;ONlw<+tzQKa`$(`+WbZ^pm&8{tfB9x1a6*Bt7c$|I)p7 zR?tV2^rjtUnU?R&QrLsTHR_GDeM5Q&N0<{LmylKpcmQttjwBsfI|4J)~us(i8jGsui6xrWl<1*`n=W)Y~ihyu2eBh5+_p zlT#8X@dr@ArYlY~S;7H*q6LYdxZ`UBC^-Uqu*{#YuL)9KeKC=x{a0Qxq$4gE2}_>3 zOaRcjuffCxIbu=5G9X~kWG;3kTk#{%vIRddw^h~3C#k9k|BRHLKwZo-YE?`mPX)Ix z##A4lfu>48Yk?9MeYV;KhSZubP6}5|J>SPlsi750x(QQS2PE`zeF7NH)&Z%+-j<}J z($Ex^hn1mAz%uU*!^|nUW;~i_wun0DFOd}t2+^BR&(z_AwKL>!d`8$JPdx>mVy;>cv5fe9x znWBxI`l#n+#0LyM1F*5f?j$cK^KdeGE-JF5&SemzWUknWNg(3M$w{|v137vdzuk&Y zqQndEofcO#!flp);bXkwKLkJ1YYXg%y&}Ov19cKc2dn+x`y&0l$ zJa@Ux7Rg1)Q@K3Sz<38TkFaEepFVetBn5$V-`6nnKFV4{Myr6j7wA(ah?DizyNTE! zY++c@lR?+jRDdCInoD280Qm+k+!2Y0oQnrM9Bx!b4V57!6xRp{=#ON~7-ut)4n?(( z;|`$OdA1&o(5p6cvW8+%15PtL7nezCW(Y+?ar`-Y66Jx`|0UAJT+sByW}AJWrlE=X zq@1;G$_E0Uo%M`RPwlJ^*m1o+8%?k(cfDt-`KGqbXY?v&OGsJLyS$?X+coy%%(NB0 z*}Ud7)r!I>4T@^|Eq9ba&z{;sy}5D!nanhy{B!LHP(7dm>97@ZD2&>dY*|3G{HK^0d|T$`l+y=$1+yRa9A;p zr2TI)rcs^U0!+|Qi-XONM>wgF%|xO-2HP_=XdwtRbMi3O#}IXn4`DQ0llbkrn2u14 zXyV^HbCz)qOkMVaB?UPh>q@<|;f5+&8Kyy)wW11#1$1m?U8L(I}!F{MtNuT&uwl_&{1SVw9tXTmzG43_iEo z;l>pf@d;7B$d3*8$&HS0l<%RlYMIQmh&`S?%G*&7Zk)H~gQU;?eX z+y^+@pU+hQg%!i{YWPz{j4+`N;}#%NOPT(tCRcqO`QZDXEF2&nP;;z6O}@B&`#)?_ zyp|Ck-Otn^4&^d`*u987^p61D9k`kB2u-Tf3FL6*>-nTy@#?`o2GAV+q5b_!S%QTx z`zIzYbrLgcPQ`uI-}r>47k;$rcMiA2Q86aoALvl|RCf27E+8FV4#q(qJ2IgGl;Q1Z zm>QDecBTm*6=Y1v0#?_q;$r&Fn+EiK4zazJ<~Ybx&>7e03%XbUs)H(fcWTE2=X}XI z{nbsQ-BYcOz86~Evg0!*d^smj$2p3j315oRx(zfrnt`YzGesmH**(qNrkKa36B($n zmC?FWfZF)hu{0xK)!KlaA%OJSOc==Pjvr2zlu*l&%lkPl;QPa$xGyJ;YjLI z7N2||{rWY#q%U5xuv_p8g|JX4C>Ze*KCDHQlRU`oFX^#gBMw^68jX6#K`!K>>~3W) zpP4}2jNk?kWa?X5v3%h5^#YELmA2QS8Q$B88{FdoeE8Xbn#%tOH|975!|9dR-W%Oo z9H^#y-Evgl^*2OrSCAx56?Jif0N#Bkz4(^BI(P2$(g%&*w`@oXCqiFOYs{kLOE;vy zxusp-I}QO}JX&!7n6__S>ED{Z;nseCOZtCqUBTb$Z=F~9yv|+0vb%St-@bJz4~w@g zCyB8CZJp6`VKem|JFfV(TenBs%UnNT-;y2qgR=cfdfsivl}}Mqd?qkX3DJ@z^0iUjT{2gRiqkmy=WxIwJbxF zES1b_o3`z&*6Ysy0E)hm)vd3-aH>N-LcB99ZH{JFGZ;_#^V5gcD1(ep8$|JDd|0%Q zrDYkmq7?Nkmav|c#m99*9;Gn=(5mgG<;sDF?j}kR{7fKa8-46fc^EtuO@*n35Q!QP zB8xlYfDbc12$_@0i5LsE6>!OeBL|d2$y$XD@QGNvc4E~I7263FMpbyljB!@Mn1C+* zxPEkW+8QtWZ*uBFw1&zkAI|B|*AaS$gR}c@$Z7Tp`+69xCcYG1%{!{XP!Z;coGZ^J zI}KhOo0X)0T8bN4ITTR+_D*x(kPs}G?%#`>YxI5g?c1L{=%2Ay?3evhsndw-`dVi_ zZoKVwi9h#myZyt}eM78+dLzEJZlCnXKiO3!zgWu(??OJN?$G%3=-h8%cmrK{K%weQ z{12A~tN*G+DH)l2?_Gbdv5Qgg`G^bI*RyJ@>k1SB6SSTgcB6d}l?)jaUhdp}oe2$fV=QE)RUB zS=$*p1Wwqz5%V&rA=qc_+NGd4XEaN3Dp>dw;3k?7$BV6kw!&t)_xT+41*{cRW{-Qr zb=Xo`jFXIy%!xMm`}gg*->3ktkAWn-mH3R}D_!Y#Iag@-(pun%E#}+gvmm~>LgVST zHx=WJ4zXZjH_*}=^5@dQj)!Ntfx+D#p6})lp78MdC*d$B@1KHTFnOf3$qflh zwnooHIyZ8>WEEhie;ZtW^J4d@!3{T`9d3>WE4R#an+B67mf;;f_KEY|HwWK*Vu6bW z=YD^FD~puU6{_Lj$G=Y~T62|>&JVbiC+g<}b~tS!rzUcD$iuEh6Zvuyax~L0FE}nU zTAMy6cf71hz8e7EE*)Xdf28M9ES-)++>D9Cg371UJ=e;6&nUq%1;bAVoA%VZ77mRT zMk62^ZZxKEH!F&g65TTQ$w5@|!3Un2vE2aPcxu-F*8qHfw;O;TQDXrA&|g1{?Z&m; z00@=-KL;?l=?9~BiKK81rLQGmoK--J8S-$@c%@of0_GN0h?&lo`1--W{a{Y@Ch&*Q zUwB?xD1pcdPym;p_mm!JHGa|4(^xh*^66U31v^5Va|S>A^xn}6+j4_jpFVu>3%88# zc`YA8AR;Zk8xAYj*mxAge+sqcw{h^vTSo7CO(Yhj*b6$8kAH_6?^k>1U}LGrbV^4) zMdMlMJp`hD-ev#Z?q-epN}gL7yEdZTMW6!xJ$CSsS0?Sf9?wnl=t=2oC^s)K)BEaD zh^(&tK9VIuh;TGPhdS6@7xAK@3PFlK^O0_!mz%7G+{q3|7&)h=7UOUaIWbZDzb#TX5 z$1UP<68S?YU8C~^o(c9+@dHWFNYyu*fF`J%Nx$fpTh_nY=B6?rah=tSo;OyT=*D(H zVBGWZMYrB^)9)U2^?wcBX(oPyopB4f8x*a#a~QAli>^_8MP7y(j(#aE{)$d8DIBwF z&9cU$Tb7ccd*(?Blc&$pL5&qMdZE>tn;g^05TNY%uPwG@84N!3zjF>4VG}HFbpz-W z#OD-Boqo<)d%u=1bf)u+27(2wr?M)o)pMcAxcFIO=fn8Yf-pF~I4TXk^Y>j_-+3Jl z8PAC?8(i|%sJY9`NxCqFTQN;R{1Ttg=Y{cnp_EY? zjwwdy|Y)uCxhR8XL|kjcl)AwieBQ<|M{hgYlqq#%s5y-t_pL@CoRPBF9-oZEess2QNqUFT z1tN0u>8!f(GJU|FNF_VRU1}nQ z6tV}pUu!j`S9pQz5V$yu)sk;=>rj(iStEGwx#BOl2bzk51&zL@ciU5GVY>7+Tr0Xv zpVP_N>A)473XqS#lS{W=nI|0r7n`ohr)|2}{MCF~)5ZB`<x@a1ne_~&`I<%i}*(_$1&7?3{u)3<%NQTiGa+?dT%)~28i zNy}B>EecqRZ&E=1!?uspcYc3DEUOBfPwisb={d~{0`N6>Z8d@X8?USqK7+wPiixY? zRkWqrbfB>iR?-w3NJ}=g_N7MxWT?==_!IT%cOMW=_@Yv#aHW@g+ap|h{+#9&nxNsJ z(AO@Kp!6B|nx+QMs5yWgU6K9l%tE)jBKzB!g$ev@jNF8yt^khAC4xuWBBaxmR>8#5 zFSb@)$mf`@@*Bk0_5SX^GjlTx=u?spcv`gNLQ~m!T;I+2fJh zb^K+vCz$|b>VZVfG1Ee?7G{%j?$l8~z(pLgI4drZ-_610-LmzeiG?c@5+93I6lFH6EOR9 z(aoChx?v_Yk3zqTQWgrp12hgkx~u5A-9YxEqT6Zb*QKc{L9{=E7Qn>ES~QO?5^&Z$ zN(9krk@K9tTM%t~_N^{AJH94|d~u+`zC!Z&?(BD6Zsv%)r1YWlmeQv=0f*4mQZ~2M z9atxXIN~T|SvsMT*WwX~O3%6wRYq>pxk@t>$gdI12!ejJ%Olp`SIb?!Yow`miMyxy zEYCBc2m0AHyGEccxE9Tdl56yDPm;f8L==x}}E zU0=&~h>1h}bG9^g$%JJMGuq4w-1}5RkNV?ydG`6d>yEF$j-qX8J6FJ{U3PTrE?)Ge z_7G3ivhn=Jf$v%`hPNx*<1kt^K#-%tw^(Tza2*n1o8Qt!d@qeb;b(nD2u zPs@he^XZ1$vvX^1kC2Zat-0MMsF51*>=C4u7b+8(A-?amrM;+f0E{Dzm`oEk*RTMz<|LX6ZQ7 z*Dv}`cFt7y+mPOWY6rI>=L+&A=l{4}>pJ-c_BJGb4>MlG*(1n}qs)7=pzRqgew z+p;aw-N?kFK`q3;EtG&YwBUA8FTfW5X0Ob4GqXuOF5d6%I|V_?Jzy88AL+w)<|VDr z=(!l!2=5%o>6W6be3VzGIDdZh^&fscf0An4dZ$OCbmN`bfAqM?E3dGM%uv3_U!rhm zGktM?xKHcK6DvyDOL1A`N_wO<+XiKL#I|p*y)*kokL!!KM)>yX%UBdAh?*{ClV`Zz zJsXXvNi$Gw`mhS!Je67Sed518QExlwM-rBwA(AwPCvk z+!&iu6EU`9W};hp{!j~On#T86_PLa2<`k5Pk3B>MrbA!Lg?xpeG{%W8&f&t(p6)g^ zrXgA)syVp^K^RGCH5*({;QSbyT$nW!q%2Pd_$6MuE$f)&#)sg<%vl7M3{dIgcV??* zx!!K$Ea@pY98#bLPcaPgY$m&8mYcSRFD($!1zdINGEQ*&p>jXGBqVBTcvv7KtPn%t z&g`vOFlv5h^}0DBJvpq`_vACZ!#%mO*Y)ml!=3pVAzGD;TL59##gwPqE5GhPgVUxv zvu(ZZsG5-~dUlhqpt8fDM5vx!K&bcb=%!}Z_qi2SV=hj}*rZXci6r2#ohEA`56|tj z27Td%Q^2<;Wm@5%u#Pel0Te%*B87&lqwc zn>*P}$bLM>Eok!MF>~FW#)j1rurUcDtg+RFh6MS;TzBI?g$j!_?}5t69w5Q?05SNT zT+25B^1gZQ(JmS?$pK`oO_M%>Nv&+*PVVv2cC(Om%y*;3kpcVoY|r`bUndNMo%Iug z_Yf<;b-sJbst+|Jh)qIq`|3CD>>h0O)r%p1Vi$0T%0Ih{n_m*xb z=mCkw9#7Y0xl|GsSSvPyS{`MpRa=NG;C_qFSSS@7q+d?>?wC&pRfqLf#ROorA|1WR#5I z98g?`Oo8qZNBBbJh>YT!Enh+)D(X%0Iu*Aw9d`;y`c`2rm-d?$PdU-jxe#Z1ii~l7 zPv%Hwt|ITy?3his()S89$OD`U(pGwj^U~fH3j%@#(iAgjZwuMyc5_psFpaaDcXRu> z=d*3QxgPgi*0b1MR)5SeHH@br(S0nEi~=PjiyxJ-sNTQjhIeNy`oDK){H@JZwB|XW zEe%tH^i&PQ|4~pe(L?D^19{)_M3LyH!u~r7Nb8@jky^vO@r$TIGkugwo2pY|wlk^FlA9bj~!uuw)4mM2}PAZQj>TE<3IhJTyLT>}wMnH_;ArX|{( zi>p^BrRGa?Rb@)}f-)vC4{YV;EN}m{I;L1!n`>fXtXDp?Lh2?}MS_H(OB$^t z60QZ-rohE?A&zFkW~i9lm*iGR+tOB%WdsJ?}r!$r^Qy*+@%Z9yA{@ zwjm7Rln=vK8n$>fNN^}rY^Au9VJf(&D5t!loNQ5x_Vek_2x=gB?Les}qF_Kqe`)UEP4HODv-iJ{wveT$|*~BqIqBUmoe5)!$ z1LjKZf7MvumzDSkaBh!o(ROGfaMH?qF=xdPu3*KflY1Mw7`qvoKtHoSW`n6kGN>8p zs1U9udcfu7fGcF*-`yR)0}d67Btdy9@RYBMAQeb2mB%ej@(O?%yx@;xvlI4kv+J;{ zlnv{08;0rZWwjR4TgdW8ThUJ(ze-fJqDnomqWJufqYQzoi?`)#E#hRNB!esd3oZp)}F>7(jB?LbHlSVP7vbsW02Nf)8lBB4-MdjYBlM zd1m(Sd%Es=OZ<)lH`K*~2;l<9xEi(LCbb9RC)P7-11j|6(KDj?6#X5a&gTN8CC+P9 zpx{EQvF74$%fXuiD#{aOUGej!t&>k9GU9I$d&Sp?k$(gVAA%o9p!iH8;i!V`M#Hd> zOIONeOL{u405Dq~0do}kqE;`+K=t5)$~0H<@w5F4)WB*#9c%PeAY?g&uwwOuF_kUn zVosT(8?nVdpYBF9#qtma34CDCV*j&n@StbL4xaGLL;^m*Bz&W=o{$M|9LEJR2`$+- zf^UZPeuO-MO>II)+tve-n_M=(WGnmvRMz6Sbf{bnP_3{tCaG>A=lOz3g1jL-f(J#? zt(8(nm0<318&%)QNYzQ?8H&&pSB4)HlQq}qS zHl-MyR$`$|YYAjC(@z=M^9)Z3KlN)OO6>>{XdijKZH^nK8jRR%Gf-@8uti(CCBr

8v={utVvB7a5ry9oeRvNWYn!Hm)(pzoiDdNn--5yKfzJS0yzi>n0GUYBnCJtWp-wW#0)snt| zMv%&}9UK)ZLWi+nUCNpNwaZa7&hfe8U)U${U1xa4v zzic=W=ao&!+E*Jjy$B5a$*}{1}9)b)C2MWpSXO%WaCI&@Q z1h}h$lSK3&He}JD9We}D8L2ToPS|0FNrkF6Y)RCHP#7*FX~5S?4#PG|JCVf7&8K5P z0m|`gapE)!u8gYQefo$$7ln7nVSj5^CoMu>Y^sr8kfw5#spT3dtCcw)Lq>n;+c{2s zB-1_CqBwJq-ux0*>>8;-Wybsf4@(yodR`Bp$CmValpvH9EC*evWP?L>VbEk-T@;Mg zxD0O!>EebUvrh)$hrUVDF7yUW57=C$IE6>mU@`a#_>}rg6cbvzSU2>Fo_SecuL&5~ z0Q7JVZ2g@0iyl^=NaDwgcNre0ix3nnW;*Pm>>Ym+*rcYqP`L(_yBbt`x8w8N9tXKtMsPqZ}gA)tql(ZXk$I{G!q+7AU4LZaW^=NkvTp?Hs)Exv?d3luNOJ<#i1{ z`P|t0w~A#l$N33@@sRi#|AZ2853xIqifS=rft<9O7Uk|$C8B>;D0k<{v&;y6w^9u$w)rRq}>f~&ZbT)fx0>Q3L*2v2*JAW1f2CX6k zSddWafFON#7FdZdXolQa-Leuud|)IwG1lu&A_>4<8Dqp5ad@fNjPWpk9vzV6ppb4N za^;!eEnT8O{3{|1j9|sg;%^qqq(HC>-Izo(%pb1i{j_;SDLTzAbP>aW4^v-0oi9yNlgC$s zz0Z#)Vha+2KQoh)rAvxIfSXMQLFn0GJiQ7|wn8JO8A(5t9ctGeOp;IlTN+R4(l}s3 z*t7Uzw}09Er1A0$><=AGQ|_`Ik>hGiB#RPWN!Eh4jSCobGeK8UxKTDgjIm|(VdR&U zM28I0Eo|3B!m&D-zIt;c{*h0!zXqlFQgSGgY**mj*x)gef%R{&J5MSpfANRv$X37x zLv3UWE{pNvX3a z1$vKwEm4ZPO)8pi&A3kVEU`W_*NThv(L0?@)W%1`k#sZ16e44Tq&)c77bgEJYHu2H zJg^302^={S7e}@y0uC=`QjqDL zafdpbKYmb{YY8Rg(ZHt!(*u#|PU4YG6Ck7{pqk7jSaM7KW6xmh^`p zq5j~o!NG>-hn{15qdN$axW&O2VvKoa#Ko55s>B|4!I$r4kte+t&9vqRM}K5pd#5W_o3BAB7#y*WvT8nFk3<8S`q z6VX<_!K?K-X67+ijVwU?;3@QTR*ieoHPOHyNa`H>Z&+Ez<_j@bZ791Ep=6> zo85ycQzLkgru!Y)5&B-%8Qm3MMA}G>>)x0s`*BRO>cJ$SD0Uzve6AZ4)C6@hujt6; zQ()x@#uWcog=HYnTo)YIIxHvY&4P4SVQIRM4V_WC$o}1#-iZkkQ8-FqWN8K-gCz5Ne7TUr*xBq_I@@i?SZ@alNeZRr;Lc?93d<7uFeudl$;M2(ymL5ow!hBFo+KQG2l>PypPdGN4mgV^MSyf zR1SbPa_MfIPb4%VU$weDjMGM{a+Hhw+L>|tNZeHir;xwCiMkE9)wCbS~34XfscgG1N`x^NQ1 zFzFhIg^d>ZW*Q&bt5~gAQq$+ez_%l2jif~bmz>hZa7DCIu>o~)6Q~P0K@0_?K?0^E z6T8e84#fq}O1!}g3``iB>V~Os)qX09c2s?ekYOu411MyUC911_4gaRZmQUmd4 zThsrLaf(2a2apOe4iJx!AS$_tS_&IPjlRV|_R%-E6AfU94{oghY=EJOwa6LGXZp5R z+{Rne_ahh)1&z!RDp1Rk&*i%Z*Syl!y2&T?On*Lj+AG~^nM6cR?$BKJq15%YJ^?|L z>GtE<`Kf!~;$PbolNk`UXPE&d2lC1ch;=HDPVOHw1A-Idh(!B!Ho4z@Jll7b>kgj? zvyZKE%iUwyO{?5Y_fqzwrEd1jC%)y3*P@QO^mjKYb02_8zr8EuJwsz;#K0+vpUCDe zb6xI*Y`Q>MwI%uNl;v(@#~tjzWR^f!YbrZ+ANLWrclO*q?jU|<@9TEr=cD_&dbZ>K?k8NA z4{%@V`bAiCd_fA!d|CiHtU|JqsHS_f=?A)fTE0$l&v;JunFHNk;e9V@8#y~5M1`=*BGZcM@(Ph}ZTov-C@Tvr1aY@~U=cTQYKYC9BEmU1d#RvGDb zbcJlsk*>xf9v?6nIOLKXD#DjO?52memj_Q&ck%y*wtF-F30;aGDVIjDc}FYB z{o0DkW&Fo{7Oisg>Q}?7Hdy?yDUSg=rr{u0hNQZ4jc|+H)IcmbVmNjnp*%PS0>ck& zAF;t2+Xfmkgl=SAHFOHl3Q<_GL6;N#B{PelJuRCk-k>k2r2}>R!E&x6?O!JC4F4$; zE)KT@b=$2u8A_SFPZ!$Q%MeLV_$S`Q|5X%@=fWlZ-0kGzv--Dg+;T>K{VKsB-l^8o zuYKqRr3ygt*#p2>OmYxkVW$BCs&W+#&d_)l2?FB=ddxMkbpF&X;Uo-$r;vFdg@6h1 ztJ}nqey-nrweK%$!^!ocptKQI7&jMI$~GI-ahy#{&5M&*uHyOG3#Yizu9CfRikn)G z)6Kl1yXpVD5OC;%F@kaFRz*#+w1P*lt2R>GOKO}h%aYnDYdKZ|%d6Hd6N+Pa&^X9t zE`N+pdh8W$pcIR%v1BQkgiwZE@MG+Y$TNcX_jlNN-W ztF5owDZx>4b9JLkp*0R*>D7%=*F5aC;r#m)oEL@MXVp?t^P(f;QU zs%%xP`7ZcDd}9M{0Y)W{byDqk7*=om*L=vCMRbg=MyrVps#_MX5z!J9nl?*-g)taI z1$+jQMQG#Ny+@xrXj~i76|qGnMI~AC8Tt4ksdXB!1+A-!!oapu5Dwj~hSbdoaiFD#DH5%M zg7ekl2Bl38(p`8JKyHR|#P=Ys%&!F!@4?^2@nTw4mH3dUTdBdut?eSiJfOiv82?Ti z^~BS)TCZQTAAL-eW{h!9<%c;-XlKip97rvbPOAo(R5*SaB8H2d87m_b^yA5*pik_N z^&Zcjz|~bGgMuPk<+hvyX3!@s^uzPSPjYp=geuc}uZ8Y(a=-_TpFL&O$5g1jGOOQNv@cE zq3$O9OPfBAm|~%ZgpZ*Qc|HX{ATiZXSfok-BB|k&$Ys3dr=JtA7{(QHrKo7ajKB-1 zr&`Lk)!pd&aI3Y>_-d!qECT8QT{N3R_6sY4i7G(uHB>2KDA)u=>x#^3@naH+cnHX; z#!PKTin3tOsn}D#9#X#4)%rYBDDeL__hK~2OX8qH#U>IY3tCA7h6;Ql{GD(mrdm`q z^v8CMO2DWykYf+>M^{E&qEm1PN|OH9u1toO`wxG6eH^4jZ5)sxmOWeKB}Q%Y9~yhF zVD#0~GepvF=KVYXOf;Tk6=bA>@hee->7Z3?H&w(1c~II+0W4-J0h04z&Jpf1Dy=X- zz$^h9~@=8}6ueG8K5t1NHlO!jZ}1&h-fj1GMlxeKJ}S~7h@btbKWXgKxg#q{`W znT9kpz40hMt5U)TsA+|*^aY9?kf1E8$MUTVe|ly`THMe(=to$_6eA5nsFQl}k^rd3>k|+nGL86lrt#t8AL})0of$to14c|Wc^#ji!txGLFqlhnE96!)#T6cT0f;tbRyRdP1)W= zWq=<2O8bd=7$=j?=x8k7P)Ue9f*SB8ML4 z~K-P^Fh)TBhYy=sYPm}>4+ZjMpO=DE3 z9I!+wHEk+TjyXd4Y;w?Ad?Aiqm$ZUHyyEC#UF+?4=On#n_Sb>=dM*IFuq3G{%#Pmm zB(v795}Bgq5G0U|JcsZi8k?DT03Ae|Ie80{ndA{#W0sJuNsI(Ip@F3t1UVy_MSk1$ z)fr$6V<1%$mX0wD4{*@jtgDgW9Dh;&a{VOR6CaN(D9|B+5TNF;%%|RUJ~*( zPh;!y7P&bI1y?rDQ!S`VRUk(oeT6O~^T#NT#b9kZG*l-DZUhyOUaOU~lYKR~-+SC(tOrBJ5#N zFq?-a7eEbtQq2DPS;Fc@V=*Jar;^yhOxRk-(i5v=fn|GAv)!)bkV9L;Vx6i*a-Vq_ z2~@0MGAxb{LYM)h6+WMDUocUU2Y8Urcose9FkB{3qlm9#y`a5azb|cIx6$8Sl0W#_?cd* z8(J>kb06QK?(_v?2qWh}bejo$;c*>ZU|e;&a3_Kr8G1*WwEr;HBky1@(tu~XfLT0EZh0P( zvo;&`dDpw&C9YH(!^$VUm-^E`u5pqIiklwnr^CzbDoDm4*+?4T=aADMv9RU*z>h5F z2iqsI^FHq;)Qj=!5~r3}n4LbW`vQb2%S&vs(Z>*lR>zfOgfqf82v3WgfJTNEn?8Oe zV9>#-90W}^ zo(Rwa2-(n5hJkJ_gOHzvk{T${_I^=YC72l~YA8>3IsJ3?`WFxZoSG~FP7l%HaU>XB zkx_y52Tn5~U6k;V(u|t9f!01%gYnGsZHATvo=oP9G`+8GiHKWM0$1iB3%wpAwL+2X z4LwR4U8}I3<)!(sn7Z<7!2PSUk?S)Jfo3MN5$Ik*=aQO4f%(MDXkI}}<_ef9wXKmB ze@;-T<)oPdG3K_n8iAZ`hy|E3HI+#m^FbX_Q%>9T9z+2pHG;OK2t)Z49t8A-Nf zhn){^ZlhN-sI1-G-L=k!uMbzJsvMojZBWbUr)(0oLzm!et~O%0f1%i8!9ZIDfyC>y zPKPN5!^kBa2uEfoC$|G;y*VGD6OgquQ$r+wqAiVMg&BRoM;ckz+a;)TtP}LaU&>}( z;HK2cGK@H9%wVHH(5Z_?s2@+{8pJ$;2GT3S^uK;Zrf2E8NQ5@@s2S^hws#SsnE=A3 z_%{(28_bAhG;@jJZA5!F9a~zUoTI1#S~V|W+@)JKV5?voB*X`f^FO`fAG6@(xzmyv z2yG(J<<8Qj`3dDK9H?(tU#iZMM66jr4E^q|wPoWkbTw@H#TSy^U`F;S?jrW*WtUy( z`i=vJxVhC?)z`o0+1CM@J=c(+PRAs-5&oDKWVEc_0?l?RKKp5uHX#Z6tItG&S}upk z#n3QB$q}PK`GL2u^SoVNMxEELNjPheNoc}R z1jE9tkWHWAP8dA5yK58gd3IZ zVD1#*2iH1DN)#$ZYIo#cM-i#Rp#hQy;&-;A= zi5ws~#Pi|e#@h1fp8^J_GrB#+M`COq%MA279Ja`5zQ(|W`}i{cSk7*`4A#<%O#zQm zCR{D^DITRToUNYKUxHGhMkzS9qzhV4$D+-r8WX%$L<&1qYNRmk1HqUUy@vGls;^X~ z7?`V*0<8Py+6KE7zSNFj_A!EFwiSCC7$|zBDv0-o4B-@34JKOP|HNl;^rN2jGB;R8 z>Fq3h(+{wpkZz(JwA6ksj$3h%qQHULay+`7ofpIPacFQ}kf*T(IhzVqk4|zfW$~BX zC`@f2v>mIlk2-uDpD}C!TZ7ZucrP<ldhN|f?_Y(!3405Y%MTB|D^C}-*4dw=%cA` zCw#Kg)&SL|k%FdN0V@DE+GtSIxi_o8^qgePDlM|?2YuMxehuSkw4N5(QYHR6HWGV7 zRRN{A;Em02r)HRXbJ(Hw)Z`xXF1g1~Z&Cp7`Uh_OMXq1SXVw@-IKpOrZG!kTLJrLv zF8(4pxlbdXDao)tUhCL`%F4-e>^NFe>$vg$+VuYLR1x~A{p_T)71LTr7gxD`yZVdk zYSR&F(V832;_FFh@Dq~hDZc$RH=a|<+ftO4qqYSl%1u{4KG;>aOZDqRUDtsYpilv9 zt`Mrz;f*y5Eb_)$8-oXTyl_BoZU_g>1iMzzzZ+tKWi&kk?gYdN5#R>487V{xcsmg+ zETm^Eqc$t5``7ZmVbB{O_JZM9>UI_nUeA3rb5LGVMb$!V=cLVztF^`Js_ni*Qsr~> zKmmS;_0{pM__xGftWg>ou9xk9zFu8i<8ZYU5IDP225*qCyrY4vV7o$-_z`u~+L|FL zJUEU*7U!ziB=j%(*27d_Cn07SB1pkE2YUrAqCOeCGP#jJNky)PHP&;jx{%4vkbxr- ztYl;soosAVBxIW734mazxe>R`2y(P zxY`K3WU_$eq?eTe*wsRb)ka959x*Av&YE1zUv!f04wyq}?zm&j-`12%p>9x7QXr$c~Hvz`N zJ1H|Y#VjGTf}+XFE{g~d+!1Bqo_NnN?2IE>x5Z00R+0~u({E`Bh=Z>YZ1PYVzo(s1 z?7IF72QJXH*vG#6@3@6pT>K(y2z@~ZYdj!b(ji6O8-k5FY0Va2;l>eEr16gvY}nJl zbU~$(`Tmw8y`fmB4)RX_1B2A+A(m4+AV@K;TG?r$6MDu7dRVRucOrRBQPhEl1Q4FbTOiI;=f3Jk#Zn7>)}5F znuqF?*`20DFOdl?MFH0isSq?(^)Qkqtv&c4(XF@Tt8M5U^if>JECKNoV7xa{AEp8e z(vOrVY%V1_@@L0ryOb^WNdiOWEc{7NVQom=)U}@Cf#DH%{IX<*WCy@v;mgrNuRrA(?|2wtUG+B~(ISi)gu^I;5I) zgF5E48`t3bIi_lrcA<=A_7@7bgpll6F<-3M-7x8S@?=j53XdG8{tq8$*_IzNikL>% zk!`#RBj_*rS|qLyw6!(RaMaY4ULKZHlxbcV!fj?cp#?ZE4T|+6e2EbZ(Tz_hmbsix z0tI;~><5y?^bA<(8OkRD_JsVkMGT(X)+nJ6u&DFY0-cL6d0I5gf~EN-IR?s}tz=Y} zaEyy~E|s+?;Q$SjjN%_Lc8o=BO83K+AO^1`QzNVhmH=@DP*i&Q9nos_Oj@5U7O_W^ zscyQT}MUkeSMdPJcOQsm0hYBDOF zev+s(qS0lxgCEp0rVjqhWirqRm<^jbhAWf|vmek#9YnB$p&--=HYL&pSkXq`;t>Wf zvUzEPI#6~=C=qXB^CPcQ%+Mn^OXWvx_z{JZ9~PW3Ef^2KP; z6V-Xw5ws#l2@e@7^y7Eq<;YWj149^JNKeyF46ud$6(C}K~TXC6c2wFu%=%qvABm49>ll}@P{K%p%upB7;)w(f)mTatfm;=U!xEVo6Lk8DkQKGe)31 zuA3nz*!=$Rvg|k4q9%`(6F{P450KZSo=Z6VJF)#gnl&7|q4Ji+CowD7;3 z&(JtVr|0!^67V_c%)b0pH@cL^J{W1h&1ajx>L$ATv!8#}O`bc^3bA@)2eabOmafbk zy@*dA%rSRqSw{6l{8Bv0`o6{_SstrZGORdS7+YsYT(|}vEX^&ssWPMnns4#P@ ztoGQnLoY0VU^z9N<{|wxYbmMamv^C1Y(F>x284R3F&vLOhv0%}Z5rZW0n9{5Nba!4 zMfGHHTolZO_VL1uL}VEE;^e+0;JiLl>2z+NsooeTd{#;(n1yVUCw;06g5jXn2xaz! z|1dI+hdeHs>ZRO!0p%%R1t+ONUv~U2P{Vq5rmdc{@<4 zPN~0Slqw9iegcEhd`{!aFZSEWDpknVbUm7Qb;@8Ktj zdLq35bBIr+6OisJnV^`8NRpPfGO}6Jsnf^K_*z@OE2lfrHJxATy*Zum59`b}R4p!H zakMWYAHz4&G1MIaVtbvTU2r8`GsPw|d}DTMn`$XO#!F1ANCoTC6nMrse8o&5&#jGr z__!f%LDL}7j)pO7V4s(2X$bK#nPg{kF2J*`Mb7Wbzt{X#Ry0@ao3=YbKe0xz=p{@s`;9GXnDW4o!c) zG5rd2MES#Av#m@me8%OabOl)`=PD{@-OoR|r{=#nq%+$5PvrZYIciN6d@mjZRX#D* ziI3$t9Lq!=OF)-hR&?2b83JH2gRu_!`Rv3fh*FMhvnhpGnVlqIR?dTDJ(NO0snf`h z;mf>h-}={aEh+T1hs(`eDIo8x?Yv2H*pqOS6+VW=P_g*HHF9Ce-%q7dU+$76ST>P|c&8 zb=9eu%?P8VLT_NHfT@YPkp4pt4K2&H{5)6d56|k)t?PdaUsA_hghdOZVXR#cC~iFy(Hv0fm)X`??gJ@3;AuqqPJl|fiY`CK;nq1j66CCt zLl1cPrmdNB+D+9}<^T~44;xLe7Lb;<%M>txsovEQQfhqsPMK-ob#oduIouW~$`?x- zmU&W(8iABzF}(9eK@!bL+&ugfjG-8T>j{xX1S>Im{s9<7o@M)d(@m`JZ1j;%ZweeQ zdxYQUyQs7PCYF0(QLqb_9rDO|dBeXcGej&0^-HaT?D#pZ8qucwlVK`$LYE_@wJ4@7 z_U(*l6`oh34|^>7MC<(~%0r2AfnVwts+K%pIE#K{xiGNKa%hd@5Kd8*dG5eyhR_|K|~ zLdNi3t&>v|{9%$se`bIXIst@6Xlqgi8S9&y~DiNe*= z7wv{wf?iAmRSAhGmCz&H*gOL2Lysh{qI6hZMPiy-P|<1+ymSJY$9KwW0zy z(0H!Nw%p_<9M(-M!`lD>1DmwHA?vR#rmKw4k3KM?w&X;TP~*{(Kr|++QHS#mQ$ZLB zK&{z=o86SLh8?h5!zbZKW46}b%nraFt;EyPIC+zHke_^qWTsX%XL{w3L}xY^%%(pT zSX)lsDoYPxKQd9NwzaOc^n57KJ^)`+)hB0@2IJO+X7Ga7_FIqzM^fJI|QJf*_@G&2l72OyVA0!wJOrEe)LW_ar5~AXNH3A4Q~CdOV3)c8Ke7 zTeHoFxV=Y47+HRdjdkzRrtG;@?){Yw5m}&^M#d6fl%vi-8#4svtqmmvU&dEjxQ zZpLWaE?LltUvt36R8jM^0QeUi69FPE;>!Hhe(&-L$Sb18a0ti0r^U3Ul!$Bu)H-#j z;O<+o2z$a;L#CGdUAUq-(6~pBHwl|};YW2K*5j{e1r_5!<#>hz{DkbhgI!g?64M6i?OhC(X+-+gWItFEGIJSFr zu>|!TcR(5v?0$e;bn;&VkoXR^u&P}pR76Wwv;t8aQK__-4kADZ%dc(*9;Jx8=n1ng zcDPn|PFqzwvcuhcH<&$sIF|EAvsVsx%jPVo zwH%0n-)Sin0bViv!%sO-8P^%wpq|115QpxJ2Q3zhkMIwD)dDqcy{|O(ZO(Bl~2&%U2xpPy_$;-|-+V!~~XPb_8 zV@6ot%rS3sroR2?Xg5jc>1BUC+O6`PH;QP~e&{jo?D~a{Sx*8JQ{>>cLzPyFGw9$V zIzrr9`oPT`=6190;3*2hAj7-8lv>D@?X64CBY!`CtyCl5{P}v9an*C)YssXsp0UeC+!{5K}2l>PeO z5bzss$V$h$$=Qu7+#bCvX~W9}KN}{)sS>E*li(*OwSii4@v+(FV~Hp|wsdulQ&xz% z;_#T3se!S6#>ff{yKcP~nU;UyAVGkD>lNecToPo_U6th-EN^^6+i9G3mrKQ-Lk&&k zU}yJk;G9B0k4QxPMGMi5@OZU7NEObKX8bB0qF9SMo*>~vxn+TzNJm4*!6X#1<%|p0Mvq8-@j(9l$jQ$zTX4{T+ zhiAWC;SLdnq$}AF&hJ?(F$Va3WTpFd_L1W_aptuvv;W}NEz2%G&Q0ETOB?terG6<` z=qAlmgIGhB&aYq|3JsXIqj}bYCp(PK0~nF0HUTFDOa38pH-0JGcAOjEeon!^qXxdu zzV$J;)0FR78oE(chr;5h4{m13z2cZR4rvju&+@C?wBmXI5*7(S5-D=mHy}Fu!-Y2u-8aKUS45wx*W*6O-EnY(={j=J#Pp@$^ z!@sm-*Q{~-O}y4IxqGFZE5z17HFBI_N6cMn)n;!Wz{%r37hIGUAS)g3KGFWuR)xh` z0?Z)3H#_@yH*2v!2|9koF$d@0lDF{%OO09U++@%eAfemGmy@xG7Li1aBc+(Hn~rzK z?D1wPEDUWX7Zt;Ifve>pRt9O&prr43WcH$9yzi^i@*5Of&*rv=6S9rBxm?zFbJUu{ zsGJm#)e@w`=fRWgCO)Q=ekiJ<>`RyD@4j8t)<_>f$?^#xJjJMG zAaA`YM8gF%+Yge~k~WS}OkWP@;~C#~>A4+At_!O8S-xD!{_|g4f4$isnL8*d>WK!A z;_Oo;s~gI7=t$b<)EC<^L0a@mh$96e4$~SXJWEnu1IFs>WWfHV5(?>&G&w7*R^VRR zs+SFZ&`mm&b1>kwBq&R#Yh0MiTfZk9VdPSI(pM>$(^sQb6}W0XrMOfLg8EtI~M(lfvI zobxlT2*!|}sUq2Uq2fs}uEX>PKeO^*`j9(g_4)MDzq8_A%TVt~OUx@9u{`4ubllYA z3ug1AjwC7&a?TUv-1rzEtk71TG26>3a0D)pk{VllO!n%B+^$CnlD-$5qIOIJ)``=^ z;TUAqQW6hfVb36=4dq3e5-#xrmI*uUO&6&J*cT3qa}kH#v4j2>11Cp zRcOr!(J>!6%q^;OBuDEIS(hN|CH*dO%EwSE_j4AJ|5IOYvBZqJ+`nPqd`0+%mZ`yU zc49%Y2_7ZmBR;p_V{%cvQ3O(xaD;TgR%J>yY<}vA>{yeiz68o^0i^(I-hzi@?ll&m zrKPfzpcomhHtA~=v{fdl)zbxRQVb{|m`dv80?t9F{?7zhRk8X+?fbqaDy zBB}t5i9=twL8cQuw+ z$ULJ_l>1K~*Z`z92kWb40iFLx>FoD#2?*HIzYy)~51(-3#@K1^d0HiDgsBrXrxV>L ze$p+he^uEo^ojqIl(qU20q$!}3hQbw#fM>)3(F&EF(PL(M{Q~tu(3Y!|Fg!vufZk2 z14jV$CvC4YW5;j6L2*gjYQZ|U6ssfLmm|na$-hKOd%;N6&@8QX4Yi1xfLT@{1ZgSM z&rYlOm)e+ZP^gHU(R*r2KSsDaz(&z|G0(nCInUy+W_NrN3ix4*)F?m?U<~Yb$?Rn< zC%8QhY9w1>iqM4+XgM6Mz*sBdjoQHiDsw=;ku^ml&+CbQ93L+2gi<9hAJ03%Ee_9p zAba!#cY`}K`^;K5+dZ9qZLRC;_$j=LY>omV`{@g}|6(nN+=ahv$)c0o@{upJ)*NG_ zS+mj@%-z|CPjXYRlTJU0ll}%aWe=U?_OCwQT5F*kHdYZxmf{C;5!Zm!Hda{j{6D!v>g|Tm!udOb~NbaXD^Rm=%eO zCVr(QJM+_+jb~V6p|Pljj8#%V@PC?!9x3g*RUXW##f z8$Wr0$A7?O12hVfCfyUh8O48R0#9+%0nY4G-1x=zq%^_QqrMNoV5KWRCm+h>E343=Kqi4v5?~>xsg$1(H7}({N{b>JD~MYT z2JuRFWT&4W9#nh-bYh~qv!9$FUgdtC{W}h(S*>fJeP$fruku2)rxh3wkm-*05L%3oW^@5Jso~#q>oOCF`4nMRD31p3tJ!;x$m7$_>hR zh-tzrP)yI$3q2-wOEfz4EzWU_^c-GVVqvk?RZn|r#}5|qyq44KBZJ`>cW(Bn!LT;| zlA&S>>W|@`wSoNf(FOJU83pqOexKMBZrm zR(#jCABETAaBN)sQ&{0`5TjtZz~zGO&a1QJzX;g6_w zP*~F^ogMO}usTMe6(wxa3m_K>5#=B)=}ycy}NYN8Da}KOyCsfCh3+pXkH8eC#5lfFn%)Y`Ys1_ zPB5A#EP$%?I>4l5_QYo{4cT41;eNMs8R^p(6qM|^8fFjPPZFkx1j2B++#0FweA&v1 zQM&azIKUuX#~*ZGz6sOf$@(@rvDPMcFFabSygZ>yUl8#6M7U(cvMVBzFRA4xjapC~ zbR6B!{Vj8f;)?FTPfIdSN|x3P6?f%y%vAbH<1;#sTgWyVXgjJ-1AR=dvP~a$Gu$__ zpM2QO<)`!!e$LAle*_MGc6R7TI92neXR=E_;@-E@J>+p5?PDKwpL5xs9}LH4`#TTJAhuzBX{JXL<9(EsdTe34Bb7#m|(E7OhSP!#TE8<%+fz>Jn2d=NlZR>A4 zEh*Yw{dN6wPtCsgxI0Q;{poRcX!zNmW(PjuK0fb*LAXSJfW^z4j1UG6b^5Q{G+SRB zaPaSX`shsnGu@DbrB6s7d@{S^`>wXrYmeh}o=sc*(uRv40v|vhfd0Jv6bvT`uS=ze z+=LTI*!)Oa_Q@w*fB1S^cFU7=|CuOTu+{BZ*;}ML7x^@|RC+dBztv^#D_Pf5Zg;rn zp-*v|Ehmey%8;G@l-tq$I=kg5m+s&nNtcqJh{chd_GNM&T7LD7mQo5@y(Am+12@fG zo$dYu_qEX*btbCsmts-BEtk=)*_%IbySQ7jIZwMC-0Ruc7kg|5xT$@p|` zh!2pRjlM3OcPhv(k`&HMhUVi}3iJ#4*|QsBvP87czME%f(Nkxzvkf2#zv zTH-s6l_2cOwr-(HYFYm?Zpsd%2ujD1lOH{5oRp~~zNg`z;-*_GTo~TjxzD(Xxx3M3 zvTr=&j;r^g1z2Bk`f0C3!jEw;>!eFt#pESg$#*GqQ>eLCns9aC{A;dJ$v$r3DOv-w z#?lcxRbcPQlMZ1SR`5!pAn)!7&S+r6*43~`lug)4|(!dsn- z=j)#xt5_6Z+*h*bM{Z;I$1&NFx4F657jJVr>^FXNsQ@|<(T4W|KMkFAdXhM_&8 zuashRV*5%vFA&se7L~pKEAPQclLR}Yt-J}d58lC&j?1pP!!6)+l~Cv^q7%(p6%z2W zdjSduncX8vYDLDty0tOpYy#+TvX$|;u`;_l-TXZaE6BQ zZc7A-`q`STyxXnl_a4xT zBHWt*n*rBC^~bv*iGo4Lhoqjz$;g)wF?@{EY;=jYdJU5Ep6r>s-BNh^gnKaaUdRr- z$4wN>KXH%i3hyjupS#CR-a~-;o<+yB#xH2GM0T>rc$71IAv!D+H^H4G6)}`)Bf^C7 zxHZuAJ=t&WafdD1_=t9!!Rp~+@KwkyGP=SO%qwY9VY*0O1-$zWXYdjR8^y0@^?Oa~ zeDz+p#|X-byJ`{|NS6KiUN=<(xDTv(vyi?2J~u08BRlgx+Ic;D=sx$Mq3`4i^2nL( zwAoGL^@ldQnR~xkuv`jcZewzHb4il|7!8|B&8G~I@s!d%l>B!CSuhRb=d*`5yS@c4 zaH_eaU;_z|?oyEimO|=X*i}sJ`H1wU||Zj1EpJEWFu_BfVK?5-Dd~{1E(9^G?od#twqya6d^}8at@T z1r7QUN7BmSTg!+u1(Kk}1_gD>Uqx3Vc`;^+aSo7vphx$TlGn3Z4+dJBM3@!HIi|-a zd+!uiCrEZi@p_ziXbT!N^%^&U%4q?F)m)^TDkSO?xZ)q%@;`K+zDZv67G=ebAC`u| zTPmLwouc6b?UwZQD_lIA#~dKIfh#4C>{11S3B;}l?i>psy&~xdug;dAxc-kc*7o)y zvQ^G7jjvV)0+)xtY!=SQw0+-{#gvoNU&7b59>d%KDFLh{LKM+oZpoRUFF6OKNX~f6 z4eT*$J1(7ZdTr#X1V9T8U7Q!Jquy=0|B-H* zR0FwKPYSH$1K>63DJyZ|(FFwa8s<(7TW@AX*Sjh?X}~7Buqc?dccA~WFZ|q9j_mX| z+#l7&Mt+g;^QaY12g}xYv}2q&=W)NOZj9`cYeZGQ@F0XOwUi5@{J>F=sKr*^Nl-Eq z-Ez!%cOAWy=<_kzTR(T*@kX+4C!KGF^0}kruFn4UoSWQ6hp3WyD`W>f@5b)4QS>uZ zN~h1`zVKA6j`vVs%k5WJ$@^m?^N>s$Ls;^~CD*9!@?F;?BeI*HcY6{soc-l_cgV+R z3{TXN7XU+=Bcqr2qSD5YL7iIXvH{%0bE?tn?o!nKVE8 znH429HM#NDgU(y=-G5_{dj|veC4Z~$-+xRt=Os+|&g{QmaB~;X_dNX8j#HP7K8?`AJCRnJujvI!+gi$SGc^y4boq|5{#o38*;NL>>t2V zDP(W|!cFKN#u`8V7v>b)(SPed3bs|q?tQ_H%l3VV7{X?;7xvuvR*R4tZLE;KcBz$5Lbt&YI(283Wxare!PPF zBXOFe2?9T85mC^+gh7LsomYPJL`uTez+sQ9O|lmeHfi5;f;EQaH`GWaV}tA;xae2A zuQNVS?=Qd#`U_$PjPd1GAz8$M9VUyw8$aJ(1fl=O zzjWgYct0a@$Y*nY>E`WPU<(Hrbj@$T6$!schI}m9mP>E?Ve=tNR|5kvXJh&ogWzKJ zU%zBC>16Zb_xBJ1BcGv@D;=FvDKN1;h#2Y($JBF;obw%118@rWh6QyY@^lqz)hN)@ z=6*SBa)MAjWxU1!EI*?iuvw0;4yzN$=z+Qr5X(L905N79*YR}~fFhoG z3tZ!i%`L5~Yr;}({DLSU8SsP+rod1@);u-Wy0V@A2la&qWYX8m2}#$6Qgyu2^8{4I zq8d)GbRZ!Lu}$Q`hdO?XC~`(%^(bzESIFJ-oCg1v(7eon!AU=^duxd^iGgI zrH0NbWIBaCh!Euc!3v7@i zq9itsBY7Z(O&d(hT+_eCehz)+!&z=pc0}uec18xNzh?oJ`d(DE>YQ)p#So3q_yagh z6xB)EyCQZmqaK#~lh5iL+{Snp*a|BHS-`5+N$CQhhrn#nJ`%$Mezj-3B{5uVfoi%* z$(ry0Uzr7w(HCI{zHvhkQ9vc#Nm_$Z5S(10G}@NM&zx47Vp8N=({KDg#?A!LuIc*! zXYX_GeZ#%)oKGMFphYdHTe%|q)(5lY!qtS@L`C3P^HAcIONy8+o23!*ZvPh1FJrOhE2 zv$!$>M6fajFhK>flp&?*oIR$9R<*p_uxIN=U!hm?tht6L$m~cWbdr-MMWiu+NoBDj z*omJYoh8q*zv2I!=cLPhe8?out+p62S1wq_*4!YZc6?R%WCZ!<_-SUf)&}!&ZG;Zk zfT)p1z9#%b+mv|FHw=qi9wH}-V$814!5Q<}!s?)#mBxwz;FF@CZeUJ%&X##2m%83^ zf`E4DH(`rrA@wh%IQc8){(LFLtekMxKiF-}!+Uc3zt$6n52y@6Fd!q14Yp&!j&P%> zrkrQBf!)`|Fa#XMN3hw+hQ1P8K{#!RVN*!8QwtH&aT44j%@L}gfOoqS1L2{j8iXXT z4V9QtU57wacs4wn!08Y4yv$Jog3lo|G1M|<54Mm8sD(TjswJ}Uj^yul4V7u+Vz43F z&$hiS%m61`Xg6~Gp1{9RW7&Lw) z>ehTH&{GYCJ5^vmyvr9u>oy}X)QIdT3kK7w!L)`KUn6OGo_GYdj0Tj+E=}04Pz0RU zU^JNxJGyu!*aEfJFrZu&JoU{ll_SQ$ScNfdx1!21hIt}CumH(N>`*5Mj6Ah!iE02w zE3F}Skys#&#Q}0Yh6z_ZGzY6u57E;`y&Ws69K#5QJGEQVn4+brlH0se*yqf64PazC znsQ)rVpG95R60_AD~Jg;^+H(`E+$lima+( zS(Mwnu)rt^=p-Pi+M4tHfBRCa%KU4x<}3x+9LOPBo$ZAx4PZ*)i9eCTr^F~(?#j0- zMyRFNWL%7er@dm$O#=$H-YC4?;x>uyC8oWUlA2;)Ltn%1Mp0Q)@TA%g;zA8e`j|v( zo=DEgrUPeX(rR@btiWs*4K0{9Ww&o&hM|PeNh^mX|PT%MR(1D-y~BIvyqyjU62Dh5NVjj*>7#$5_Z&PwhgV8ATH z&NxeHu+CX((t%1!aNA85GP&<{uh`a4ubfOEp@lxcXF}_Gvoj8>bDFS)=!~YO{xg~w zHOz-OjRiaGx)`2@L3H2)r3HD8p**2@`^K6jL?J(CX#vwb93EHHzbqHCUBz^=H65;{ zj=81>FH51VUSd8qCq7aH)%OP}2BgEFp%ib=>XK;&BpieF&KA6B2xG@>NAv=VC4G_- z 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�s=5%_`GpJW?wZ>jX#8YF)Fw&9LZ~)Yz)Y14pHJ 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%0D|cl4G!z(+$W#W(xe%$1c%m47b6FRRtxW=E~8 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�va|z6i@_^j;2%1ArnpEcmVFyF@di znkdEVd?*mzQO5SfT9>v|(z2Yb`~)J{Vzuz)L>58H9rc1~w|hQQNO|4{2nQCkP!6=? zZ4U~*N;6nIYFVwKsLVv*f$0-L0TAwQFPM=nvvj996Eh@XOYov;qda5+UOptsmVmOw zyCZ(Qx*58z|87 z3E-!ZAl}H1dy*@>Y!0cokBtV`kE`7|FPrgHdiG^<-n{FEzhdfXaLOxYUwI*Lu#~^P0&wTniRRmM*PgIn)r1%Y7UW z0ILvxfGcv-GnCacU0w7}e-nzCWs|)J3;kY++nrWmij54qBcH0iODRl+!+dNy`~uaj z*FnRKr3J7{;EEGjy41)Q%DTV;SPXJ&3H{!tyHz|1a;VH_T*E(2eNS!sM#&M-GUU^f zAS{u#a&$pKN}!;f?YVSl+`Iqebe(h6ubWW~H^E>v!$CerpUk){=dMP$T`dl5kX;cW%Kec{yO%i%C12Q{=sJUxZ)Sxx++o=*R1PBByrX?W#K4;?8$SAWXeQkuu`zrhMWvC5ri~mNy7OYGX{&fL9Y1V zDHSb7Rh%s2Byfpo<5=w)-ZlmkN$4(q+jMHH;(qRh{L-8*cK5$+s?oG~EF#Ih_BNz@ zldFHnwC!?&h7IFE0%7PL2YHS;a21W$o$(GyBWAn1-!Y>Gs-UM@O?F2>2VTjGtX)AE z%K9VE0ls0b48^1Ga{b>m$G1KKezsjHcjLQe?C`1HJ^~5RU%ng~rWgm+eKdrh`74IE ztAs$aecJ=yGud{R zt`cft%FA5&`)2RpVRzvB=2s>um?cBlU*9)_N`l6K;a?NruX_KE4&rmm0;>-EQP8wjzO2-kmtp6KTD-FKgmvH%I# z?Yz|t?eSDDNg<#>;B&I8SoC(z;2t)@`*5U*hI61EoviQxL8dw8q) zbNFxThJR{y9L(Wa0yRsR_+a*NsX4&%fQhSF@2TkD)*oN!Lo8Bc#W->w?cnBpiYD!G zx8YOdk;mM}pPFBG{5xU)q-+J1VmKOTyySa$Mf9ON_A|3HgKQyas!*YXur*#>;}(2o z`s{n%TfU-j!wRo$5m58`?|jWL4%iv7t2}qUa4wyrp7?U{*~t}dl>Q_s?b>~AhP8Ua z6Fufp@eZPDj``g5ZC$d)GQDiDGRV3GpQCMf)ZO#BnbK~Rk923L<7EM3?*!AM>MPj5MFwu zLH^^=V5Fk~d181K$II5UhM;wwZ)TuHPX^}^1k))1qxNUb+&F4I0+Wd@MD*ap=^dgm z=o0G*qQB=P8*}eg5Z!^gDhUrL2JX!-&3(~@psW^_Vxj88~@ zC`I$xxfFL)N{`) za9{n~4B7RCwGe;wq2_|cR;$vwL>4`buci1aQ8FT4tuTO$n<4+o@n4x;qg4{cX*_=U zIncy1xcMuy)9|0JD~Sn758eRkA5zj_-#im8so8hvo33-wf6Vpe->gZ+_pWt!|Hlk# zxF)UXul0BaDsK1M2GS3k^?R}+#a3ral~`@mVPe$rs_maP4Q{)#DoJwf=n=RgV{QN; zTDt1_$L#{YZ?}XVUkLEX_alsLKWGRTwO2Gi4tJ1bClSoOYfIV_aVRfn#aG?ow*qK} z>e0kpv*{51fGLmPuug-izw%P(q81vrY{avi=kqrD|3z zQ`NY{W}sW}tvP$g!=;Px+6@^tVcIYl@ei@<^7z|F*cph`9Pyngde(m8cjn-Bf9Gv) zRwIH%TGBFSt7;(L@SWME=11=&3DKoS*X4WDt@DeZOns)k2MAgUn-T#@kCJ=I9rZn@ z)ql8!-{ae{YIbb*4CcmJ86$5H2^uJs;Rw^V$FyEYZdNToBrtR?p|WzM5poJ;KAH=UlJQ{;_h<@?v2` zIDJGgE!utMiqO6v1kby98CxI^)dLxOT;FGjR0h(xN1WH4zg)u6HQ%ac1aaQUe+^Mm zLeP-jU~HKkA3W)9D6aT579-AUJzvZ+0_$*P}nOZhFA0qy8aYR_pic zhN>n>%IY zu0Us~Iu5F|?KJ0Ty8JZIKl!%e)PA~?D63>p6m}O>+JcVTh*tu?4bz6|tBlKsBr<4r z^6>&FC0|yC zgEgcCCV5OvAq0b|biEq(-u^*88a4MC{rA%FMU>`>XQm5skWpUDn_TWyOp!l(dEBf^ zkzpO?@K9CW)vZdX1e7!UbyzyNjjc5lFFY}M8qd!UR@ZUS}-S0>g%}0NN)#NJZg?giN z3j_bnE7_u_-SAent5FVwU?S;4-HEO2@ts~lVq&yD2}Ja?wDH|(p^%DeIn}+}%5H9T z`MchU)o0gx;lC-jF+vkC$aQROyJAS+y|u+n)}7kg%H{mZ*0xV)AFBFX8Scp}UXHU` z9cA&thtbAHueeuR+u^}6uG0?o_f)@f2Rm^O8L`Ei1xnZg?B}b@|0iakSdi zSJ^6}7!Rqk-H-*u1R!jkyef!hpHXFpb$$~+LnfBRAZN~WpOk15EjXKE^s3ujW&5;R zlYu}QYesjj?A+G23R?Z^MQDa4lyv)q8`{oxZ!Ob2GZiJC?wNSKJH4G9)7qzfh0=VI z=`i{x=bmY2JDBNos9kTh`?Q^{9+eSYrR%le!}>h@M%r?(zYABxDAU>r>fv!8qN*;B zTfkOijX8#(yX?{+12)2yd$paz!YzAYdY8wk5Xnp5p(I z&>kuR|4~6=4g3%Mt#x;Hv^yQV0eM>nr-pn8D8`1bo-8#&+tyNzy(bH+4vsq@*VZgt^D=x||sI-`3bRS385P0j_lyTN4VcxTAb`BZ?t!~9p1J`6&!hRt0F=R1kfASh zf1}%m8=Aip&8Oj!9#Qd?&0hJOSe0?}(yT60j{3b<)-=%?D~Y@i7bpT&Atu008u_;s zgR7rlKgEp5SEi&FzB6!#bhSNMunk>pds0uiuJ%EG{X7qcxYPX+Jz}Sgg~nBfbw#72 z5ecuz%j?|>T91gc^y} zlzx{E)gVi_5w{@6h$oCn{7EmyVg^p-ckcNHj~2UDMb^Vs*SBb22k@5N?3I<%X6w9i zp^X+Ohr08f( zsJ};;{5XvsO35UPKZC>dnk`*pQsBHHW;O+cb1q8%K~E#0(^rK&N(6$i7uRF`uZ-)* z)UaBRkV&hfu<}WT_A!JzslYuaKAUD#XxW(2q(#2{#C(fWxKtd5+G<3q(1pL9!uqsw zZnlCl`Pmf+UrYemrt2(Ag$M@8N?=o1jIk~b7gy56&6?iEL0>^)iXJM5j`0bRv! zk&>_r$7_6$i>EVOH$`V_0$}VRN`sOHg;xijSP->Cc`T>p+BKiCOAkr<5U#%VR}#aE z2H~8N?}eSkU!Ewe#OF}}z9*gs3DWr00mlL#^uQ_2)%+*Zky~v-#?+C&HDx0})AH#f zqzDlVxcEdh`7YB6T|6m!(OZV2kVa|>#eByChowT!E#Ap?->r3$`wF9J(oa?e^R0D5 z8+v@TR%}CiOjH|`>_vFovSR0a$9!j(?qT=i9Clz2+b$#?>$g2@JnT7ydmTPmbR?gR z_!&x)@`IQa0Ew4z=xIKIJj)6NFs@kPE3d)f}|*Mhd5z*Xp=XUXW0B;3}XwtYi632fP%S_uQK@}2TsrxiMBU&?ak zCw-mN$2MQ|WSGx;GL$bBH`*mxf$~snIZ`(JBMp@K#+9%qvo~#Z`I(aP@r(5UVHQIE zN@mIATZ|C(v(LAQ}5muxdx)zyg}7ScTt|uHLv8YTYUxszv0d`(9EL@tw`R5S54Zz!ti` zy=-UFnU3jYyEb5JuWD^e!j85NJrEyQy5f0DNR+$Omp8u7 zcU(gH56CAxrO+M<3Y8H!E#8GB;>Qm|RFnRKO9r2t#Ono(<41o6FY?3oXn;02Cu#JW zFE6;x2rvX^I5h*psQO`;EffM7vV zXwvfO`3_Ty9mmOZC1GBmwDV9>iYfQIxSkfbO|m@ClHfbFMpPHonW0?1ZDU1&nw0Tp zOL1Q{>^EiKeJeS7c+5%;fez%o)(J_AgSGqnn02YN#g=`jL`O+$6Vz@opqEtNnAt(yP*UNqFz|Oa0 z!;*a4&#U`cJ|L6)wD5^kbcyTL&-O1{{WgXvH=&Sqtne)%nYkrp=gLxgzJ zecjLQzr(qJC3&{w{+r?mcUXU0XJuLbqKm!qC}L1dsfL0$Bz2nxv++q9p~l_=Y<>3yz&9_DvYOGy{9*?J6wwT; zGe|NzKI4`TfY_gQ8wS{Y+cwI{kg~F{Q7lAA?zfBG(VPb}N(O)AF1AoOw=%b?mG>Fx zmQutnLNA@L9A(bqqtdm0GTp}AvI{!Bk#p*7u>pGsR>l#;H-OFPLhhMW97Z4`5HT_% zuvqK)j7q!&IoYU4UR^XDbH)H zVCl-ImqO|4uB)?#!|KvHd(;7#7Q9NdoY{ODC5oESdDJ^};-lqtb7{H|Nj89BPNBjRTkcxSDmA#*az7r~7#D&^#Gf$rbr0qi20 zPU=|S)MdNc0hOiKMGxMSyV_n|>I#)%z5YmnDPn1?CNpj1ss`EK**CJukG%)ku`M=d z(flH9z*RAt-7v`ZnZT7Mtf!9ypzwYSfD)ZwsR_`jhDFM>`ywC0!_e7Dt`oRS7Vo2J zmBJ$T5WRzN%!HQ+MtS4Cht^crf3R)edGW(!6OKlRFJo9BUA`v-CbpO*u>ZKhXjeD6 zIfL!)yS@&c_ydPme@e`Xpi;zWmZ-NNY2}A;PIo_Z*%|Fx)ZAr5YXAOjEjk6GgjY_-R!U(&c_7=-~>(?L&*|fI(;{L++Nc_k?z3C`T_b9nnm7=VQVn4OOjBNdr@%$o1ddj%d3S0FrBj0~XKupm_+;ffY`Uu7s+oB-B)h4>o?Rc>Y+#ZO1}ua!amX0@594fv+GNv zXWf5>+DSp3JARnGG&jhvpl{Fu%yi!lL!!9I)$C!5`3+^bEBVbCnVd<-6*jsYC$q%+ zIJ(Fkxrfbnzw(2C^#?nAg%P0+hS5ScX#CO6x`lcNYkbAsu!kKQT;^Wi11i|vwcZnL z#-;AyJ#BB48t3i_*S*9o-qZGM@s@Y&A4AVs*!9bM+QSZLG!29>d&P0Ilx&CkRLteU zp`f>)Url{d1KBJ6^E|yauT>i_qMQ`+{anLv+jcLgS`z^N(09FoQyK)of3glfW`W zYNo!ZBwe2mijaT=uT(VOJv!2!94>g%?J~-a*XISJ?64wppN*?9wSc^s9LxFgWzn(4 z9C8UJ4GG9q?yXVwmYpsr#@}^=40Q)XHl6{WoyXtC-@HoRx|O4CVZi3|g7^*oe(&Fh ztdjWocauZwlpy+r#+Qw+o9YvNq92HU;mlsP+mQROCmGon+gg3^I>M5tAa#{`okJVM zuqD4~RgyH;?)mPxz3d)l4iVu{Az^$s?*$b(_v&7DpN7jyZF*3c#rXZ|c)@FU0+BC=88BW&#aBuXI*P%mV0=jlgrqvF*FU|8kPqUBON~O}rAFVq zt|1wLZxt$vuU|l##J7`@P);_!gnmD7pLDC=cVNYNa9RltJ^1hi5ZAfXG}KjU`if?N zh@HnXn-5eErs_ch=uBXRCQDUUG>1Xfi0jqXXC$X6RC=(bIS{a$QcE{C zZ%K4^}e!ltTb3Af+=cDK%RN`vr?2>nEIZY#22e|wH6P~d|=cN$|y1cO#i z9AkG5xUgyV0k$k4cx&E)b~W1fBgWd}c>B;;dtN{WtWgKqJ$CdK2l&is#T1K2oQcb4 z|K!aO@iH>zdWE06@gO_2rMEIKZp-2co zDx0WcACba%g8U$L03XpHHDx2JE43CwBahO6+R22iB8!#Rb zzRvAC-u7+(W}2fa43e!p8$BZrE=q9`;AP`&-mvo_Ku(OVb1TQQbsyti8E;1hhr6x^ z+nUT|q6k z$D*+umC}DRo~tjIIK!q8bK((-r0~~y5>w!HhcGJR9zMi&uQN&c)Fw<{Ms~VT>={~4 zCkXac(%yLKrvlZqtNFR@f5;$dq$DWf{iVA`f_Ms7$N;jp|8qjCM2ezN9ASK+IgSKe zZO9Xi?}<;mkw{pVk9>SzII$SYhOpr0_KfyhI7KA8rQFoY;;B!AV7BC)54DHvKoqP` z4TPQwhHFuGxGN5|Cy*fit3z!sXtwq+J3E~6s{7kvws+;!SN%l_z{Qi#53@UkGncte zzp(p;E0((xe_{LfTX9=cBm!(i#`oZN@rvb{iTwfv8>G*qZuYkmvApnV#ceAe{RK+j zCMYUA6j)Tpx-Sm5CzzYPHdFz!$Ntj(2GV)rR`oY@ue3}ZE$}(!gdK~J?vgN!gi=w zRw*m-jECJfN7(8HeleSn6%&<-ZmGnvjYY#Y$`O=wW!P$qusd@PGNKFff|4exml#PARMS9B zy@_#a3F}GdHVgP@_vw-L=fya{8mD|(B$G$VD`lQyAaodSd5UA3n|PGHI(X2fkG6&G zUxCY7%KnQ_&Is|p`9$tWqOWs@&yFvX!R-RL|&Z3-yEvMrD zuw|~eU7VKI#X0p*eM%$^;!jzgyxHW{f4td<`6m^hJ9CO&vWsu`a_y9$UmTJ&d^I|! z`12pUeQGnf0MdX&WG*8;+t=+Xe<9MPn+y+(1xcw3nyiW$$C4YW#86Wl|K4(W+6ZDOQK- zMp&qQOC&IWnuam zNQm^e`5tqe?bm>@9Np{8H`4$Kg8gjpVA-|@WG#qo{KeCy5~=vk^$E7}l;)`Gk<~Z} zdM7mh)VrH&02lI1CURqe^>XRB#-A9u^}G4caNAGmR+`>2zvwKPkYq93g0*nw)1tz6 zMTJKnZ`-!KdHs)`wf*{I(vQF0SWY*`21EibJKpX*{7b2o#Vm9FMhiu&B-a~K@NZ6@uK01;wq@9UByxRpQ**5L-DPn_5H#Me3KwJ`}m%UE1LwazdU!IhS(QlQzsh%4e zOT4l^A5aWpQH6Nc6z5K|m)ADl_bB10>B7e-nw9Y!GN4_qc--&T_UxA0<3*D`2J1BU z{IBg}yM0Lx_Ll;ZVZ`qyH)Reync#YSIUXdJIy+7B)H_jF?b_wLEIuG?1f+Di)2 zOYgLZWe^cDnDSsgv=0|EP7fa#I+FNsfzpBJOHo z3fy2-zl|yToxHAyY4Yq5Eq~5}Dw}hLt!}&Z+9Vz{!%ZKljBr3AMYqQpw%aaTxR{Fj z``i!7Ae21O)3X;767H+mC~Z&hptsB1Z_cnC+lJBO9=-G(_DOYPUL^-ydj^W&zj&uY zeoBN063-_{n2iet4|_)oghR#bfH|Xpmkv^D4Zg3jB%@JepdU>y<(*`m^+~1TS_Ix? zqlEi`NYWjqDEoob=IMHw6YcH$2FooyFy%f89r1=L0k=b7j)2vI#W zE*~1j@DiIs{N27CFSz?*snmv@sLe|hd_9c{xumql^e0# zgc;uO_`7V&Oe$n^ONMh^-a9;%d;^+>j|A#F3ZlQb_)LV=C%U?0&cyZQcsJ)v+k5;! z7JDqAulx*sDpr)}9hp+Z9iv{!$4F6g+EcTCA!=p{u+A#TTL!aq{A~(aPj5p^rvvm9 ze-FkMi>^xuhGk2Lj5EKL9NC2J8*AccxbdZ?Im%_V;mJd|EOMKkR##pY0u;I!?mUA^&$4+}_Xj&r*NXl64|YfcQ%>a1 zLQ(NdR)z?wj~Eh3eSI3rnVJ&hjw}f&dAORA+#jWzb@=t%RiXpxH7oHv&(xO08A(Oh zHPX5}rwJLHLkTkHF(Xg86P9P&?UlGCe2mghHMe!hx9EEa1q*@*B;%=D?g31V53T^~ z`vWZf;4|tj{iE#{JxW|*3GDzJedgBv(RQu{T=~5LiY6;l8d?)Md9e+2Z`9N$CB5ga0Krly5mD!5z4{Du ze2K;rI=Gaj*~GbE(hQ`5>~V}UN%$Ig93j_e;dpLJs@LSO;#u4|Uds;pkuSYOo)j7> zRRx-Ou%@|qyKH&F;>r4|y&kfXSivIp+>C?92=(manBH<<|HAV4lIbqbA!uSn%^F+YY_`@=jb5r5Q-pGNV){Oxt$ED;Bq7!`%TA9|&Rz`@lPo zNqz-;i#6$_S~ z2Vr)a>)YTTp48wUZfHP2Sm5jwdu+o;A3Uy4qtWMRZH9P z3_>r{(n1ce#P`iRdCg!Y=k>K`cu9INhm)k_^;c^2SZjt?;xC6Y4C*ZHRbUE<#-`K` z{`8xL6WoRFMWLe4Dd`anQ(j$HHF?C8d#~x)uq4i&Iw{uIlb1~%Oex6dWeBlHxH`FF z?VXh0Bp}NzsZ(XJN_xM^_m0sj>0Qo4C7i|6{VQx;!z*#=^Fx@$5C{qMBfRO#h9JI` zG8wcHQaQ@Sl(KD_%901WauPccAN$qlhxcHZ&{V&%`r4%WCSM&tLb}rEqj#lR8Wf&Z zs&KJ~hdZ3$Q|Zs{q)rSSg|VJ@_SW6khN48k7zOMqTmUkQAD zo9PQ6BKZPWQ((dN1t4`=Xi0${;VdK}`BWwiT(jcDAb#r&wj}f>d)2V5?(56>))$dd z?%!{2_YQ%MPI}VH;Pi^dPGl(W!Y=?wCHQW%zuMhK4#7ZtGOMu##Rc_jI+s zsY1SD#Jkys5v!lQ^sy_-&mNp!-PrQe=j+>QUraI4WbQZlBDNWH zTPd)u_*Y5sUrvl?CKKSxD?rANl((K3r_6eLk7l&UboZAbYA|z-xiJ%e3654rn**QK zlDf$RCzah((`={G02835usnw+LWb4@gsckx$9ni*mqW%c2c%`FDtn42teIjjA{O6g z$9Sgil--BXZx7#}&i?^?I6D9z%#fmZRY5l^8XHTN%?e)tAqI}*-MD>E(QAosxhl=1 zl4!I9KxrxA0M1gPZ3$Hgg5w=Q8=ipTKlrz$6zGwTSGbnbZP$ttgP-PhosOF8NO#P1 zJ8()=VRSkEN3*U<;$PYRJ zH6AG`dT|g2lf!cw%j;M}Wj)}LKk6u(qE2XvJn|3fG#LMF99huQ*ZvCboc^Xfr~AJS zr3ZL5Fyd}kEO`jkmHjMX;MzvE!4e1-9cSXlp7lDnTy7Wo=63~vKXU=HAYQWUmmoHm z>xRhgU+SVaK`DJxD*49u2tR||E{$q68faF=8+4R!O z6VaWcF$QT?OE&N10xJqhEbw}%wyMpwZACt}T_HCeoHmptIOV0geTF@+7Xaxbncya+ z^c3u00)~r)L%?ml1jCExf*nhvEeS5iW-}l21u9guBKSZdC&S$aUVK`a}R}E3Z z3a1X~N)ee}b0cQj-exnUF+0U?xwB^Cr*XfVJ=5;8`zN}r0F>gY)+cpnjrUmaS>Vc| zGrS!&NePFsDw>43!ry^~FwrBtpIrB>;;Vybyv`e}r6f6z-mOLk)O5;t&fZH30V=a| z`B&%>sUjK{oYDJ48;Lq8tM`v`-wS?Ipj~M=0G|O|fQ5mTuh%`I_h=C59nGJ5b@KsY zm$wq#0t;Qy48GY{#Vh2;4T6GrQ>X>{O&DgGI>}e=D08ulL>%bgYR20&o*Ry9EF^CIo_3I z)I#DKrJlZQ>VH1vurJT z!C|v(efUY>&Y5L94!#RzkyjVz?KpI5fqaMFFB5HXuSY0Dn}W&?qOtPmd(O)N%N0eG zduEm$P(9syB~n9#gY$EVaMru(*#y1a><*jFn#sE}XWP-WT9iT}(kwXl#2PKAV3|Ig z4aoqk0Z(zS&$c`7>Zh{`1DmI_YRC(>?a}yl;|P`{*F>wrkY(UX7IRs2zT0ySfvBus zoP>^;V{6Qtydt4syv0qKL#V4#SU`dDW+e|#zH$jG{FXU@_o`bv#||CLd%Y6@D4yUP zZh>HyM8myl1Y7zi9wjqKn#FHI)b%Dh!wq$I*Ih`Rl%xY@(Re>yr46ls(ik!#RMRT= zPI#%Jd|?+kyHgeGn`Yo?l++0foNsckIotje9uRO^>PnBHaL)m}S1}K^FmJ%hUPjl+ zzH%`7e6?3Cg(g`FA67-J~_R%;FF5x@oYFo7n*rBrbHecRMoGmyU@`N}<1)kOwT7!iaqw~4Z5a;P~ z;BE!4!aB}3v_#NnOO_0qj54TIK$Uan;vz4rAcVOQ@248{dIS zG9&U2Q5BIdQ@R)}qPSkNORW#(J0KpzCdF`p3tpL@xUF=;ZnSA8wOMz`-btHHo1@mK z-x||6*?E%%TmPtu%CI(mzi& z`A)o9kJgQur($)fT$*y*hPF)Zk{*j*>R7?eyG>YB2k9OSOu26dq%VVOr*jAd+S-(A zY#Rzar_aQ-BztSZ2GCUQ6+Lp#g#>Q|50ZPEU%@!AJ*dDLHN+|NGN=ivNylo8R{1*c!sgN$(hh z?!X1Mwk>j}7e~}kFG5)KIno_;y}h&Hg2dv2m^D_0F))I_P*p@Ml;$Uhckml!G+U)z9FHCo5z(XsB&3lYd4aknnCT{@1`2!s>-59ny$TyD=4h}Fqw_#!*N zwO?dgb@-9E-n`6Sz%qT2J&aT0>x*nPzrI>zN7o#gTdLzn=`QLXI-8765Wd14bAxTa z3xftJa>vd?tMrK=8ANr_&BPh=I6gNV8sw!yL2T3vM0M_|8*KHSACzeZntNh@P?k@X z=6~z(=q*1(lpi;j@44J$pa>_2>OscE-ivKMxXT@|*bXsV(#NPn?uxx^u`TABgZQ__ zwolcwl~h6jn^!5($~aQye6!egNY}yrtN&v2NBpQrUGzbc?kxekRI%|XFzlWxG;5Bz zDVbNNm4%sea0;jo>qj7aLME>8nW-+v2Z!;yaW~q|Lp>CAfx=(1>{lhv@~p2>Hhsjo zQ>NjuzB)CvSUyfT&EmJ@B`)H=-IIT@{f;s){v7HXmJgiOph;mH$FU!^eq67-w`>u5 zWW7EB2Zf|}^~<3^^ji{L2Zn#hDf~EuKPPH`5_G#;Z?t_o`>xX%Sv|WO0gr|kawb1y z`Pl@DZobj>=v&bTSv(w_PZK7ECW;=5S#8x#kY$T{2(T4E=7uf7>}}m)OYFdg*PHS| zryZyis>iy6)IvgRr zSf3I2iQZof6gVa=qp!Eambv``Xu8CBNL{rQ5ny&Y-a)lFR4j=u$sz%l%#?x70lE3< zuth_f^DZQ$txN3IlT)vvkE!?HM>40HboAT)5-1BKeqA8i>b^tynfdo48_#IHir$wy zWUHuPqOqeAWwHCDsLH=YEJ@3}uYHLTa{9!7xU*mm* z@Sw}}8pQ?9Dqf#~8!G8SLY9M9a(TxNt@%)T=Vj4CH{dqAvkdx2-iB7-Hh11_c6UA= zxXt#`)Aw()2lbWrUn$MSEEz8oq(K_m|2+aR8jCbWkl$>f`}GRjr?sDYAcmb}&g_$7 z;+L$j{d>a=`dta{?O(YEz0uLiX1p}q6$u#tb+exd_C$)ZF=;a>2_!yt|Uo9?H zt{Z#1ZCiyr@{^V8G=k-~bACZWI?rvm9kXqnYjuaM^W2>U=EmJ&#|)Z}A)_%;Qk*0q zKt)C}VY`;rk}lrJ^h#IzXgMreN4j-);H%ke?UtqRB?>rxG6HEvwZ)wS86+9p__yI8 z(M)_-3pvuX%8g*job845=GV<5gA_A!wfmLClT-?c^vK-9VVFTO(sV1~7@3TUWo+@M z-bo}^otyvvYJ2a%DvIrae`edg+)c=(g$_5N_s~IFE*(X>iX9M8Y)DnG+z1w)1%slC zB8p^G_r?`;@kkZFZvue?O7v(vG=smv%?Ck%|Tobs^uzH09~YOgR;psWT=o z&>X?ZPbTKqG}mkht0BvkiEN7#M&Cb~s9&!V7agrFMP$On0n9L^N)k1D40sUP*GD~c zh52|r^}BjnA8jh2@g%tx#w3gVMDk5T+21YU=y+oJg@n;Iak0$Aqu8^tK7TMZZ?&CH#nIn=q1ltmpHc5Q#NbM zY6MkM4QES_H2A{Gdz^YXeki(8r@_nw2qxIKF0n>G6+HYD2PVD>-g+w0y|yTiLW`iL z&zb)FWjimCF8X(ndYVHBca&WDbYhxrPrYeVkq_z2c9yB#Hb;vNKn|I$e#~J+?T3U1 zjh;<3?EA_}b2^zX^H|BQGJ?rdwj{*2NQOu_3{gm0E^SU(&?d@~IaU3(U>^B(>^Z zPCjrKU;$cn2ogo9ghM_vLu?A3-f(c+^NHLeB&dew0-C#)ylK3f;^6ePQoNW+ma7Bp zzRUxNSQpU0kaGaHTG|VKdOndihKbLbA_F1B$|TXct&zwKzeszckTYNNWCKqWPG8<^4iN#M03voOIfXf0rH+QaMPPWaCWX zrfL0QmEOJ3BVB~_>%na=CI(l5DuO?hd?@(w#l)y;x3SG0>a4UB zECN0z81YhKR^R0;UXV2cm+xPPT9`aR79oseol2M*W(yITOL8eo5aJ0=1TEJm`o@a) zP{)&lf^*gy>Rk5ei07rUhouW$2Cgz~u_z`V(yweq514Q{2W`re~#W%}ct#Ntt(*nN2pg z1+!jG)GQbyNy^!Fnf2#{1(`6Vh!bDOL8N8nM)6t;zR}=ZcH?Jo0Vm*xSPC?FwM2{4=QPH5mCMQ%p zcJei|8O*FjWTlhA=^MCR?5<$R2F`x%u}ivcOjOlGH*gawy>D>FrbIJ+Vz78qqF&0} z_F+TAuHdari2>Ps9otB@?A>k~bbKw*v-vFf7&oI6?xpgtiRoAd zb<3{kcsR1DBOfk_^Oe8i*Aj#D@Zi1IxD{Y#u{mCPTP-OjQ z;Dy%{%~=+*Wj>e$LREyKV>*D+<-`*bE0sgy)x?|SxU?bYEEUxIPoiVSlPOQLc{5ch zJmt(9A767b%^`}DOJYnJjdc{cYE;3Vc<}pw5{>K2Kr=?5yii$S65=^@#iq!DH@NaK77ThL(IF2% zHAS^5`Fe^Fff*%+D{lmHW^m&hiT-jznSQu8wB^indp=IAktka0CCP`90ZzU16ZBDeL z*1WYjF`N%MG~OZ&QWJ~&grwQu$+BxK6hw|+3jZXZgmm)jrAw6vc-k_HF+Qsp6pXkM zd0OXHld4OntELeR!k!03(qfz^EJECgsijpYdQ^JFjpdcfYh*FSfh=)pnKg*ms7GvO zH^;I<&Be_QO~cRHqm{!ej?F1YNew&y3EL7%=yOXXva(2X%av-Bh?{DZ{K-i*LX`7U za>AC>4ti3J$Rq0sa{mxA6=%ycFO^@_bS%W&7He`ATe%`L^m7+Dj{Qp&bg>G{a>F3- zRfH_=ZvcgmR-q?D2$l?qnOXbf1RGLHq@oeFI%i8? z%t$x4R>{OqenOaK%i<-old_&EMM5^Ij^}Yd@Xc>0QkjS&sEgz^*)YlpImZl{2}5fv z%x3u5zh+p_NvM}b*iFkv>DQSfbPmfQow5jF$;4O9BNV#^y%cw}$GOwbFrJIhq^Kr9 zV^+kTEa6v17)HNH7|%U{2l0z22*iA5@_w6^S46s^pk?EdG|Wh3$|!cPgUY7Gv!pH= zF-di^CP3t>>(OR(9?wj+%3{@tCRfgfN~>Mu%ww)Tm&aZq|^ui9*qE04Y?+(&ov`<3Xkeg$|B7*Q#HwTx=51| z^RY;WIE$$AR1}0*uW7u{3IUZpM-M>62Wq~a0#7Q64O|N^C zDkFW^R^cLaTyhY0ccl#AOdDD!0v)JAI8o8bCv^dVhu-A9R(2v(Zczw!!+bwiYw(G^Hf7zs=i6Dx7mCAw5P zHW$%4x>Ae<#JG8h)Qy5OGZLlKLFY?xhgvM3_7Ww=2cy~<;Us^iT@Mv5dpRgWLBj}X zU+Iq;HAXj8>O^(<#;)R$O*DJ`yc$#%hx$;RQe$2{<%E~bRZlgRV&tP487i059Xr)n z>P|u`7yjvIg!PA|n6N9$hH|N=D!tfnoM|Na&YJ8?g&9duI1CofM|u!fF0-4NCyNZG zfos4ea;DqDHJIj;tkR*#&&Ya!l#Y~GR({oRc!im&EH|p-simp%vQ!*Wmc_zRHU3z{$XhwOwcW`<&d1oe`mz&~lPEnGm zhA$k*5fZ9Xf20Qkk8CNO>V^^U^?xJ|foyONQ!q-`R1EV?PMX!0sanas7Wt4%lnjl< z3=}iz@BWawCA-h536zOU5z^GBa+4==ij<;CUTWp#N;ficMOGy%<(a6Gyi@YPMW9e0 zs!2h|Q*{NwbPt9v7*40VrE+OCdz+3&*o37T%;Y**^rfh?267xa1xZqmn!=0EXg!-! z4s;)L!gyIFGrQv5^ryd}Akr%hYY~!g^-D@TnQD;yh4DanG$I61OiDtxgq~1zQbuwz zsTwjus6m~VfkG%EQ8r>mBxLQzO>fyC3Cgj8RYbw`f73?PRf^%y_2J9 zF%*lx^^D3!IK%y(zPT$koBp4K%ja%bYF#_k7iBUi)sWAgVdZ-rG{jUvDpjOX>SQYF zo}cb*It@|n^O6_KXRR4NwNp$VNJ9}%)ia_Ze2JIyMRFr+u5@FW&<0^R&;PSnyMCjq zlpVstRD^_&cThV0_kMc@HxwfU@HlA28ZmtlH&p}P#N@`_ZOBmi1yk&DE}@mQzzCk1 z(r6WOgwKrDmR(S_+o^`=K61!~rZXt;w1Oj|)@#DZhBF7j4G?*9G9@z$)l@C&C&BIP zR82F;q}FGoqMHb_5d@n8WEtO_>yio6oll|#-d2+_Q<%p+BVl}hR$WfSgzO`FLm zK}16@!O+$iRc)9>TGfQH)o^uYvmVzWqpHDSNz)32z)IC+4viW@)k!YRMmJDFxeAZG zrs*Vg(9B6;t}nXPVzL$v)Q~N34RMg>9R!jWwj~%Diy1*=4j|G*a9+wgp1e3uS%tDD zEW;j&RJ1K2vy2Xeg_1(5fm{vCt~XfYr8zxED~Vs~ErWVmS7AjYYotr98y|HAqVy0~ z)G(*zw$V&5sW0WZ7>S00T8J5oQYzV72sz+KrKF;T(TMu9k`EFr9J`c<%}HJy29zwD zeK9mSk*qQft&mkEvP#txHc*a9QK{5tGAy#1j-SPKOQt1;eJUb>53*1N8M0M_AME-w zWks`;RX%K^HROsrqt0KJH{H=v$aL;6kx#r+hjO=1b~!aOxL~-l2^P9}R8H z?%7baK`P>!up(9v^>>*)12Uv1haZxfP>JFQNy{!1CYA2Bts)oxn0;-Lw)RtvlTXM* zUQ+fi!P`uh>HnaFsRg;F#})PC;eNFgAKdf|_eFyhX>&b#`VI6bRh{*x>gh#AMbv3L zX=#yUyp@z8h0y~DW0s7Av!ZdZS%pcY?vjP>0e3`(pq`RtEpg2zB7v<>3bsA+;c6&%N{;y2cmE>W8mFfMP~t+ zgEn6Fgn{^y%->C>-3Rh1Th-nc^cM8DG-v64wIO!r9II(eHYGvt&SO~(NcGjQ47~6zK^+G4jpa0tgh=QPQBzh_wNw4^O4_RYHpl zFoFxeO>~^#vXn*#mP^T$Ps2wh7ReCa42|OXRl%D5kc-SnT@qpU7ZE3m#ZNYOfHPY} z#%b`v&k8dJQnk`QQx((6G}s6<^UUo++Q6C5Q}MIjbsO+p;J{7*U@z zCQ?%A^~^0$Bblu00_0re>25}UID)2C5lQ>vLv3D08b1u!6MCblu`3t zqiROCNEIM*a+Us(LtJ5_Ayp-h?@s1rR4S1tq#0(in^5{T>@N$ilV{MwYGpebWV94& zlk6q$(6X^l<4yX`ZO??!t3>x8J8juftd5kP2ojjme7pm#B@$p-2gu|D<8c|4RK>J7 zTNa-)k|)hTR%%b*JmIC06Db68l)N?@Y`L6^b{;PMHo;W^M_ZMJryjJr2A6H)68bjV zF0#_xGD>@pPm9H!fwE8&=fzj?XeCV}*~{cZGL~=l0@CMzSJW?It4wue$)X9nnM5#T zP6;$ql(KVt*G)SU^#;Jn9^vKvF`vS*MBM1&N;TyR*~H7DpU516z4T6VwQVbDJLT{& zEhnvGBAB(46{=f;TXrT^>s7&kU5WfAW9y}LxLZW}P-E-CJe0m!XhE21CX%ayMY|HG z4-HRq8v4x&Kq#19;i#a6eLL`)NbOokircQCK3lFzU)(B#@l z4i!VPZBViy(XGba@yoi~bx<|s1ih+*-!~-kYww|8Af3q*(E@}(-6i*A1#j<3XN$?{xNotQ`NsJxU;HXGkCVD-=^f}s(uZ-B)7W1 zTL%k<`gNQWo6S18#H;C_u7k^J`KOlbtK}c-26O8B57(GDY5L6Bsfn{w%_gU&otqM$ zL8Au#!jjbu{9|>A+sJ>^3QAM{=wN=HKfGjfo`05|nmv7b>YRz^&P$y=W$u)-XQif3 zP0gM;?ex>9%uLOka@w4kCEc3&_h@g})DhEXj|{dp_g^fzyM^Cdm;Bh$KTeknZO!di z!6$9}t<~Fi>~^|pmRHceV^?|e3jWj9Zyv%hq&Woz1;HPu`bU=BHo@=g9Y1yUtgc6-Iu&&4+OD8eyN*3l9XlVxE7luq5dOzP6JM~}&!x)n^C*rRjTE)#op@7SYrr!Esap4O>b#~$4$c9}S-%V`}? zJFTEor|zc}be>!=wPV4Q?j>(d^&9AtveW(H@sgeA`GcwjUo7x1EeRI-9dw{C_dAvJ z;-3{PzS8fLNf+H>`6YUCLMN4)r5snO(>Y<@NX=J{r_>DPR8eZQauQ0Nubisv-%~2C z)O0{ua}tVB7XV2;p8v|3s zLhY%sN@XcEGof>cM1H|Vi~QDB>GG1*i~N?l%Ck5<2Rt8q@GpNr!F?E~0*#fcPf<#b zBhA6sTlYIrH9J*lmHyy1%XhW>SZ%#67=D%iy|ry+NzbdPQ`Tkolzen8AC9*kT^+=( z^KZ5`-xu6@o!`Rx>%QQ%>-^#4U%TJ(W5lV{E?cEP5}PHqU$A|Tt+wP<{c6j9k~bVt zYB$)cAHXkpRO)wZ%f*%w+i%z&cp#Ww><>@Kh18^D{uW#z;D3sfc*A^FSS>t_dZNv{ehj! zHWxi&`SpY#kAG4Iai9v20DMaG9X!N8X!x%CN9vB#xD~T#jpZL3*7DTU=`+tk$8`># z(R_TZ|F9A1F~_U)Hhf&+eLF#^?x%A+>UgDY0KP_|ix9f8?Unin^WwBp!#gVVZcC;9 z?y1y;;LdNORNs+G-P#*J{n^up+qbQi+J@inx)Gjm7lB*A`wvg4Wn+{&j<}}-Z)UJO zR-n{E37k#kB7(WVv;j(uN6zaJ=wtA$cy|E!RG9iMuGBeHj^BBYCX$WBaXs)tYa*Ah zxcxE|$)QqihuAkE@b(%?ozaPefyVfGOZ-+|qqiE&(v{mYU2%S$PQ^;j?{0}{Ygt{u#5nK`OrvfL#jpl_)t?5pwBImyV-vQrr zrqtoUD}=j(_&Yl)qZ%hrCa^b6#0`4F79wB?RE;IqKNFxk0f#``qllZ3hEZv-wE7e>{k=-$C&34heg=0Nh6P9ezpJ+jpLXL^+S4* z^Fd10fwB+C-P1%cfnt~n{w4x!A(DqN_kz&1}?&S_CJLAtC;`5EsuD{U{3Ub#O`O8cM_pS1i=CyZChJsy?9`|8ob4a@xI?xQ7^zc6@ynP0?- z8>^6u+t*os*TrLyL43{R-R&f$9>I)uw;eBzfr?Igmv-O{(7{!WR0CCyy7`pl=e-Ku zry#GdLqY?lR-Ppf8_1*9wsMt6Ym#1vKhe}%cweU7teon#>eLV3yxGrWwmoh6TlAff z&fZzI9v;1L2I2>F0PdrtZy|fzDUb=g=TpcJ6Sw@5^h__+`qG69Ny*mL^+tYr7{86f zUexKd0KewV(@p$K@xe(s`HA1OMwqO)N+yFhZt)vdD{NlzQ-#$F3zNa$xA^%Pl0c6; zWc0abEk9A1992jVt9o^ATgIVv7SUt_RRQ_s@J<5Nfa*XEpe9g@td~AVJ8(7PKs%h? zj3sv+d9rFoZ404WQQr2A6dlOsNrWfkfK^2RzbrWHCVLQD_&bRT>fw7O`#-&_U`cE# zw_S+k+(P1{k6MbQ+p7qYiAJSNxP8Mzdoqkg6%%chWOFOBs=I3-a8OwEg5_tXHmg$} z8oKe)o#MA}%Za?-PUx&;2fIAY*6*rrsEPA=vP0bK{a-#G`!rvX`u@#2)Vk!mHq}P-ZdU9?Ub$Rgk(V@LO^a3KQmaGq3 z!{7ZBMRhW|lfb!?$dI8c;zL)8qK2JO=_M~xIoeW+6Khpu@_b^dHL*E*D*S!g#^9wr zGryb3NA3&?nXulJG?jk|ZIoD^Ce1pC0-4Z}7!4G;Kv>JEdJL72C(I?b+|g0V6oz5d zrNo$zd=|e9k+;B-Ciq+_mhULwrpWXfEZzLJq~B~}yrRTP$wKqIoC^DQ@Ev^Ek0b8y z(X%Z?m?Ww}B+}ABj{l8i79!hc2fv8`|{c4~OZR=X_qbce0QJ~GJrLA%A0@@x*X(43QX)L5KtmJhNkEi5|~1jdKr9w=>M1& zs4)>tz)gq}|4m465n=L4REQi+#G*+TM}&)?M}a~Zb`SC8pkcp&lV4Uv`-zgN2HR~5 z4Yv8!68}#6Zq{!bgBGj&p4Q`=f=R3VHrAJ$g6mfK&8_0sN=jC7WX*l~KQs$L-ral! zKK&DBySM7C(pSAEHd8@kF2{DKJzen%U)75nKfoiNz(vz%7*0$(rsm{x&LIxtw>2LLD z>tgFGtC~H}zSb_YYdDuXH~$}=hwxL&ZN<~tO2p>I4oAe{+%tzm{4e*b)GG%)C5-Rx zQ_aX(pc?UilJ$rEhds&q);>jVHqViiwN|&sZ;u~q%d!0;3XO{D-{i=PVBheptrdj)Vp0b|RFI!8kZ>{}0uqOOh3K>c8 zS#`K%huHFj*o98`KGpdQ(=hkYFfE*)m>O)N!>5INv~#o*v;Xa!>OSZ$xB9pbJAK^c z?wgpGTk`*5XSrJ?WB+Pj=MJ^x`NIjH7u*-z^Xxy}dz>N8dT+gV8IKjSVwZV0csF{r zV-BC13ZKiorm?$myV1MbxZmwL*v0h@FOL7Fu^#4sX!_cdr*UiqPmkEw-Z$7XjWK-f zz2J?C?eX?_;=NX^RxFQam-m}D6Z=ozE^nWwh&U6wj%S5=4lw$kOoLS18L6h|iSCn5 zvHr~+U=P=hx5BkO&CmryT^NE;(g-1;=SYjxYYUR_<;Dp_@MaU_^|kq@&54-V(-M>jlCBe z9v>MWA3r^Q28}~4ovUl>T?~*vXJG#&Am;TbmrwZrz1q)zrE7p~twZx0>Rt67Bli#0 zM@)UZ0bWeu{}w7+EIoA_)t1TVJ{%_X>jr%v^lR1)6Z(z_(TPMQ|3AdGGdSx(zey}d zH`ckTcJKlLs?20NQGx2HIt3*U((&!9Uq!3cC5<;|=5qK>sQ3!@Kj`NlQ43e0_@H^wDqPx?j=3BC+}W@2+~No*WD7g)0LG9h~rxU(d?XLFuD@od!Mi95t88 zr9OHzF}5Se@;@Zn_^4SP{(3NB_KsA+D8kmb2$$aK9Ca>A`8+18W~zZfwI}`h?q*?) zA=bZ>xsW=lNL{KHh(p6(@2fDu3kY08U8pWn7c&)7M;*!BL~qqich{Hm?ykqET*F|k z#osU!W5YFmUJ`B@L`X}wkd_WbYD`puVf1;rH~G3+U89;4L0E$8VZN;$Jxt{q;&Q^m zl#&zp&N!y~>V8_nO@$0Ge?szMoV6iYc-~W&Q6gpVOy1;-|8cm@WQmS*v&qkpS@^pV zml^~P1*^7sYa?=VBk|j>8d4y=AurDq*Bkr~v-P3LRzYEZ!hZ-M7nsl?w|XgsVgad4dvQI2lQ53W25whs-7eVUhM$XQ{I#EU7kzk;}-EU_}I4sCl># zjcoU*d&$}ork{R_ioK?h>K?sxZ(YnJV-0l+L2o4ziSitd*7S}@m<7RMl$SAUH6NSc zf}xN4J%WeV_=%417~bTP_7rl^+vKG;CSiLRFjxHrcAv4WS0%wSkNT~8uU8F_&$

  • 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 diff --git a/viewer-dist/worker.js b/viewer-dist/worker.js index a4995d8..b6d7fcc 100644 --- a/viewer-dist/worker.js +++ b/viewer-dist/worker.js @@ -1,14 +1,14 @@ -/*! sqlite-viewer-bundle-sha256:af8ac0c22d0680923cb9c37ff5c5958f246930e883ed1f493c7f2db902972b9b */ -"use strict";(()=>{var xs=Object.defineProperty;var As=(e,t,n)=>t in e?xs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var D=(e,t,n)=>As(e,typeof t!="symbol"?t+"":t,n);function de(e){if(e==="utf-8")return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});let t=e==="utf-16le";return{decode(n){if(n.length%2!==0)throw new TypeError(`Invalid ${e}: odd byte length`);let r=a=>t?n[a]|n[a+1]<<8:n[a]<<8|n[a+1],o=[],i="";for(let a=0;a=55296&&s<=56319){let l=a+257343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s,l),a+=2}else{if(s>=56320&&s<=57343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s)}i.length>=8192&&(o.push(i),i="")}return o.push(i),o.join("")}}}function w(e){return`"${e.replace(/"/g,'""')}"`}function N(e){return`main.${w(e)}`}function W(e,t="Identifier"){if(typeof e!="string"||e.length===0)throw new Error(`${t} is required`);if(e.includes("\0"))throw new Error(`${t} cannot contain NUL characters`)}function pn(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function $r(e){if(e==null)return"NULL";if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();if(typeof e=="string"){if(e.includes("\0")){let n=new TextEncoder().encode(e);return`CAST(X'${Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}' AS TEXT)`}return`'${e.replace(/'/g,"''")}'`}return e instanceof Uint8Array?`X'${Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}'`:`'${String(e).replace(/'/g,"''")}'`}function et(e,t="\\"){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`[${n}%_]`,"g");return e.replace(r,o=>t+o)}var Ns=-9223372036854775808n,_s=9223372036854775807n;function M(e){let t=typeof e;if(t!=="string"&&t!=="number"&&t!=="bigint")throw new Error(`Invalid rowid: ${e}`);if(typeof e=="number"){if(!Number.isSafeInteger(e))throw new Error(`Invalid rowid: ${e}`);return e}let n=typeof e=="string"?e.trim():e.toString();if(!/^[+-]?\d+$/.test(n))throw new Error(`Invalid rowid: ${e}`);let r=BigInt(n);if(r_s)throw new Error(`Invalid rowid: ${e}`);let o=Number(r);return Number.isSafeInteger(o)?o:r.toString()}var bt=[{sql:"SELECT name, sql FROM main.sqlite_schema WHERE type = 'trigger' AND tbl_name = ? COLLATE NOCASE ORDER BY rowid",params:e=>[e],temporary:!1},{sql:"SELECT temp_trigger.name, temp_trigger.sql, EXISTS (SELECT 1 FROM sqlite_temp_schema AS temp_view WHERE temp_view.type = 'view' AND temp_view.name = ? COLLATE NOCASE) FROM sqlite_temp_schema AS temp_trigger WHERE temp_trigger.type = 'trigger' AND temp_trigger.tbl_name = ? COLLATE NOCASE ORDER BY temp_trigger.rowid",params:e=>[e,e],temporary:!0}];function Or(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Pr(e){let t=[],n=0;for(;nt.toLowerCase())}function De(e,t){if(!fe(e[t]))throw new Error("Expected an SQL identifier");return t+1}function $s(e,t){return t=De(e,t),e[t]?.kind==="symbol"&&e[t].value==="."&&(t=De(e,t+1)),t}function Tt(e){let t=Pr(e),n=[],r,o=0,i=u=>{if(!F(t[o],u))throw new Error(`Expected ${u} in stored CREATE TRIGGER SQL`);o++};if(i("CREATE"),(F(t[o],"TEMP")||F(t[o],"TEMPORARY"))&&o++,i("TRIGGER"),F(t[o],"IF")&&(o++,i("NOT"),i("EXISTS")),o=$s(t,o),F(t[o],"BEFORE")||F(t[o],"AFTER")?o++:F(t[o],"INSTEAD")&&(o++,i("OF")),F(t[o],"INSERT"))r="insert",o++;else if(F(t[o],"DELETE"))r="delete",o++;else if(F(t[o],"UPDATE")){if(r="update",o++,F(t[o],"OF")){if(o++,!fe(t[o]))throw new Error("Expected an SQL identifier after UPDATE OF");for(n.push(t[o]),o=De(t,o);t[o]?.kind==="symbol"&&t[o].value===",";){if(o++,!fe(t[o]))throw new Error("Expected an SQL identifier in UPDATE OF column list");n.push(t[o]),o=De(t,o)}}}else throw new Error("Expected a trigger event in stored CREATE TRIGGER SQL");i("ON");let a=o,s=t[o];o=De(t,o);let l;t[o]?.kind==="symbol"&&t[o].value==="."&&(l=s.value,o=De(t,o+1));let d=o,c=t.findIndex((u,f)=>f>=o&&F(u,"BEGIN"));if(c<0)throw new Error("Expected BEGIN in stored CREATE TRIGGER SQL");return{tokens:t,event:r,targetSchema:l,targetStartIndex:a,updateOfColumns:n,referenceStartIndex:d,bodyStartIndex:c+1}}function yn(e){let t=Tt(e);return{event:t.event,targetSchema:t.targetSchema,updateOfColumns:t.updateOfColumns.map(n=>n.value)}}function Ct(e,t,n,r){let o=yn(e),i=`${w(t)}.${w(n)}`;if(o.event==="insert")return`EXPLAIN INSERT INTO ${i} DEFAULT VALUES`;if(o.event==="delete")return`EXPLAIN DELETE FROM ${i} WHERE 0`;let a=new Map(r.map(c=>[me(c),c])),s=o.updateOfColumns.map(c=>a.get(me(c))).find(c=>c!==void 0);if(o.updateOfColumns.length>0&&s===void 0)return;let l=s??r[0];if(l===void 0)throw new Error(`Trigger target ${t}.${n} has no writable column to probe`);let d=w(l);return`EXPLAIN UPDATE ${i} SET ${d} = ${d} WHERE 0`}function Os(e){return Tt(e).targetSchema}function J(e){return`main.${w(e)}`}function kr(e,t){let n=`-- TRIGGER ${t}`;return e.some(r=>r.some(o=>o===n))}function Br(e,t){if(t.length!==bt.length)throw new Error(`View trigger definition fetch was incomplete for ${e}`);let n=[],r=[],o=[];return bt.forEach((i,a)=>{t[a].forEach(s=>{if(typeof s[0]!="string"||typeof s[1]!="string")throw new Error(`View trigger definition is unavailable for ${e}`);if(i.temporary){let l=s[2]===1||s[2]===1n;if(s[2]!==0&&s[2]!==0n&&!l)throw new Error(`Temporary view shadow state is unavailable for ${e}`);let d;try{d=Os(s[1])}catch(c){let u=c instanceof Error?c.message:String(c);throw new Error(`Unable to determine the target of temporary trigger ${s[0]}: ${u}`)}if(d!==void 0&&me(d)!=="main")return;if(d===void 0){o.push({identifier:s[0],sql:s[1],temporary:!0});return}}n.push(i.temporary?{identifier:s[0],sql:s[1],temporary:!0}:{identifier:s[0],sql:s[1]})})}),{triggers:n,ambiguousTemporaryTriggerNames:r,unqualifiedTemporaryTriggers:o}}function Rt(e){let t=e.ambiguousTemporaryTriggerNames??[];if(t.length===0)return;let n=t.map(r=>`"${r}"`).join(", ");throw new Error(`Cannot modify main view "${e.identifier}" because temporary trigger target ownership is ambiguous for ${n}. Each named trigger uses an unqualified ON target whose historical schema cannot be proven. Drop the TEMP trigger, or recreate it with an explicitly schema-qualified target, before editing or dropping the main view.`)}function pe(e){let t=e.trim();if(!t)throw new Error("View SELECT definition is required");let n=-1,r,o=!1,i=!1;for(let a=0;a=0&&t[n]===";"?(t.slice(0,n).trimEnd()+t.slice(n+1)).trim():t}function Dr(e){let t=0,n=-1,r=-1;for(let o of Pr(e)){if(o.kind==="symbol"&&o.value==="("){t===0&&n===-1&&(n=o.start),t++;continue}if(o.kind==="symbol"&&o.value===")"){t===1&&n!==-1&&r===-1&&(r=o.end),t=Math.max(0,t-1);continue}if(t===0&&F(o,"AS"))return{selectStart:o.end,columnListSql:n!==-1&&r!==-1?e.slice(n,r):void 0}}throw new Error("Unable to locate the SELECT body in the stored view definition")}function Mr(e){let{selectStart:t}=Dr(e);return pe(e.slice(t))}function hn(e){return Dr(e).columnListSql}function tt(e,t,n,r){let o=n??(r?.length?`(${r.map(i=>w(i)).join(", ")})`:void 0);return`CREATE VIEW ${w(e)}${o?` ${o}`:""} AS ${t}`}function En(e,t){let n=Tt(e);if(n.targetSchema===void 0){let r=n.tokens[n.targetStartIndex];return`${e.slice(0,r.start)}main.${e.slice(r.start)}`}if(me(n.targetSchema)!=="main")throw new Error(`Unable to recreate temporary trigger ${t}: target is not in main`);return e}function wn(e){if(!e.temporary)return e.sql;let t=/^(\s*CREATE\s+)(?:(?:TEMP|TEMPORARY)\s+)?(TRIGGER\b)/i;if(!t.test(e.sql))throw new Error(`Unable to recreate temporary trigger ${e.identifier}: stored SQL is not a CREATE TRIGGER statement`);return En(e.sql,e.identifier).replace(t,"$1TEMP $2")}var Ls=new Set(["AS","CROSS","END","EXCEPT","FULL","GROUP","HAVING","INDEXED","INNER","INTERSECT","JOIN","LEFT","LIMIT","NATURAL","NOT","OFFSET","ON","ORDER","OUTER","RETURNING","RIGHT","SET","UNION","USING","VALUES","WHERE","WINDOW"]),vs=new Set(["END","EXCEPT","GROUP","HAVING","INTERSECT","LIMIT","OFFSET","ON","ORDER","RETURNING","SET","UNION","USING","VALUES","WHERE","WINDOW"]);function gn(e,t){return e.push({parent:t,aliases:new Set,hasAmbiguousSource:!1}),e.length-1}function Ps(e){let{tokens:t,referenceStartIndex:n,bodyStartIndex:r}=e,o=[],i=new Array(t.length),a=new Map,s=[],l=[gn(o)],d=!1;for(let c=n;c1&&l.pop()}else u.kind==="symbol"&&u.value===";"&&l.length===1&&(d=!0)}return{scopes:o,tokenScopes:i,matchingParentheses:a}}function ks(e,t){t&&/^(?:NEW|OLD)$/i.test(t)&&e.aliases.add(me(t))}function Lr(e,t,n,r){let o=r.scopes[n],i=t,a;if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}else if(fe(e[i])){if(a=e[i].value,i++,e[i]?.kind==="symbol"&&e[i].value==="."){if(!fe(e[i+1]))return o.hasAmbiguousSource=!0,i+1;a=e[i+1].value,i+=2}if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}}else return o.hasAmbiguousSource=!0,i+1;let s;if(F(e[i],"AS")){if(!fe(e[i+1]))return o.hasAmbiguousSource=!0,i+1;s=e[i+1].value,i+=2}else if(fe(e[i])){let l=e[i];l.kind==="word"&&Ls.has(l.value.toUpperCase())||(s=l.value,i++)}return ks(o,s??a),i}function Bs(e,t){let n=new Map;for(let r=e.referenceStartIndex;r{let o=t[r];return n.identifier===o.identifier&&n.sql===o.sql&&n.temporary===!0==(o.temporary===!0)})}var qr="The view changed outside this editor. Reload before saving; the view was not modified.";function It(e,t,n,r){if(e!==void 0&&!Ms(e,t)||!Us(n,r))throw new Error(qr)}function Wr(e,t){if(e===null||t===null){if(e!==t)throw new Error(qr);return}It(e.sql,t.sql,e.triggers,t.triggers)}var Vs=32,xt=1024;function Tn(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function bn(e){return JSON.stringify(e.map(Tn))}function Sn(e,t,n,r,o){let i=[e,t,n];return bn(r===void 0||o===void 0?i:[...i,r,o])}function Fr(e){let t=e instanceof Error?e.message:String(e);return t.length>500?`${t.slice(0,500)}...`:t}function At(e,t,n){if(!(e<=t))throw new Error(`View dependency validation refused to inspect ${e} ${n}; the fail-closed limit is ${t}`)}async function qs(e){let t=await e.queryRows("PRAGMA database_list"),n=[],r=new Set;for(let o of t){if(typeof o[1]!="string")throw new Error("SQLite returned invalid database-list metadata during view validation");let i=Tn(o[1]);r.has(i)||(r.add(i),n.push(o[1]))}return r.has("temp")||n.unshift("temp"),At(n.length,Vs,"database schemas"),n}async function Ws(e,t){let n=[];for(let r of t){let o=xt-n.length;o<0&&At(n.length,xt,"schema objects");let i=await e.queryRows(`SELECT type, name, tbl_name, sql FROM ${w(r)}.sqlite_schema WHERE type IN ('view', 'trigger') ORDER BY type, name LIMIT ${o+1}`);for(let a of i){let[s,l,d,c]=a;if(s!=="view"&&s!=="trigger"||typeof l!="string"||typeof c!="string"||s==="trigger"&&typeof d!="string")throw new Error(`SQLite returned invalid ${r} schema metadata during view validation`);n.push({schema:r,kind:s,identifier:l,targetIdentifier:s==="trigger"?d:void 0,sql:c})}At(n.length,xt,"schema objects")}return n}async function Fs(e,t,n){return(await e.queryRows(`SELECT 1 FROM ${w(t)}.sqlite_schema WHERE type IN ('table', 'view') AND name = ? COLLATE NOCASE LIMIT 1`,[n])).length>0}async function Hs(e,t,n){let r=yn(n.sql);if(r.targetSchema!==void 0)return[r.targetSchema];if(Tn(n.schema)!=="temp")return[n.schema];let o=[];for(let i of t)await Fs(e,i,n.targetIdentifier)&&o.push(i);return o.length>0?o:["main"]}async function js(e,t,n){let r=await e.queryRows(`PRAGMA ${w(t)}.table_xinfo(${w(n)})`),o=[];for(let i of r){if(typeof i[1]!="string")throw new Error(`SQLite returned invalid column metadata for ${t}.${n}`);let a=i[6];a!==2&&a!==2n&&a!==3&&a!==3n&&o.push(i[1])}return o}async function Hr(e){let t=await qs(e),n=await Ws(e,t),r=new Map,o=[],i=new Map;for(let s of n){if(s.kind==="view"){o.push({key:Sn("view",s.schema,s.identifier),kind:"view",schema:s.schema,identifier:s.identifier,sql:`EXPLAIN SELECT * FROM ${w(s.schema)}.${w(s.identifier)}`});continue}let l;try{l=await Hs(e,t,s)}catch(d){let c=Sn("trigger",s.schema,s.identifier);r.set(c,{key:c,kind:"trigger",schema:s.schema,identifier:s.identifier,valid:!1,error:Fr(d)});continue}for(let d of l){let c=s.targetIdentifier,u=Sn("trigger",s.schema,s.identifier,d,c);try{let f=bn([d,c]),m=i.get(f);m||(m=js(e,d,c),i.set(f,m));let y=Ct(s.sql,d,c,await m);if(y===void 0){r.set(u,{key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,valid:!0});continue}o.push({key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,sql:y})}catch(f){r.set(u,{key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,valid:!1,error:Fr(f)})}}}At(o.length+r.size,xt,"view and trigger probes");let a=await e.compileStatements(o.map(s=>s.sql));if(a.length!==o.length)throw new Error("View dependency validation returned an incomplete probe result set");return o.forEach((s,l)=>{let d=a[l];r.set(s.key,{key:s.key,kind:s.kind,schema:s.schema,identifier:s.identifier,targetSchema:s.targetSchema,targetIdentifier:s.targetIdentifier,valid:d===void 0,...d===void 0?{}:{error:d}})}),r}function ge(e,t){for(let n of e.values()){if(!n.valid)continue;let r=t.get(n.key);if(!r||r.valid)continue;let o=r.targetSchema&&r.targetIdentifier?` on ${r.targetSchema}.${r.targetIdentifier}`:"";throw new Error(`Schema change would break existing ${r.kind} "${r.schema}.${r.identifier}"${o}: ${r.error??"SQLite rejected it"}`)}}var jr=1024*1024,Kr=2e5;function nt(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function Ks(e){return/[A-Za-z_\u0080-\uFFFF]/.test(e)}function zs(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Qs(e,t,n){let r=t+1,o="";for(;rjr)throw new Error(`Cannot inspect index dependency: definition exceeds ${jr} characters`);let t=[],n=o=>{if(t.push(o),t.length>Kr)throw new Error(`Cannot inspect index dependency: definition exceeds ${Kr} tokens`)},r=0;for(;rs.kind==="word"&&s.value.toUpperCase()==="INDEX"),r=t.findIndex((s,l)=>l>n&&s.kind==="word"&&s.value.toUpperCase()==="ON"),o=t.findIndex((s,l)=>l>r&&s.kind==="symbol"&&s.value==="(");if(n<0||r<0||o<0)throw new Error("Cannot inspect index dependency: unsupported CREATE INDEX definition");let i=t.filter((s,l)=>l>=o&&s.kind==="symbol"&&s.value===";");if(i.length>1||i.length===1&&t.at(-1)!==i[0])throw new Error("Cannot inspect index dependency: multiple statements are not allowed");let a=i[0]?.start??e.length;return e.slice(t[o].start,a).trim()}function zr(e,t){let n=[...t],r=`${e}_dummy`,o=new Set(t.map(nt));for(;o.has(nt(r));)r+="_";return n.push(r),`CREATE TEMP TABLE ${w(e)} (${n.map(w).join(", ")})`}function Qr(e,t){let n=new Set(t.map(nt));return e.filter(r=>n.has(nt(r)))}function Xr(e,t,n){let r=Gs(n);return`CREATE INDEX temp.${w(t)} ON ${w(e)} ${r}`}function Gr(e,t,n={}){if(W(e,"Table name"),t.length===0)throw new Error("At least one column is required");if(!n||typeof n!="object"||Array.isArray(n)||n.withoutRowid!==void 0&&typeof n.withoutRowid!="boolean")throw new Error("Invalid Create Table options");let r=t.filter(s=>s.primaryKey);if(n.withoutRowid&&r.length===0)throw new Error("WITHOUT ROWID requires a primary key");let o=r.length>1,i=new Set,a=t.map(s=>{if(typeof s=="string")throw new Error("Legacy string column definitions not supported for security");W(s.name,"Column name"),pn(s.type);let l=nt(s.name);if(i.has(l))throw new Error(`Column ${JSON.stringify(s.name)} is defined more than once`);i.add(l);let d=`${w(s.name)} ${s.type}`;return s.primaryKey&&!o&&(d+=" PRIMARY KEY"),s.notNull&&(d+=" NOT NULL"),d+=Ys(s.defaultValue),d});return o&&a.push(`PRIMARY KEY (${r.map(s=>w(s.name)).join(", ")})`),`CREATE TABLE ${N(e)} (${a.join(", ")})${n.withoutRowid?" WITHOUT ROWID":""}`}function Ys(e){return e==null||e===""?"":e.toLowerCase()==="null"?" DEFAULT NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e)?` DEFAULT ${e}`:` DEFAULT '${e.replace(/'/g,"''")}'`}var Js=new Set(["=","+","-","@","\uFF1D","\uFF0B","\uFF0D","\uFF20"]),Zs=/^(?:\p{White_Space}|\p{Cc}|\p{Cf})$/u;function Yr(){return{dangerousPrefix:!1,prefixOpen:!0,needsQuotes:!1}}function Jr(e,t){if((t.includes(",")||t.includes('"')||t.includes(` -`)||t.includes("\r"))&&(e.needsQuotes=!0),!!e.prefixOpen)for(let n of t){if(Js.has(n)){e.dangerousPrefix=!0,e.needsQuotes=!0,e.prefixOpen=!1;return}if(!Zs.test(n)){e.prefixOpen=!1;return}}}function ea(e){let t=Yr();Jr(t,e);let n=t.dangerousPrefix?`'${e}`:e;return t.needsQuotes?`"${n.replace(/"/g,'""')}"`:n}function ta(e,t){return e==="sql"?{prefix:"CAST(X'",suffix:"' AS TEXT)",byteEncoding:"hex"}:e==="json"?{prefix:`{"$sqliteExplorerTextBytes":{"encoding":${JSON.stringify(t)},"base64":"`,suffix:'"}}',byteEncoding:"base64"}:{prefix:`[SQLite TEXT bytes; encoding=${t}; base64=`,suffix:"]",byteEncoding:"base64"}}var ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Zr(e){let t="",n=0;for(;n+2>>18&63]+ye[o>>>12&63]+ye[o>>>6&63]+ye[o&63]}let r=e.length-n;if(r===1){let o=e[n]<<16;t+=ye[o>>>18&63]+ye[o>>>12&63]+"=="}else if(r===2){let o=e[n]<<16|e[n+1]<<8;t+=ye[o>>>18&63]+ye[o>>>12&63]+ye[o>>>6&63]+"="}return t}function Cn(e){let t=typeof e=="bigint"?e.toString():typeof e=="string"?e:void 0;if(t===void 0)throw new Error("SQLite returned invalid exact INTEGER text for export");try{if(BigInt(t).toString()!==t)throw new Error}catch{throw new Error("SQLite returned non-canonical INTEGER text for export")}return t}function na(e){if(!(e instanceof Uint8Array))throw new Error("SQLite returned invalid BLOB data for export");return e}function Rn(e,t){let n=e.unrepresentableTextBytes;if(n===void 0)return;if(e.storageClass!=="text"||!(n instanceof Uint8Array)||!e.textEncoding)throw new Error("SQLite returned invalid unrepresentable TEXT export metadata");let r=ta(t,e.textEncoding),o=r.byteEncoding==="hex"?Array.from(n,i=>i.toString(16).padStart(2,"0")).join(""):Zr(n);return r.prefix+o+r.suffix}function In(e){let t=Rn(e,"csv");return t!==void 0?t:e.storageClass==="null"?"":e.storageClass==="blob"?"[BLOB]":e.storageClass==="integer"?Cn(e.value):e.storageClass==="text"?ea(String(e.value)):String(e.value)}function eo(e){let t=Rn(e,"json");return t!==void 0?t:e.storageClass==="integer"?Cn(e.value):e.storageClass==="blob"?JSON.stringify(Zr(na(e.value))):JSON.stringify(e.value)??"null"}function to(e){let t=Rn(e,"sql");return t!==void 0?t:e.storageClass==="integer"?Cn(e.value):$r(e.value)}var ra="__sqlite_explorer_numeric_source",oa="__sqlite_explorer_numeric_value_",ia="__sqlite_explorer_numeric_text_",no="__sqlite_explorer_numeric_rowid",sa="__sqlite_explorer_numeric_rowid_text_",aa=2e3,ro=999,Nt=32766,rt=`SELECT 1 FROM pragma.pragma_table_list AS target WHERE "schema" = 'main' AND "name" = ? AND (("type" IN ('table', 'shadow') AND "wr" = 0) OR "type" = 'virtual') AND (NOT EXISTS (SELECT 1 FROM pragma.pragma_table_info(?, 'main') WHERE lower("name") = 'rowid') OR ("type" = 'table' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND EXISTS (SELECT 1 FROM pragma.pragma_table_info(target."name", 'main') WHERE lower("name") = 'rowid' AND lower(trim("type")) = 'integer' AND "pk" = 1) AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk'))) LIMIT 1`,oo=`SELECT info."name" FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_info(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? AND target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') LIMIT 2`,io=`SELECT info."cid", info."name", info."type", info."notnull", info."dflt_value", info."pk", info."hidden", CASE WHEN target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') THEN 1 ELSE 0 END AS is_rowid_alias FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_xinfo(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? ORDER BY info."cid"`;function so(e,t){if(e.length!==0){if(e.length!==1||e[0].length<1||typeof e[0][0]!="string")throw new Error(`SQLite returned invalid rowid-alias metadata for ${t}`);return e[0][0]}}function _t(e){return e.replace(/[A-Z]/g,t=>String.fromCharCode(t.charCodeAt(0)+32))}function Me(e,t){return _t(e)===_t(t)}function ao(e,t){let n=BigInt(Number.MAX_SAFE_INTEGER),r=BigInt(Number.MIN_SAFE_INTEGER);return e.some(o=>{let i=o[t];return typeof i=="bigint"&&(i>n||i`${oa}${f}`),r=Array.from({length:t},(u,f)=>`${ia}${f}`),o=w(ra),i=n.map(w),a=t*2<=aa,s=i.map((u,f)=>`CASE WHEN typeof(${u}) = 'real' THEN CAST(${u} AS TEXT) END AS ${w(r[f])}`),l=a?[...i,...s]:i,d=a?[...n,...r]:n,c={sql:`WITH ${o} (${i.join(", ")}) AS ( +/*! sqlite-viewer-bundle-sha256:c754b94ee9e788f942af9aac4f41f6de5bd23fd493146e7200cedaad276f61db */ +"use strict";(()=>{var As=Object.defineProperty;var Ns=(e,t,n)=>t in e?As(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var D=(e,t,n)=>Ns(e,typeof t!="symbol"?t+"":t,n);function de(e){if(e==="utf-8")return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});let t=e==="utf-16le";return{decode(n){if(n.length%2!==0)throw new TypeError(`Invalid ${e}: odd byte length`);let r=a=>t?n[a]|n[a+1]<<8:n[a]<<8|n[a+1],o=[],i="";for(let a=0;a=55296&&s<=56319){let l=a+257343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s,l),a+=2}else{if(s>=56320&&s<=57343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s)}i.length>=8192&&(o.push(i),i="")}return o.push(i),o.join("")}}}function w(e){return`"${e.replace(/"/g,'""')}"`}function N(e){return`main.${w(e)}`}function W(e,t="Identifier"){if(typeof e!="string"||e.length===0)throw new Error(`${t} is required`);if(e.includes("\0"))throw new Error(`${t} cannot contain NUL characters`)}function pn(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function $r(e){if(e==null)return"NULL";if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();if(typeof e=="string"){if(e.includes("\0")){let n=new TextEncoder().encode(e);return`CAST(X'${Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}' AS TEXT)`}return`'${e.replace(/'/g,"''")}'`}return e instanceof Uint8Array?`X'${Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}'`:`'${String(e).replace(/'/g,"''")}'`}function et(e,t="\\"){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`[${n}%_]`,"g");return e.replace(r,o=>t+o)}var _s=-9223372036854775808n,$s=9223372036854775807n;function M(e){let t=typeof e;if(t!=="string"&&t!=="number"&&t!=="bigint")throw new Error(`Invalid rowid: ${e}`);if(typeof e=="number"){if(!Number.isSafeInteger(e))throw new Error(`Invalid rowid: ${e}`);return e}let n=typeof e=="string"?e.trim():e.toString();if(!/^[+-]?\d+$/.test(n))throw new Error(`Invalid rowid: ${e}`);let r=BigInt(n);if(r<_s||r>$s)throw new Error(`Invalid rowid: ${e}`);let o=Number(r);return Number.isSafeInteger(o)?o:r.toString()}var bt=[{sql:"SELECT name, sql FROM main.sqlite_schema WHERE type = 'trigger' AND tbl_name = ? COLLATE NOCASE ORDER BY rowid",params:e=>[e],temporary:!1},{sql:"SELECT temp_trigger.name, temp_trigger.sql, EXISTS (SELECT 1 FROM sqlite_temp_schema AS temp_view WHERE temp_view.type = 'view' AND temp_view.name = ? COLLATE NOCASE) FROM sqlite_temp_schema AS temp_trigger WHERE temp_trigger.type = 'trigger' AND temp_trigger.tbl_name = ? COLLATE NOCASE ORDER BY temp_trigger.rowid",params:e=>[e,e],temporary:!0}];function Or(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Pr(e){let t=[],n=0;for(;nt.toLowerCase())}function De(e,t){if(!fe(e[t]))throw new Error("Expected an SQL identifier");return t+1}function Os(e,t){return t=De(e,t),e[t]?.kind==="symbol"&&e[t].value==="."&&(t=De(e,t+1)),t}function Tt(e){let t=Pr(e),n=[],r,o=0,i=u=>{if(!F(t[o],u))throw new Error(`Expected ${u} in stored CREATE TRIGGER SQL`);o++};if(i("CREATE"),(F(t[o],"TEMP")||F(t[o],"TEMPORARY"))&&o++,i("TRIGGER"),F(t[o],"IF")&&(o++,i("NOT"),i("EXISTS")),o=Os(t,o),F(t[o],"BEFORE")||F(t[o],"AFTER")?o++:F(t[o],"INSTEAD")&&(o++,i("OF")),F(t[o],"INSERT"))r="insert",o++;else if(F(t[o],"DELETE"))r="delete",o++;else if(F(t[o],"UPDATE")){if(r="update",o++,F(t[o],"OF")){if(o++,!fe(t[o]))throw new Error("Expected an SQL identifier after UPDATE OF");for(n.push(t[o]),o=De(t,o);t[o]?.kind==="symbol"&&t[o].value===",";){if(o++,!fe(t[o]))throw new Error("Expected an SQL identifier in UPDATE OF column list");n.push(t[o]),o=De(t,o)}}}else throw new Error("Expected a trigger event in stored CREATE TRIGGER SQL");i("ON");let a=o,s=t[o];o=De(t,o);let l;t[o]?.kind==="symbol"&&t[o].value==="."&&(l=s.value,o=De(t,o+1));let d=o,c=t.findIndex((u,f)=>f>=o&&F(u,"BEGIN"));if(c<0)throw new Error("Expected BEGIN in stored CREATE TRIGGER SQL");return{tokens:t,event:r,targetSchema:l,targetStartIndex:a,updateOfColumns:n,referenceStartIndex:d,bodyStartIndex:c+1}}function yn(e){let t=Tt(e);return{event:t.event,targetSchema:t.targetSchema,updateOfColumns:t.updateOfColumns.map(n=>n.value)}}function Ct(e,t,n,r){let o=yn(e),i=`${w(t)}.${w(n)}`;if(o.event==="insert")return`EXPLAIN INSERT INTO ${i} DEFAULT VALUES`;if(o.event==="delete")return`EXPLAIN DELETE FROM ${i} WHERE 0`;let a=new Map(r.map(c=>[me(c),c])),s=o.updateOfColumns.map(c=>a.get(me(c))).find(c=>c!==void 0);if(o.updateOfColumns.length>0&&s===void 0)return;let l=s??r[0];if(l===void 0)throw new Error(`Trigger target ${t}.${n} has no writable column to probe`);let d=w(l);return`EXPLAIN UPDATE ${i} SET ${d} = ${d} WHERE 0`}function Ls(e){return Tt(e).targetSchema}function J(e){return`main.${w(e)}`}function kr(e,t){let n=`-- TRIGGER ${t}`;return e.some(r=>r.some(o=>o===n))}function Br(e,t){if(t.length!==bt.length)throw new Error(`View trigger definition fetch was incomplete for ${e}`);let n=[],r=[],o=[];return bt.forEach((i,a)=>{t[a].forEach(s=>{if(typeof s[0]!="string"||typeof s[1]!="string")throw new Error(`View trigger definition is unavailable for ${e}`);if(i.temporary){let l=s[2]===1||s[2]===1n;if(s[2]!==0&&s[2]!==0n&&!l)throw new Error(`Temporary view shadow state is unavailable for ${e}`);let d;try{d=Ls(s[1])}catch(c){let u=c instanceof Error?c.message:String(c);throw new Error(`Unable to determine the target of temporary trigger ${s[0]}: ${u}`)}if(d!==void 0&&me(d)!=="main")return;if(d===void 0){o.push({identifier:s[0],sql:s[1],temporary:!0});return}}n.push(i.temporary?{identifier:s[0],sql:s[1],temporary:!0}:{identifier:s[0],sql:s[1]})})}),{triggers:n,ambiguousTemporaryTriggerNames:r,unqualifiedTemporaryTriggers:o}}function Rt(e){let t=e.ambiguousTemporaryTriggerNames??[];if(t.length===0)return;let n=t.map(r=>`"${r}"`).join(", ");throw new Error(`Cannot modify main view "${e.identifier}" because temporary trigger target ownership is ambiguous for ${n}. Each named trigger uses an unqualified ON target whose historical schema cannot be proven. Drop the TEMP trigger, or recreate it with an explicitly schema-qualified target, before editing or dropping the main view.`)}function pe(e){let t=e.trim();if(!t)throw new Error("View SELECT definition is required");let n=-1,r,o=!1,i=!1;for(let a=0;a=0&&t[n]===";"?(t.slice(0,n).trimEnd()+t.slice(n+1)).trim():t}function Dr(e){let t=0,n=-1,r=-1;for(let o of Pr(e)){if(o.kind==="symbol"&&o.value==="("){t===0&&n===-1&&(n=o.start),t++;continue}if(o.kind==="symbol"&&o.value===")"){t===1&&n!==-1&&r===-1&&(r=o.end),t=Math.max(0,t-1);continue}if(t===0&&F(o,"AS"))return{selectStart:o.end,columnListSql:n!==-1&&r!==-1?e.slice(n,r):void 0}}throw new Error("Unable to locate the SELECT body in the stored view definition")}function Mr(e){let{selectStart:t}=Dr(e);return pe(e.slice(t))}function hn(e){return Dr(e).columnListSql}function tt(e,t,n,r){let o=n??(r?.length?`(${r.map(i=>w(i)).join(", ")})`:void 0);return`CREATE VIEW ${w(e)}${o?` ${o}`:""} AS ${t}`}function En(e,t){let n=Tt(e);if(n.targetSchema===void 0){let r=n.tokens[n.targetStartIndex];return`${e.slice(0,r.start)}main.${e.slice(r.start)}`}if(me(n.targetSchema)!=="main")throw new Error(`Unable to recreate temporary trigger ${t}: target is not in main`);return e}function wn(e){if(!e.temporary)return e.sql;let t=/^(\s*CREATE\s+)(?:(?:TEMP|TEMPORARY)\s+)?(TRIGGER\b)/i;if(!t.test(e.sql))throw new Error(`Unable to recreate temporary trigger ${e.identifier}: stored SQL is not a CREATE TRIGGER statement`);return En(e.sql,e.identifier).replace(t,"$1TEMP $2")}var vs=new Set(["AS","CROSS","END","EXCEPT","FULL","GROUP","HAVING","INDEXED","INNER","INTERSECT","JOIN","LEFT","LIMIT","NATURAL","NOT","OFFSET","ON","ORDER","OUTER","RETURNING","RIGHT","SET","UNION","USING","VALUES","WHERE","WINDOW"]),Ps=new Set(["END","EXCEPT","GROUP","HAVING","INTERSECT","LIMIT","OFFSET","ON","ORDER","RETURNING","SET","UNION","USING","VALUES","WHERE","WINDOW"]);function gn(e,t){return e.push({parent:t,aliases:new Set,hasAmbiguousSource:!1}),e.length-1}function ks(e){let{tokens:t,referenceStartIndex:n,bodyStartIndex:r}=e,o=[],i=new Array(t.length),a=new Map,s=[],l=[gn(o)],d=!1;for(let c=n;c1&&l.pop()}else u.kind==="symbol"&&u.value===";"&&l.length===1&&(d=!0)}return{scopes:o,tokenScopes:i,matchingParentheses:a}}function Bs(e,t){t&&/^(?:NEW|OLD)$/i.test(t)&&e.aliases.add(me(t))}function Lr(e,t,n,r){let o=r.scopes[n],i=t,a;if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}else if(fe(e[i])){if(a=e[i].value,i++,e[i]?.kind==="symbol"&&e[i].value==="."){if(!fe(e[i+1]))return o.hasAmbiguousSource=!0,i+1;a=e[i+1].value,i+=2}if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}}else return o.hasAmbiguousSource=!0,i+1;let s;if(F(e[i],"AS")){if(!fe(e[i+1]))return o.hasAmbiguousSource=!0,i+1;s=e[i+1].value,i+=2}else if(fe(e[i])){let l=e[i];l.kind==="word"&&vs.has(l.value.toUpperCase())||(s=l.value,i++)}return Bs(o,s??a),i}function Ds(e,t){let n=new Map;for(let r=e.referenceStartIndex;r{let o=t[r];return n.identifier===o.identifier&&n.sql===o.sql&&n.temporary===!0==(o.temporary===!0)})}var qr="The view changed outside this editor. Reload before saving; the view was not modified.";function It(e,t,n,r){if(e!==void 0&&!Us(e,t)||!Vs(n,r))throw new Error(qr)}function Wr(e,t){if(e===null||t===null){if(e!==t)throw new Error(qr);return}It(e.sql,t.sql,e.triggers,t.triggers)}var qs=32,xt=1024;function Tn(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function bn(e){return JSON.stringify(e.map(Tn))}function Sn(e,t,n,r,o){let i=[e,t,n];return bn(r===void 0||o===void 0?i:[...i,r,o])}function Fr(e){let t=e instanceof Error?e.message:String(e);return t.length>500?`${t.slice(0,500)}...`:t}function At(e,t,n){if(!(e<=t))throw new Error(`View dependency validation refused to inspect ${e} ${n}; the fail-closed limit is ${t}`)}async function Ws(e){let t=await e.queryRows("PRAGMA database_list"),n=[],r=new Set;for(let o of t){if(typeof o[1]!="string")throw new Error("SQLite returned invalid database-list metadata during view validation");let i=Tn(o[1]);r.has(i)||(r.add(i),n.push(o[1]))}return r.has("temp")||n.unshift("temp"),At(n.length,qs,"database schemas"),n}async function Fs(e,t){let n=[];for(let r of t){let o=xt-n.length;o<0&&At(n.length,xt,"schema objects");let i=await e.queryRows(`SELECT type, name, tbl_name, sql FROM ${w(r)}.sqlite_schema WHERE type IN ('view', 'trigger') ORDER BY type, name LIMIT ${o+1}`);for(let a of i){let[s,l,d,c]=a;if(s!=="view"&&s!=="trigger"||typeof l!="string"||typeof c!="string"||s==="trigger"&&typeof d!="string")throw new Error(`SQLite returned invalid ${r} schema metadata during view validation`);n.push({schema:r,kind:s,identifier:l,targetIdentifier:s==="trigger"?d:void 0,sql:c})}At(n.length,xt,"schema objects")}return n}async function Hs(e,t,n){return(await e.queryRows(`SELECT 1 FROM ${w(t)}.sqlite_schema WHERE type IN ('table', 'view') AND name = ? COLLATE NOCASE LIMIT 1`,[n])).length>0}async function js(e,t,n){let r=yn(n.sql);if(r.targetSchema!==void 0)return[r.targetSchema];if(Tn(n.schema)!=="temp")return[n.schema];let o=[];for(let i of t)await Hs(e,i,n.targetIdentifier)&&o.push(i);return o.length>0?o:["main"]}async function Ks(e,t,n){let r=await e.queryRows(`PRAGMA ${w(t)}.table_xinfo(${w(n)})`),o=[];for(let i of r){if(typeof i[1]!="string")throw new Error(`SQLite returned invalid column metadata for ${t}.${n}`);let a=i[6];a!==2&&a!==2n&&a!==3&&a!==3n&&o.push(i[1])}return o}async function Hr(e){let t=await Ws(e),n=await Fs(e,t),r=new Map,o=[],i=new Map;for(let s of n){if(s.kind==="view"){o.push({key:Sn("view",s.schema,s.identifier),kind:"view",schema:s.schema,identifier:s.identifier,sql:`EXPLAIN SELECT * FROM ${w(s.schema)}.${w(s.identifier)}`});continue}let l;try{l=await js(e,t,s)}catch(d){let c=Sn("trigger",s.schema,s.identifier);r.set(c,{key:c,kind:"trigger",schema:s.schema,identifier:s.identifier,valid:!1,error:Fr(d)});continue}for(let d of l){let c=s.targetIdentifier,u=Sn("trigger",s.schema,s.identifier,d,c);try{let f=bn([d,c]),m=i.get(f);m||(m=Ks(e,d,c),i.set(f,m));let y=Ct(s.sql,d,c,await m);if(y===void 0){r.set(u,{key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,valid:!0});continue}o.push({key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,sql:y})}catch(f){r.set(u,{key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,valid:!1,error:Fr(f)})}}}At(o.length+r.size,xt,"view and trigger probes");let a=await e.compileStatements(o.map(s=>s.sql));if(a.length!==o.length)throw new Error("View dependency validation returned an incomplete probe result set");return o.forEach((s,l)=>{let d=a[l];r.set(s.key,{key:s.key,kind:s.kind,schema:s.schema,identifier:s.identifier,targetSchema:s.targetSchema,targetIdentifier:s.targetIdentifier,valid:d===void 0,...d===void 0?{}:{error:d}})}),r}function ge(e,t){for(let n of e.values()){if(!n.valid)continue;let r=t.get(n.key);if(!r||r.valid)continue;let o=r.targetSchema&&r.targetIdentifier?` on ${r.targetSchema}.${r.targetIdentifier}`:"";throw new Error(`Schema change would break existing ${r.kind} "${r.schema}.${r.identifier}"${o}: ${r.error??"SQLite rejected it"}`)}}var jr=1024*1024,Kr=2e5;function nt(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function zs(e){return/[A-Za-z_\u0080-\uFFFF]/.test(e)}function Qs(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Xs(e,t,n){let r=t+1,o="";for(;rjr)throw new Error(`Cannot inspect index dependency: definition exceeds ${jr} characters`);let t=[],n=o=>{if(t.push(o),t.length>Kr)throw new Error(`Cannot inspect index dependency: definition exceeds ${Kr} tokens`)},r=0;for(;rs.kind==="word"&&s.value.toUpperCase()==="INDEX"),r=t.findIndex((s,l)=>l>n&&s.kind==="word"&&s.value.toUpperCase()==="ON"),o=t.findIndex((s,l)=>l>r&&s.kind==="symbol"&&s.value==="(");if(n<0||r<0||o<0)throw new Error("Cannot inspect index dependency: unsupported CREATE INDEX definition");let i=t.filter((s,l)=>l>=o&&s.kind==="symbol"&&s.value===";");if(i.length>1||i.length===1&&t.at(-1)!==i[0])throw new Error("Cannot inspect index dependency: multiple statements are not allowed");let a=i[0]?.start??e.length;return e.slice(t[o].start,a).trim()}function zr(e,t){let n=[...t],r=`${e}_dummy`,o=new Set(t.map(nt));for(;o.has(nt(r));)r+="_";return n.push(r),`CREATE TEMP TABLE ${w(e)} (${n.map(w).join(", ")})`}function Qr(e,t){let n=new Set(t.map(nt));return e.filter(r=>n.has(nt(r)))}function Xr(e,t,n){let r=Ys(n);return`CREATE INDEX temp.${w(t)} ON ${w(e)} ${r}`}function Gr(e,t,n={}){if(W(e,"Table name"),t.length===0)throw new Error("At least one column is required");if(!n||typeof n!="object"||Array.isArray(n)||n.withoutRowid!==void 0&&typeof n.withoutRowid!="boolean")throw new Error("Invalid Create Table options");let r=t.filter(s=>s.primaryKey);if(n.withoutRowid&&r.length===0)throw new Error("WITHOUT ROWID requires a primary key");let o=r.length>1,i=new Set,a=t.map(s=>{if(typeof s=="string")throw new Error("Legacy string column definitions not supported for security");W(s.name,"Column name"),pn(s.type);let l=nt(s.name);if(i.has(l))throw new Error(`Column ${JSON.stringify(s.name)} is defined more than once`);i.add(l);let d=`${w(s.name)} ${s.type}`;return s.primaryKey&&!o&&(d+=" PRIMARY KEY"),s.notNull&&(d+=" NOT NULL"),d+=Js(s.defaultValue),d});return o&&a.push(`PRIMARY KEY (${r.map(s=>w(s.name)).join(", ")})`),`CREATE TABLE ${N(e)} (${a.join(", ")})${n.withoutRowid?" WITHOUT ROWID":""}`}function Js(e){return e==null||e===""?"":e.toLowerCase()==="null"?" DEFAULT NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e)?` DEFAULT ${e}`:` DEFAULT '${e.replace(/'/g,"''")}'`}var Zs=new Set(["=","+","-","@","\uFF1D","\uFF0B","\uFF0D","\uFF20"]),ea=/^(?:\p{White_Space}|\p{Cc}|\p{Cf})$/u;function Yr(){return{dangerousPrefix:!1,prefixOpen:!0,needsQuotes:!1}}function Jr(e,t){if((t.includes(",")||t.includes('"')||t.includes(` +`)||t.includes("\r"))&&(e.needsQuotes=!0),!!e.prefixOpen)for(let n of t){if(Zs.has(n)){e.dangerousPrefix=!0,e.needsQuotes=!0,e.prefixOpen=!1;return}if(!ea.test(n)){e.prefixOpen=!1;return}}}function ta(e){let t=Yr();Jr(t,e);let n=t.dangerousPrefix?`'${e}`:e;return t.needsQuotes?`"${n.replace(/"/g,'""')}"`:n}function na(e,t){return e==="sql"?{prefix:"CAST(X'",suffix:"' AS TEXT)",byteEncoding:"hex"}:e==="json"?{prefix:`{"$sqliteExplorerTextBytes":{"encoding":${JSON.stringify(t)},"base64":"`,suffix:'"}}',byteEncoding:"base64"}:{prefix:`[SQLite TEXT bytes; encoding=${t}; base64=`,suffix:"]",byteEncoding:"base64"}}var ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Zr(e){let t="",n=0;for(;n+2>>18&63]+ye[o>>>12&63]+ye[o>>>6&63]+ye[o&63]}let r=e.length-n;if(r===1){let o=e[n]<<16;t+=ye[o>>>18&63]+ye[o>>>12&63]+"=="}else if(r===2){let o=e[n]<<16|e[n+1]<<8;t+=ye[o>>>18&63]+ye[o>>>12&63]+ye[o>>>6&63]+"="}return t}function Cn(e){let t=typeof e=="bigint"?e.toString():typeof e=="string"?e:void 0;if(t===void 0)throw new Error("SQLite returned invalid exact INTEGER text for export");try{if(BigInt(t).toString()!==t)throw new Error}catch{throw new Error("SQLite returned non-canonical INTEGER text for export")}return t}function ra(e){if(!(e instanceof Uint8Array))throw new Error("SQLite returned invalid BLOB data for export");return e}function Rn(e,t){let n=e.unrepresentableTextBytes;if(n===void 0)return;if(e.storageClass!=="text"||!(n instanceof Uint8Array)||!e.textEncoding)throw new Error("SQLite returned invalid unrepresentable TEXT export metadata");let r=na(t,e.textEncoding),o=r.byteEncoding==="hex"?Array.from(n,i=>i.toString(16).padStart(2,"0")).join(""):Zr(n);return r.prefix+o+r.suffix}function In(e){let t=Rn(e,"csv");return t!==void 0?t:e.storageClass==="null"?"":e.storageClass==="blob"?"[BLOB]":e.storageClass==="integer"?Cn(e.value):e.storageClass==="text"?ta(String(e.value)):String(e.value)}function eo(e){let t=Rn(e,"json");return t!==void 0?t:e.storageClass==="integer"?Cn(e.value):e.storageClass==="blob"?JSON.stringify(Zr(ra(e.value))):JSON.stringify(e.value)??"null"}function to(e){let t=Rn(e,"sql");return t!==void 0?t:e.storageClass==="integer"?Cn(e.value):$r(e.value)}var oa="__sqlite_explorer_numeric_source",ia="__sqlite_explorer_numeric_value_",sa="__sqlite_explorer_numeric_text_",no="__sqlite_explorer_numeric_rowid",aa="__sqlite_explorer_numeric_rowid_text_",la=2e3,ro=999,Nt=32766,rt=`SELECT 1 FROM pragma.pragma_table_list AS target WHERE "schema" = 'main' AND "name" = ? AND (("type" IN ('table', 'shadow') AND "wr" = 0) OR "type" = 'virtual') AND (NOT EXISTS (SELECT 1 FROM pragma.pragma_table_info(?, 'main') WHERE lower("name") = 'rowid') OR ("type" = 'table' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND EXISTS (SELECT 1 FROM pragma.pragma_table_info(target."name", 'main') WHERE lower("name") = 'rowid' AND lower(trim("type")) = 'integer' AND "pk" = 1) AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk'))) LIMIT 1`,oo=`SELECT info."name" FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_info(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? AND target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') LIMIT 2`,io=`SELECT info."cid", info."name", info."type", info."notnull", info."dflt_value", info."pk", info."hidden", CASE WHEN target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') THEN 1 ELSE 0 END AS is_rowid_alias FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_xinfo(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? ORDER BY info."cid"`;function so(e,t){if(e.length!==0){if(e.length!==1||e[0].length<1||typeof e[0][0]!="string")throw new Error(`SQLite returned invalid rowid-alias metadata for ${t}`);return e[0][0]}}function _t(e){return e.replace(/[A-Z]/g,t=>String.fromCharCode(t.charCodeAt(0)+32))}function Me(e,t){return _t(e)===_t(t)}function ao(e,t){let n=BigInt(Number.MAX_SAFE_INTEGER),r=BigInt(Number.MIN_SAFE_INTEGER);return e.some(o=>{let i=o[t];return typeof i=="bigint"&&(i>n||i`${ia}${f}`),r=Array.from({length:t},(u,f)=>`${sa}${f}`),o=w(oa),i=n.map(w),a=t*2<=la,s=i.map((u,f)=>`CASE WHEN typeof(${u}) = 'real' THEN CAST(${u} AS TEXT) END AS ${w(r[f])}`),l=a?[...i,...s]:i,d=a?[...n,...r]:n,c={sql:`WITH ${o} (${i.join(", ")}) AS ( SELECT * FROM ( ${e} ) LIMIT -1 OFFSET 0 ) -SELECT ${l.join(", ")} FROM ${o}`,transportColumns:d};return a&&(c.valueColumnCount=t),c}function lo(e,t,n){if(t.length<2||t[0].toLowerCase()!=="rowid"||n.length===0)return[];let r=t.slice(1),o=[];for(let i=0;ii+u+1),l=s.map(c=>`${sa}${c}`),d=a.map((c,u)=>{let f=w(c);return`CASE WHEN typeof(${f}) = 'real' THEN CAST(${f} AS TEXT) END AS ${w(l[u])}`});for(let c=0;ctypeof m=="bigint"?m.toString():m);o.push({sql:`SELECT rowid AS ${w(no)}, ${d.join(", ")} FROM ${N(e)} WHERE rowid IN (${u.map(()=>"?").join(", ")})`,params:f,transportColumns:[no,...l],columnIndices:s})}}return o}function co(e,t){if(t.length===0)return;let n=new Map;e.forEach((o,i)=>{let a=o[0];if(!["bigint","number","string"].includes(typeof a))throw new Error(`Invalid rowid identity at source row ${i}`);let s=String(a);if(n.has(s))throw new Error(`Duplicate rowid identity at source row ${i}`);n.set(s,i)});let r;for(let{query:o,rows:i}of t)for(let a of i){if(a.length{let c=a[d+1];if(c==null)return;if(typeof c!="string")throw new Error(`Rowid exact REAL text at row ${s}, column ${l} is not text`);let u=e[s]?.[l];if(u===void 0)throw new Error(`Rowid exact REAL text is outside row ${s}, column ${l}`);c!==String(u)&&(r??(r={}),r[s]??(r[s]={}),r[s][l]=c)})}return r}function Ue(e,t,n,r){let o,i=(s,l,d)=>{o??(o={}),o[s]??(o[s]={}),o[s][l]=d},a=e.map((s,l)=>{let d=t??s.length;if(t!==void 0&&s.length{let f=c;if(typeof c=="bigint"){let m=Number(c);if(Number.isSafeInteger(m))f=m;else{let y=c.toString();u===r?f=y:(i(l,u,y),f=m)}}if(t!==void 0){let m=s[t+u];if(m!=null){if(typeof m!="string")throw new Error(`Exact numeric text at row ${l}, column ${u} is not text`);m!==String(f)&&i(l,u,m)}}return f})});if(n)for(let[s,l]of Object.entries(n)){let d=Number(s);if(!Number.isInteger(d)||d<0||l===null||typeof l!="object")throw new Error(`Invalid exact numeric text row index: ${s}`);for(let[c,u]of Object.entries(l)){let f=Number(c);if(!Number.isInteger(f)||f<0||typeof u!="string")throw new Error(`Invalid exact numeric text entry at row ${s}, column ${c}`);let m=a[d]?.[f];if(m===void 0)throw new Error(`Exact numeric text entry is outside row ${s}, column ${c}`);u!==String(m)&&i(d,f,u)}}return o?{rows:a,exactIntegerTexts:o}:{rows:a}}var it="pk:",An=1,$t="readonly-pk:",uo=1,fo=` +SELECT ${l.join(", ")} FROM ${o}`,transportColumns:d};return a&&(c.valueColumnCount=t),c}function lo(e,t,n){if(t.length<2||t[0].toLowerCase()!=="rowid"||n.length===0)return[];let r=t.slice(1),o=[];for(let i=0;ii+u+1),l=s.map(c=>`${aa}${c}`),d=a.map((c,u)=>{let f=w(c);return`CASE WHEN typeof(${f}) = 'real' THEN CAST(${f} AS TEXT) END AS ${w(l[u])}`});for(let c=0;ctypeof m=="bigint"?m.toString():m);o.push({sql:`SELECT rowid AS ${w(no)}, ${d.join(", ")} FROM ${N(e)} WHERE rowid IN (${u.map(()=>"?").join(", ")})`,params:f,transportColumns:[no,...l],columnIndices:s})}}return o}function co(e,t){if(t.length===0)return;let n=new Map;e.forEach((o,i)=>{let a=o[0];if(!["bigint","number","string"].includes(typeof a))throw new Error(`Invalid rowid identity at source row ${i}`);let s=String(a);if(n.has(s))throw new Error(`Duplicate rowid identity at source row ${i}`);n.set(s,i)});let r;for(let{query:o,rows:i}of t)for(let a of i){if(a.length{let c=a[d+1];if(c==null)return;if(typeof c!="string")throw new Error(`Rowid exact REAL text at row ${s}, column ${l} is not text`);let u=e[s]?.[l];if(u===void 0)throw new Error(`Rowid exact REAL text is outside row ${s}, column ${l}`);c!==String(u)&&(r??(r={}),r[s]??(r[s]={}),r[s][l]=c)})}return r}function Ue(e,t,n,r){let o,i=(s,l,d)=>{o??(o={}),o[s]??(o[s]={}),o[s][l]=d},a=e.map((s,l)=>{let d=t??s.length;if(t!==void 0&&s.length{let f=c;if(typeof c=="bigint"){let m=Number(c);if(Number.isSafeInteger(m))f=m;else{let y=c.toString();u===r?f=y:(i(l,u,y),f=m)}}if(t!==void 0){let m=s[t+u];if(m!=null){if(typeof m!="string")throw new Error(`Exact numeric text at row ${l}, column ${u} is not text`);m!==String(f)&&i(l,u,m)}}return f})});if(n)for(let[s,l]of Object.entries(n)){let d=Number(s);if(!Number.isInteger(d)||d<0||l===null||typeof l!="object")throw new Error(`Invalid exact numeric text row index: ${s}`);for(let[c,u]of Object.entries(l)){let f=Number(c);if(!Number.isInteger(f)||f<0||typeof u!="string")throw new Error(`Invalid exact numeric text entry at row ${s}, column ${c}`);let m=a[d]?.[f];if(m===void 0)throw new Error(`Exact numeric text entry is outside row ${s}, column ${c}`);u!==String(m)&&i(d,f,u)}}return o?{rows:a,exactIntegerTexts:o}:{rows:a}}var it="pk:",An=1,$t="readonly-pk:",uo=1,fo=` SELECT tl."name" AS table_name, tl."type" AS object_type, @@ -21,37 +21,37 @@ FROM pragma.pragma_table_list AS tl LEFT JOIN pragma.pragma_table_info(tl."name", tl."schema") AS ti ON tl."type" IN ('table', 'shadow') AND tl."wr" = 1 WHERE tl."schema" = 'main' AND tl."name" NOT LIKE 'sqlite_%' -ORDER BY tl."name", ti."cid"`;function st(e){return new Error(`An UPDATE trigger changed or removed the rowid identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}var mo=`SELECT "rootpage" FROM main.sqlite_schema WHERE "type" = 'table' AND "name" = ? LIMIT 2`;function po(e,t){if(e.length!==1||e[0].length<1)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);let n=e[0][0],r=typeof n=="bigint"?Number(n):n;if(!Number.isSafeInteger(r)||Number(r)<0)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);return Number(r)}function xe(e){let t=typeof e=="bigint"?Number(e):e;return Number.isSafeInteger(t)?Number(t):void 0}function go(e,t,n,r="rowid"){if(!Number.isSafeInteger(t)||t<0)throw new Error(`SQLite returned invalid table root-page metadata for ${e}`);let o=!1,i=-1,a=0,s=!1,l,d=()=>{if(!l||l.isUserTrigger||!l.hasWrite)return;let c=l.prologueParameters,u=l.parametersAfterWrite,f=c.filter((y,g)=>g%2===1);c.length>0&&c.length%2===0&&f.every(y=>u.has(y))||(s=!0)};for(let c=0;c1?{isUserTrigger:m,hasWrite:!1,prologueParameters:[],parametersAfterWrite:new Set,prologueComplete:!1}:void 0;continue}if(l){if(u[1]==="Param"){let m=xe(u[2]);if(m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);l.hasWrite?l.parametersAfterWrite.add(m):l.prologueComplete||l.prologueParameters.push(m);continue}u[1]==="OpenWrite"||u[1]==="Clear"?(l.prologueComplete=!0,l.hasWrite=!0):u[1].startsWith("Open")&&(l.prologueComplete=!0)}}if(d(),o)throw i<0?new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`):n.slice(i).some(u=>{if(u[1]==="OpenWrite"){let f=xe(u[3]),m=xe(u[4]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}if(u[1]==="Clear"){let f=xe(u[2]),m=xe(u[3]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}return!1})?new Error(`SQLite Explorer cannot prove whether an applicable UPDATE trigger changed or removed the ${r} identity in ${e}; the trigger can write the target table, so the edit was rolled back because SQLite cannot expose a trustworthy post-trigger ${r} identity.`):new Error(`Cannot update ${e} while an applicable UPDATE trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);if(s)throw new Error(`Cannot update ${e} while a mutating foreign-key UPDATE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function yo(e,t,n){let r=0,o=!1;for(let i of n){if(i.length<6||typeof i[1]!="string")throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);let a=xe(i[0]);if(a===void 0)throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);if(i[1]==="Init"&&a===0){if(r+=1,typeof i[5]=="string"&&i[5].startsWith("-- TRIGGER "))throw new Error(`Cannot ${e.toLowerCase()} ${t} while an applicable ${e} trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);continue}e==="DELETE"&&r>1&&(i[1]==="OpenWrite"||i[1]==="Clear")&&(o=!0)}if(o)throw new Error(`Cannot delete from ${t} while a mutating foreign-key DELETE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function la(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function ca(e){let t=new Uint8Array(e.length/2);for(let n=0;n4096)throw new Error("Read-only primary-key reason must contain 1 through 4096 characters");if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid read-only primary-key row ordinal: ${t}`);return $t+encodeURIComponent(JSON.stringify({v:uo,r:t,m:e}))}function da(e){let t;try{t=JSON.parse(decodeURIComponent(e.slice($t.length)))}catch{throw new Error("Invalid read-only primary-key identity encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==uo||!Number.isSafeInteger(t.r)||Number(t.r)<0||typeof t.m!="string"||String(t.m).length<1||String(t.m).length>4096)throw new Error("Invalid read-only primary-key identity payload");let n=t;if($t+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Read-only primary-key identity is not canonical");return n}function Ae(e){if(ua(e))throw new Error(da(e).m)}function Ve(e,t){if(e.length===0||e.length!==t.length)throw new Error("Primary-key identity column/value count mismatch");let n={v:An,c:e.map((r,o)=>[r.identifier,Ot(t[o])])};return it+encodeURIComponent(JSON.stringify(n))}function wo(e){if(!Z(e))throw new Error(`Invalid primary-key identity: ${String(e)}`);let t,n;try{t=decodeURIComponent(e.slice(it.length)),n=JSON.parse(t)}catch{throw new Error("Invalid primary-key identity encoding")}if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||n.v!==An||!Array.isArray(n.c))throw new Error("Invalid primary-key identity payload");let r=n.c;if(r.length===0)throw new Error("Primary-key identity has no columns");let o=new Set,i=[],a=[],s=[],l=[];for(let c of r){if(!Array.isArray(c)||c.length!==2||typeof c[0]!="string")throw new Error("Invalid primary-key identity member");if(o.has(c[0]))throw new Error(`Duplicate primary-key identity column: ${c[0]}`);o.add(c[0]),i.push(c[0]);let u=ho(c[1]);a.push(u.value),s.push(u.storageClass),l.push(c[1])}if(it+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Primary-key identity is not canonical");return{columns:i,values:a,storageClasses:s,encodedValues:l}}function So(e){let{columns:t,values:n}=wo(e);return{columns:t,values:n}}function Lt(e,t){Ae(e);let n=wo(e),r=t.columns.map(o=>o.identifier);if(n.columns.length!==r.length||n.columns.some((o,i)=>o!==r[i]))throw new Error(`Primary-key identity columns do not match the declared key (${r.join(", ")})`);return n}function Nn(e,t,n){let r=Lt(e,t),o=new Map,i=new Set(t.columns.map(s=>s.identifier));for(let s of n){if(!i.has(s.column))throw new Error(`Primary-key replacement column is not declared: ${s.column}`);if(o.has(s.column))throw new Error(`Duplicate primary-key replacement column: ${s.column}`);o.set(s.column,s.value)}let a={v:An,c:t.columns.map((s,l)=>[s.identifier,o.has(s.identifier)?Ot(o.get(s.identifier)):r.encodedValues[l]])};return it+encodeURIComponent(JSON.stringify(a))}function xn(e){return e==="integer"?"CAST(? AS INTEGER)":"?"}function U(e,t){if(Ae(e),t.kind==="rowid")return{sql:"rowid = ?",params:[M(e)]};let n=Lt(e,t),r=t.columns.map(i=>i.identifier),o=r.map((i,a)=>xn(n.storageClasses[a]));return{sql:r.map((i,a)=>`${w(i)} = ${o[a]}`).join(" AND "),params:n.values,primaryKey:{columns:n.columns,values:n.values},primaryKeyIntegerCasts:o.map(i=>i!=="?")}}function fa(e,t){if(e.length===0)throw new Error("At least one row identity is required");if(t.kind==="rowid"){let a=e.map(s=>U(s,t));return{sql:`rowid IN (${a.map(()=>"?").join(", ")})`,params:a.flatMap(s=>s.params)}}let n=e.map(a=>Lt(a,t)),r=t.columns.map(a=>w(a.identifier)),o=n.flatMap(a=>a.values);if(r.length===1)return{sql:`${r[0]} IN (${n.map(a=>xn(a.storageClasses[0])).join(", ")})`,params:o};let i=n.map(a=>`(${a.storageClasses.map(s=>xn(s)).join(", ")})`);return{sql:`(${r.join(", ")}) IN (VALUES ${i.join(", ")})`,params:o}}function qe(e,t){if(e.length===0)throw new Error("At least one row identity is required");let n=new Set;for(let a of e){let s;if(t.kind==="rowid"?s=`rowid:${String(M(a))}`:(Lt(a,t),s=`primaryKey:${String(a)}`),n.has(s))throw new Error("Duplicate row identities are not allowed");n.add(s)}let r=t.kind==="rowid"?1:t.columns.length,o=Math.max(1,Math.floor((Nt-1)/r)),i=[];for(let a=0;at.primaryKeyPosition>0).map(t=>({identifier:t.identifier,declaredType:t.declaredType,position:t.primaryKeyPosition})).sort((t,n)=>t.position-n.position)}var kt=1024*1024,he=16*1024*1024,ma=256,re=2*he,pa=64*1024,lt=40,ct=512*1024,Ln=45,ga=2,ya="__sqlite_explorer_cell_source",ha="__sqlite_explorer_cell_value_",Ea="__sqlite_explorer_cell_metadata",Ao="__sqlite_explorer_cell_raw_text_",To=64*1024,Co=400,wa=4,On=2e3;function vt(e,t){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:t}function Sa(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell containment requires a positive column count, got ${t}`);let n=vt(e.maxInlineCellBytes,kt),r=vt(e.maxPageResponseBytes,he),i=vt(e.limit,1)*t,a=Number.isSafeInteger(i)?Math.floor(r/i):0;if(!Number.isSafeInteger(i))return 0;let s=String(t-1).length+3,l=lt+Ln+s+ga,d=re-ct,c=Math.floor(d/i),u=Math.max(0,Math.floor((c-l)/4)*4),f=Math.floor(u/4)*3;return Math.min(n,a,Math.max(ma,f))}function ba(e,t){return`typeof(${e}) IN ('text', 'blob') AND octet_length(${e}) > ${t}`}function Ta(e,t){return`CASE WHEN ${ba(e,t)} THEN CASE typeof(${e}) WHEN 'text' THEN 't' ELSE 'b' END || CAST(octet_length(${e}) AS TEXT) ELSE '' END`}function Ca(e,t){let n=[];for(let r=0;rTa(a,t)).map((a,s)=>`${s===0?"SELECT":"UNION ALL SELECT"} ${a} AS "cell"`).join(` +ORDER BY tl."name", ti."cid"`;function st(e){return new Error(`An UPDATE trigger changed or removed the rowid identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}var mo=`SELECT "rootpage" FROM main.sqlite_schema WHERE "type" = 'table' AND "name" = ? LIMIT 2`;function po(e,t){if(e.length!==1||e[0].length<1)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);let n=e[0][0],r=typeof n=="bigint"?Number(n):n;if(!Number.isSafeInteger(r)||Number(r)<0)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);return Number(r)}function xe(e){let t=typeof e=="bigint"?Number(e):e;return Number.isSafeInteger(t)?Number(t):void 0}function go(e,t,n,r="rowid"){if(!Number.isSafeInteger(t)||t<0)throw new Error(`SQLite returned invalid table root-page metadata for ${e}`);let o=!1,i=-1,a=0,s=!1,l,d=()=>{if(!l||l.isUserTrigger||!l.hasWrite)return;let c=l.prologueParameters,u=l.parametersAfterWrite,f=c.filter((y,g)=>g%2===1);c.length>0&&c.length%2===0&&f.every(y=>u.has(y))||(s=!0)};for(let c=0;c1?{isUserTrigger:m,hasWrite:!1,prologueParameters:[],parametersAfterWrite:new Set,prologueComplete:!1}:void 0;continue}if(l){if(u[1]==="Param"){let m=xe(u[2]);if(m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);l.hasWrite?l.parametersAfterWrite.add(m):l.prologueComplete||l.prologueParameters.push(m);continue}u[1]==="OpenWrite"||u[1]==="Clear"?(l.prologueComplete=!0,l.hasWrite=!0):u[1].startsWith("Open")&&(l.prologueComplete=!0)}}if(d(),o)throw i<0?new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`):n.slice(i).some(u=>{if(u[1]==="OpenWrite"){let f=xe(u[3]),m=xe(u[4]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}if(u[1]==="Clear"){let f=xe(u[2]),m=xe(u[3]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}return!1})?new Error(`SQLite Explorer cannot prove whether an applicable UPDATE trigger changed or removed the ${r} identity in ${e}; the trigger can write the target table, so the edit was rolled back because SQLite cannot expose a trustworthy post-trigger ${r} identity.`):new Error(`Cannot update ${e} while an applicable UPDATE trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);if(s)throw new Error(`Cannot update ${e} while a mutating foreign-key UPDATE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function yo(e,t,n){let r=0,o=!1;for(let i of n){if(i.length<6||typeof i[1]!="string")throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);let a=xe(i[0]);if(a===void 0)throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);if(i[1]==="Init"&&a===0){if(r+=1,typeof i[5]=="string"&&i[5].startsWith("-- TRIGGER "))throw new Error(`Cannot ${e.toLowerCase()} ${t} while an applicable ${e} trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);continue}e==="DELETE"&&r>1&&(i[1]==="OpenWrite"||i[1]==="Clear")&&(o=!0)}if(o)throw new Error(`Cannot delete from ${t} while a mutating foreign-key DELETE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function ca(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function ua(e){let t=new Uint8Array(e.length/2);for(let n=0;n4096)throw new Error("Read-only primary-key reason must contain 1 through 4096 characters");if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid read-only primary-key row ordinal: ${t}`);return $t+encodeURIComponent(JSON.stringify({v:uo,r:t,m:e}))}function fa(e){let t;try{t=JSON.parse(decodeURIComponent(e.slice($t.length)))}catch{throw new Error("Invalid read-only primary-key identity encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==uo||!Number.isSafeInteger(t.r)||Number(t.r)<0||typeof t.m!="string"||String(t.m).length<1||String(t.m).length>4096)throw new Error("Invalid read-only primary-key identity payload");let n=t;if($t+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Read-only primary-key identity is not canonical");return n}function Ae(e){if(da(e))throw new Error(fa(e).m)}function Ve(e,t){if(e.length===0||e.length!==t.length)throw new Error("Primary-key identity column/value count mismatch");let n={v:An,c:e.map((r,o)=>[r.identifier,Ot(t[o])])};return it+encodeURIComponent(JSON.stringify(n))}function wo(e){if(!Z(e))throw new Error(`Invalid primary-key identity: ${String(e)}`);let t,n;try{t=decodeURIComponent(e.slice(it.length)),n=JSON.parse(t)}catch{throw new Error("Invalid primary-key identity encoding")}if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||n.v!==An||!Array.isArray(n.c))throw new Error("Invalid primary-key identity payload");let r=n.c;if(r.length===0)throw new Error("Primary-key identity has no columns");let o=new Set,i=[],a=[],s=[],l=[];for(let c of r){if(!Array.isArray(c)||c.length!==2||typeof c[0]!="string")throw new Error("Invalid primary-key identity member");if(o.has(c[0]))throw new Error(`Duplicate primary-key identity column: ${c[0]}`);o.add(c[0]),i.push(c[0]);let u=ho(c[1]);a.push(u.value),s.push(u.storageClass),l.push(c[1])}if(it+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Primary-key identity is not canonical");return{columns:i,values:a,storageClasses:s,encodedValues:l}}function So(e){let{columns:t,values:n}=wo(e);return{columns:t,values:n}}function Lt(e,t){Ae(e);let n=wo(e),r=t.columns.map(o=>o.identifier);if(n.columns.length!==r.length||n.columns.some((o,i)=>o!==r[i]))throw new Error(`Primary-key identity columns do not match the declared key (${r.join(", ")})`);return n}function Nn(e,t,n){let r=Lt(e,t),o=new Map,i=new Set(t.columns.map(s=>s.identifier));for(let s of n){if(!i.has(s.column))throw new Error(`Primary-key replacement column is not declared: ${s.column}`);if(o.has(s.column))throw new Error(`Duplicate primary-key replacement column: ${s.column}`);o.set(s.column,s.value)}let a={v:An,c:t.columns.map((s,l)=>[s.identifier,o.has(s.identifier)?Ot(o.get(s.identifier)):r.encodedValues[l]])};return it+encodeURIComponent(JSON.stringify(a))}function xn(e){return e==="integer"?"CAST(? AS INTEGER)":"?"}function U(e,t){if(Ae(e),t.kind==="rowid")return{sql:"rowid = ?",params:[M(e)]};let n=Lt(e,t),r=t.columns.map(i=>i.identifier),o=r.map((i,a)=>xn(n.storageClasses[a]));return{sql:r.map((i,a)=>`${w(i)} = ${o[a]}`).join(" AND "),params:n.values,primaryKey:{columns:n.columns,values:n.values},primaryKeyIntegerCasts:o.map(i=>i!=="?")}}function ma(e,t){if(e.length===0)throw new Error("At least one row identity is required");if(t.kind==="rowid"){let a=e.map(s=>U(s,t));return{sql:`rowid IN (${a.map(()=>"?").join(", ")})`,params:a.flatMap(s=>s.params)}}let n=e.map(a=>Lt(a,t)),r=t.columns.map(a=>w(a.identifier)),o=n.flatMap(a=>a.values);if(r.length===1)return{sql:`${r[0]} IN (${n.map(a=>xn(a.storageClasses[0])).join(", ")})`,params:o};let i=n.map(a=>`(${a.storageClasses.map(s=>xn(s)).join(", ")})`);return{sql:`(${r.join(", ")}) IN (VALUES ${i.join(", ")})`,params:o}}function qe(e,t){if(e.length===0)throw new Error("At least one row identity is required");let n=new Set;for(let a of e){let s;if(t.kind==="rowid"?s=`rowid:${String(M(a))}`:(Lt(a,t),s=`primaryKey:${String(a)}`),n.has(s))throw new Error("Duplicate row identities are not allowed");n.add(s)}let r=t.kind==="rowid"?1:t.columns.length,o=Math.max(1,Math.floor((Nt-1)/r)),i=[];for(let a=0;at.primaryKeyPosition>0).map(t=>({identifier:t.identifier,declaredType:t.declaredType,position:t.primaryKeyPosition})).sort((t,n)=>t.position-n.position)}var kt=1024*1024,he=16*1024*1024,pa=256,re=2*he,ga=64*1024,lt=40,ct=512*1024,Ln=45,ya=2,ha="__sqlite_explorer_cell_source",Ea="__sqlite_explorer_cell_value_",wa="__sqlite_explorer_cell_metadata",Ao="__sqlite_explorer_cell_raw_text_",To=64*1024,Co=400,Sa=4,On=2e3;function vt(e,t){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:t}function ba(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell containment requires a positive column count, got ${t}`);let n=vt(e.maxInlineCellBytes,kt),r=vt(e.maxPageResponseBytes,he),i=vt(e.limit,1)*t,a=Number.isSafeInteger(i)?Math.floor(r/i):0;if(!Number.isSafeInteger(i))return 0;let s=String(t-1).length+3,l=lt+Ln+s+ya,d=re-ct,c=Math.floor(d/i),u=Math.max(0,Math.floor((c-l)/4)*4),f=Math.floor(u/4)*3;return Math.min(n,a,Math.max(pa,f))}function Ta(e,t){return`typeof(${e}) IN ('text', 'blob') AND octet_length(${e}) > ${t}`}function Ca(e,t){return`CASE WHEN ${Ta(e,t)} THEN CASE typeof(${e}) WHEN 'text' THEN 't' ELSE 'b' END || CAST(octet_length(${e}) AS TEXT) ELSE '' END`}function Ra(e,t){let n=[];for(let r=0;rCa(a,t)).map((a,s)=>`${s===0?"SELECT":"UNION ALL SELECT"} ${a} AS "cell"`).join(` `);n.push(`(SELECT group_concat("cell", '|') FROM ( ${i} -))`)}return n.join(" || '|' || ")}function Bt(e,t,n,r=[],o="blob"){let i=Sa(n,t),a=Math.floor(i/wa),s=Array.from({length:t},(I,S)=>`${ha}${S}`),l=s.map(w);if(new Set(r).size!==r.length||r.some(I=>!Number.isInteger(I)||I<0||I>=t))throw new Error("Cell containment raw-TEXT columns must be unique in-range indices");let d=r.length>0&&t+1+r.length>On,c=d?[]:r,u=l.map((I,S)=>`CASE WHEN typeof(${I}) = 'text' AND octet_length(${I}) > ${i} THEN substr(${I}, 1, ${a}) WHEN typeof(${I}) = 'blob' AND octet_length(${I}) > ${i} THEN substr(${I}, 1, ${i}) ELSE ${I} END AS ${w(s[S])}`),f=w(ya),m=Ca(l,i),y=c.map((I,S)=>{let R=l[I];return`CASE WHEN typeof(${R}) = 'text' AND octet_length(${R}) <= ${i} THEN ${o==="hex"?`hex(CAST(${R} AS BLOB))`:`CAST(${R} AS BLOB)`} END AS ${w(`${Ao}${S}`)}`}),g=y.length>0?`, ${y.join(", ")}`:"",h=t+1>On,C=`WITH ${f} (${l.join(", ")}) AS${h?" MATERIALIZED":""} ( +))`)}return n.join(" || '|' || ")}function Bt(e,t,n,r=[],o="blob"){let i=ba(n,t),a=Math.floor(i/Sa),s=Array.from({length:t},(x,S)=>`${Ea}${S}`),l=s.map(w);if(new Set(r).size!==r.length||r.some(x=>!Number.isInteger(x)||x<0||x>=t))throw new Error("Cell containment raw-TEXT columns must be unique in-range indices");let d=r.length>0&&t+1+r.length>On,c=d?[]:r,u=l.map((x,S)=>`CASE WHEN typeof(${x}) = 'text' AND octet_length(${x}) > ${i} THEN substr(${x}, 1, ${a}) WHEN typeof(${x}) = 'blob' AND octet_length(${x}) > ${i} THEN substr(${x}, 1, ${i}) ELSE ${x} END AS ${w(s[S])}`),f=w(ha),m=Ra(l,i),y=c.map((x,S)=>{let R=l[x];return`CASE WHEN typeof(${R}) = 'text' AND octet_length(${R}) <= ${i} THEN ${o==="hex"?`hex(CAST(${R} AS BLOB))`:`CAST(${R} AS BLOB)`} END AS ${w(`${Ao}${S}`)}`}),g=y.length>0?`, ${y.join(", ")}`:"",h=t+1>On,C=`WITH ${f} (${l.join(", ")}) AS${h?" MATERIALIZED":""} ( SELECT * FROM ( ${e} ) LIMIT -1 OFFSET 0 ) -`,T=h?"":`, ${m} AS ${w(Ea)}`,x=h?` +`,T=h?"":`, ${m} AS ${w(wa)}`,I=h?` UNION ALL -SELECT (SELECT COALESCE(group_concat(${m}, char(10)), '') FROM ${f})${t>1?`, ${Array(t-1).fill("NULL").join(", ")}`:""}`:"";return{sql:C+`SELECT ${u.join(", ")}${T}${g} FROM ${f}`+x,metadataTrailer:h,primaryTransportColumnCount:t+(h?0:1)+c.length,valueColumnCount:t,metadataColumnIndex:t,transportColumnCount:t+1+c.length,rawTextColumnStart:t+1,rawTextColumnCount:c.length,rawTextTransport:o,rawTextColumnIndices:c,rawTextValidationUnavailable:d,effectiveInlineCellBytes:i}}function No(e,t,n){if(!n.metadataTrailer){if(t!==void 0)throw new Error("Cell containment received unexpected separate metadata rows");return e}if(t!==void 0)throw new Error("Cell containment metadata must come from the value statement");let r=e.at(-1);if(!r||r.length!==n.primaryTransportColumnCount)throw new Error("Cell containment metadata trailer is missing or malformed");if(typeof r[0]!="string"||r.slice(1).some(a=>a!==null))throw new Error("Cell containment metadata trailer is not one packed text value");let o=e.slice(0,-1),i=r[0]===""?[]:r[0].split(` -`);if(i.length!==o.length)throw new Error("Cell containment metadata row count does not match the value page");return o.map((a,s)=>{if(a.length{if(!s)return;let l={};for(let[d,c]of Object.entries(s)){let u=Number(d);l[u]={};for(let[f,m]of Object.entries(c))l[u][Number(f)+1]=m}return l},o=r(t.exactIntegerTexts),i;for(let s of[n,o])if(s){i??(i={});for(let[l,d]of Object.entries(s)){let c=Number(l);i[c]??(i[c]={}),Object.assign(i[c],d)}}let a=r(t.oversizedCells);return{rows:t.rows.map((s,l)=>[e[l],...s]),...a?{oversizedCells:a}:{},...i?{exactIntegerTexts:i}:{}}}function $o(e,t){let n,r=0,o,i=s=>{if(s>=48&&s<=57)return s-48;let l=s|32;return l>=97&&l<=102?l-87:-1},a=(s,l,d)=>{let c=typeof s=="string"?s.length/2:NaN;if(typeof s!="string"||!Number.isSafeInteger(c)||!Number.isSafeInteger(t.effectiveInlineCellBytes)||t.effectiveInlineCellBytes<0||c>t.effectiveInlineCellBytes)throw new Error(`Raw TEXT value at row ${l}, key ${d} is not bounded hexadecimal text`);if(c===0)return o??(o=new Uint8Array(0));let u;c>To?u=new Uint8Array(c):((!n||n.byteLength-r{if(s.length{let u=s[t.rawTextColumnStart+c];if(u!==null&&t.rawTextTransport==="hex")return a(u,l,c);if(u!==null&&!(u instanceof Uint8Array))throw new Error(`Raw TEXT value at row ${l}, key ${c} is not a BLOB`);return u})})}function Oo(e){if(e.sourceRows.length===0||e.sourceColumnIndices.length===0)return;if(e.rawTextValidationUnavailable)return new Set(e.sourceRows.map((o,i)=>i));if(e.rawTextRows.length!==e.sourceRows.length)throw new Error("Raw TEXT validation row count does not match the source page");let t=e.sourceColumnIndices.map(o=>{let i=e.rawTextColumnIndices.indexOf(o);if(i<0)throw new Error(`Raw TEXT validation column ${o} was not projected`);return i}),n=de(e.textEncoding),r;return e.sourceRows.forEach((o,i)=>{let a=e.rawTextRows[i];if(!a||a.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT validation row ${i} has the wrong width`);for(let s=0;sArray.from(s)),n;if(e.contained.oversizedCells){n={};for(let[s,l]of Object.entries(e.contained.oversizedCells))n[Number(s)]={...l}}let r;if(e.contained.exactIntegerTexts){r={};for(let[s,l]of Object.entries(e.contained.exactIntegerTexts))r[Number(s)]={...l}}let o=re-ct,i=Mt(t)+Ut(n)+Vt(r),a=de(e.textEncoding);if(e.sourceRows.forEach((s,l)=>{let d=e.rawTextRows[l];if(!d||d.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT containment row ${l} has the wrong width`);e.rawTextColumnIndices.forEach((c,u)=>{let f=s[c];if(typeof f!="string"||n?.[l]?.[c])return;let m=d[u];if(!(m instanceof Uint8Array))throw new Error(`Raw TEXT containment bytes are missing at row ${l}, column ${c}`);let y=!1;try{y=a.decode(m)===f}catch{y=!1}if(y)return;let g=t[l][c],h=vo(n,l,c);n??(n={}),n[l]??(n[l]={}),n[l][c]={storageClass:"text",byteLength:m.byteLength};let C=Math.max(0,o-i-h+ie(g)),T=C>lt?Math.floor((C-lt)/4)*3:0,x=Math.min(m.byteLength,pa,T);if(x===0)throw new Error(`Raw TEXT containment cannot retain an authoritative byte prefix for row ${l}, column ${c} within the webview transport limit`);let I=m.slice(0,x);t[l][c]=I,i+=ie(I)-ie(g)+h,r?.[l]&&(delete r[l][c],Object.keys(r[l]).length===0&&delete r[l])})}),i>o)throw new Error(`Raw TEXT containment cannot fit this page within the ${re}-byte transport limit`);return{rows:t,...n?{oversizedCells:n}:{},...r&&Object.keys(r).length>0?{exactIntegerTexts:r}:{}}}function Ra(e,t,n){if(e==="")return;let r=/^([tb])([1-9]\d*)$/.exec(e);if(!r)throw new Error(`Invalid oversized-cell metadata at row ${t}, column ${n}`);let o=Number(r[2]);if(!Number.isSafeInteger(o))throw new Error(`Oversized-cell byte length is unsafe at row ${t}, column ${n}`);return{storageClass:r[1]==="t"?"text":"blob",byteLength:o}}function Dt(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function Ia(e){if(typeof e=="string")return Dt(e);if(e instanceof Uint8Array)return e.byteLength}function Ro(e){return e==="text"?"":new Uint8Array(0)}function xa(e){return 4*Math.ceil(e/3)}function ie(e){return e instanceof Uint8Array?xa(e.byteLength)+lt:typeof e=="string"?Dt(e)+2:8}function Se(e){return Dt(e)+3}function Mt(e){let t=2+Math.max(0,e.length-1);for(let n of e){t+=2+Math.max(0,n.length-1);for(let r of n)t+=ie(r)}return t}function Ut(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=Se(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a]of i)n+=Se(a)+Ln}return n}function vo(e,t,n){if(e?.[t]?.[n])return 0;let r=Se(String(n))+Ln;if(e?.[t])return 1+r;let i=Se(String(t))+2+r;return e?1+i:2+i}function Vt(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=Se(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a,s]of i)n+=Se(a)+Dt(s)+2}return n}function Po(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t)n+=Se(r)+ie(o);return n}function qt(e,t,n,r=he){var y;let o=vt(r,he),i,a=0,s=!1,l=[],d=(g,h,C)=>{var T;i??(i={}),i[g]??(i[g]={}),(T=i[g])[h]??(T[h]=C)},c=e.map((g,h)=>{if(g.length{let R=Ra(I,h,S);R&&d(h,S,R);let _=x[S],A=Ia(_);if(A===void 0||A===0)return;let L=R??{storageClass:typeof _=="string"?"text":"blob",byteLength:A};if(s||A>o-a){s=!0,d(h,S,L),x[S]=Ro(L.storageClass);return}a+=A,l.push({rowIndex:h,columnIndex:S,metadata:L})}),x}),u;if(n)for(let[g,h]of Object.entries(n))for(let[C,T]of Object.entries(h)){let x=Number(C);x>=t||(u??(u={}),u[y=Number(g)]??(u[y]={}),u[Number(g)][x]=T)}let f=re-ct,m=Mt(c)+Ut(i)+Vt(u);for(let g=l.length-1;g>=0&&m>f;g--){let h=l[g],C=c[h.rowIndex][h.columnIndex],T=Ro(h.metadata.storageClass),x=ie(T)-ie(C)+vo(i,h.rowIndex,h.columnIndex);x>=0||(d(h.rowIndex,h.columnIndex,h.metadata),c[h.rowIndex][h.columnIndex]=T,m+=x)}if(m>f)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:c,...i?{oversizedCells:i}:{},...u?{exactIntegerTexts:u}:{}}}function Io(e,t){var r;if(!e)return;let n;for(let[o,i]of Object.entries(e))for(let[a,s]of Object.entries(i)){let l=Number(a);l>=t||(n??(n={}),n[r=Number(o)]??(n[r]={}),n[Number(o)][l+1]=s)}return n}function xo(e,t){var r;if(!e)return;let n;for(let[o,i]of Object.entries(e))for(let[a,s]of Object.entries(i)){let l=Number(a);l!==t&&(n??(n={}),n[r=Number(o)]??(n[r]={}),n[Number(o)][l]=s)}return n}function ko(e){let t=`Row is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity.`,n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o=e.rows.map((d,c)=>{if(d.length===0)throw new Error(`Shadowed rowid result row ${c} has no identity slot`);let u=n+c;if(!Number.isSafeInteger(u))throw new Error("Shadowed rowid result ordinal exceeds the safe integer range");return r??(r={}),r[c]=t,[at(t,u),...d.slice(1)]}),i=xo(e.oversizedCells,0),a=xo(e.exactIntegerTexts,0),s=re-ct;if(Mt(o)+Ut(i)+Vt(a)+Po(r)>s)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:o,...i?{oversizedCells:i}:{},...a?{exactIntegerTexts:a}:{},...r?{readOnlyRowReasons:r}:{}}}function Pt(e){return`"${e.length<=128?e:`${e.slice(0,125)}...`}"`}function Bo(e){let t=e.slice(0,8).map(Pt);return e.length>t.length?`${t.join(", ")}, and ${e.length-t.length} more`:t.join(", ")}function Aa(e,t){if(e.length===1){let r=e[0];return`Row is read-only because WITHOUT ROWID primary-key column ${Pt(r.identifier)} is ${r.byteLength} bytes and exceeds the ${t}-byte inline limit; its identity was not transported.`}let n=e.slice(0,8).map(r=>`${Pt(r.identifier)} (${r.byteLength} bytes)`);return e.length>n.length&&n.push(`and ${e.length-n.length} more`),`Row is read-only because WITHOUT ROWID primary-key columns ${n.join(", ")} exceed the ${t}-byte inline limit; their identity was not transported.`}function Do(e){return e==="utf-8"?"UTF-8":e==="utf-16le"?"UTF-16LE":"UTF-16BE"}function ut(e){if(e.columns.length*2>On)throw new Error(`Cannot mint a byte-faithful WITHOUT ROWID identity with ${e.columns.length} primary-key columns within SQLite's result-column limit`);let t=e.columns.map(r=>w(r.identifier)),n=t.map((r,o)=>`CASE WHEN typeof(${r}) = 'text' THEN CAST(${r} AS BLOB) END AS `+w(`${Ao}${o}`));return[...t,...n].join(", ")}function dt(e,t,n,r){let o=e.columns.length;if(t.length!==o*2)throw new Error(`${r}: SQLite returned an invalid primary-key validation row`);let i=t.slice(0,o),a=de(n);for(let s=0;s{let h=e.sourceColumns.indexOf(g.identifier);if(h<0)throw new Error(`Primary-key column missing from table fetch: ${g.identifier}`);return h}),n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o,i=[],a=de(e.textEncoding),s=e.rawTextValidationUnavailable?[]:t.map(g=>{let h=e.rawTextColumnIndices.indexOf(g);if(h<0)throw new Error(`Primary-key raw TEXT column ${g} was not projected`);return h}),l=e.rows.map((g,h)=>{let C=e.identity.columns.flatMap((R,_)=>{let A=e.oversizedCells?.[h]?.[t[_]];return A?[{identifier:R.identifier,byteLength:A.byteLength}]:[]}),T=e.identityRows[h];if(!T)throw new Error(`Primary-key identity row missing at index ${h}`);let x=e.rawTextBytes[h];if(!e.rawTextValidationUnavailable&&(!x||x.length!==e.rawTextColumnIndices.length))throw new Error(`Primary-key raw TEXT row missing at index ${h}`);let I=e.rawTextValidationUnavailable?e.identity.columns.map(R=>R.identifier):e.identity.columns.flatMap((R,_)=>{let A=T[t[_]];if(typeof A!="string")return[];let L=e.oversizedCells?.[h]?.[t[_]];if(L&&L.byteLength>e.effectiveInlineCellBytes)return[];let E=x[s[_]];if(!(E instanceof Uint8Array))return[R.identifier];try{return a.decode(E)===A?[]:[R.identifier]}catch{return[R.identifier]}}),S;if(e.rawTextValidationUnavailable&&(o??(o=new Set),o.add(h)),I.length>0){let R=e.rawTextValidationUnavailable?_a(I):Na(I,e.textEncoding);r??(r={}),r[h]=R,o??(o=new Set),o.add(h),S=at(R,n+h)}else if(C.length>0){let R=Aa(C,e.effectiveInlineCellBytes);r??(r={}),r[h]=R,S=at(R,n+h)}else S=Ve(e.identity.columns,t.map(R=>T[R])),i.push(h);return[S,...g.slice(0,e.visibleColumnCount)]}),d=Io(e.oversizedCells,e.visibleColumnCount),c=Io(e.exactIntegerTexts,e.visibleColumnCount),u=re-ct,f=Mt(l)+Ut(d)+Vt(c)+Po(r),m="Row is read-only because its encoded WITHOUT ROWID primary-key identity exceeds the page transport budget.",y=g=>{if(r?.[g]!==void 0)return 0;let h=Se(String(g))+ie(m);return r?1+h:2+h};for(let g=i.length-1;g>=0&&f>u;g--){let h=i[g],C=l[h][0],T=at(m,n+h),x=ie(T)-ie(C)+y(h);x>=0||(l[h][0]=T,r??(r={}),r[h]=m,f+=x)}if(f>u)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:l,...d?{oversizedCells:d}:{},...c?{exactIntegerTexts:c}:{},...r?{readOnlyRowReasons:r}:{},...o?{unrepresentableTextKeyRows:o}:{}}}var be=1e3,vn=4*1024*1024,Uo=64*1024,Wt=128;function Vo(e){if(e.length>Uo)throw new Error("Query text exceeds 65,536 characters.");let t=pe(e),n="",r=0,o=0;for(let i=0;i1?`, ${Array(t-1).fill("NULL").join(", ")}`:""}`:"";return{sql:C+`SELECT ${u.join(", ")}${T}${g} FROM ${f}`+I,metadataTrailer:h,primaryTransportColumnCount:t+(h?0:1)+c.length,valueColumnCount:t,metadataColumnIndex:t,transportColumnCount:t+1+c.length,rawTextColumnStart:t+1,rawTextColumnCount:c.length,rawTextTransport:o,rawTextColumnIndices:c,rawTextValidationUnavailable:d,effectiveInlineCellBytes:i}}function No(e,t,n){if(!n.metadataTrailer){if(t!==void 0)throw new Error("Cell containment received unexpected separate metadata rows");return e}if(t!==void 0)throw new Error("Cell containment metadata must come from the value statement");let r=e.at(-1);if(!r||r.length!==n.primaryTransportColumnCount)throw new Error("Cell containment metadata trailer is missing or malformed");if(typeof r[0]!="string"||r.slice(1).some(a=>a!==null))throw new Error("Cell containment metadata trailer is not one packed text value");let o=e.slice(0,-1),i=r[0]===""?[]:r[0].split(` +`);if(i.length!==o.length)throw new Error("Cell containment metadata row count does not match the value page");return o.map((a,s)=>{if(a.length{if(!s)return;let l={};for(let[d,c]of Object.entries(s)){let u=Number(d);l[u]={};for(let[f,m]of Object.entries(c))l[u][Number(f)+1]=m}return l},o=r(t.exactIntegerTexts),i;for(let s of[n,o])if(s){i??(i={});for(let[l,d]of Object.entries(s)){let c=Number(l);i[c]??(i[c]={}),Object.assign(i[c],d)}}let a=r(t.oversizedCells);return{rows:t.rows.map((s,l)=>[e[l],...s]),...a?{oversizedCells:a}:{},...i?{exactIntegerTexts:i}:{}}}function $o(e,t){let n,r=0,o,i=s=>{if(s>=48&&s<=57)return s-48;let l=s|32;return l>=97&&l<=102?l-87:-1},a=(s,l,d)=>{let c=typeof s=="string"?s.length/2:NaN;if(typeof s!="string"||!Number.isSafeInteger(c)||!Number.isSafeInteger(t.effectiveInlineCellBytes)||t.effectiveInlineCellBytes<0||c>t.effectiveInlineCellBytes)throw new Error(`Raw TEXT value at row ${l}, key ${d} is not bounded hexadecimal text`);if(c===0)return o??(o=new Uint8Array(0));let u;c>To?u=new Uint8Array(c):((!n||n.byteLength-r{if(s.length{let u=s[t.rawTextColumnStart+c];if(u!==null&&t.rawTextTransport==="hex")return a(u,l,c);if(u!==null&&!(u instanceof Uint8Array))throw new Error(`Raw TEXT value at row ${l}, key ${c} is not a BLOB`);return u})})}function Oo(e,t,n){if(n.includes("\0"))return!1;try{return e.decode(t)===n}catch{return!1}}function Lo(e){if(e.sourceRows.length===0||e.sourceColumnIndices.length===0)return;if(e.rawTextValidationUnavailable)return new Set(e.sourceRows.map((o,i)=>i));if(e.rawTextRows.length!==e.sourceRows.length)throw new Error("Raw TEXT validation row count does not match the source page");let t=e.sourceColumnIndices.map(o=>{let i=e.rawTextColumnIndices.indexOf(o);if(i<0)throw new Error(`Raw TEXT validation column ${o} was not projected`);return i}),n=de(e.textEncoding),r;return e.sourceRows.forEach((o,i)=>{let a=e.rawTextRows[i];if(!a||a.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT validation row ${i} has the wrong width`);for(let s=0;sArray.from(s)),n;if(e.contained.oversizedCells){n={};for(let[s,l]of Object.entries(e.contained.oversizedCells))n[Number(s)]={...l}}let r;if(e.contained.exactIntegerTexts){r={};for(let[s,l]of Object.entries(e.contained.exactIntegerTexts))r[Number(s)]={...l}}let o=re-ct,i=Mt(t)+Ut(n)+Vt(r),a=de(e.textEncoding);if(e.sourceRows.forEach((s,l)=>{let d=e.rawTextRows[l];if(!d||d.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT containment row ${l} has the wrong width`);e.rawTextColumnIndices.forEach((c,u)=>{let f=s[c];if(typeof f!="string"||n?.[l]?.[c])return;let m=d[u];if(!(m instanceof Uint8Array))throw new Error(`Raw TEXT containment bytes are missing at row ${l}, column ${c}`);if(Oo(a,m,f))return;let y=t[l][c],g=Po(n,l,c);n??(n={}),n[l]??(n[l]={}),n[l][c]={storageClass:"text",byteLength:m.byteLength};let h=Math.max(0,o-i-g+ie(y)),C=h>lt?Math.floor((h-lt)/4)*3:0,T=Math.min(m.byteLength,ga,C);if(T===0)throw new Error(`Raw TEXT containment cannot retain an authoritative byte prefix for row ${l}, column ${c} within the webview transport limit`);let I=m.slice(0,T);t[l][c]=I,i+=ie(I)-ie(y)+g,r?.[l]&&(delete r[l][c],Object.keys(r[l]).length===0&&delete r[l])})}),i>o)throw new Error(`Raw TEXT containment cannot fit this page within the ${re}-byte transport limit`);return{rows:t,...n?{oversizedCells:n}:{},...r&&Object.keys(r).length>0?{exactIntegerTexts:r}:{}}}function Ia(e,t,n){if(e==="")return;let r=/^([tb])([1-9]\d*)$/.exec(e);if(!r)throw new Error(`Invalid oversized-cell metadata at row ${t}, column ${n}`);let o=Number(r[2]);if(!Number.isSafeInteger(o))throw new Error(`Oversized-cell byte length is unsafe at row ${t}, column ${n}`);return{storageClass:r[1]==="t"?"text":"blob",byteLength:o}}function Dt(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function xa(e){if(typeof e=="string")return Dt(e);if(e instanceof Uint8Array)return e.byteLength}function Ro(e){return e==="text"?"":new Uint8Array(0)}function Aa(e){return 4*Math.ceil(e/3)}function ie(e){return e instanceof Uint8Array?Aa(e.byteLength)+lt:typeof e=="string"?Dt(e)+2:8}function Se(e){return Dt(e)+3}function Mt(e){let t=2+Math.max(0,e.length-1);for(let n of e){t+=2+Math.max(0,n.length-1);for(let r of n)t+=ie(r)}return t}function Ut(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=Se(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a]of i)n+=Se(a)+Ln}return n}function Po(e,t,n){if(e?.[t]?.[n])return 0;let r=Se(String(n))+Ln;if(e?.[t])return 1+r;let i=Se(String(t))+2+r;return e?1+i:2+i}function Vt(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=Se(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a,s]of i)n+=Se(a)+Dt(s)+2}return n}function ko(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t)n+=Se(r)+ie(o);return n}function qt(e,t,n,r=he){var y;let o=vt(r,he),i,a=0,s=!1,l=[],d=(g,h,C)=>{var T;i??(i={}),i[g]??(i[g]={}),(T=i[g])[h]??(T[h]=C)},c=e.map((g,h)=>{if(g.length{let R=Ia(x,h,S);R&&d(h,S,R);let _=I[S],A=xa(_);if(A===void 0||A===0)return;let L=R??{storageClass:typeof _=="string"?"text":"blob",byteLength:A};if(s||A>o-a){s=!0,d(h,S,L),I[S]=Ro(L.storageClass);return}a+=A,l.push({rowIndex:h,columnIndex:S,metadata:L})}),I}),u;if(n)for(let[g,h]of Object.entries(n))for(let[C,T]of Object.entries(h)){let I=Number(C);I>=t||(u??(u={}),u[y=Number(g)]??(u[y]={}),u[Number(g)][I]=T)}let f=re-ct,m=Mt(c)+Ut(i)+Vt(u);for(let g=l.length-1;g>=0&&m>f;g--){let h=l[g],C=c[h.rowIndex][h.columnIndex],T=Ro(h.metadata.storageClass),I=ie(T)-ie(C)+Po(i,h.rowIndex,h.columnIndex);I>=0||(d(h.rowIndex,h.columnIndex,h.metadata),c[h.rowIndex][h.columnIndex]=T,m+=I)}if(m>f)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:c,...i?{oversizedCells:i}:{},...u?{exactIntegerTexts:u}:{}}}function Io(e,t){var r;if(!e)return;let n;for(let[o,i]of Object.entries(e))for(let[a,s]of Object.entries(i)){let l=Number(a);l>=t||(n??(n={}),n[r=Number(o)]??(n[r]={}),n[Number(o)][l+1]=s)}return n}function xo(e,t){var r;if(!e)return;let n;for(let[o,i]of Object.entries(e))for(let[a,s]of Object.entries(i)){let l=Number(a);l!==t&&(n??(n={}),n[r=Number(o)]??(n[r]={}),n[Number(o)][l]=s)}return n}function Bo(e){let t=`Row is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity.`,n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o=e.rows.map((d,c)=>{if(d.length===0)throw new Error(`Shadowed rowid result row ${c} has no identity slot`);let u=n+c;if(!Number.isSafeInteger(u))throw new Error("Shadowed rowid result ordinal exceeds the safe integer range");return r??(r={}),r[c]=t,[at(t,u),...d.slice(1)]}),i=xo(e.oversizedCells,0),a=xo(e.exactIntegerTexts,0),s=re-ct;if(Mt(o)+Ut(i)+Vt(a)+ko(r)>s)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:o,...i?{oversizedCells:i}:{},...a?{exactIntegerTexts:a}:{},...r?{readOnlyRowReasons:r}:{}}}function Pt(e){return`"${e.length<=128?e:`${e.slice(0,125)}...`}"`}function Do(e){let t=e.slice(0,8).map(Pt);return e.length>t.length?`${t.join(", ")}, and ${e.length-t.length} more`:t.join(", ")}function Na(e,t){if(e.length===1){let r=e[0];return`Row is read-only because WITHOUT ROWID primary-key column ${Pt(r.identifier)} is ${r.byteLength} bytes and exceeds the ${t}-byte inline limit; its identity was not transported.`}let n=e.slice(0,8).map(r=>`${Pt(r.identifier)} (${r.byteLength} bytes)`);return e.length>n.length&&n.push(`and ${e.length-n.length} more`),`Row is read-only because WITHOUT ROWID primary-key columns ${n.join(", ")} exceed the ${t}-byte inline limit; their identity was not transported.`}function Mo(e){return e==="utf-8"?"UTF-8":e==="utf-16le"?"UTF-16LE":"UTF-16BE"}function ut(e){if(e.columns.length*2>On)throw new Error(`Cannot mint a byte-faithful WITHOUT ROWID identity with ${e.columns.length} primary-key columns within SQLite's result-column limit`);let t=e.columns.map(r=>w(r.identifier)),n=t.map((r,o)=>`CASE WHEN typeof(${r}) = 'text' THEN CAST(${r} AS BLOB) END AS `+w(`${Ao}${o}`));return[...t,...n].join(", ")}function dt(e,t,n,r){let o=e.columns.length;if(t.length!==o*2)throw new Error(`${r}: SQLite returned an invalid primary-key validation row`);let i=t.slice(0,o),a=de(n);for(let s=0;s{let h=e.sourceColumns.indexOf(g.identifier);if(h<0)throw new Error(`Primary-key column missing from table fetch: ${g.identifier}`);return h}),n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o,i=[],a=de(e.textEncoding),s=e.rawTextValidationUnavailable?[]:t.map(g=>{let h=e.rawTextColumnIndices.indexOf(g);if(h<0)throw new Error(`Primary-key raw TEXT column ${g} was not projected`);return h}),l=e.rows.map((g,h)=>{let C=e.identity.columns.flatMap((R,_)=>{let A=e.oversizedCells?.[h]?.[t[_]];return A?[{identifier:R.identifier,byteLength:A.byteLength}]:[]}),T=e.identityRows[h];if(!T)throw new Error(`Primary-key identity row missing at index ${h}`);let I=e.rawTextBytes[h];if(!e.rawTextValidationUnavailable&&(!I||I.length!==e.rawTextColumnIndices.length))throw new Error(`Primary-key raw TEXT row missing at index ${h}`);let x=e.rawTextValidationUnavailable?e.identity.columns.map(R=>R.identifier):e.identity.columns.flatMap((R,_)=>{let A=T[t[_]];if(typeof A!="string")return[];let L=e.oversizedCells?.[h]?.[t[_]];if(L&&L.byteLength>e.effectiveInlineCellBytes)return[];let E=I[s[_]];if(!(E instanceof Uint8Array))return[R.identifier];try{return a.decode(E)===A?[]:[R.identifier]}catch{return[R.identifier]}}),S;if(e.rawTextValidationUnavailable&&(o??(o=new Set),o.add(h)),x.length>0){let R=e.rawTextValidationUnavailable?$a(x):_a(x,e.textEncoding);r??(r={}),r[h]=R,o??(o=new Set),o.add(h),S=at(R,n+h)}else if(C.length>0){let R=Na(C,e.effectiveInlineCellBytes);r??(r={}),r[h]=R,S=at(R,n+h)}else S=Ve(e.identity.columns,t.map(R=>T[R])),i.push(h);return[S,...g.slice(0,e.visibleColumnCount)]}),d=Io(e.oversizedCells,e.visibleColumnCount),c=Io(e.exactIntegerTexts,e.visibleColumnCount),u=re-ct,f=Mt(l)+Ut(d)+Vt(c)+ko(r),m="Row is read-only because its encoded WITHOUT ROWID primary-key identity exceeds the page transport budget.",y=g=>{if(r?.[g]!==void 0)return 0;let h=Se(String(g))+ie(m);return r?1+h:2+h};for(let g=i.length-1;g>=0&&f>u;g--){let h=i[g],C=l[h][0],T=at(m,n+h),I=ie(T)-ie(C)+y(h);I>=0||(l[h][0]=T,r??(r={}),r[h]=m,f+=I)}if(f>u)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:l,...d?{oversizedCells:d}:{},...c?{exactIntegerTexts:c}:{},...r?{readOnlyRowReasons:r}:{},...o?{unrepresentableTextKeyRows:o}:{}}}var be=1e3,vn=4*1024*1024,Vo=64*1024,Wt=128;function qo(e){if(e.length>Vo)throw new Error("Query text exceeds 65,536 characters.");let t=pe(e),n="",r=0,o=0;for(let i=0;ia+1?Number(t.slice(a+1,i)):r+1;if(!Number.isInteger(l)||l<1||l>100)throw new Error("Use at most 100 positional parameters.");r=Math.max(r,l),n+="NULL";continue}else{if(s==="("&&o++,s===")"&&--o<0)throw new Error("Unbalanced query parentheses.");if(s===";")throw new Error("Exactly one read query is required.");if(s===":"||s==="@"||s==="$")throw new Error("Use positional ? or ?NNN parameters. Named parameters are not supported.");i++}n+=t.slice(a,i)}if(o!==0)throw new Error("Unbalanced query parentheses.");return{sourceSql:t,sql:`SELECT * FROM ( ${t} ) LIMIT ${be+1}`,metadataSql:`SELECT * FROM ( ${n} -) LIMIT 0`,parameterCount:r}}function qo(e,t){return{sql:`SELECT sqlite_explorer_query_plan(${Array(t.length+1).fill("?").join(", ")}) AS plan`,params:[e,...t]}}function Wo(e){if(typeof e!="string"||e.length>vn)throw new Error("SQLite returned an invalid query plan.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>be+1||t.some(n=>!Array.isArray(n)||n.length!==4||n.slice(0,3).some(r=>!Number.isSafeInteger(r))||typeof n[3]!="string"))throw new Error("SQLite returned an invalid query plan.");return{headers:["id","parent","notused","detail"],rows:t}}function Fo(e){if(e.length>Uo)throw new Error("Parameters exceed 65,536 characters.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>100)throw new Error("Enter a JSON array of at most 100 values.");for(let n of t){if(n!==null&&typeof n!="string"&&typeof n!="number")throw new Error("Parameters must be null, string, or number.");if(typeof n=="number"&&(!Number.isFinite(n)||Number.isInteger(n)&&!Number.isSafeInteger(n)))throw new Error("Numbers must be finite and integer values must be safe integers. Supply an exact integer as a quoted string and use CAST(? AS INTEGER).")}return t}function Ho(e,t){if(t<1||t>Wt)throw new Error("Queries support 1 to 128 result columns.");let n=Bt(e,t,{limit:be+1,maxInlineCellBytes:64*1024,maxPageResponseBytes:vn});return ot(n.sql,n.primaryTransportColumnCount)}function jo(e,t,n){let r=Ue(t,n);return{headers:e,...qt(r.rows,e.length,r.exactIntegerTexts,vn)}}var Ko=` +) LIMIT 0`,parameterCount:r}}function Wo(e,t){return{sql:`SELECT sqlite_explorer_query_plan(${Array(t.length+1).fill("?").join(", ")}) AS plan`,params:[e,...t]}}function Fo(e){if(typeof e!="string"||e.length>vn)throw new Error("SQLite returned an invalid query plan.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>be+1||t.some(n=>!Array.isArray(n)||n.length!==4||n.slice(0,3).some(r=>!Number.isSafeInteger(r))||typeof n[3]!="string"))throw new Error("SQLite returned an invalid query plan.");return{headers:["id","parent","notused","detail"],rows:t}}function Ho(e){if(e.length>Vo)throw new Error("Parameters exceed 65,536 characters.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>100)throw new Error("Enter a JSON array of at most 100 values.");for(let n of t){if(n!==null&&typeof n!="string"&&typeof n!="number")throw new Error("Parameters must be null, string, or number.");if(typeof n=="number"&&(!Number.isFinite(n)||Number.isInteger(n)&&!Number.isSafeInteger(n)))throw new Error("Numbers must be finite and integer values must be safe integers. Supply an exact integer as a quoted string and use CAST(? AS INTEGER).")}return t}function jo(e,t){if(t<1||t>Wt)throw new Error("Queries support 1 to 128 result columns.");let n=Bt(e,t,{limit:be+1,maxInlineCellBytes:64*1024,maxPageResponseBytes:vn});return ot(n.sql,n.primaryTransportColumnCount)}function Ko(e,t,n){let r=Ue(t,n);return{headers:e,...qt(r.rows,e.length,r.exactIntegerTexts,vn)}}var zo=` SELECT type, name, sql FROM main.sqlite_schema WHERE type IN ('view', 'trigger') AND sql IS NOT NULL -ORDER BY type, name`;function $a(e){return e.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function zo(e,t){let n=$a(t);return new RegExp(`(^|[^A-Za-z0-9_$])${n}($|[^A-Za-z0-9_$])`,"i").test(e)}var Eu=2*1024*1024,wu=64*1024;async function Qo(e,t,n,r){let o=`main.${w(e)}`;for(let i of n??[])await r(`DROP INDEX IF EXISTS main.${w(i)}`);for(let i of t)await r(`ALTER TABLE ${o} DROP COLUMN ${w(i)}`)}function Te(e){let t=e==null?"":String(e);return t.trim()?t:void 0}function jt(e,t,n="set"){if(n==="json_patch")return{value:e,operation:"json_patch"};if(typeof e!="string"||typeof t!="string"||!(e.startsWith("{")||e.startsWith("["))||!(t.startsWith("{")||t.startsWith("[")))return{value:e,operation:"set"};try{let r=JSON.parse(t),o=JSON.parse(e);if(!r||typeof r!="object"||Array.isArray(r)||!o||typeof o!="object"||Array.isArray(o))return{value:e,operation:"set"};let i=Jo(r,o);return i===void 0||Yo(i)?{value:e,operation:"set"}:{value:JSON.stringify(i),operation:"json_patch"}}catch{return{value:e,operation:"set"}}}function Yo(e){return e===null?!0:z(e)?Object.values(e).some(Yo):!1}function Jo(e,t,n=0){if(n>1e3)throw new Error("JSON merge patch depth limit exceeded");if(e===t)return;if(!z(e)||!z(t)||Array.isArray(e)||Array.isArray(t))return t;let r=Object.create(null),o=!1;for(let i of Object.keys(t)){let a=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0,s=t[i];if(a===void 0)r[i]=s,o=!0;else if(a!==s){let l=Jo(a,s,n+1);l!==void 0&&(r[i]=l,o=!0)}}for(let i of Object.keys(e))Object.prototype.hasOwnProperty.call(t,i)||(r[i]=null,o=!0);return o?r:void 0}function Zo(e,t,n=0){if(n>1e3)throw new Error("JSON apply merge patch depth limit exceeded");if(t===null)return null;if(typeof t!="object"||Array.isArray(t))return t;let r;typeof e!="object"||e===null||Array.isArray(e)?r=Object.create(null):r=Object.assign(Object.create(null),e);let o=t;for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=o[i];a===null?delete r[i]:r[i]=Zo(r[i],a,n+1)}return r}function Ft(e){if(typeof e=="string")try{let t=JSON.parse(e);return z(t)?t:void 0}catch{return}}function ei(e,t,n,r,o){let i=o==="undo"?r:n,a=o==="undo"?n:r,s=()=>Go(e,i)?{kind:"write",value:a}:{kind:"conflict"};if(Ht(e)||Ht(t)||Ht(n)||Ht(r))return s();let l=Ft(e),d=Ft(t),c=Ft(n),u=Ft(r);if(!l||!d||!c||!u)return s();if(!ti(l,o==="undo"?u:c,d,c,0))return{kind:"conflict"};if(Go(e,i))return{kind:"write",value:a};let m=o==="undo"?kn(l,d,c,0):Zo(l,d,0);return{kind:"write",value:JSON.stringify(m)}}function ti(e,t,n,r,o){if(o>1e3)throw new Error("JSON history replay depth limit exceeded");for(let i of Object.keys(n)){let a=n[i],s=Object.prototype.hasOwnProperty.call(e,i),l=Object.prototype.hasOwnProperty.call(t,i),d=Object.prototype.hasOwnProperty.call(r,i),c=s?e[i]:void 0,u=l?t[i]:void 0,f=d?r[i]:void 0;if(z(a)){if(!d||!z(f)){if(!Xo(s,c,l,u,o+1))return!1;continue}if(!s||!z(c)||!l||!z(u)||!ti(c,u,a,f,o+1))return!1;continue}if(!Xo(s,c,l,u,o+1))return!1}return!0}function Xo(e,t,n,r,o){return e===n&&(!e||Pn(t,r,o))}function Pn(e,t,n){if(n>1e3)throw new Error("JSON history replay depth limit exceeded");if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((i,a)=>Pn(i,t[a],n+1));if(!z(e)||!z(t))return!1;let r=Object.keys(e),o=Object.keys(t);return r.length!==o.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&Pn(e[i],t[i],n+1))}function Go(e,t){return e instanceof Uint8Array||t instanceof Uint8Array?!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:e.length===t.length&&e.every((n,r)=>n===t[r]):Object.is(e,t)}function kn(e,t,n,r){if(r>1e3)throw new Error("JSON undo restore depth limit exceeded");let o=Object.assign(Object.create(null),e);for(let i of Object.keys(t)){let a=t[i],s=Object.prototype.hasOwnProperty.call(n,i),l=s?n[i]:void 0;if(z(a))if(s&&z(l))if(Object.prototype.hasOwnProperty.call(o,i)&&z(o[i])){let d=o[i];o[i]=kn(d,a,l,r+1)}else o[i]=l;else if(s)o[i]=l;else{let d=Object.prototype.hasOwnProperty.call(o,i)&&z(o[i])?o[i]:Object.create(null),c=kn(d,a,Object.create(null),r+1);Object.keys(c).length===0?delete o[i]:o[i]=c}else s?o[i]=l:delete o[i]}return o}function Ht(e){if(typeof e!="string")return!1;let n=e.replace(/"(?:\\.|[^"\\])*"/g,'""').match(/-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g);return n?n.some(r=>{let o=Number(r);return!Number.isFinite(o)||JSON.stringify(o)!==r}):!1}function z(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var Oa=new Set(["null","integer","real","text","blob"]),La="Cell changed outside SQLite Explorer history; undo/redo was not applied.",va="This edit predates guarded cell history and cannot be replayed safely. Save or reload the database.",se=class extends Error{constructor(n,r){let o=r.length===1?`${n}.${r[0]}`:`${r.length} cells in ${n}`;super(`${o}: ${La}`);D(this,"code","SQLITE_EXPLORER_CELL_HISTORY_CONFLICT");this.name="CellHistoryConflictError"}},ft=class extends Error{constructor(){super(va);D(this,"code","SQLITE_EXPLORER_LEGACY_CELL_HISTORY");this.name="LegacyCellHistoryError"}};function ee(e){let t=w(e);return`typeof(${t}), CASE WHEN typeof(${t}) = 'text' THEN CAST(${t} AS BLOB) ELSE ${t} END`}function Pa(e,t,n){if(!t)throw new Error(`SQLite text encoding is required for ${n}`);try{return{value:de(t).decode(e)}}catch{return{value:"",rawTextBytes:e}}}function V(e,t,n,r={}){if(typeof e!="string"||!Oa.has(e))throw new Error(`SQLite returned an invalid storage class for ${n}`);let o=e;if(o!=="text"&&r.rawTextBytes!==void 0)throw new Error(`SQLite returned raw TEXT bytes for non-TEXT ${n}`);if(o==="text"){if(t instanceof Uint8Array)return{storageClass:o,...Pa(t,r.textEncoding,n)};if(typeof t!="string")throw new Error(`SQLite returned an invalid text value for ${n}`);if(r.rawTextBytes!==void 0&&!(r.rawTextBytes instanceof Uint8Array))throw new Error(`SQLite returned invalid raw TEXT bytes for ${n}`);return{storageClass:o,value:t,...r.rawTextBytes instanceof Uint8Array?{rawTextBytes:r.rawTextBytes}:{}}}if(!(o==="null"?t===null:o==="integer"?typeof t=="bigint"||typeof t=="number"&&Number.isInteger(t):o==="real"?typeof t=="number":t instanceof Uint8Array))throw new Error(`SQLite returned an invalid ${o} value for ${n}`);return{storageClass:o,value:t}}function mt(e){if(!e||typeof e!="object")throw new ft;V(e.storageClass,e.value,"cell history",{rawTextBytes:e.rawTextBytes})}function Bn(e,t){if(e.storageClass!==t.storageClass)return!1;if(e.storageClass==="text"){let o=e.rawTextBytes,i=t.rawTextBytes;if(o||i)return!o||!i?!1:o.length===i.length&&o.every((a,s)=>a===i[s])}let n=e.value,r=t.value;return e.storageClass==="integer"&&typeof n!=typeof r?typeof n=="number"&&Number.isSafeInteger(n)&&typeof r=="bigint"?BigInt(n)===r:typeof r=="number"&&Number.isSafeInteger(r)&&typeof n=="bigint"?n===BigInt(r):!1:n instanceof Uint8Array||r instanceof Uint8Array?!(n instanceof Uint8Array)||!(r instanceof Uint8Array)?!1:n.length===r.length&&n.every((o,i)=>o===r[i]):Object.is(n,r)}function Kt(e,t=()=>"?"){switch(mt(e),e.storageClass){case"null":return{sql:"NULL",params:[]};case"integer":return{sql:t(e.value),params:[e.value]};case"real":return{sql:"CAST(? AS REAL)",params:[e.value]};case"text":return{sql:e.rawTextBytes?"CAST(substr(?, 1) AS TEXT)":"CAST(? AS TEXT)",params:[e.rawTextBytes??e.value]};case"blob":return{sql:"?",params:[e.value]}}}function zt(e,t,n=()=>"?"){mt(t);let r=w(e);switch(t.storageClass){case"null":return{sql:`typeof(${r}) = 'null'`,params:[]};case"integer":{let o=n(t.value);return{sql:`typeof(${r}) = 'integer' AND ${r} IS ${o}`,params:[t.value]}}case"real":return{sql:`typeof(${r}) = 'real' AND ${r} IS CAST(? AS REAL)`,params:[t.value]};case"text":return{sql:`typeof(${r}) = 'text' AND CAST(${r} AS BLOB) = CAST(? AS BLOB)`,params:[t.rawTextBytes??t.value]};case"blob":return{sql:`typeof(${r}) = 'blob' AND ${r} IS ?`,params:[t.value]}}}var ka="Row changed outside SQLite Explorer history; undo/redo was not applied.",Ba="This row edit predates guarded row history and cannot be replayed safely. Save or reload the database.",Ce=class extends Error{constructor(n){super(`${n}: ${ka}`);D(this,"code","SQLITE_EXPLORER_ROW_HISTORY_CONFLICT");this.name="RowHistoryConflictError"}},K=class extends Error{constructor(){super(Ba);D(this,"code","SQLITE_EXPLORER_LEGACY_ROW_HISTORY");this.name="LegacyRowHistoryError"}};function pt(e){if(!Array.isArray(e.storageClasses))throw new K;let t=new Set;return e.storageClasses.map(n=>{let r=typeof n?.column=="string"?_t(n.column):void 0;if(!n||typeof n.column!="string"||r===void 0||t.has(r)||!Object.prototype.hasOwnProperty.call(e.row,n.column))throw new K;t.add(r);let o=e.row[n.column],i=n.storageClass==="text"&&o instanceof Uint8Array?o:void 0;return{column:n.column,state:V(n.storageClass,i?"":o,`row history column ${n.column}`,{rawTextBytes:i})}})}function Dn(e,t=()=>"?"){let n=pt(e).map(({column:r,state:o})=>zt(r,o,t));return{sql:n.length>0?n.map(r=>`(${r.sql})`).join(" AND "):"1",params:n.flatMap(r=>r.params)}}function ni(e,t=()=>"?"){return pt(e).map(({column:n,state:r})=>({column:n,write:Kt(r,t)}))}var Mn="~sqlite-explorer-non-finite:",Ou=`${Mn}Infinity`,Da=`${Mn}-Infinity`,Lu=`${Mn}NaN`,Ma=Da.length+2;function gt(e){let t=new Set,n=[e],r=0;for(;n.length>0;){let o=n.pop();if(o!=null){if(typeof o=="boolean")r+=4;else if(typeof o=="number"||typeof o=="bigint")r+=8;else if(typeof o=="string")r+=o.length*2;else if(o instanceof Uint8Array)r+=o.byteLength;else if(typeof o=="object"){if(t.has(o))continue;if(t.add(o),r+=8,Array.isArray(o))for(let i of o)n.push(i);else for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r+=i.length*2,n.push(o[i]))}}}return r}var Ua=32,Va=48;function ri(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error(`SQLite returned an unsafe ${t} during delete undo preflight`);return Number(n)}function oi(e,t){return[...e]}function ii(e,t,n){return{sql:`SELECT COUNT(*), COALESCE(SUM(${t.map(o=>{let i=w(o);return`CASE typeof(${i}) WHEN 'text' THEN 2 * octet_length(${i}) WHEN 'blob' THEN octet_length(${i}) WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 0 END`}).join(" + ")||"0"}), 0) FROM ${N(e)} WHERE ${n.sql}`,params:n.params}}function si(e){if(!e||e.length<2)throw new Error("SQLite omitted delete undo preflight metadata");return{rowCount:ri(e[0],"row count"),valueBytes:ri(e[1],"value byte count")}}function ai(e){if(!Number.isSafeInteger(e.maxSnapshotBytes)||e.maxSnapshotBytes<0)throw new Error("Delete undo snapshot budget must be a non-negative safe integer");if(e.rowCount!==e.rowIds.length)throw new Error(`Cannot delete from ${e.table}: one or more row identities no longer exist`);let n=[...new Set(e.insertableColumns)].reduce((a,s)=>a+s.length*2,0),r=e.rowIds.reduce((a,s)=>a+gt(s),0),o=e.rowCount*e.insertableColumns.reduce((a,s)=>a+s.length*2+Va,0),i=e.valueBytes+r+e.rowCount*(Ua+n)+o;if(!Number.isSafeInteger(i)||i>e.maxSnapshotBytes){let a=e.operation??"Delete";throw new Error(`${a} undo snapshot exceeds the ${e.maxSnapshotBytes}-byte memory budget; ${a.toLowerCase()} fewer rows or increase sqliteExplorer.maxUndoMemory.`)}}var Qt="ksa:",Xt=1,Vn=128*1024,qa=["first","after","atOrAfter","before","last"];function qn(e){return e.orderBy?.toLowerCase()==="rowid"&&e.columns?.[0]?.toLowerCase()==="rowid"&&!e.columns.slice(1).some(t=>t.toLowerCase()==="rowid")}function Wn(e,t){let n=(t.filters??[]).flatMap(l=>{let d=Te(l.value);return d===void 0?[]:[[l.column,d]]}),r=Te(t.globalFilter)??null,o=r===null?null:t.globalFilterColumns??t.columns??null,i=typeof t.orderBy=="string"&&t.orderBy!==""?t.orderBy:null,a=i!==null&&t.orderDir==="DESC"?"DESC":"ASC",s=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)?t.limit:null;return JSON.stringify([Xt,e,i,a,s,n,r,o])}function Fn(e,t){if(!t||e.orderByColumns?.length)return;let n=t.kind==="rowid"?["rowid"]:t.columns.map(i=>i.identifier);if(n.length===0)return;let r=typeof e.orderBy=="string"&&e.orderBy!==""?e.orderBy:void 0;if(r===void 0)return{keyColumns:n,nullableSortKey:!1,direction:"ASC"};let o=e.orderDir==="DESC"?"DESC":"ASC";return qn(e)?{keyColumns:n,nullableSortKey:!1,direction:o}:n.includes(r)?{keyColumns:[r,...n.filter(i=>i!==r)],nullableSortKey:!1,direction:o}:{keyColumns:[r,...n],nullableSortKey:!0,direction:o}}function li(e,t){if(!(!e||t))return{orderByColumns:e.keyColumns,orderDir:e.direction}}function Wa(e){return e===null?["null"]:Ot(e)}function Fa(e){return Array.isArray(e)&&e.length===1&&e[0]==="null"?{value:null,storageClass:"null"}:{value:Eo(e),storageClass:e[0]}}function Ha(e,t){if(t.length===0)throw new Error("Keyset anchor requires at least one key value");let n={v:Xt,t:e,k:t.map(Wa)};return Qt+encodeURIComponent(JSON.stringify(n))}function ja(e){if(e.length>Vn)throw new Error(`Keyset anchor exceeds the ${Vn}-byte limit`)}function Ka(e){if(typeof e!="string"||!e.startsWith(Qt))throw new Error("Invalid keyset anchor");ja(e);let t;try{t=JSON.parse(decodeURIComponent(e.slice(Qt.length)))}catch{throw new Error("Invalid keyset anchor encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Xt||typeof t.t!="string"||!Array.isArray(t.k))throw new Error("Invalid keyset anchor payload");let n=t.k;if(n.length===0)throw new Error("Keyset anchor has no key values");let r,o;try{let a=n.map(Fa);r=a.map(s=>s.value),o=a.map(s=>s.storageClass)}catch(a){throw new Error(`Invalid keyset anchor value: ${a instanceof Error?a.message:String(a)}`)}if(Qt+encodeURIComponent(JSON.stringify({v:Xt,t:t.t,k:n}))!==e)throw new Error("Keyset anchor is not canonical");return{tag:t.t,values:r,valueClasses:o}}function ci(e,t,n){let r=t.keyset;if(!r||typeof r!="object"||Array.isArray(r)||!qa.includes(r.mode))return;let o=Fn(t,n);if(!o)return;let i=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)&&t.limit>0?t.limit:void 0;if(i===void 0)return;if(r.mode==="first")return{...o,mode:"first",limit:i};if(r.mode==="last"){let l=r.lastPageRowCount??i;return typeof l!="number"||!Number.isSafeInteger(l)||l<1||l>i?void 0:{...o,mode:"last",limit:l}}if(r.anchor===void 0)return;let a=Ka(r.anchor);if(a.tag!==Wn(e,t)||a.values.length!==o.keyColumns.length)return;let s=o.nullableSortKey?1:0;if(a.values.some((l,d)=>l===null&&d>=s))throw new Error("Keyset anchor has NULL in an identity slot");return{...o,mode:r.mode,values:a.values,valueClasses:a.valueClasses,limit:i}}function Un(e,t,n){return e.length===1?`${e[0]} ${t} ${n[0]}`:`(${e.join(", ")}) ${t} (${n.join(", ")})`}function za(e){let t=e.values,r=e.mode==="before"?e.direction==="ASC"?"DESC":"ASC":e.direction,o=(r==="ASC"?">":"<")+(e.mode==="atOrAfter"?"=":""),i=e.keyColumns.map(w),a=e.keyColumns.map((f,m)=>e.valueClasses?.[m]==="integer"?"CAST(? AS INTEGER)":"?");if(!e.nullableSortKey)return{sql:Un(i,o,a),params:t};let s=i[0],l=i.slice(1),d=t[0],c=t.slice(1);if(d===null){let f=Un(l,o,a.slice(1));return r==="ASC"?{sql:`((${s} IS NULL AND ${f}) OR ${s} IS NOT NULL)`,params:c}:{sql:`(${s} IS NULL AND ${f})`,params:c}}let u=Un(i,o,a);return r==="ASC"?{sql:u,params:t}:{sql:`(${u} OR ${s} IS NULL)`,params:t}}function ui(e){let{plan:t}=e,n=t.mode==="before"||t.mode==="last",r=n?t.direction==="ASC"?"DESC":"ASC":t.direction,o=[...e.whereClauses],i=[...e.filterParams];if(t.mode!=="first"&&t.mode!=="last"){let d=za(t);o.push(d.sql),i.push(...d.params)}let a=t.keyColumns.map(w),s=d=>a.map(c=>`${c} ${d}`).join(", "),l=`SELECT ${e.selectListSql} FROM ${e.escapedTable}`;return o.length>0&&(l+=` WHERE ${o.join(" AND ")}`),l+=` ORDER BY ${s(r)} LIMIT ${t.limit}`,n&&(l=`SELECT * FROM (${l}) ORDER BY ${s(t.direction)}`),{sql:l,params:i}}function di(e){if(e.rows.length===0)return;let t=e.key.keyColumns.map(i=>e.projectionColumns.indexOf(i));if(t.some(i=>i<0))return;let n=i=>{if(e.excludedRowIndices?.has(i))return;let a=e.rows[i],s=[];for(let d=0;dmi)throw new Error(`Cell read chunk size must be an integer from 1 through ${mi}`)}function Ne(e){let t=String(e).toLowerCase().replace(/[_\s-]/g,"");if(t==="utf8")return"utf-8";if(t==="utf16le")return"utf-16le";if(t==="utf16be")return"utf-16be";throw new Error(`Unsupported SQLite text encoding: ${String(e)}`)}function yi(e,t,n){if(e.length!==1)throw new Error(e.length===0?`Cell ${n.table}.${n.column} no longer exists`:`Cell ${n.table}.${n.column} matched more than one row`);let r=e[0][0];if(typeof r!="string"||!Ga.has(r))throw new Error(`SQLite returned an invalid storage class for ${n.table}.${n.column}`);let o=e[0][1],i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i)||Number(i)<0)throw new Error(`SQLite returned an unsafe byte length for ${n.table}.${n.column}`);return{storageClass:r,byteLength:Number(i),...r==="text"?{textEncoding:t}:{}}}function Kn(e,t){return Number.isFinite(e)&&Number(e)>=1?Math.floor(Number(e)):t}var We=he,Gt=re;var zn="SQLITE_EXPLORER_CELL_EDIT_VALUE_TOO_LARGE",Qn="SQLITE_EXPLORER_OVERSIZED_CELL_REPLACEMENT_REQUIRED",hi="Oversized cell metadata changed before the confirmed replacement was applied";var Ei=We,Xn=class extends Error{constructor(n,r,o,i=`New ${n.toUpperCase()} cell value is ${r} bytes and exceeds the ${o}-byte edit limit.`){super(i);D(this,"storageClass",n);D(this,"actualBytes",r);D(this,"limitBytes",o);D(this,"name","CellEditPolicyError");D(this,"code",zn)}},Fe=class extends Error{constructor(n,r,o,i,a,s=`Existing ${o.toUpperCase()} cell ${n}.${r} is ${i} bytes. Use the explicitly confirmed oversized-cell replacement path.`){super(s);D(this,"table",n);D(this,"column",r);D(this,"storageClass",o);D(this,"actualBytes",i);D(this,"limitBytes",a);D(this,"name","OversizedCellReplacementRequiredError");D(this,"code",Qn)}};function Ya(e){let t=0;for(let n=0;n=55296&&r<=56319){let o=e.charCodeAt(n+1);o>=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function He(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);let n=typeof e=="string"?"text":e instanceof Uint8Array?"blob":void 0;if(!n)return;let r=typeof e=="string"?Ya(e):e instanceof Uint8Array?e.byteLength:0;if(r>t)throw new Xn(n,r,t)}function wi(e){let t=e??Ei;if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);return t}function je(e,t){let n=wi(t);for(let r of e)He(r,n);return n}function Si(e,t){let n=wi(t);if(!e||e.storageClass!=="text"&&e.storageClass!=="blob"||!Number.isSafeInteger(e.byteLength)||e.byteLength<=n)throw new Error("Guarded oversized-cell replacement requires exact TEXT/BLOB metadata above the edit limit");return n}function Ja(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="CellEditPolicyError"||t.code!==zn||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"CellEditPolicyError",code:zn,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function Za(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="OversizedCellReplacementRequiredError"||t.code!==Qn||typeof t.table!="string"||typeof t.column!="string"||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"OversizedCellReplacementRequiredError",code:Qn,table:t.table,column:t.column,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function bi(e){return Ja(e)??Za(e)}var xi=100,el=18,Ti=19,Ci=2;var tl=1024*1024*1024,_e=2145386496,nl="WAL database too large for in-memory mode; checkpoint it first";function Ai(e){return e.length>Ti&&e[el]===Ci&&e[Ti]===Ci}function Ri(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<1)throw new Error(`${n} must be a positive safe integer`);return e}function Ii(e){return`${(e/(1024*1024*1024)).toFixed(1)} GiB`}function Gn(e,t={}){let n=Ri(t.pagedThresholdBytes,tl,"Paged-open threshold"),r=Ri(t.bufferCeilingBytes,_e,"Buffer-open ceiling");if(n>r)throw new Error("Paged-open threshold must not exceed the buffer-open ceiling");if(!Number.isSafeInteger(e.sizeBytes)||e.sizeBytes<0)throw new Error("Database size must be a non-negative safe integer");return e.walMarked?e.sizeBytes>=r?{mode:"reject",message:nl}:{mode:"buffer",readOnly:e.sizeBytes>n}:e.sizeBytes>n&&e.pagedAvailable?{mode:"paged"}:e.sizeBytes>=r?{mode:"reject",message:`Database is too large to load into memory in this browser (${Ii(e.sizeBytes)}; limit ${Ii(r)}) and page-on-demand mode is unavailable`}:{mode:"buffer",readOnly:!1}}var rl=64*1024*1024,Ke=1e4,_i=`SELECT 1 FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? AND "type" IN ('table', 'shadow') AND "wr" = 1 LIMIT 1`;function Yn(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:rl}function Jn(e){return e.storage==="paged"&&!e.filtered&&e.authorityConfirmedRowIdTable&&e.pagedFileSizeBytes>e.exactCountMaxFileBytes}function $i(e){let t=N(e);return`SELECT (SELECT CAST(min(rowid) AS TEXT) FROM ${t}), (SELECT CAST(max(rowid) AS TEXT) FROM ${t})`}function Oi(e){return`SELECT COUNT(*) FROM (SELECT 1 FROM ${N(e)} LIMIT ?)`}function Li(e,t){if(!(typeof e!="number"||!Number.isSafeInteger(e)||e<0||e>Ke+1))return e<=Ke?{count:e,isExact:!0}:{count:Zn(t,e),isExact:!1}}function Zn(e,t=Ke+1){return(!Number.isSafeInteger(t)||t<0)&&(t=Ke+1),!Number.isSafeInteger(e)||eBigInt(Number.MAX_SAFE_INTEGER)))return Number(i)}function Pi(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<1)throw new Error(`${n} must be a positive safe integer`);return e}function ki(e,t={}){let n=Pi(t.chunkSizeBytes,65536,"Chunk size"),r=Pi(t.maxCacheBytes,8388608,"Cache budget"),o=Math.max(1,Math.floor(r/n)),i=new Map;function a(s){let l=i.get(s);if(l!==void 0)return i.delete(s),i.set(s,l),l;let d=e(s*n,n),c=d.length>n?d.subarray(0,n):d;if(i.set(s,c),i.size>o){let u=i.keys().next().value;i.delete(u)}return c}return(s,l)=>{if(!Number.isSafeInteger(s)||s<0)throw new Error("Read offset must be a non-negative safe integer");if(!Number.isSafeInteger(l)||l<0)throw new Error("Read length must be a non-negative safe integer");if(l===0)return new Uint8Array(0);let d=Math.floor(s/n),c=Math.floor((s+l-1)/n);if(d===c){let m=a(d),y=s-d*n;return y>=m.length?new Uint8Array(0):m.subarray(y,Math.min(y+l,m.length))}let u=new Uint8Array(l),f=0;for(let m=d;m<=c;m++){let y=a(m),g=m*n,h=Math.max(s,g)-g,C=Math.min(s+l,g+n)-g,T=Math.min(C,y.length);if(h>=T||(u.set(y.subarray(h,T),g+h-s),f=g+T-s,y.length{if(Xi(t))return dl(t);if(typeof t!="bigint")return t;let n=Number(t);return Number.isSafeInteger(n)?n:t.toString()})}function Xi(e){return typeof e=="string"&&e.includes("\0")}function G(e){return typeof e=="bigint"&&!Number.isSafeInteger(Number(e))?"CAST(? AS INTEGER)":Xi(e)?"CAST(? AS TEXT)":"?"}function dl(e){let t=Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]);if(t==="utf-8")return new TextEncoder().encode(e);let n=t==="utf-16le",r=new Uint8Array(e.length*2);for(let o=0;o>>8,r[o*2+1]=n?i>>>8:i&255}return r}function Je(e){Ge(e).free()}function Ye(e,t){if(t!==void 0&&!(typeof SharedArrayBuffer=="function"&&t instanceof Int32Array&&t.length>0&&t.buffer instanceof SharedArrayBuffer))throw new Error("Invalid query cancellation flag");let n=()=>t!==void 0&&Atomics.load(t,0)!==0,r=()=>{let a=new Error("Query execution cancelled");throw a.name="AbortError",a};n()&&r();let o=Date.now()+ir,i;p.progress_handler(sl,()=>n()?(i="cancelled",!0):Date.now(){let n=Ge(e),r=n.getColumnNames();n.free();let o=ot(e,r.length),i=Ge(o.sql),a=[];try{for(;i.step();)a.push(i.get(null,{useBigInt:!0}));let{rows:s,exactIntegerTexts:l}=Ue(a,o.valueColumnCount);return{headers:r,rows:s,exactIntegerTexts:l}}finally{i.free()}},t)}function Gi(e,t){if(t!=null)return t;let n=e??[];return n[0]==="rowid"?n.slice(1):n}function B(e,t){try{b(`ROLLBACK TO ${e}`),b(`RELEASE ${e}`)}catch(n){console.warn(`Failed to rollback savepoint (${t}):`,oe(n))}}function fl(e){for($e.add(e);$e.size>64;)$e.delete($e.values().next().value)}function Yi(e){b(`ROLLBACK TO ${e}`),b(`RELEASE ${e}`)}function nn(e){let t=Xe;if(!t||e!==void 0&&t.sessionId!==e)return!1;Xe=null,fl(t.sessionId),t.expiryTimer!==void 0&&clearTimeout(t.expiryTimer);try{b(`RELEASE ${t.savepointName}`)}catch(n){try{Yi(t.savepointName)}catch(r){let o=[n,r];try{p?.close()}catch(i){o.push(i)}finally{p=null}throw new AggregateError(o,"Cell read snapshot cleanup failed; the owning web database was closed")}}return!0}function Ji(e){e.expiryTimer!==void 0&&clearTimeout(e.expiryTimer),e.expiresAt=Math.min(e.absoluteExpiresAt,e.lastAccessAt+yr),e.expiryTimer=setTimeout(()=>{try{nn(e.sessionId)}catch(t){console.error("[Worker] Failed to expire cell read session:",oe(t))}},Math.max(1,e.expiresAt-Date.now()))}async function Zi(e){pi(e);let t=await te(e.table),n=U(e.rowId,t);return{table:e.table,column:e.column,predicateSql:n.sql,predicateParams:n.params}}function ml(e){let t=w(e.column);return{sql:`SELECT typeof(${t}), CASE WHEN ${t} IS NULL THEN 0 ELSE length(CAST(${t} AS BLOB)) END FROM ${N(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function pl(e){return{sql:`SELECT substr(CAST(${w(e.column)} AS BLOB), ? + 1, ?) FROM ${N(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function ve(){return Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0])}function es(e,t){let n=ml(t),r=p.exec(n.sql,v(n.params),{useBigInt:!0});return yi(r[0]?.values??[],ve(),e)}async function Zt(e){if(!p)throw new Error("No database initialized");let t=await Zi(e);return es(e,t)}async function gl(e){if(!p)throw new Error("No database initialized");if(Xe)throw new Error("At most one web cell read session may be open");let t=await Zi(e),n=k("sp_cell_read");b(`SAVEPOINT ${n}`);try{let r=es(e,t),o=Date.now(),i={sessionId:crypto.randomUUID(),target:e,sqlTarget:t,metadata:r,savepointName:n,lastAccessAt:o,absoluteExpiresAt:o+Qi,expiresAt:o+yr,expiryTimer:void 0};return Xe=i,Ji(i),{sessionId:i.sessionId,metadata:r,expiresAt:i.expiresAt}}catch(r){try{Yi(n)}catch(o){let i=[r,o];try{p?.close()}catch(a){i.push(a)}finally{p=null}throw new AggregateError(i,"Cell read session open failed; the owning web database was closed")}throw r}}async function yl(e,t,n){gi(t,n);let r=Xe;if(!r||r.sessionId!==e)throw new Error($e.has(e)?`Cell read session ${e} is closed or expired`:`Unknown cell read session: ${String(e)}`);if(Date.now()>=r.expiresAt)throw nn(e),new Error(`Cell read session ${e} is closed or expired`);let o=pl(r.sqlTarget),a=p.exec(o.sql,v([t,n,...o.params]))[0]?.values??[];if(a.length!==1)throw new Error(a.length===0?`Cell ${r.target.table}.${r.target.column} no longer exists in its snapshot`:`Cell ${r.target.table}.${r.target.column} matched more than one row`);let s=a[0][0],l=s===null?new Uint8Array(0):s;if(!(l instanceof Uint8Array))throw new Error(`SQLite returned a non-BLOB chunk for ${r.target.table}.${r.target.column}`);return r.lastAccessAt=Date.now(),Ji(r),{byteOffset:t,bytes:l.slice(),done:t+l.byteLength>=r.metadata.byteLength}}async function hl(e){if(typeof e!="string"||e.length===0)throw new Error("Cell read session id is required");if(!nn(e)&&!$e.has(e))throw new Error(`Unknown cell read session: ${e}`)}function El(e){if(Xe&&!["readCellChunk","closeCellReadSession","initializeDatabase"].includes(e))throw new Error("A cell read snapshot is active; close it before another database operation")}function wl(e){return!!e&&typeof e=="object"&&typeof e.slice=="function"&&typeof e.size=="number"}function Sl(e,t){let n=e.size,r=ki((o,i)=>new Uint8Array(t.readAsArrayBuffer(e.slice(o,o+i))));return{size:()=>n,read:r}}function bl(e){let t={};return e.pagedOpenThresholdBytes!==void 0&&(t.pagedThresholdBytes=e.pagedOpenThresholdBytes),e.bufferOpenCeilingBytes!==void 0&&(t.bufferCeilingBytes=e.bufferOpenCeilingBytes),t}function Tl(e){if(e===void 0)return _e;if(!Number.isSafeInteger(e)||e<1)throw new Error("pagedExportMaxBytes must be a positive safe integer");if(e>_e)throw new Error(`pagedExportMaxBytes must not exceed ${_e} bytes`);return e}function oe(e){let t="Unknown error";try{t=e&&typeof e=="object"&&typeof e.message=="string"&&e.message?e.message:String(e)}catch{}return t||(t="Unknown error"),t.length<=Bi?t:t.slice(0,Bi)+`... [truncated from ${t.length} characters]`}async function Cl(e,t){if(nn(),p&&(p.close(),p=null),ir=Number.isFinite(t.queryTimeout)&&t.queryTimeout>0?t.queryTimeout:ji,H=t.readOnlyMode===!0,yt=null,ze="memory",Oe=0,ht=Tl(t.pagedExportMaxBytes),zi=Yn(t.pagedExactCountMaxFileBytes),yr=Kn(t.cellReadSessionIdleTimeoutMs,Hn),Qi=Kn(t.cellReadSessionAbsoluteTimeoutMs,jn),$e.clear(),!ae){importScripts(ol);let n={};t.wasmBinary?n.wasmBinary=t.wasmBinary:n.locateFile=()=>il,ae=await self.initSqlJs(n),Ki=kl(ae)}if(wl(t.file)?ze=xl(t.file,bl(t)):t.content&&t.content.length>0?p=new ae.Database(t.content):p=new ae.Database,p.run("PRAGMA foreign_keys = ON"),!H){let n=Il();n&&(H=!0,yt=n)}return H&&(typeof p.enforceReadOnly=="function"?p.enforceReadOnly():p.run("PRAGMA query_only = ON")),{operations:{},isReadOnly:H,storage:ze,...yt?{readOnlyReason:yt}:{}}}var Rl=8;function Ui(e){return e?.errno===Rl||/read[\s-]?only/i.test(oe(e))?"This database cannot be written by this process, so it is open read-only (SQLite: attempt to write a readonly database).":null}function Il(){let e=Number(p.exec("PRAGMA user_version")[0]?.values?.[0]?.[0])|0;try{p.run("BEGIN")}catch(n){return Ui(n)}let t=null;try{p.run(`PRAGMA user_version = ${e}`)}catch(n){t=Ui(n)}finally{p.run("ROLLBACK")}return t}function xl(e,t){let n=new FileReaderSync,r=new Uint8Array(n.readAsArrayBuffer(e.slice(0,xi))),o=!H&&typeof ae.Database.openPagedWritable=="function",i=typeof ae.Database.openPaged=="function",a={sizeBytes:e.size,walMarked:Ai(r),pagedAvailable:o||i},s=Gn(a,t),l=null;if(s.mode==="paged"){let d=Math.min(ht,t.bufferCeilingBytes??_e),c=e.size>d,u=!H&&c?`This database exceeds the ${d}-byte browser save limit and is open read-only so edits cannot be stranded. Use the desktop extension to edit and save it.`:null,f=Sl(e,n),m=[];if(o&&!c)try{return p=ae.Database.openPagedWritable(f),Oe=e.size,"paged"}catch(y){let g=oe(y);m.push(`writable paged open failed: ${g}`),p=null}if(i)try{return p=ae.Database.openPaged(f),H=!0,yt=u,Oe=e.size,"paged"}catch(y){let g=oe(y);m.push(`read-only paged open failed: ${g}`),p=null}l=m.length>0?new Error(m.join("; ")):null,s=Gn({...a,pagedAvailable:!1},t)}if(s.mode==="reject")throw new Error(l?`${s.message} (paged open failed: ${l.message})`:s.message);return p=new ae.Database(new Uint8Array(n.readAsArrayBuffer(e))),s.readOnly&&(H=!0),"memory"}async function Al(e,t=[],n){if(!p)throw new Error("No database initialized");if(H)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");try{return Ye(()=>p.exec(e,t),n).map(o=>({headers:o.columns,rows:o.values}))}catch(r){throw r}}async function Nl(e,t="[]",n){if(!p)throw new Error("No database initialized");if(typeof e!="string"||typeof t!="string")throw new TypeError("SQL and parameter JSON must be strings");let r=Vo(e),o=Fo(t);if(o.length!==r.parameterCount)throw new Error(`Expected ${r.parameterCount} positional parameters.`);let i=`query_columns_${crypto.randomUUID().replace(/-/g,"")}`,a=Number(p.exec("PRAGMA query_only")[0]?.values[0]?.[0])===1,s=!1,l;try{a&&b("PRAGMA query_only = OFF"),l=Ye(()=>{b(`CREATE TEMP VIEW "${i}" AS ${r.metadataSql}`),s=!0;let d=(p.exec("SELECT substr(name, 1, 4097) FROM pragma.pragma_table_info(?, 'temp') ORDER BY cid LIMIT ?",[i,Wt+1])[0]?.values??[]).map(c=>String(c[0]));if(!d.length||d.length>Wt)throw new Error("Queries support 1 to 128 result columns.");if(d.some(c=>c.length>4096))throw new Error("Result column labels must be at most 4096 characters.");return d},n)}finally{try{s&&(a&&b("PRAGMA query_only = OFF"),b(`DROP VIEW temp."${i}"`))}finally{if(a)try{b("PRAGMA query_only = ON")}catch(d){let c=p;throw p=null,c.close(),d}}}return Ye(()=>{let d=Ho(r.sql,l.length),c=Ge(d.sql);try{c.bind(o);let u=[];for(;u.length<=be&&c.step();)u.push(c.get(null,{useBigInt:!0}));return jo(l,u,d.valueColumnCount)}finally{c.free()}},n)}function _l(e){if(e==null)return 5e3;let t=Number(e);return Number.isFinite(t)?Math.min(5e4,Math.max(1,Math.trunc(t))):5e3}function $l(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.trunc(t)):1/0}var Vi=100;function Ol(e){if(e==null)return[];if(!Array.isArray(e))throw new Error("Console parameters must be a JSON array.");if(e.length>Vi)throw new Error(`Use at most ${Vi} positional parameters.`);for(let t of e)if(t!==null){if(typeof t=="string"){if(t.includes("\0"))throw new Error("Console parameters must not contain NUL bytes; SQLite would bind the text truncated at the first one.");continue}if(!(typeof t=="number"&&Number.isFinite(t)))throw new Error("Console parameters must be null, string, or finite number values.")}return e}function ts(e,t){try{e.bind(t)}catch(n){throw new Error(`cannot bind ${t.length} positional parameter${t.length===1?"":"s"}: `+oe(n))}}var Ll=4*65536,vl=65536,ns=Object.freeze(["id","parent","notused","detail"]),rs="SQLite returned an unsupported query plan.",Pl=/^pragma\b/i;function kl(e){let t=e?._sqlite_explorer_register_query_plan;if(typeof t!="function")return!1;if(t()!==0)throw new Error("Unable to initialize the bounded query-plan reader.");return!0}function os(e){let t=0;for(;;){let n=t;for(;tbe}}function Dl(e,t){let n=qo(e,t),r=p.prepare(n.sql);try{if(r.bind(n.params),!r.step())throw new Error(rs);return ss(Wo(r.get()[0]).rows)}finally{r.free()}}function Ml(e,t){if(Pl.test(os(e)))throw new Error("PRAGMA statements have no query plan (and some pragmas take effect while being compiled, so they are not even prepared here). Use Run.");let n=Ge(`EXPLAIN QUERY PLAN ${e}`);try{t.length>0&&ts(n,t);let r=[];for(;r.length<=be&&n.step();){let o=n.get();if(o.length!==ns.length||typeof o[3]!="string")throw new Error(rs);if(new TextEncoder().encode(o[3]).byteLength>vl)throw new Error("Query plan detail exceeds the 65,536-byte limit.");r.push(o)}return ss(r)}finally{n.free()}}function Ul(e,t){if(typeof e!="string"||e.trim()==="")throw new Error("Enter one SQL statement to explain.");if(new TextEncoder().encode(e).byteLength>Ll)throw new Error("Query plan SQL exceeds 262,144 UTF-8 bytes.");let n=pe(e);for(let r of n.matchAll(is))if(r[0]===";")throw new Error("Exactly one SQL statement is required");return Ki&&Bl(n)?Dl(n,t):Ml(n,t)}async function Vl(e,t={},n){if(!p)throw new Error("No database initialized");if(H)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");if(typeof e=="string"&&e.includes("\0"))throw new Error("SQL contains a NUL byte; SQLite stops compiling at the first NUL, so the rest of the script would be silently skipped");let r=Ol(t.params),o=_l(t.maxRows),i=$l(t.maxStatements),a=Date.now(),s=p.exec("SELECT total_changes()")[0].values[0][0],l=p.exec("PRAGMA schema_version")[0].values[0][0],d=()=>{let y=p.exec("SELECT total_changes()")[0].values[0][0],g=p.exec("PRAGMA schema_version")[0].values[0][0];return{mutated:y-s>0||g!==l,changes:y-s,durationMs:Date.now()-a}},c=()=>{try{return d()}catch{return{mutated:!0,changes:0,durationMs:Date.now()-a}}};if(t.explain===!0)try{return{results:[Ye(()=>Ul(e,r),n)],explain:!0,statementsSkipped:!1,...d()}}catch(y){return{results:[],error:oe(y),explain:!0,multiStatement:!1,statementsSkipped:!1,...c()}}let u=0,f=!1,m;try{m=Ye(()=>{let y=[],g=p.iterateStatements(e),h=!1;for(;;){if(u>=i){h=!0;break}u++;let C=g.next();if(C.done)break;let T=C.value;try{r.length>0&&ts(T,r);let x=T.getColumnNames(),I=!1,S=!1;if(x.length===0&&(S=T.step(),I=!0,S&&(x=T.getColumnNames())),x.length===0){if(!I||S)for(;T.step(););}else{let R=[],_=!1;for(I||(S=T.step());S;)R.length1,statementsSkipped:f,...h}}return{results:m,statementsSkipped:f,...d()}}async function ql(e){if(!p)throw new Error("No database initialized");let t=ze==="paged"&&!H;if(ze==="paged"&&H)throw new Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");let n=()=>new Error(`Cannot download this page-on-demand database: the merged image would exceed the ${ht}-byte browser memory limit. Saving materializes the complete database in memory; use the desktop extension or reduce the database size.`);if(t&&Oe>ht)throw n();let r;try{r=p.export()}catch(o){let i=oe(o);throw t&&/transaction is open|while a transaction/i.test(i)?new Error("Cannot save while a database transaction is open; retry after the edit completes.",{cause:o}):o}if(t&&r.byteLength>ht)throw n();return r}async function Wl(e,t,n,r,o={}){if(!p)throw new Error("No database initialized");let i=e?.table;if(!i)throw new Error("No table specified");let{format:a="csv",header:s=!0,includeTableName:l=!0,rowIds:d=null,maxExportBytes:c}=o;if(!["csv","json","sql","excel"].includes(a))throw new Error(`Unsupported export format: ${a}`);let u=Number.isSafeInteger(c)&&c>0?Math.min(c,ll):pr,f=[{sql:"",params:[]}];if(d&&d.length>0){let A=await te(i);if(d.some(Z)&&!d.every(Z))throw new Error("Cannot mix rowid and primary-key row identities");let L=new Set,E=[];for(let O of d){let q=A.kind==="rowid"?M(O):O,Y=String(q);L.has(Y)||(L.add(Y),E.push(q))}f=qe(E,A)}let m=t&&t.length>0?t:Fl(i);if(m.length>Jt)throw new Error(`Cannot export more than ${Jt} columns`);let y=a!=="csv"&&a!=="excel",g=m.map((A,L)=>{let E=w(A),O=`typeof(${E})`,q=`octet_length(${E})`;return`CASE ${O} WHEN 'null' THEN 'n:0:' WHEN 'integer' THEN 'i:0:' || CAST(${E} AS TEXT) WHEN 'real' THEN 'r:0:' || printf('%!.17g', ${E}) WHEN 'text' THEN 't:' || CAST(${q} AS TEXT) || ':' || hex(CAST(${E} AS BLOB)) WHEN 'blob' THEN 'b:' || CAST(${q} AS TEXT) || ':' || `+(y?`hex(${E}) `:"'' ")+`END AS ${w(`__export_cell_${L}`)}`}).join(", "),h=k("sp_export_rows");b(`SAVEPOINT ${h}`);let C=[];try{let A=1024;for(let L of f){let E=L.sql?` WHERE ${L.sql}`:"";if(A+=zl(i,m,E,L.params,a,u),!Number.isSafeInteger(A)||A>u)throw hr(u)}for(let L of f){let E=L.sql?` WHERE ${L.sql}`:"",O=p.exec(`SELECT ${g} FROM ${N(i)}${E}`,L.params);O.length>0&&C.push(...O[0].values)}b(`RELEASE ${h}`)}catch(A){throw B(h,"exportTable"),A}let T=m,x=Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),I=C.map((A,L)=>{if(A.length!==m.length)throw new Error(`SQLite returned ${A.length} packed export cells for row ${L}; expected ${m.length}`);return m.map((E,O)=>jl(i,E,A[O],y,x))}),S=new ar(u),R="text/plain",_=`${i}.${a}`;switch(a){case"csv":qi(T,I,s,S),R="text/csv";break;case"json":Ql(T,I,S),R="application/json";break;case"sql":Xl(i,T,I,l,S),R="text/sql";break;case"excel":qi(T,I,s,S),R="text/csv",_=`${i}.csv`;break}return{contentChunks:S.finish(),filename:_,mimeType:R}}function hr(e){if(e===pr)return new Error(`Web demo exports are limited to ${al} because the worker RPC cannot stream downloads; use the desktop extension for larger exports.`);let t=e/(1024*1024);return new Error(`Export exceeds the ${t} MiB (${e} bytes) limit; the worker assembles the whole file in memory, so larger exports need the native engine.`)}function Fl(e){let t=p.prepare(`SELECT * FROM ${N(e)} LIMIT 0`);try{return t.getColumnNames()}finally{t.free()}}function Hl(e,t,n){if(e.length!==t*2||/[^0-9a-f]/i.test(e))throw new Error(`SQLite returned invalid packed bytes for ${n}`);let r=new Uint8Array(t);for(let o=0;o1;){let n=[];for(let r=0;r{let f=w(u),m=`length(${f})`,y=o==="csv"||o==="excel"?"64":o==="json"?`((${m} + 2) / 3) * 4 + 64`:`${m} * 2 + 64`;return`CASE typeof(${f}) WHEN 'text' THEN length(CAST(${f} AS BLOB)) * 6 + 64 WHEN 'blob' THEN ${y} ELSE 64 END`})),l=p.exec(`SELECT COUNT(*), COALESCE(SUM(${a}), 0) FROM ${N(e)}${n}`,r)[0]?.values?.[0]??[0,0],d=Number(l[0]),c=Number(l[1])+d*128;if(!Number.isSafeInteger(c)||c<0)throw hr(i);return c}function sr(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}var ar=class{constructor(t=pr){this.chunks=[],this.pending="",this.outputBytes=0,this.capBytes=t}append(t){if(this.outputBytes+=sr(t),!Number.isSafeInteger(this.outputBytes)||this.outputBytes>this.capBytes)throw hr(this.capBytes);let n=0;for(;n0&&t.charCodeAt(o-1)>=55296&&t.charCodeAt(o-1)<=56319&&t.charCodeAt(o)>=56320&&t.charCodeAt(o)<=57343&&r--,r===0){this.flush();continue}this.pending+=t.slice(n,n+r),n+=r,this.pending.length>=Di&&this.flush()}}flush(){this.pending.length>0&&(this.chunks.push(this.pending),this.pending="")}finish(){return this.flush(),this.chunks}};function qi(e,t,n,r){let o=!1,i=a=>{o&&r.append(` -`),r.append(a.join(",")),o=!0};n&&i(e.map(a=>In({storageClass:"text",value:a})));for(let a of t)i(a.map(In))}function Ql(e,t,n){n.append("[");for(let r=0;r1e3)throw new Error("JSON merge patch depth limit exceeded");if(e===t)return;if(!z(e)||!z(t)||Array.isArray(e)||Array.isArray(t))return t;let r=Object.create(null),o=!1;for(let i of Object.keys(t)){let a=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0,s=t[i];if(a===void 0)r[i]=s,o=!0;else if(a!==s){let l=Zo(a,s,n+1);l!==void 0&&(r[i]=l,o=!0)}}for(let i of Object.keys(e))Object.prototype.hasOwnProperty.call(t,i)||(r[i]=null,o=!0);return o?r:void 0}function ei(e,t,n=0){if(n>1e3)throw new Error("JSON apply merge patch depth limit exceeded");if(t===null)return null;if(typeof t!="object"||Array.isArray(t))return t;let r;typeof e!="object"||e===null||Array.isArray(e)?r=Object.create(null):r=Object.assign(Object.create(null),e);let o=t;for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=o[i];a===null?delete r[i]:r[i]=ei(r[i],a,n+1)}return r}function Ft(e){if(typeof e=="string")try{let t=JSON.parse(e);return z(t)?t:void 0}catch{return}}function ti(e,t,n,r,o){let i=o==="undo"?r:n,a=o==="undo"?n:r,s=()=>Yo(e,i)?{kind:"write",value:a}:{kind:"conflict"};if(Ht(e)||Ht(t)||Ht(n)||Ht(r))return s();let l=Ft(e),d=Ft(t),c=Ft(n),u=Ft(r);if(!l||!d||!c||!u)return s();if(!ni(l,o==="undo"?u:c,d,c,0))return{kind:"conflict"};if(Yo(e,i))return{kind:"write",value:a};let m=o==="undo"?kn(l,d,c,0):ei(l,d,0);return{kind:"write",value:JSON.stringify(m)}}function ni(e,t,n,r,o){if(o>1e3)throw new Error("JSON history replay depth limit exceeded");for(let i of Object.keys(n)){let a=n[i],s=Object.prototype.hasOwnProperty.call(e,i),l=Object.prototype.hasOwnProperty.call(t,i),d=Object.prototype.hasOwnProperty.call(r,i),c=s?e[i]:void 0,u=l?t[i]:void 0,f=d?r[i]:void 0;if(z(a)){if(!d||!z(f)){if(!Go(s,c,l,u,o+1))return!1;continue}if(!s||!z(c)||!l||!z(u)||!ni(c,u,a,f,o+1))return!1;continue}if(!Go(s,c,l,u,o+1))return!1}return!0}function Go(e,t,n,r,o){return e===n&&(!e||Pn(t,r,o))}function Pn(e,t,n){if(n>1e3)throw new Error("JSON history replay depth limit exceeded");if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((i,a)=>Pn(i,t[a],n+1));if(!z(e)||!z(t))return!1;let r=Object.keys(e),o=Object.keys(t);return r.length!==o.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&Pn(e[i],t[i],n+1))}function Yo(e,t){return e instanceof Uint8Array||t instanceof Uint8Array?!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:e.length===t.length&&e.every((n,r)=>n===t[r]):Object.is(e,t)}function kn(e,t,n,r){if(r>1e3)throw new Error("JSON undo restore depth limit exceeded");let o=Object.assign(Object.create(null),e);for(let i of Object.keys(t)){let a=t[i],s=Object.prototype.hasOwnProperty.call(n,i),l=s?n[i]:void 0;if(z(a))if(s&&z(l))if(Object.prototype.hasOwnProperty.call(o,i)&&z(o[i])){let d=o[i];o[i]=kn(d,a,l,r+1)}else o[i]=l;else if(s)o[i]=l;else{let d=Object.prototype.hasOwnProperty.call(o,i)&&z(o[i])?o[i]:Object.create(null),c=kn(d,a,Object.create(null),r+1);Object.keys(c).length===0?delete o[i]:o[i]=c}else s?o[i]=l:delete o[i]}return o}function Ht(e){if(typeof e!="string")return!1;let n=e.replace(/"(?:\\.|[^"\\])*"/g,'""').match(/-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g);return n?n.some(r=>{let o=Number(r);return!Number.isFinite(o)||JSON.stringify(o)!==r}):!1}function z(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var La=new Set(["null","integer","real","text","blob"]),va="Cell changed outside SQLite Explorer history; undo/redo was not applied.",Pa="This edit predates guarded cell history and cannot be replayed safely. Save or reload the database.",se=class extends Error{constructor(n,r){let o=r.length===1?`${n}.${r[0]}`:`${r.length} cells in ${n}`;super(`${o}: ${va}`);D(this,"code","SQLITE_EXPLORER_CELL_HISTORY_CONFLICT");this.name="CellHistoryConflictError"}},ft=class extends Error{constructor(){super(Pa);D(this,"code","SQLITE_EXPLORER_LEGACY_CELL_HISTORY");this.name="LegacyCellHistoryError"}};function ee(e){let t=w(e);return`typeof(${t}), CASE WHEN typeof(${t}) = 'text' THEN CAST(${t} AS BLOB) ELSE ${t} END`}function ka(e,t,n){if(!t)throw new Error(`SQLite text encoding is required for ${n}`);try{return{value:de(t).decode(e)}}catch{return{value:"",rawTextBytes:e}}}function V(e,t,n,r={}){if(typeof e!="string"||!La.has(e))throw new Error(`SQLite returned an invalid storage class for ${n}`);let o=e;if(o!=="text"&&r.rawTextBytes!==void 0)throw new Error(`SQLite returned raw TEXT bytes for non-TEXT ${n}`);if(o==="text"){if(t instanceof Uint8Array)return{storageClass:o,...ka(t,r.textEncoding,n)};if(typeof t!="string")throw new Error(`SQLite returned an invalid text value for ${n}`);if(r.rawTextBytes!==void 0&&!(r.rawTextBytes instanceof Uint8Array))throw new Error(`SQLite returned invalid raw TEXT bytes for ${n}`);return{storageClass:o,value:t,...r.rawTextBytes instanceof Uint8Array?{rawTextBytes:r.rawTextBytes}:{}}}if(!(o==="null"?t===null:o==="integer"?typeof t=="bigint"||typeof t=="number"&&Number.isInteger(t):o==="real"?typeof t=="number":t instanceof Uint8Array))throw new Error(`SQLite returned an invalid ${o} value for ${n}`);return{storageClass:o,value:t}}function mt(e){if(!e||typeof e!="object")throw new ft;V(e.storageClass,e.value,"cell history",{rawTextBytes:e.rawTextBytes})}function Bn(e,t){if(e.storageClass!==t.storageClass)return!1;if(e.storageClass==="text"){let o=e.rawTextBytes,i=t.rawTextBytes;if(o||i)return!o||!i?!1:o.length===i.length&&o.every((a,s)=>a===i[s])}let n=e.value,r=t.value;return e.storageClass==="integer"&&typeof n!=typeof r?typeof n=="number"&&Number.isSafeInteger(n)&&typeof r=="bigint"?BigInt(n)===r:typeof r=="number"&&Number.isSafeInteger(r)&&typeof n=="bigint"?n===BigInt(r):!1:n instanceof Uint8Array||r instanceof Uint8Array?!(n instanceof Uint8Array)||!(r instanceof Uint8Array)?!1:n.length===r.length&&n.every((o,i)=>o===r[i]):Object.is(n,r)}function Kt(e,t=()=>"?"){switch(mt(e),e.storageClass){case"null":return{sql:"NULL",params:[]};case"integer":return{sql:t(e.value),params:[e.value]};case"real":return{sql:"CAST(? AS REAL)",params:[e.value]};case"text":return{sql:e.rawTextBytes?"CAST(substr(?, 1) AS TEXT)":"CAST(? AS TEXT)",params:[e.rawTextBytes??e.value]};case"blob":return{sql:"?",params:[e.value]}}}function zt(e,t,n=()=>"?"){mt(t);let r=w(e);switch(t.storageClass){case"null":return{sql:`typeof(${r}) = 'null'`,params:[]};case"integer":{let o=n(t.value);return{sql:`typeof(${r}) = 'integer' AND ${r} IS ${o}`,params:[t.value]}}case"real":return{sql:`typeof(${r}) = 'real' AND ${r} IS CAST(? AS REAL)`,params:[t.value]};case"text":return{sql:`typeof(${r}) = 'text' AND CAST(${r} AS BLOB) = CAST(? AS BLOB)`,params:[t.rawTextBytes??t.value]};case"blob":return{sql:`typeof(${r}) = 'blob' AND ${r} IS ?`,params:[t.value]}}}var Ba="Row changed outside SQLite Explorer history; undo/redo was not applied.",Da="This row edit predates guarded row history and cannot be replayed safely. Save or reload the database.",Ce=class extends Error{constructor(n){super(`${n}: ${Ba}`);D(this,"code","SQLITE_EXPLORER_ROW_HISTORY_CONFLICT");this.name="RowHistoryConflictError"}},K=class extends Error{constructor(){super(Da);D(this,"code","SQLITE_EXPLORER_LEGACY_ROW_HISTORY");this.name="LegacyRowHistoryError"}};function pt(e){if(!Array.isArray(e.storageClasses))throw new K;let t=new Set;return e.storageClasses.map(n=>{let r=typeof n?.column=="string"?_t(n.column):void 0;if(!n||typeof n.column!="string"||r===void 0||t.has(r)||!Object.prototype.hasOwnProperty.call(e.row,n.column))throw new K;t.add(r);let o=e.row[n.column],i=n.storageClass==="text"&&o instanceof Uint8Array?o:void 0;return{column:n.column,state:V(n.storageClass,i?"":o,`row history column ${n.column}`,{rawTextBytes:i})}})}function Dn(e,t=()=>"?"){let n=pt(e).map(({column:r,state:o})=>zt(r,o,t));return{sql:n.length>0?n.map(r=>`(${r.sql})`).join(" AND "):"1",params:n.flatMap(r=>r.params)}}function ri(e,t=()=>"?"){return pt(e).map(({column:n,state:r})=>({column:n,write:Kt(r,t)}))}var Mn="~sqlite-explorer-non-finite:",Lu=`${Mn}Infinity`,Ma=`${Mn}-Infinity`,vu=`${Mn}NaN`,Ua=Ma.length+2;function gt(e){let t=new Set,n=[e],r=0;for(;n.length>0;){let o=n.pop();if(o!=null){if(typeof o=="boolean")r+=4;else if(typeof o=="number"||typeof o=="bigint")r+=8;else if(typeof o=="string")r+=o.length*2;else if(o instanceof Uint8Array)r+=o.byteLength;else if(typeof o=="object"){if(t.has(o))continue;if(t.add(o),r+=8,Array.isArray(o))for(let i of o)n.push(i);else for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r+=i.length*2,n.push(o[i]))}}}return r}var Va=32,qa=48;function oi(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error(`SQLite returned an unsafe ${t} during delete undo preflight`);return Number(n)}function ii(e,t){return[...e]}function si(e,t,n){return{sql:`SELECT COUNT(*), COALESCE(SUM(${t.map(o=>{let i=w(o);return`CASE typeof(${i}) WHEN 'text' THEN 2 * octet_length(${i}) WHEN 'blob' THEN octet_length(${i}) WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 0 END`}).join(" + ")||"0"}), 0) FROM ${N(e)} WHERE ${n.sql}`,params:n.params}}function ai(e){if(!e||e.length<2)throw new Error("SQLite omitted delete undo preflight metadata");return{rowCount:oi(e[0],"row count"),valueBytes:oi(e[1],"value byte count")}}function li(e){if(!Number.isSafeInteger(e.maxSnapshotBytes)||e.maxSnapshotBytes<0)throw new Error("Delete undo snapshot budget must be a non-negative safe integer");if(e.rowCount!==e.rowIds.length)throw new Error(`Cannot delete from ${e.table}: one or more row identities no longer exist`);let n=[...new Set(e.insertableColumns)].reduce((a,s)=>a+s.length*2,0),r=e.rowIds.reduce((a,s)=>a+gt(s),0),o=e.rowCount*e.insertableColumns.reduce((a,s)=>a+s.length*2+qa,0),i=e.valueBytes+r+e.rowCount*(Va+n)+o;if(!Number.isSafeInteger(i)||i>e.maxSnapshotBytes){let a=e.operation??"Delete";throw new Error(`${a} undo snapshot exceeds the ${e.maxSnapshotBytes}-byte memory budget; ${a.toLowerCase()} fewer rows or increase sqliteExplorer.maxUndoMemory.`)}}var Qt="ksa:",Xt=1,Vn=128*1024,Wa=["first","after","atOrAfter","before","last"];function qn(e){return e.orderBy?.toLowerCase()==="rowid"&&e.columns?.[0]?.toLowerCase()==="rowid"&&!e.columns.slice(1).some(t=>t.toLowerCase()==="rowid")}function Wn(e,t){let n=(t.filters??[]).flatMap(l=>{let d=Te(l.value);return d===void 0?[]:[[l.column,d]]}),r=Te(t.globalFilter)??null,o=r===null?null:t.globalFilterColumns??t.columns??null,i=typeof t.orderBy=="string"&&t.orderBy!==""?t.orderBy:null,a=i!==null&&t.orderDir==="DESC"?"DESC":"ASC",s=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)?t.limit:null;return JSON.stringify([Xt,e,i,a,s,n,r,o])}function Fn(e,t){if(!t||e.orderByColumns?.length)return;let n=t.kind==="rowid"?["rowid"]:t.columns.map(i=>i.identifier);if(n.length===0)return;let r=typeof e.orderBy=="string"&&e.orderBy!==""?e.orderBy:void 0;if(r===void 0)return{keyColumns:n,nullableSortKey:!1,direction:"ASC"};let o=e.orderDir==="DESC"?"DESC":"ASC";return qn(e)?{keyColumns:n,nullableSortKey:!1,direction:o}:n.includes(r)?{keyColumns:[r,...n.filter(i=>i!==r)],nullableSortKey:!1,direction:o}:{keyColumns:[r,...n],nullableSortKey:!0,direction:o}}function ci(e,t){if(!(!e||t))return{orderByColumns:e.keyColumns,orderDir:e.direction}}function Fa(e){return e===null?["null"]:Ot(e)}function Ha(e){return Array.isArray(e)&&e.length===1&&e[0]==="null"?{value:null,storageClass:"null"}:{value:Eo(e),storageClass:e[0]}}function ja(e,t){if(t.length===0)throw new Error("Keyset anchor requires at least one key value");let n={v:Xt,t:e,k:t.map(Fa)};return Qt+encodeURIComponent(JSON.stringify(n))}function Ka(e){if(e.length>Vn)throw new Error(`Keyset anchor exceeds the ${Vn}-byte limit`)}function za(e){if(typeof e!="string"||!e.startsWith(Qt))throw new Error("Invalid keyset anchor");Ka(e);let t;try{t=JSON.parse(decodeURIComponent(e.slice(Qt.length)))}catch{throw new Error("Invalid keyset anchor encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Xt||typeof t.t!="string"||!Array.isArray(t.k))throw new Error("Invalid keyset anchor payload");let n=t.k;if(n.length===0)throw new Error("Keyset anchor has no key values");let r,o;try{let a=n.map(Ha);r=a.map(s=>s.value),o=a.map(s=>s.storageClass)}catch(a){throw new Error(`Invalid keyset anchor value: ${a instanceof Error?a.message:String(a)}`)}if(Qt+encodeURIComponent(JSON.stringify({v:Xt,t:t.t,k:n}))!==e)throw new Error("Keyset anchor is not canonical");return{tag:t.t,values:r,valueClasses:o}}function ui(e,t,n){let r=t.keyset;if(!r||typeof r!="object"||Array.isArray(r)||!Wa.includes(r.mode))return;let o=Fn(t,n);if(!o)return;let i=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)&&t.limit>0?t.limit:void 0;if(i===void 0)return;if(r.mode==="first")return{...o,mode:"first",limit:i};if(r.mode==="last"){let l=r.lastPageRowCount??i;return typeof l!="number"||!Number.isSafeInteger(l)||l<1||l>i?void 0:{...o,mode:"last",limit:l}}if(r.anchor===void 0)return;let a=za(r.anchor);if(a.tag!==Wn(e,t)||a.values.length!==o.keyColumns.length)return;let s=o.nullableSortKey?1:0;if(a.values.some((l,d)=>l===null&&d>=s))throw new Error("Keyset anchor has NULL in an identity slot");return{...o,mode:r.mode,values:a.values,valueClasses:a.valueClasses,limit:i}}function Un(e,t,n){return e.length===1?`${e[0]} ${t} ${n[0]}`:`(${e.join(", ")}) ${t} (${n.join(", ")})`}function Qa(e){let t=e.values,r=e.mode==="before"?e.direction==="ASC"?"DESC":"ASC":e.direction,o=(r==="ASC"?">":"<")+(e.mode==="atOrAfter"?"=":""),i=e.keyColumns.map(w),a=e.keyColumns.map((f,m)=>e.valueClasses?.[m]==="integer"?"CAST(? AS INTEGER)":"?");if(!e.nullableSortKey)return{sql:Un(i,o,a),params:t};let s=i[0],l=i.slice(1),d=t[0],c=t.slice(1);if(d===null){let f=Un(l,o,a.slice(1));return r==="ASC"?{sql:`((${s} IS NULL AND ${f}) OR ${s} IS NOT NULL)`,params:c}:{sql:`(${s} IS NULL AND ${f})`,params:c}}let u=Un(i,o,a);return r==="ASC"?{sql:u,params:t}:{sql:`(${u} OR ${s} IS NULL)`,params:t}}function di(e){let{plan:t}=e,n=t.mode==="before"||t.mode==="last",r=n?t.direction==="ASC"?"DESC":"ASC":t.direction,o=[...e.whereClauses],i=[...e.filterParams];if(t.mode!=="first"&&t.mode!=="last"){let d=Qa(t);o.push(d.sql),i.push(...d.params)}let a=t.keyColumns.map(w),s=d=>a.map(c=>`${c} ${d}`).join(", "),l=`SELECT ${e.selectListSql} FROM ${e.escapedTable}`;return o.length>0&&(l+=` WHERE ${o.join(" AND ")}`),l+=` ORDER BY ${s(r)} LIMIT ${t.limit}`,n&&(l=`SELECT * FROM (${l}) ORDER BY ${s(t.direction)}`),{sql:l,params:i}}function fi(e){if(e.rows.length===0)return;let t=e.key.keyColumns.map(i=>e.projectionColumns.indexOf(i));if(t.some(i=>i<0))return;let n=i=>{if(e.excludedRowIndices?.has(i))return;let a=e.rows[i],s=[];for(let d=0;dpi)throw new Error(`Cell read chunk size must be an integer from 1 through ${pi}`)}function Ne(e){let t=String(e).toLowerCase().replace(/[_\s-]/g,"");if(t==="utf8")return"utf-8";if(t==="utf16le")return"utf-16le";if(t==="utf16be")return"utf-16be";throw new Error(`Unsupported SQLite text encoding: ${String(e)}`)}function hi(e,t,n){if(e.length!==1)throw new Error(e.length===0?`Cell ${n.table}.${n.column} no longer exists`:`Cell ${n.table}.${n.column} matched more than one row`);let r=e[0][0];if(typeof r!="string"||!Ya.has(r))throw new Error(`SQLite returned an invalid storage class for ${n.table}.${n.column}`);let o=e[0][1],i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i)||Number(i)<0)throw new Error(`SQLite returned an unsafe byte length for ${n.table}.${n.column}`);return{storageClass:r,byteLength:Number(i),...r==="text"?{textEncoding:t}:{}}}function Kn(e,t){return Number.isFinite(e)&&Number(e)>=1?Math.floor(Number(e)):t}var We=he,Gt=re;var zn="SQLITE_EXPLORER_CELL_EDIT_VALUE_TOO_LARGE",Qn="SQLITE_EXPLORER_OVERSIZED_CELL_REPLACEMENT_REQUIRED",Ei="Oversized cell metadata changed before the confirmed replacement was applied";var wi=We,Xn=class extends Error{constructor(n,r,o,i=`New ${n.toUpperCase()} cell value is ${r} bytes and exceeds the ${o}-byte edit limit.`){super(i);D(this,"storageClass",n);D(this,"actualBytes",r);D(this,"limitBytes",o);D(this,"name","CellEditPolicyError");D(this,"code",zn)}},Fe=class extends Error{constructor(n,r,o,i,a,s=`Existing ${o.toUpperCase()} cell ${n}.${r} is ${i} bytes. Use the explicitly confirmed oversized-cell replacement path.`){super(s);D(this,"table",n);D(this,"column",r);D(this,"storageClass",o);D(this,"actualBytes",i);D(this,"limitBytes",a);D(this,"name","OversizedCellReplacementRequiredError");D(this,"code",Qn)}};function Ja(e){let t=0;for(let n=0;n=55296&&r<=56319){let o=e.charCodeAt(n+1);o>=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function He(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);let n=typeof e=="string"?"text":e instanceof Uint8Array?"blob":void 0;if(!n)return;let r=typeof e=="string"?Ja(e):e instanceof Uint8Array?e.byteLength:0;if(r>t)throw new Xn(n,r,t)}function Si(e){let t=e??wi;if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);return t}function je(e,t){let n=Si(t);for(let r of e)He(r,n);return n}function bi(e,t){let n=Si(t);if(!e||e.storageClass!=="text"&&e.storageClass!=="blob"||!Number.isSafeInteger(e.byteLength)||e.byteLength<=n)throw new Error("Guarded oversized-cell replacement requires exact TEXT/BLOB metadata above the edit limit");return n}function Za(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="CellEditPolicyError"||t.code!==zn||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"CellEditPolicyError",code:zn,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function el(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="OversizedCellReplacementRequiredError"||t.code!==Qn||typeof t.table!="string"||typeof t.column!="string"||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"OversizedCellReplacementRequiredError",code:Qn,table:t.table,column:t.column,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function Ti(e){return Za(e)??el(e)}var Ai=100,tl=18,Ci=19,Ri=2;var nl=1024*1024*1024,_e=2145386496,rl="WAL database too large for in-memory mode; checkpoint it first";function Ni(e){return e.length>Ci&&e[tl]===Ri&&e[Ci]===Ri}function Ii(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<1)throw new Error(`${n} must be a positive safe integer`);return e}function xi(e){return`${(e/(1024*1024*1024)).toFixed(1)} GiB`}function Gn(e,t={}){let n=Ii(t.pagedThresholdBytes,nl,"Paged-open threshold"),r=Ii(t.bufferCeilingBytes,_e,"Buffer-open ceiling");if(n>r)throw new Error("Paged-open threshold must not exceed the buffer-open ceiling");if(!Number.isSafeInteger(e.sizeBytes)||e.sizeBytes<0)throw new Error("Database size must be a non-negative safe integer");return e.walMarked?e.sizeBytes>=r?{mode:"reject",message:rl}:{mode:"buffer",readOnly:e.sizeBytes>n}:e.sizeBytes>n&&e.pagedAvailable?{mode:"paged"}:e.sizeBytes>=r?{mode:"reject",message:`Database is too large to load into memory in this browser (${xi(e.sizeBytes)}; limit ${xi(r)}) and page-on-demand mode is unavailable`}:{mode:"buffer",readOnly:!1}}var ol=64*1024*1024,Ke=1e4,$i=`SELECT 1 FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? AND "type" IN ('table', 'shadow') AND "wr" = 1 LIMIT 1`;function Yn(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:ol}function Jn(e){return e.storage==="paged"&&!e.filtered&&e.authorityConfirmedRowIdTable&&e.pagedFileSizeBytes>e.exactCountMaxFileBytes}function Oi(e){let t=N(e);return`SELECT (SELECT CAST(min(rowid) AS TEXT) FROM ${t}), (SELECT CAST(max(rowid) AS TEXT) FROM ${t})`}function Li(e){return`SELECT COUNT(*) FROM (SELECT 1 FROM ${N(e)} LIMIT ?)`}function vi(e,t){if(!(typeof e!="number"||!Number.isSafeInteger(e)||e<0||e>Ke+1))return e<=Ke?{count:e,isExact:!0}:{count:Zn(t,e),isExact:!1}}function Zn(e,t=Ke+1){return(!Number.isSafeInteger(t)||t<0)&&(t=Ke+1),!Number.isSafeInteger(e)||eBigInt(Number.MAX_SAFE_INTEGER)))return Number(i)}function ki(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<1)throw new Error(`${n} must be a positive safe integer`);return e}function Bi(e,t={}){let n=ki(t.chunkSizeBytes,65536,"Chunk size"),r=ki(t.maxCacheBytes,8388608,"Cache budget"),o=Math.max(1,Math.floor(r/n)),i=new Map;function a(s){let l=i.get(s);if(l!==void 0)return i.delete(s),i.set(s,l),l;let d=e(s*n,n),c=d.length>n?d.subarray(0,n):d;if(i.set(s,c),i.size>o){let u=i.keys().next().value;i.delete(u)}return c}return(s,l)=>{if(!Number.isSafeInteger(s)||s<0)throw new Error("Read offset must be a non-negative safe integer");if(!Number.isSafeInteger(l)||l<0)throw new Error("Read length must be a non-negative safe integer");if(l===0)return new Uint8Array(0);let d=Math.floor(s/n),c=Math.floor((s+l-1)/n);if(d===c){let m=a(d),y=s-d*n;return y>=m.length?new Uint8Array(0):m.subarray(y,Math.min(y+l,m.length))}let u=new Uint8Array(l),f=0;for(let m=d;m<=c;m++){let y=a(m),g=m*n,h=Math.max(s,g)-g,C=Math.min(s+l,g+n)-g,T=Math.min(C,y.length);if(h>=T||(u.set(y.subarray(h,T),g+h-s),f=g+T-s,y.length{if(Gi(t))return fl(t);if(typeof t!="bigint")return t;let n=Number(t);return Number.isSafeInteger(n)?n:t.toString()})}function Gi(e){return typeof e=="string"&&e.includes("\0")}function G(e){return typeof e=="bigint"&&!Number.isSafeInteger(Number(e))?"CAST(? AS INTEGER)":Gi(e)?"CAST(? AS TEXT)":"?"}function fl(e){let t=Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]);if(t==="utf-8")return new TextEncoder().encode(e);let n=t==="utf-16le",r=new Uint8Array(e.length*2);for(let o=0;o>>8,r[o*2+1]=n?i>>>8:i&255}return r}function Je(e){Ge(e).free()}function Ye(e,t){if(t!==void 0&&!(typeof SharedArrayBuffer=="function"&&t instanceof Int32Array&&t.length>0&&t.buffer instanceof SharedArrayBuffer))throw new Error("Invalid query cancellation flag");let n=()=>t!==void 0&&Atomics.load(t,0)!==0,r=()=>{let a=new Error("Query execution cancelled");throw a.name="AbortError",a};n()&&r();let o=Date.now()+ir,i;p.progress_handler(al,()=>n()?(i="cancelled",!0):Date.now(){let n=Ge(e),r=n.getColumnNames();n.free();let o=ot(e,r.length),i=Ge(o.sql),a=[];try{for(;i.step();)a.push(i.get(null,{useBigInt:!0}));let{rows:s,exactIntegerTexts:l}=Ue(a,o.valueColumnCount);return{headers:r,rows:s,exactIntegerTexts:l}}finally{i.free()}},t)}function Yi(e,t){if(t!=null)return t;let n=e??[];return n[0]==="rowid"?n.slice(1):n}function B(e,t){try{b(`ROLLBACK TO ${e}`),b(`RELEASE ${e}`)}catch(n){console.warn(`Failed to rollback savepoint (${t}):`,oe(n))}}function ml(e){for($e.add(e);$e.size>64;)$e.delete($e.values().next().value)}function Ji(e){b(`ROLLBACK TO ${e}`),b(`RELEASE ${e}`)}function nn(e){let t=Xe;if(!t||e!==void 0&&t.sessionId!==e)return!1;Xe=null,ml(t.sessionId),t.expiryTimer!==void 0&&clearTimeout(t.expiryTimer);try{b(`RELEASE ${t.savepointName}`)}catch(n){try{Ji(t.savepointName)}catch(r){let o=[n,r];try{p?.close()}catch(i){o.push(i)}finally{p=null}throw new AggregateError(o,"Cell read snapshot cleanup failed; the owning web database was closed")}}return!0}function Zi(e){e.expiryTimer!==void 0&&clearTimeout(e.expiryTimer),e.expiresAt=Math.min(e.absoluteExpiresAt,e.lastAccessAt+yr),e.expiryTimer=setTimeout(()=>{try{nn(e.sessionId)}catch(t){console.error("[Worker] Failed to expire cell read session:",oe(t))}},Math.max(1,e.expiresAt-Date.now()))}async function es(e){gi(e);let t=await te(e.table),n=U(e.rowId,t);return{table:e.table,column:e.column,predicateSql:n.sql,predicateParams:n.params}}function pl(e){let t=w(e.column);return{sql:`SELECT typeof(${t}), CASE WHEN ${t} IS NULL THEN 0 ELSE length(CAST(${t} AS BLOB)) END FROM ${N(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function gl(e){return{sql:`SELECT substr(CAST(${w(e.column)} AS BLOB), ? + 1, ?) FROM ${N(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function ve(){return Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0])}function ts(e,t){let n=pl(t),r=p.exec(n.sql,v(n.params),{useBigInt:!0});return hi(r[0]?.values??[],ve(),e)}async function Zt(e){if(!p)throw new Error("No database initialized");let t=await es(e);return ts(e,t)}async function yl(e){if(!p)throw new Error("No database initialized");if(Xe)throw new Error("At most one web cell read session may be open");let t=await es(e),n=k("sp_cell_read");b(`SAVEPOINT ${n}`);try{let r=ts(e,t),o=Date.now(),i={sessionId:crypto.randomUUID(),target:e,sqlTarget:t,metadata:r,savepointName:n,lastAccessAt:o,absoluteExpiresAt:o+Xi,expiresAt:o+yr,expiryTimer:void 0};return Xe=i,Zi(i),{sessionId:i.sessionId,metadata:r,expiresAt:i.expiresAt}}catch(r){try{Ji(n)}catch(o){let i=[r,o];try{p?.close()}catch(a){i.push(a)}finally{p=null}throw new AggregateError(i,"Cell read session open failed; the owning web database was closed")}throw r}}async function hl(e,t,n){yi(t,n);let r=Xe;if(!r||r.sessionId!==e)throw new Error($e.has(e)?`Cell read session ${e} is closed or expired`:`Unknown cell read session: ${String(e)}`);if(Date.now()>=r.expiresAt)throw nn(e),new Error(`Cell read session ${e} is closed or expired`);let o=gl(r.sqlTarget),a=p.exec(o.sql,v([t,n,...o.params]))[0]?.values??[];if(a.length!==1)throw new Error(a.length===0?`Cell ${r.target.table}.${r.target.column} no longer exists in its snapshot`:`Cell ${r.target.table}.${r.target.column} matched more than one row`);let s=a[0][0],l=s===null?new Uint8Array(0):s;if(!(l instanceof Uint8Array))throw new Error(`SQLite returned a non-BLOB chunk for ${r.target.table}.${r.target.column}`);return r.lastAccessAt=Date.now(),Zi(r),{byteOffset:t,bytes:l.slice(),done:t+l.byteLength>=r.metadata.byteLength}}async function El(e){if(typeof e!="string"||e.length===0)throw new Error("Cell read session id is required");if(!nn(e)&&!$e.has(e))throw new Error(`Unknown cell read session: ${e}`)}function wl(e){if(Xe&&!["readCellChunk","closeCellReadSession","initializeDatabase"].includes(e))throw new Error("A cell read snapshot is active; close it before another database operation")}function Sl(e){return!!e&&typeof e=="object"&&typeof e.slice=="function"&&typeof e.size=="number"}function bl(e,t){let n=e.size,r=Bi((o,i)=>new Uint8Array(t.readAsArrayBuffer(e.slice(o,o+i))));return{size:()=>n,read:r}}function Tl(e){let t={};return e.pagedOpenThresholdBytes!==void 0&&(t.pagedThresholdBytes=e.pagedOpenThresholdBytes),e.bufferOpenCeilingBytes!==void 0&&(t.bufferCeilingBytes=e.bufferOpenCeilingBytes),t}function Cl(e){if(e===void 0)return _e;if(!Number.isSafeInteger(e)||e<1)throw new Error("pagedExportMaxBytes must be a positive safe integer");if(e>_e)throw new Error(`pagedExportMaxBytes must not exceed ${_e} bytes`);return e}function oe(e){let t="Unknown error";try{t=e&&typeof e=="object"&&typeof e.message=="string"&&e.message?e.message:String(e)}catch{}return t||(t="Unknown error"),t.length<=Di?t:t.slice(0,Di)+`... [truncated from ${t.length} characters]`}async function Rl(e,t){if(nn(),p&&(p.close(),p=null),ir=Number.isFinite(t.queryTimeout)&&t.queryTimeout>0?t.queryTimeout:Ki,H=t.readOnlyMode===!0,yt=null,ze="memory",Oe=0,ht=Cl(t.pagedExportMaxBytes),Qi=Yn(t.pagedExactCountMaxFileBytes),yr=Kn(t.cellReadSessionIdleTimeoutMs,Hn),Xi=Kn(t.cellReadSessionAbsoluteTimeoutMs,jn),$e.clear(),!ae){importScripts(il);let n={};t.wasmBinary?n.wasmBinary=t.wasmBinary:n.locateFile=()=>sl,ae=await self.initSqlJs(n),zi=Bl(ae)}if(Sl(t.file)?ze=Al(t.file,Tl(t)):t.content&&t.content.length>0?p=new ae.Database(t.content):p=new ae.Database,p.run("PRAGMA foreign_keys = ON"),!H){let n=xl();n&&(H=!0,yt=n)}return H&&(typeof p.enforceReadOnly=="function"?p.enforceReadOnly():p.run("PRAGMA query_only = ON")),{operations:{},isReadOnly:H,storage:ze,...yt?{readOnlyReason:yt}:{}}}var Il=8;function Vi(e){return e?.errno===Il||/read[\s-]?only/i.test(oe(e))?"This database cannot be written by this process, so it is open read-only (SQLite: attempt to write a readonly database).":null}function xl(){let e=Number(p.exec("PRAGMA user_version")[0]?.values?.[0]?.[0])|0;try{p.run("BEGIN")}catch(n){return Vi(n)}let t=null;try{p.run(`PRAGMA user_version = ${e}`)}catch(n){t=Vi(n)}finally{p.run("ROLLBACK")}return t}function Al(e,t){let n=new FileReaderSync,r=new Uint8Array(n.readAsArrayBuffer(e.slice(0,Ai))),o=!H&&typeof ae.Database.openPagedWritable=="function",i=typeof ae.Database.openPaged=="function",a={sizeBytes:e.size,walMarked:Ni(r),pagedAvailable:o||i},s=Gn(a,t),l=null;if(s.mode==="paged"){let d=Math.min(ht,t.bufferCeilingBytes??_e),c=e.size>d,u=!H&&c?`This database exceeds the ${d}-byte browser save limit and is open read-only so edits cannot be stranded. Use the desktop extension to edit and save it.`:null,f=bl(e,n),m=[];if(o&&!c)try{return p=ae.Database.openPagedWritable(f),Oe=e.size,"paged"}catch(y){let g=oe(y);m.push(`writable paged open failed: ${g}`),p=null}if(i)try{return p=ae.Database.openPaged(f),H=!0,yt=u,Oe=e.size,"paged"}catch(y){let g=oe(y);m.push(`read-only paged open failed: ${g}`),p=null}l=m.length>0?new Error(m.join("; ")):null,s=Gn({...a,pagedAvailable:!1},t)}if(s.mode==="reject")throw new Error(l?`${s.message} (paged open failed: ${l.message})`:s.message);return p=new ae.Database(new Uint8Array(n.readAsArrayBuffer(e))),s.readOnly&&(H=!0),"memory"}async function Nl(e,t=[],n){if(!p)throw new Error("No database initialized");if(H)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");try{return Ye(()=>p.exec(e,t),n).map(o=>({headers:o.columns,rows:o.values}))}catch(r){throw r}}async function _l(e,t="[]",n){if(!p)throw new Error("No database initialized");if(typeof e!="string"||typeof t!="string")throw new TypeError("SQL and parameter JSON must be strings");let r=qo(e),o=Ho(t);if(o.length!==r.parameterCount)throw new Error(`Expected ${r.parameterCount} positional parameters.`);let i=`query_columns_${crypto.randomUUID().replace(/-/g,"")}`,a=Number(p.exec("PRAGMA query_only")[0]?.values[0]?.[0])===1,s=!1,l;try{a&&b("PRAGMA query_only = OFF"),l=Ye(()=>{b(`CREATE TEMP VIEW "${i}" AS ${r.metadataSql}`),s=!0;let d=(p.exec("SELECT substr(name, 1, 4097) FROM pragma.pragma_table_info(?, 'temp') ORDER BY cid LIMIT ?",[i,Wt+1])[0]?.values??[]).map(c=>String(c[0]));if(!d.length||d.length>Wt)throw new Error("Queries support 1 to 128 result columns.");if(d.some(c=>c.length>4096))throw new Error("Result column labels must be at most 4096 characters.");return d},n)}finally{try{s&&(a&&b("PRAGMA query_only = OFF"),b(`DROP VIEW temp."${i}"`))}finally{if(a)try{b("PRAGMA query_only = ON")}catch(d){let c=p;throw p=null,c.close(),d}}}return Ye(()=>{let d=jo(r.sql,l.length),c=Ge(d.sql);try{c.bind(o);let u=[];for(;u.length<=be&&c.step();)u.push(c.get(null,{useBigInt:!0}));return Ko(l,u,d.valueColumnCount)}finally{c.free()}},n)}function $l(e){if(e==null)return 5e3;let t=Number(e);return Number.isFinite(t)?Math.min(5e4,Math.max(1,Math.trunc(t))):5e3}function Ol(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.trunc(t)):1/0}var qi=100;function Ll(e){if(e==null)return[];if(!Array.isArray(e))throw new Error("Console parameters must be a JSON array.");if(e.length>qi)throw new Error(`Use at most ${qi} positional parameters.`);for(let t of e)if(t!==null){if(typeof t=="string"){if(t.includes("\0"))throw new Error("Console parameters must not contain NUL bytes; SQLite would bind the text truncated at the first one.");continue}if(!(typeof t=="number"&&Number.isFinite(t)))throw new Error("Console parameters must be null, string, or finite number values.")}return e}function ns(e,t){try{e.bind(t)}catch(n){throw new Error(`cannot bind ${t.length} positional parameter${t.length===1?"":"s"}: `+oe(n))}}var vl=4*65536,Pl=65536,rs=Object.freeze(["id","parent","notused","detail"]),os="SQLite returned an unsupported query plan.",kl=/^pragma\b/i;function Bl(e){let t=e?._sqlite_explorer_register_query_plan;if(typeof t!="function")return!1;if(t()!==0)throw new Error("Unable to initialize the bounded query-plan reader.");return!0}function is(e){let t=0;for(;;){let n=t;for(;tbe}}function Ml(e,t){let n=Wo(e,t),r=p.prepare(n.sql);try{if(r.bind(n.params),!r.step())throw new Error(os);return as(Fo(r.get()[0]).rows)}finally{r.free()}}function Ul(e,t){if(kl.test(is(e)))throw new Error("PRAGMA statements have no query plan (and some pragmas take effect while being compiled, so they are not even prepared here). Use Run.");let n=Ge(`EXPLAIN QUERY PLAN ${e}`);try{t.length>0&&ns(n,t);let r=[];for(;r.length<=be&&n.step();){let o=n.get();if(o.length!==rs.length||typeof o[3]!="string")throw new Error(os);if(new TextEncoder().encode(o[3]).byteLength>Pl)throw new Error("Query plan detail exceeds the 65,536-byte limit.");r.push(o)}return as(r)}finally{n.free()}}function Vl(e,t){if(typeof e!="string"||e.trim()==="")throw new Error("Enter one SQL statement to explain.");if(new TextEncoder().encode(e).byteLength>vl)throw new Error("Query plan SQL exceeds 262,144 UTF-8 bytes.");let n=pe(e);for(let r of n.matchAll(ss))if(r[0]===";")throw new Error("Exactly one SQL statement is required");return zi&&Dl(n)?Ml(n,t):Ul(n,t)}async function ql(e,t={},n){if(!p)throw new Error("No database initialized");if(H)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");if(typeof e=="string"&&e.includes("\0"))throw new Error("SQL contains a NUL byte; SQLite stops compiling at the first NUL, so the rest of the script would be silently skipped");let r=Ll(t.params),o=$l(t.maxRows),i=Ol(t.maxStatements),a=Date.now(),s=p.exec("SELECT total_changes()")[0].values[0][0],l=p.exec("PRAGMA schema_version")[0].values[0][0],d=()=>{let y=p.exec("SELECT total_changes()")[0].values[0][0],g=p.exec("PRAGMA schema_version")[0].values[0][0];return{mutated:y-s>0||g!==l,changes:y-s,durationMs:Date.now()-a}},c=()=>{try{return d()}catch{return{mutated:!0,changes:0,durationMs:Date.now()-a}}};if(t.explain===!0)try{return{results:[Ye(()=>Vl(e,r),n)],explain:!0,statementsSkipped:!1,...d()}}catch(y){return{results:[],error:oe(y),explain:!0,multiStatement:!1,statementsSkipped:!1,...c()}}let u=0,f=!1,m;try{m=Ye(()=>{let y=[],g=p.iterateStatements(e),h=!1;for(;;){if(u>=i){h=!0;break}u++;let C=g.next();if(C.done)break;let T=C.value;try{r.length>0&&ns(T,r);let I=T.getColumnNames(),x=!1,S=!1;if(I.length===0&&(S=T.step(),x=!0,S&&(I=T.getColumnNames())),I.length===0){if(!x||S)for(;T.step(););}else{let R=[],_=!1;for(x||(S=T.step());S;)R.length1,statementsSkipped:f,...h}}return{results:m,statementsSkipped:f,...d()}}async function Wl(e){if(!p)throw new Error("No database initialized");let t=ze==="paged"&&!H;if(ze==="paged"&&H)throw new Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");let n=()=>new Error(`Cannot download this page-on-demand database: the merged image would exceed the ${ht}-byte browser memory limit. Saving materializes the complete database in memory; use the desktop extension or reduce the database size.`);if(t&&Oe>ht)throw n();let r;try{r=p.export()}catch(o){let i=oe(o);throw t&&/transaction is open|while a transaction/i.test(i)?new Error("Cannot save while a database transaction is open; retry after the edit completes.",{cause:o}):o}if(t&&r.byteLength>ht)throw n();return r}async function Fl(e,t,n,r,o={}){if(!p)throw new Error("No database initialized");let i=e?.table;if(!i)throw new Error("No table specified");let{format:a="csv",header:s=!0,includeTableName:l=!0,rowIds:d=null,maxExportBytes:c}=o;if(!["csv","json","sql","excel"].includes(a))throw new Error(`Unsupported export format: ${a}`);let u=Number.isSafeInteger(c)&&c>0?Math.min(c,cl):pr,f=[{sql:"",params:[]}];if(d&&d.length>0){let A=await te(i);if(d.some(Z)&&!d.every(Z))throw new Error("Cannot mix rowid and primary-key row identities");let L=new Set,E=[];for(let O of d){let q=A.kind==="rowid"?M(O):O,Y=String(q);L.has(Y)||(L.add(Y),E.push(q))}f=qe(E,A)}let m=t&&t.length>0?t:Hl(i);if(m.length>Jt)throw new Error(`Cannot export more than ${Jt} columns`);let y=a!=="csv"&&a!=="excel",g=m.map((A,L)=>{let E=w(A),O=`typeof(${E})`,q=`octet_length(${E})`;return`CASE ${O} WHEN 'null' THEN 'n:0:' WHEN 'integer' THEN 'i:0:' || CAST(${E} AS TEXT) WHEN 'real' THEN 'r:0:' || printf('%!.17g', ${E}) WHEN 'text' THEN 't:' || CAST(${q} AS TEXT) || ':' || hex(CAST(${E} AS BLOB)) WHEN 'blob' THEN 'b:' || CAST(${q} AS TEXT) || ':' || `+(y?`hex(${E}) `:"'' ")+`END AS ${w(`__export_cell_${L}`)}`}).join(", "),h=k("sp_export_rows");b(`SAVEPOINT ${h}`);let C=[];try{let A=1024;for(let L of f){let E=L.sql?` WHERE ${L.sql}`:"";if(A+=Ql(i,m,E,L.params,a,u),!Number.isSafeInteger(A)||A>u)throw hr(u)}for(let L of f){let E=L.sql?` WHERE ${L.sql}`:"",O=p.exec(`SELECT ${g} FROM ${N(i)}${E}`,L.params);O.length>0&&C.push(...O[0].values)}b(`RELEASE ${h}`)}catch(A){throw B(h,"exportTable"),A}let T=m,I=Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),x=C.map((A,L)=>{if(A.length!==m.length)throw new Error(`SQLite returned ${A.length} packed export cells for row ${L}; expected ${m.length}`);return m.map((E,O)=>Kl(i,E,A[O],y,I))}),S=new ar(u),R="text/plain",_=`${i}.${a}`;switch(a){case"csv":Wi(T,x,s,S),R="text/csv";break;case"json":Xl(T,x,S),R="application/json";break;case"sql":Gl(i,T,x,l,S),R="text/sql";break;case"excel":Wi(T,x,s,S),R="text/csv",_=`${i}.csv`;break}return{contentChunks:S.finish(),filename:_,mimeType:R}}function hr(e){if(e===pr)return new Error(`Web demo exports are limited to ${ll} because the worker RPC cannot stream downloads; use the desktop extension for larger exports.`);let t=e/(1024*1024);return new Error(`Export exceeds the ${t} MiB (${e} bytes) limit; the worker assembles the whole file in memory, so larger exports need the native engine.`)}function Hl(e){let t=p.prepare(`SELECT * FROM ${N(e)} LIMIT 0`);try{return t.getColumnNames()}finally{t.free()}}function jl(e,t,n){if(e.length!==t*2||/[^0-9a-f]/i.test(e))throw new Error(`SQLite returned invalid packed bytes for ${n}`);let r=new Uint8Array(t);for(let o=0;o1;){let n=[];for(let r=0;r{let f=w(u),m=`length(${f})`,y=o==="csv"||o==="excel"?"64":o==="json"?`((${m} + 2) / 3) * 4 + 64`:`${m} * 2 + 64`;return`CASE typeof(${f}) WHEN 'text' THEN length(CAST(${f} AS BLOB)) * 6 + 64 WHEN 'blob' THEN ${y} ELSE 64 END`})),l=p.exec(`SELECT COUNT(*), COALESCE(SUM(${a}), 0) FROM ${N(e)}${n}`,r)[0]?.values?.[0]??[0,0],d=Number(l[0]),c=Number(l[1])+d*128;if(!Number.isSafeInteger(c)||c<0)throw hr(i);return c}function sr(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}var ar=class{constructor(t=pr){this.chunks=[],this.pending="",this.outputBytes=0,this.capBytes=t}append(t){if(this.outputBytes+=sr(t),!Number.isSafeInteger(this.outputBytes)||this.outputBytes>this.capBytes)throw hr(this.capBytes);let n=0;for(;n0&&t.charCodeAt(o-1)>=55296&&t.charCodeAt(o-1)<=56319&&t.charCodeAt(o)>=56320&&t.charCodeAt(o)<=57343&&r--,r===0){this.flush();continue}this.pending+=t.slice(n,n+r),n+=r,this.pending.length>=Mi&&this.flush()}}flush(){this.pending.length>0&&(this.chunks.push(this.pending),this.pending="")}finish(){return this.flush(),this.chunks}};function Wi(e,t,n,r){let o=!1,i=a=>{o&&r.append(` +`),r.append(a.join(",")),o=!0};n&&i(e.map(a=>In({storageClass:"text",value:a})));for(let a of t)i(a.map(In))}function Xl(e,t,n){n.append("[");for(let r=0;r{l>0&&n.append(`, `),n.append(` ${JSON.stringify(s)}: ${eo(i[s])}`)}),n.append(` }`)}n.append(t.length===0?"]":` -]`)}function Xl(e,t,n,r,o){let i=r?w(e):'"table_name"',a=t.map(w).join(", ");n.forEach((s,l)=>{let d=s.map(to).join(", ");l>0&&o.append(` -`),o.append(`INSERT INTO ${i} (${a}) VALUES (${d});`)})}async function as(e){let t=p.exec(`SELECT "type", "wr" FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? LIMIT 1`,[e]);if((t[0]?.values.length??0)===0)return;let n=_n(t[0].values[0][0],t[0].values[0][1]);if(!n)return;if(n==="rowid")return{kind:"rowid"};let r=$n(await Sr(e));if(r.length===0)throw new Error(`WITHOUT ROWID table ${e} has no declared primary key`);return{kind:"primaryKey",columns:r}}async function te(e){let t=await as(e);if(!t)throw new Error(`Table not found: ${e}`);if(t.kind==="rowid"&&(p.exec(rt,[e,e])[0]?.values.length??0)!==1)throw new Error(`Table ${e} is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity`);return t}function lr(e){return new Error(`An UPDATE trigger changed or removed the primary-key identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function rn(e,t,n,r){let i=p.exec(`SELECT ${ut(t)} FROM ${N(e)} WHERE ${n.sql} LIMIT 2`,v(n.params),{useBigInt:!0})[0]?.values??[];if(i.length===0)throw r??new Error(`Updated row in ${e} no longer exists`);if(i.length!==1)throw new Error(`Primary-key identity for ${e} matched more than one row`);return dt(t,i[0],Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot resolve updated identity in ${e}`)}function Er(e){let t=p.exec(oo,[e]);return so(t[0]?.values??[],e)}function Gl(e,t,n=!0){let r=[...new Set(t)];if(r.length===0)throw new Error("UPDATE trigger probe requires at least one column");let o=r.map(a=>{let s=w(a);return`${s} = ${s}`}),i=n?"rowid = ?":"0";return`EXPLAIN UPDATE ${N(e)} SET ${o.join(", ")} WHERE ${i}`}function Yl(e,t){return`EXPLAIN ${t.length===0?`INSERT INTO ${N(e)} DEFAULT VALUES`:`INSERT INTO ${N(e)} (${t.map(w).join(", ")}) VALUES (${t.map(()=>"NULL").join(", ")})`}`}function Jl(e){return`EXPLAIN DELETE FROM ${N(e)} WHERE 0`}function Et(e,t,n=!0){let r=p.exec(mo,v([e]),{useBigInt:!0}),o=po(r[0]?.values??[],e),i=p.exec(Gl(e,t,n),v(n?[0]:[]),{useBigInt:!0});go(e,o,i[0]?.values??[],n?"rowid":"primary-key")}function Le(e,t,n=[]){let r=e==="INSERT"?Yl(t,n):Jl(t),o=p.exec(r,[],{useBigInt:!0});yo(e,t,o[0]?.values??[])}function wr(e,t,n,r,o){let i=t!==void 0&&r!==void 0&&Me(t,r),a=i?w(t):"rowid",s=i?o:n,d=p.exec(`SELECT CAST(rowid AS TEXT) FROM ${N(e)} WHERE ${a} = ? LIMIT 2`,v([s??null]),{useBigInt:!0})[0]?.values??[];if(d.length===0)throw st(e);if(d.length!==1)throw new Error(`Rowid identity for ${e} matched more than one row`);return M(d[0][0])}function cr(e,t){let n=typeof t=="string"?t:JSON.stringify(t),r=p.exec("SELECT json_patch(COALESCE(?, '{}'), ?)",v([e,n]))[0]?.values?.[0]?.[0];if(typeof r!="string")throw new Error("SQLite returned an invalid json_patch result");return r}function Zl(e,t,n,r,o){let i=ve(),a=new Map;for(let l of n){let d=M(l.rowId),c=a.get(d)??[];c.push({...l,rowId:d}),a.set(d,c)}let s=[];for(let[l,d]of a){let c=[...new Set(d.map(g=>g.column))];if(c.length!==d.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let u=p.exec(`SELECT ${c.map(ee).join(", ")} FROM ${N(e)} WHERE rowid = ? LIMIT 2`,v([l]),{useBigInt:!0})[0];if((u?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let f=d.map((g,h)=>{let C=V(u.values[0][h*2],u.values[0][h*2+1],`${e}.${g.column}`,{textEncoding:i}),T=C.value,x=jt(g.value,T,g.operation??"set"),I=x.operation==="json_patch"?cr(T,x.value):x.value;return!o&&x.operation==="json_patch"&&He(I,r),{update:g,priorValue:T,priorState:C,prepared:x,storedValue:I}}),m=l;for(let g of f){let h=w(g.update.column),C=g.prepared.operation==="json_patch",T=C?typeof g.prepared.value=="string"?g.prepared.value:JSON.stringify(g.prepared.value):g.storedValue,x=C?`json_patch(COALESCE(${h}, '{}'), ?)`:G(g.storedValue);if(p.run(`UPDATE ${N(e)} SET ${h} = ${x} WHERE rowid = ?`,v([T,m])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);m=wr(e,t,m,g.update.column,g.storedValue)}let y=p.exec(`SELECT ${c.map(ee).join(", ")} FROM ${N(e)} WHERE rowid = ? LIMIT 2`,v([m]),{useBigInt:!0})[0];if((y?.values.length??0)!==1)throw st(e);for(let[g,h]of f.entries())s.push({rowId:l,newRowId:m,columnName:h.update.column,priorValue:h.priorValue,newValue:h.prepared.value,priorState:h.priorState,postState:V(y.values[0][g*2],y.values[0][g*2+1],`${e}.${h.update.column}`,{textEncoding:i}),operation:h.prepared.operation})}return s}async function ec(e,t={}){if(!p)throw new Error("No database initialized");t=fi(t,1e3);let{columns:n=null,offset:r,limit:o,orderBy:i=null,orderDir:a="ASC",filters:s=[],globalFilter:l="",globalFilterColumns:d=null}=t,c=n,u=i,f=null,m,y,g=!1;if(n?.[0]?.toLowerCase()==="rowid")if(y=await as(e),y?.kind==="primaryKey"){let $=y,P=n.slice(1),ne=$.columns.map(we=>we.identifier).filter(we=>!P.includes(we));c=[...P,...ne],m={identity:$,visibleColumns:P},qn({...t,columns:n})&&(u=null,f=$.columns.map(we=>we.identifier))}else y?.kind==="rowid"&&(g=(p.exec(rt,[e,e])[0]?.values.length??0)>0);let h=y?.kind==="primaryKey"||g?y:void 0,C=Fn(t,h),T=C?Wn(e,t):void 0,x=C?ci(e,t,h):void 0,I=g&&c?.[0]?.toLowerCase()==="rowid"&&c.length>Jt,S=I?c.slice(1):c,R;S&&S.length>0?R=S.map(($,P)=>g&&P===0&&$.toLowerCase()==="rowid"?`${w($)} AS ${w("rowid")}`:w($)).join(", "):R="*";let _=[],A=[];if(s&&s.length>0)for(let $ of s){let P=Te($.value);$.column&&P!==void 0&&(_.push(`${w($.column)} LIKE ? ESCAPE '\\'`),A.push(`%${et(P)}%`))}let L=Te(l);if(L!==void 0){let $=Gi(n,d);if($.length>0){let P=$.map(ne=>`${w(ne)} LIKE ? ESCAPE '\\'`);_.push(`(${P.join(" OR ")})`);for(let ne=0;ne<$.length;ne++)A.push(`%${et(L)}%`)}}let E=A,O=$=>{if(x)return ui({selectListSql:$,escapedTable:N(e),whereClauses:_,filterParams:E,plan:x});let P=`SELECT ${$} FROM ${N(e)}`;_.length>0&&(P+=` WHERE ${_.join(" AND ")}`);let ne=li(C,x),we=ne?ne.orderByColumns:f??(u?[u]:[]);if(we.length>0){let Rs=ne?ne.orderDir:a==="DESC"?"DESC":"ASC";P+=` ORDER BY ${we.map(Is=>`${w(Is)} ${Rs}`).join(", ")}`}return P+=` LIMIT ${parseInt(o,10)} OFFSET ${parseInt(r,10)}`,{sql:P,params:E}},{sql:q,params:Y}=O(R);A=Y;let X=I?O(w("rowid")):void 0,le=p.prepare(q,A),Pe=le.getColumnNames(),Re=I?["rowid",...Pe]:Pe;le.free();let hs=Number.isSafeInteger(t.maxInlineCellBytes)&&t.maxInlineCellBytes>0?t.maxInlineCellBytes:kt,Es=Number.isSafeInteger(t.maxPageResponseBytes)&&t.maxPageResponseBytes>0?t.maxPageResponseBytes:he,br={limit:parseInt(o,10),maxInlineCellBytes:Math.min(kt,hs),maxPageResponseBytes:Math.min(he,Es)},ws=m?m.identity.columns.map($=>{let P=Re.indexOf($.identifier);if(P<0)throw new Error(`Primary-key column missing from table fetch: ${$.identifier}`);return P}):[],Tr=C?C.keyColumns.map($=>Re.indexOf($)).filter($=>$>=0):[],Cr=[...new Set([...ws,...Tr])],Ss=I?Cr.filter($=>$>0).map($=>$-1):Cr,Rr=Pe.length*2+1<=Jt?Pe.map(($,P)=>P):Ss,ce=Bt(q,Pe.length,br,Rr),sn=ot(ce.sql,ce.primaryTransportColumnCount),bs=p.exec(sn.sql,A,{useBigInt:!0}),wt=No(bs[0]?.values??[],void 0,ce),ke=(X?p.exec(X.sql,X.params,{useBigInt:!0}):void 0)?.[0]?.values;if(ke&&ke.length!==wt.length)throw new Error("Synthetic rowid companion row count does not match the value page");let Ee=ke?ke.map(($,P)=>{if($.length!==1)throw new Error(`Synthetic rowid companion row ${P} is not one value`);return[$[0],...wt[P]]}):wt,Ir=[],an=Re[0]?.toLowerCase()==="rowid",ln=an&&ao(Ee,0),xr=sn.valueColumnCount===void 0&&an;if(!g&&(xr||ln)&&Ee.length>0&&(g=(p.exec(rt,[e,e])[0]?.values.length??0)>0),g&&xr)for(let $ of lo(e,Re,Ee.map(P=>P[0]))){let P=p.exec($.sql,$.params,{useBigInt:!0});Ir.push({query:$,rows:P[0]?.values??[]})}let Ar=co(Ee,Ir),cn=Ue(wt,sn.valueColumnCount,I?void 0:Ar,!I&&g&&ln?0:void 0),Nr=qt(cn.rows,Pe.length,cn.exactIntegerTexts,br.maxPageResponseBytes),_r=ke?_o(Ue(ke,void 0,void 0,ln?0:void 0).rows.map($=>$[0]),Nr,Ar):Nr,un=$o(cn.rows,ce),Be=Rr.length>0?Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]):void 0,dn=I?ce.rawTextColumnIndices.map($=>$+1):ce.rawTextColumnIndices,Ts=Be?Lo({sourceRows:Ee,rawTextRows:un,rawTextColumnIndices:dn,textEncoding:Be,contained:_r}):_r,{rows:fn,oversizedCells:Ze,exactIntegerTexts:mn}=Ts,ue=y?.kind==="rowid"&&an&&!g?ko({rows:fn,oversizedCells:Ze,exactIntegerTexts:mn,rowOffset:parseInt(r,10)}):void 0,Ie=m&&Be?Mo({identity:m.identity,sourceColumns:Re,visibleColumnCount:m.visibleColumns.length,identityRows:Ee,rawTextBytes:un,rawTextColumnIndices:dn,rawTextValidationUnavailable:ce.rawTextValidationUnavailable,textEncoding:Be,rows:fn,oversizedCells:Ze,exactIntegerTexts:mn,effectiveInlineCellBytes:ce.effectiveInlineCellBytes,rowOffset:parseInt(r,10)}):void 0,Cs=C&&Be?Oo({sourceRows:Ee,sourceColumnIndices:Tr,rawTextRows:un,rawTextColumnIndices:dn,textEncoding:Be,rawTextValidationUnavailable:ce.rawTextValidationUnavailable}):void 0,St=C&&T!==void 0?di({tag:T,key:C,projectionColumns:Re,rows:Ee,oversizedCells:Ze,excludedRowIndices:Cs}):void 0;return m&&Ie?{headers:["rowid",...m.visibleColumns],rows:Ie.rows,exactIntegerTexts:Ie.exactIntegerTexts,...Ie.oversizedCells?{oversizedCells:Ie.oversizedCells}:{},...Ie.readOnlyRowReasons?{readOnlyRowReasons:Ie.readOnlyRowReasons}:{},...St?{keysetAnchors:St}:{}}:{headers:Re,rows:ue?.rows??fn,exactIntegerTexts:ue?ue.exactIntegerTexts:mn,...(ue?ue.oversizedCells:Ze)?{oversizedCells:ue?ue.oversizedCells:Ze}:{},...ue?.readOnlyRowReasons?{readOnlyRowReasons:ue.readOnlyRowReasons}:{},...St?{keysetAnchors:St}:{}}}async function tc(e,t={}){if(!p)throw new Error("No database initialized");let{columns:n=[],filters:r=[],globalFilter:o="",globalFilterColumns:i=null}=t,a=`SELECT COUNT(*) FROM ${N(e)}`,s=[],l=[];if(r&&r.length>0)for(let f of r){let m=Te(f.value);f.column&&m!==void 0&&(s.push(`${w(f.column)} LIKE ? ESCAPE '\\'`),l.push(`%${et(m)}%`))}let d=Te(o);if(d!==void 0){let f=Gi(n,i);if(f.length>0){let m=f.map(y=>`${w(y)} LIKE ? ESCAPE '\\'`);s.push(`(${m.join(" OR ")})`);for(let y=0;y0&&(a+=` WHERE ${s.join(" AND ")}`);let c={storage:ze,filtered:s.length>0,authorityConfirmedRowIdTable:!0,pagedFileSizeBytes:Oe,exactCountMaxFileBytes:zi};if(Jn(c)){let f=!1;try{if(f=(p.exec(rt,[e,e])[0]?.values.length??0)>0,Jn({...c,authorityConfirmedRowIdTable:f})){let y=p.exec($i(e)),g=vi(y[0]?.values?.[0]);if(g!==void 0)return{count:g,isExact:!1}}}catch{}if(!f){let m=!1;try{m=(p.exec(_i,[e])[0]?.values.length??0)>0}catch{}if(m){try{let y=p.exec(Oi(e),[Ke+1]),g=Li(y[0]?.values?.[0]?.[0],Oe);if(g)return g}catch{}return{count:Zn(Oe),isExact:!1}}}}let u=p.exec(a,l);return u.length===0||u[0].values.length===0?{count:0,isExact:!0}:{count:u[0].values[0][0],isExact:!0}}async function nc(){if(!p)throw new Error("No database initialized");let e=p.exec(` +]`)}function Gl(e,t,n,r,o){let i=r?w(e):'"table_name"',a=t.map(w).join(", ");n.forEach((s,l)=>{let d=s.map(to).join(", ");l>0&&o.append(` +`),o.append(`INSERT INTO ${i} (${a}) VALUES (${d});`)})}async function ls(e){let t=p.exec(`SELECT "type", "wr" FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? LIMIT 1`,[e]);if((t[0]?.values.length??0)===0)return;let n=_n(t[0].values[0][0],t[0].values[0][1]);if(!n)return;if(n==="rowid")return{kind:"rowid"};let r=$n(await Sr(e));if(r.length===0)throw new Error(`WITHOUT ROWID table ${e} has no declared primary key`);return{kind:"primaryKey",columns:r}}async function te(e){let t=await ls(e);if(!t)throw new Error(`Table not found: ${e}`);if(t.kind==="rowid"&&(p.exec(rt,[e,e])[0]?.values.length??0)!==1)throw new Error(`Table ${e} is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity`);return t}function lr(e){return new Error(`An UPDATE trigger changed or removed the primary-key identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function rn(e,t,n,r){let i=p.exec(`SELECT ${ut(t)} FROM ${N(e)} WHERE ${n.sql} LIMIT 2`,v(n.params),{useBigInt:!0})[0]?.values??[];if(i.length===0)throw r??new Error(`Updated row in ${e} no longer exists`);if(i.length!==1)throw new Error(`Primary-key identity for ${e} matched more than one row`);return dt(t,i[0],Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot resolve updated identity in ${e}`)}function Er(e){let t=p.exec(oo,[e]);return so(t[0]?.values??[],e)}function Yl(e,t,n=!0){let r=[...new Set(t)];if(r.length===0)throw new Error("UPDATE trigger probe requires at least one column");let o=r.map(a=>{let s=w(a);return`${s} = ${s}`}),i=n?"rowid = ?":"0";return`EXPLAIN UPDATE ${N(e)} SET ${o.join(", ")} WHERE ${i}`}function Jl(e,t){return`EXPLAIN ${t.length===0?`INSERT INTO ${N(e)} DEFAULT VALUES`:`INSERT INTO ${N(e)} (${t.map(w).join(", ")}) VALUES (${t.map(()=>"NULL").join(", ")})`}`}function Zl(e){return`EXPLAIN DELETE FROM ${N(e)} WHERE 0`}function Et(e,t,n=!0){let r=p.exec(mo,v([e]),{useBigInt:!0}),o=po(r[0]?.values??[],e),i=p.exec(Yl(e,t,n),v(n?[0]:[]),{useBigInt:!0});go(e,o,i[0]?.values??[],n?"rowid":"primary-key")}function Le(e,t,n=[]){let r=e==="INSERT"?Jl(t,n):Zl(t),o=p.exec(r,[],{useBigInt:!0});yo(e,t,o[0]?.values??[])}function wr(e,t,n,r,o){let i=t!==void 0&&r!==void 0&&Me(t,r),a=i?w(t):"rowid",s=i?o:n,d=p.exec(`SELECT CAST(rowid AS TEXT) FROM ${N(e)} WHERE ${a} = ? LIMIT 2`,v([s??null]),{useBigInt:!0})[0]?.values??[];if(d.length===0)throw st(e);if(d.length!==1)throw new Error(`Rowid identity for ${e} matched more than one row`);return M(d[0][0])}function cr(e,t){let n=typeof t=="string"?t:JSON.stringify(t),r=p.exec("SELECT json_patch(COALESCE(?, '{}'), ?)",v([e,n]))[0]?.values?.[0]?.[0];if(typeof r!="string")throw new Error("SQLite returned an invalid json_patch result");return r}function ec(e,t,n,r,o){let i=ve(),a=new Map;for(let l of n){let d=M(l.rowId),c=a.get(d)??[];c.push({...l,rowId:d}),a.set(d,c)}let s=[];for(let[l,d]of a){let c=[...new Set(d.map(g=>g.column))];if(c.length!==d.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let u=p.exec(`SELECT ${c.map(ee).join(", ")} FROM ${N(e)} WHERE rowid = ? LIMIT 2`,v([l]),{useBigInt:!0})[0];if((u?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let f=d.map((g,h)=>{let C=V(u.values[0][h*2],u.values[0][h*2+1],`${e}.${g.column}`,{textEncoding:i}),T=C.value,I=jt(g.value,T,g.operation??"set"),x=I.operation==="json_patch"?cr(T,I.value):I.value;return!o&&I.operation==="json_patch"&&He(x,r),{update:g,priorValue:T,priorState:C,prepared:I,storedValue:x}}),m=l;for(let g of f){let h=w(g.update.column),C=g.prepared.operation==="json_patch",T=C?typeof g.prepared.value=="string"?g.prepared.value:JSON.stringify(g.prepared.value):g.storedValue,I=C?`json_patch(COALESCE(${h}, '{}'), ?)`:G(g.storedValue);if(p.run(`UPDATE ${N(e)} SET ${h} = ${I} WHERE rowid = ?`,v([T,m])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);m=wr(e,t,m,g.update.column,g.storedValue)}let y=p.exec(`SELECT ${c.map(ee).join(", ")} FROM ${N(e)} WHERE rowid = ? LIMIT 2`,v([m]),{useBigInt:!0})[0];if((y?.values.length??0)!==1)throw st(e);for(let[g,h]of f.entries())s.push({rowId:l,newRowId:m,columnName:h.update.column,priorValue:h.priorValue,newValue:h.prepared.value,priorState:h.priorState,postState:V(y.values[0][g*2],y.values[0][g*2+1],`${e}.${h.update.column}`,{textEncoding:i}),operation:h.prepared.operation})}return s}async function tc(e,t={}){if(!p)throw new Error("No database initialized");t=mi(t,1e3);let{columns:n=null,offset:r,limit:o,orderBy:i=null,orderDir:a="ASC",filters:s=[],globalFilter:l="",globalFilterColumns:d=null}=t,c=n,u=i,f=null,m,y,g=!1;if(n?.[0]?.toLowerCase()==="rowid")if(y=await ls(e),y?.kind==="primaryKey"){let $=y,P=n.slice(1),ne=$.columns.map(we=>we.identifier).filter(we=>!P.includes(we));c=[...P,...ne],m={identity:$,visibleColumns:P},qn({...t,columns:n})&&(u=null,f=$.columns.map(we=>we.identifier))}else y?.kind==="rowid"&&(g=(p.exec(rt,[e,e])[0]?.values.length??0)>0);let h=y?.kind==="primaryKey"||g?y:void 0,C=Fn(t,h),T=C?Wn(e,t):void 0,I=C?ui(e,t,h):void 0,x=g&&c?.[0]?.toLowerCase()==="rowid"&&c.length>Jt,S=x?c.slice(1):c,R;S&&S.length>0?R=S.map(($,P)=>g&&P===0&&$.toLowerCase()==="rowid"?`${w($)} AS ${w("rowid")}`:w($)).join(", "):R="*";let _=[],A=[];if(s&&s.length>0)for(let $ of s){let P=Te($.value);$.column&&P!==void 0&&(_.push(`${w($.column)} LIKE ? ESCAPE '\\'`),A.push(`%${et(P)}%`))}let L=Te(l);if(L!==void 0){let $=Yi(n,d);if($.length>0){let P=$.map(ne=>`${w(ne)} LIKE ? ESCAPE '\\'`);_.push(`(${P.join(" OR ")})`);for(let ne=0;ne<$.length;ne++)A.push(`%${et(L)}%`)}}let E=A,O=$=>{if(I)return di({selectListSql:$,escapedTable:N(e),whereClauses:_,filterParams:E,plan:I});let P=`SELECT ${$} FROM ${N(e)}`;_.length>0&&(P+=` WHERE ${_.join(" AND ")}`);let ne=ci(C,I),we=ne?ne.orderByColumns:f??(u?[u]:[]);if(we.length>0){let Is=ne?ne.orderDir:a==="DESC"?"DESC":"ASC";P+=` ORDER BY ${we.map(xs=>`${w(xs)} ${Is}`).join(", ")}`}return P+=` LIMIT ${parseInt(o,10)} OFFSET ${parseInt(r,10)}`,{sql:P,params:E}},{sql:q,params:Y}=O(R);A=Y;let X=x?O(w("rowid")):void 0,le=p.prepare(q,A),Pe=le.getColumnNames(),Re=x?["rowid",...Pe]:Pe;le.free();let Es=Number.isSafeInteger(t.maxInlineCellBytes)&&t.maxInlineCellBytes>0?t.maxInlineCellBytes:kt,ws=Number.isSafeInteger(t.maxPageResponseBytes)&&t.maxPageResponseBytes>0?t.maxPageResponseBytes:he,br={limit:parseInt(o,10),maxInlineCellBytes:Math.min(kt,Es),maxPageResponseBytes:Math.min(he,ws)},Ss=m?m.identity.columns.map($=>{let P=Re.indexOf($.identifier);if(P<0)throw new Error(`Primary-key column missing from table fetch: ${$.identifier}`);return P}):[],Tr=C?C.keyColumns.map($=>Re.indexOf($)).filter($=>$>=0):[],Cr=[...new Set([...Ss,...Tr])],bs=x?Cr.filter($=>$>0).map($=>$-1):Cr,Rr=Pe.length*2+1<=Jt?Pe.map(($,P)=>P):bs,ce=Bt(q,Pe.length,br,Rr),sn=ot(ce.sql,ce.primaryTransportColumnCount),Ts=p.exec(sn.sql,A,{useBigInt:!0}),wt=No(Ts[0]?.values??[],void 0,ce),ke=(X?p.exec(X.sql,X.params,{useBigInt:!0}):void 0)?.[0]?.values;if(ke&&ke.length!==wt.length)throw new Error("Synthetic rowid companion row count does not match the value page");let Ee=ke?ke.map(($,P)=>{if($.length!==1)throw new Error(`Synthetic rowid companion row ${P} is not one value`);return[$[0],...wt[P]]}):wt,Ir=[],an=Re[0]?.toLowerCase()==="rowid",ln=an&&ao(Ee,0),xr=sn.valueColumnCount===void 0&&an;if(!g&&(xr||ln)&&Ee.length>0&&(g=(p.exec(rt,[e,e])[0]?.values.length??0)>0),g&&xr)for(let $ of lo(e,Re,Ee.map(P=>P[0]))){let P=p.exec($.sql,$.params,{useBigInt:!0});Ir.push({query:$,rows:P[0]?.values??[]})}let Ar=co(Ee,Ir),cn=Ue(wt,sn.valueColumnCount,x?void 0:Ar,!x&&g&&ln?0:void 0),Nr=qt(cn.rows,Pe.length,cn.exactIntegerTexts,br.maxPageResponseBytes),_r=ke?_o(Ue(ke,void 0,void 0,ln?0:void 0).rows.map($=>$[0]),Nr,Ar):Nr,un=$o(cn.rows,ce),Be=Rr.length>0?Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]):void 0,dn=x?ce.rawTextColumnIndices.map($=>$+1):ce.rawTextColumnIndices,Cs=Be?vo({sourceRows:Ee,rawTextRows:un,rawTextColumnIndices:dn,textEncoding:Be,contained:_r}):_r,{rows:fn,oversizedCells:Ze,exactIntegerTexts:mn}=Cs,ue=y?.kind==="rowid"&&an&&!g?Bo({rows:fn,oversizedCells:Ze,exactIntegerTexts:mn,rowOffset:parseInt(r,10)}):void 0,Ie=m&&Be?Uo({identity:m.identity,sourceColumns:Re,visibleColumnCount:m.visibleColumns.length,identityRows:Ee,rawTextBytes:un,rawTextColumnIndices:dn,rawTextValidationUnavailable:ce.rawTextValidationUnavailable,textEncoding:Be,rows:fn,oversizedCells:Ze,exactIntegerTexts:mn,effectiveInlineCellBytes:ce.effectiveInlineCellBytes,rowOffset:parseInt(r,10)}):void 0,Rs=C&&Be?Lo({sourceRows:Ee,sourceColumnIndices:Tr,rawTextRows:un,rawTextColumnIndices:dn,textEncoding:Be,rawTextValidationUnavailable:ce.rawTextValidationUnavailable}):void 0,St=C&&T!==void 0?fi({tag:T,key:C,projectionColumns:Re,rows:Ee,oversizedCells:Ze,excludedRowIndices:Rs}):void 0;return m&&Ie?{headers:["rowid",...m.visibleColumns],rows:Ie.rows,exactIntegerTexts:Ie.exactIntegerTexts,...Ie.oversizedCells?{oversizedCells:Ie.oversizedCells}:{},...Ie.readOnlyRowReasons?{readOnlyRowReasons:Ie.readOnlyRowReasons}:{},...St?{keysetAnchors:St}:{}}:{headers:Re,rows:ue?.rows??fn,exactIntegerTexts:ue?ue.exactIntegerTexts:mn,...(ue?ue.oversizedCells:Ze)?{oversizedCells:ue?ue.oversizedCells:Ze}:{},...ue?.readOnlyRowReasons?{readOnlyRowReasons:ue.readOnlyRowReasons}:{},...St?{keysetAnchors:St}:{}}}async function nc(e,t={}){if(!p)throw new Error("No database initialized");let{columns:n=[],filters:r=[],globalFilter:o="",globalFilterColumns:i=null}=t,a=`SELECT COUNT(*) FROM ${N(e)}`,s=[],l=[];if(r&&r.length>0)for(let f of r){let m=Te(f.value);f.column&&m!==void 0&&(s.push(`${w(f.column)} LIKE ? ESCAPE '\\'`),l.push(`%${et(m)}%`))}let d=Te(o);if(d!==void 0){let f=Yi(n,i);if(f.length>0){let m=f.map(y=>`${w(y)} LIKE ? ESCAPE '\\'`);s.push(`(${m.join(" OR ")})`);for(let y=0;y0&&(a+=` WHERE ${s.join(" AND ")}`);let c={storage:ze,filtered:s.length>0,authorityConfirmedRowIdTable:!0,pagedFileSizeBytes:Oe,exactCountMaxFileBytes:Qi};if(Jn(c)){let f=!1;try{if(f=(p.exec(rt,[e,e])[0]?.values.length??0)>0,Jn({...c,authorityConfirmedRowIdTable:f})){let y=p.exec(Oi(e)),g=Pi(y[0]?.values?.[0]);if(g!==void 0)return{count:g,isExact:!1}}}catch{}if(!f){let m=!1;try{m=(p.exec($i,[e])[0]?.values.length??0)>0}catch{}if(m){try{let y=p.exec(Li(e),[Ke+1]),g=vi(y[0]?.values?.[0]?.[0],Oe);if(g)return g}catch{}return{count:Zn(Oe),isExact:!1}}}}let u=p.exec(a,l);return u.length===0||u[0].values.length===0?{count:0,isExact:!0}:{count:u[0].values[0][0],isExact:!0}}async function rc(){if(!p)throw new Error("No database initialized");let e=p.exec(` SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name @@ -63,6 +63,6 @@ ${t}`);if(!n.getSQL().trimEnd().endsWith(t))throw n.free(),new Error("Exactly on SELECT name, tbl_name FROM sqlite_master WHERE type = 'index' AND name NOT LIKE 'sqlite_%' ORDER BY name - `)[0]?.values||[]).map(l=>({identifier:l[0],parentTable:l[1]}));return{tables:r,views:i,indexes:s}}async function Sr(e){if(!p)throw new Error("No database initialized");let t=p.exec(io,[e]);return t.length===0?[]:t[0].values.filter(n=>Number(n[6]??0)!==1).map(n=>({ordinal:n[0],identifier:n[1],declaredType:n[2],isRequired:n[3],defaultExpression:n[4],primaryKeyPosition:n[5],isGenerated:Number(n[6]??0)===2||Number(n[6]??0)===3,isRowidAlias:Number(n[7]??0)===1}))}function ls(){let e=n=>{let r=p.prepare(n),o=[];try{for(;r.step();)o.push(r.get());return o}finally{r.free()}},t=e("PRAGMA main.schema_version")[0]?.[0];if(!Number.isSafeInteger(t))throw new Error("Unable to read the destination database schema version.");return JSON.stringify([t,e("SELECT type, name, tbl_name, sql FROM temp.sqlite_schema ORDER BY type, name")])}async function rc(e){if(!p)throw new Error("No database initialized");W(e,"Table name");let t=k("sp_import_preview");b(`SAVEPOINT ${t}`);try{let n=await Sr(e);if(!n.length)throw new Error(`Table not found: ${e}`);let r=ls();return b(`RELEASE SAVEPOINT ${t}`),{columns:n,schemaVersion:r}}catch(n){throw B(t,"getImportTarget"),n}}function en(e){return(p.exec("SELECT name FROM pragma.pragma_table_xinfo(?) WHERE hidden = 0 ORDER BY cid",[e])[0]?.values??[]).map(n=>{if(typeof n[0]!="string")throw new Error(`SQLite returned invalid column metadata for ${e}`);return n[0]})}function oc(e,t,n,r){let o=ve(),i=U(n,t),a=r.map(ee),l=p.exec(`SELECT ${a.join(", ")||"1"} FROM ${N(e)} WHERE ${i.sql} LIMIT 2`,v(i.params),{useBigInt:!0})[0]?.values??[];if(l.length!==1)throw new Ce(e);let d=r.map((c,u)=>V(l[0][u*2],l[0][u*2+1],`${e}.${c}`,{textEncoding:o}));return{rowId:n,row:Object.fromEntries(r.map((c,u)=>[c,d[u].rawTextBytes??d[u].value])),storageClasses:r.map((c,u)=>({column:c,storageClass:d[u].storageClass}))}}function ic(e,t,n,r,o){if(o===void 0)return;let i=U(n,t),a=oi(r,t.kind==="rowid"),s=ii(e,a,i),l=p.exec(s.sql,v(s.params),{useBigInt:!0})[0]?.values?.[0],d=si(l);ai({table:e,insertableColumns:r,includeSyntheticRowId:t.kind==="rowid",rowIds:[n],rowCount:d.rowCount,valueBytes:d.valueBytes,maxSnapshotBytes:o,operation:"Insert"})}function Wi(e,t,n,r){let o=en(e),i=U(n,t);return dr(e,[n],o,[i]),ic(e,t,n,o,r),oc(e,t,n,o)}async function sc(){if(!p)throw new Error("No database initialized");let e={},t=["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","encoding","auto_vacuum"];for(let n of t)try{let r=p.exec(`PRAGMA ${n}`);r.length>0&&r[0].values.length>0&&(e[n]=r[0].values[0][0])}catch{}return e}async function ac(e,t){if(!p)throw new Error("No database initialized");if(Q("Pragma updates"),!["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","auto_vacuum"].includes(e))throw new Error(`Invalid or disallowed PRAGMA: ${e}`);let r;if(typeof t=="string"){if(!/^[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid PRAGMA string value: contains disallowed characters");r=`PRAGMA ${e} = '${t}'`}else if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Invalid PRAGMA numeric value: must be finite");r=`PRAGMA ${e} = ${t}`}else if(typeof t=="boolean")r=`PRAGMA ${e} = ${t?"ON":"OFF"}`;else throw new Error(`Invalid PRAGMA value type: ${typeof t}`);b(r)}async function lc(e,t,n,r,o,i,a){let s=a===gr,l=!s&&i!==void 0,d=s?0:je([r],i);if(Ae(t),!p)throw new Error("No database initialized");if(Q("Cell updates"),Z(t))return(await ys(e,[{rowId:t,column:n,value:r,operation:"set"}],void 0,i,a))[0]?.newRowId??t;let c=M(t);if((await te(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let f=k("sp_update_rowid_cell");b(`SAVEPOINT ${f}`);try{let m=Er(e);Et(e,[n]);let y=w(n);if(p.run(`UPDATE ${N(e)} SET ${y} = ${G(r)} WHERE rowid = ?`+(l?` AND NOT (typeof(${y}) IN ('text', 'blob') AND length(CAST(${y} AS BLOB)) > ?)`:""),v(l?[r,c,d]:[r,c])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1){if(l){let C=await Zt({table:e,rowId:c,column:n});if((C.storageClass==="text"||C.storageClass==="blob")&&C.byteLength>d)throw new Fe(e,n,C.storageClass,C.byteLength,d)}throw new Error(`Cannot update ${e}.${n}: row ${t} no longer exists`)}let h=wr(e,m,c,n,r);return b(`RELEASE ${f}`),h}catch(m){throw B(f,"updateCell"),m}}async function cc(e,t,n,r,o,i){let a=je([r],i);if(Si(o,a),Ae(t),!p)throw new Error("No database initialized");Q("Oversized cell replacement");let s=await te(e),l=U(t,s),d=w(n),c=()=>{if(p.run(`UPDATE ${N(e)} SET ${d} = ${G(r)} WHERE ${l.sql} AND typeof(${d}) = ? AND length(CAST(${d} AS BLOB)) = ?`,v([r,...l.params,o.storageClass,o.byteLength])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(hi);if(s.kind==="rowid")return wr(e,Er(e),M(t),n,r);let m=s.columns.findIndex(g=>g.identifier===n),y=Nn(t,s,m>=0?[{column:n,value:r}]:[]);return rn(e,s,U(y,s),lr(e))},u=k("sp_replace_oversized_cell");b(`SAVEPOINT ${u}`);try{Et(e,[n],s.kind==="rowid");let f=c();return b(`RELEASE ${u}`),f}catch(f){throw B(u,"replaceOversizedCell"),f}}async function cs(e,t,n,r,o,i){if(!p)throw new Error("No database initialized");Q("Row insertion"),r!==gr&&je(Object.values(t),n);let a=Object.keys(t),s=Object.values(t),l=await te(e),d;if(a.length===0)d=`INSERT INTO ${N(e)} DEFAULT VALUES`;else{let u=a.map(w).join(", "),f=s.map(G).join(", ");d=`INSERT INTO ${N(e)} (${u}) VALUES (${f})`}if(l.kind==="primaryKey"){let u=k("sp_insert_pk_row");b(`SAVEPOINT ${u}`);try{Le("INSERT",e,a);let f=p.prepare(`${d} RETURNING `+ut(l),v(s)),m;try{if(!f.step())throw new Error(`Insert into ${e} did not return a primary-key identity`);if(m=f.get(null,{useBigInt:!0}),!m||f.step())throw new Error(`Insert into ${e} did not return exactly one primary-key identity`)}finally{f.free()}let y=dt(l,m,Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot insert into ${e}`),g=rn(e,l,U(y,l)),h=o?Wi(e,l,g,i):g;return b(`RELEASE ${u}`),h}catch(f){throw B(u,"insertPrimaryKeyRow"),f}}let c=k("sp_insert_rowid_row");b(`SAVEPOINT ${c}`);try{Le("INSERT",e,a),p.run(d,v(s));let u=p.exec("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")[0]?.values?.[0];if(!u||Number(u[0])!==1)throw new Error(`Insert into ${e} did not create exactly one row`);let f=M(u[1]),m=U(f,l);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE ${m.sql} LIMIT 2`,v(m.params))[0]?.values.length??0)!==1)throw new Error(`Insert into ${e} did not leave one addressable row; the insert was rolled back`);let g=o?Wi(e,l,f,i):f;return b(`RELEASE ${c}`),g}catch(u){throw B(c,"insertRowIdRow"),u}}async function uc(e,t,n,r){return cs(e,t,n,r,!1)}async function dc(e,t,n,r){return cs(e,t,n,void 0,!0,r)}var Yt=40;function fc(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Import options must be an object");if(e.expectedSchemaVersion!==void 0&&typeof e.expectedSchemaVersion!="string")throw new Error("Import expectedSchemaVersion must be a string");let t=n=>{let r=e[n];if(r!==void 0){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Import ${n} must be a non-negative safe integer`);return r}};return{maxEditValueBytes:e.maxEditValueBytes,maxUndoSnapshotBytes:t("maxUndoSnapshotBytes"),maxSnapshotTransportBytes:t("maxSnapshotTransportBytes")}}function mc(e,t){if(!Array.isArray(e))throw new Error("Import rows must be an array");if(e.length===0)throw new Error("Import requires at least one row");if(e.length>er)throw new Error(`Import supports at most ${er.toLocaleString("en-US")} rows`);let n=je([],t),r=new Array(e.length),o=0;for(let i=0;itr)throw new Error(`Import supports at most ${tr} columns`);if(o+=s.length,o>nr)throw new Error(`Import supports at most ${nr.toLocaleString("en-US")} cells; split the file into smaller imports`);for(let l of s)W(l,"Column name"),He(a[l],n);r[i]=s}return r}function pc(e,t,n,r){let o=N(e),i=t.length===0?`INSERT INTO ${o} DEFAULT VALUES`:`INSERT INTO ${o} (${t.map(w).join(", ")}) VALUES (${n.join(", ")})`;return r.kind!=="primaryKey"?i:`${i} RETURNING ${ut(r)}`}function gc(e,t,n,r){let o=en(e),i=qe(n,t),a=t.kind==="rowid"?"CAST(rowid AS TEXT)":ut(t),s=t.kind==="rowid"?1:t.columns.length*2,l=o.map(ee),d=new Map(n.map((y,g)=>[String(y),g])),c=[],u=new Map,f=new Array(n.length),m=0;for(let y of i){let g=p.exec(`SELECT ${a}${l.length>0?", ":""}${l.join(", ")} FROM ${N(e)} WHERE ${y.sql}`,v(y.params),{useBigInt:!0})[0];for(let h of g?.values??[]){let C=t.kind==="rowid"?M(h[0]):dt(t,h.slice(0,s),r,`Cannot import into ${e}`),T=d.get(String(C));if(T===void 0||f[T]!==void 0)throw new Error(`Import into ${e} could not re-read an inserted row by its identity`);let x=o.map((_,A)=>V(h[s+A*2],h[s+A*2+1],`${e}.${_}`,{textEncoding:r})),I=x.map(_=>_.storageClass),S=I.join(","),R=u.get(S);R===void 0&&(R=c.length,c.push(I),u.set(S,R)),f[T]={rowId:C,values:x.map(_=>_.rawTextBytes??_.value),pattern:R},m+=1}}if(m!==n.length)throw new Error(`Import into ${e} inserted ${n.length} rows but could re-read only ${m}`);return{columns:o,storageClassPatterns:c,rows:f}}function ur(e){if(e==null)return 4;switch(typeof e){case"string":{let t=sr(e)+2;for(let n=0;nr.maxUndoSnapshotBytes)throw new Error(`Import undo history for ${t} rows into ${e} needs ${a} bytes, over the ${r.maxUndoSnapshotBytes}-byte undo memory budget; import fewer rows at a time or increase maxUndoMemory. No rows were imported.`)}let o=Math.min(r.maxSnapshotTransportBytes??Number.MAX_SAFE_INTEGER,Gt),i=ur({rowCount:t,snapshots:n});if(i>o)throw new Error(`Import undo history for ${t} rows into ${e} is about ${i} bytes encoded, over the ${o}-byte limit this engine can return in one edit; import fewer rows at a time. No rows were imported.`)}async function hc(e,t,n={}){if(!p)throw new Error("No database initialized");Q("Row import"),W(e,"Table name");let r=fc(n??{}),o=mc(t,r.maxEditValueBytes),i=k("sp_import_rows");b(`SAVEPOINT ${i}`);try{if(n?.expectedSchemaVersion!==void 0&&ls()!==n.expectedSchemaVersion)throw new Error("The destination database schema changed after the preview was prepared. Start the import again.");let a=await te(e),s=ve(),l=new Array(t.length),d=new Map,c=null;try{for(let f=0;fm[I]),h=g.map(G),C=`${JSON.stringify(y)}|${h.join(",")}`,T=d.get(C);if(T||(Le("INSERT",e,y),T=p.prepare(pc(e,y,h,a)),d.set(C,T)),T.bind(v(g)),a.kind==="primaryKey"){if(!T.step())throw new Error(`Import into ${e} did not return a primary-key identity`);let I=T.get(null,{useBigInt:!0});if(!I||T.step())throw new Error(`Import into ${e} did not return exactly one primary-key identity`);T.reset();let S=dt(a,I,s,`Cannot import into ${e}`);l[f]=rn(e,a,U(S,a));continue}T.step(),T.reset(),c??(c=p.prepare("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")),c.step();let x=c.get(null,{useBigInt:!0});if(c.reset(),!x||Number(x[0])!==1)throw new Error(`Import into ${e} did not create exactly one row for row ${f+1}`);l[f]=M(x[1])}}finally{for(let f of d.values())f.free();c?.free()}let u=gc(e,a,l,s);return yc(e,t.length,u,r),b(`RELEASE ${i}`),{rowCount:t.length,snapshots:u}}catch(a){throw B(i,"importRows"),a}}function us(e){if(e===null||typeof e!="object"||!Array.isArray(e.columns)||!Array.isArray(e.storageClassPatterns)||!Array.isArray(e.rows)||e.rows.length===0||e.columns.some(r=>typeof r!="string"))throw new K;let t=e.columns.length,n=e.storageClassPatterns.map(r=>{if(!Array.isArray(r)||r.length!==t)throw new K;return e.columns.map((o,i)=>({column:o,storageClass:r[i]}))});return e.rows.map(r=>{if(r===null||typeof r!="object"||!Array.isArray(r.values)||r.values.length!==t||!Number.isInteger(r.pattern)||r.pattern<0||r.pattern>=n.length)throw new K;return{rowId:r.rowId,row:Object.fromEntries(e.columns.map((o,i)=>[o,r.values[i]])),storageClasses:n[r.pattern]}})}var Fi=64;function or(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||n<0)throw new Error(`Demo delete snapshot ${t} exceeds the web transport safety bound`);return n}function Ec(e){let t=w(e);return`CASE typeof(${t}) WHEN 'text' THEN 6 * octet_length(${t}) WHEN 'blob' THEN 4 * ((octet_length(${t}) + 2) / 3) + 40 WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 4 END`}function wc(e){let t=w(e);return`COALESCE(MAX(CASE WHEN typeof(${t}) = 'blob' THEN octet_length(${t}) ELSE 0 END), 0)`}function dr(e,t,n,r){let o=1024;for(let s of t)o+=64+6*String(s).length;let i=128+n.reduce((s,l)=>s+48+6*l.length,0),a=0;for(let s of r)for(let l=0;l0?", ":""}`+d.map(wc).join(", ")+` FROM ${N(e)} WHERE ${s.sql}`,v(s.params),{useBigInt:!0})[0]?.values?.[0];if(!c)throw new Error("Demo delete snapshot preflight returned no metadata");let u=or(c[0],"row count");l===0&&(a+=u,o+=u*i),o+=or(c[1],"encoded size");for(let f of c.slice(2))if(or(f,"BLOB size")>We)throw new Error(`Demo delete snapshot exceeds the ${We}-byte web transport binary limit; the row was not deleted`);if(!Number.isSafeInteger(o))throw new Error("Demo delete snapshot exceeds the web transport safety bound")}if(a!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);if(o>Gt)throw new Error(`Demo delete snapshot exceeds the ${Gt}-byte web transport response limit; no rows were deleted`)}async function Sc(e,t){if(t.forEach(Ae),!p)throw new Error("No database initialized");if(Q("Row deletion"),t.length===0)return[];let n=await te(e),r=ve();if(t.some(Z)){if(!t.every(Z))throw new Error("Cannot mix rowid and primary-key row identities");if(n.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let a=qe(t,n),s=k("sp_delete_pk_rows");b(`SAVEPOINT ${s}`);try{Le("DELETE",e);let l=en(e);dr(e,t,l,a);let d=[];for(let c of a){let f=p.exec(`SELECT ${l.map(ee).join(", ")||"1"} FROM ${N(e)} WHERE ${c.sql}`,v(c.params),{useBigInt:!0})[0]?.values??[],m=n.columns.map(y=>{let g=l.indexOf(y.identifier);if(g<0)throw new Error(`Primary-key column missing from ${e}: ${y.identifier}`);return g});d.push(...f.map(y=>{let g=l.map((h,C)=>V(y[C*2],y[C*2+1],`${e}.${h}`,{textEncoding:r}));return{rowId:Ve(n.columns,m.map(h=>g[h].value)),row:Object.fromEntries(l.map((h,C)=>[h,g[C].rawTextBytes??g[C].value])),storageClasses:l.map((h,C)=>({column:h,storageClass:g[C].storageClass}))}}))}if(d.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let c of a)p.run(`DELETE FROM ${N(e)} WHERE ${c.sql}`,v(c.params));return b(`RELEASE ${s}`),d}catch(l){throw B(s,"deletePrimaryKeyRows"),l}}if(n.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let o=qe(t,n),i=k("sp_delete_rowid_rows");b(`SAVEPOINT ${i}`);try{Le("DELETE",e);let a=en(e);dr(e,t,a,o);let s=[];for(let l of o){let d=p.exec(`SELECT CAST(rowid AS TEXT)${a.length>0?", ":""}${a.map(ee).join(", ")} FROM ${N(e)} WHERE ${l.sql}`,v(l.params),{useBigInt:!0})[0];s.push(...(d?.values??[]).map(c=>{let u=M(c[0]),f=a.map((m,y)=>V(c[y*2+1],c[y*2+2],`${e}.${m}`,{textEncoding:r}));return{rowId:u,row:Object.fromEntries(a.map((m,y)=>[m,f[y].rawTextBytes??f[y].value])),storageClasses:a.map((m,y)=>({column:m,storageClass:f[y].storageClass}))}}))}if(s.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let l of o)p.run(`DELETE FROM ${N(e)} WHERE ${l.sql}`,v(l.params));return b(`RELEASE ${i}`),s}catch(a){throw B(i,"deleteRowidRows"),a}}async function ds(e,t){if(!p)throw new Error("No database initialized");if(!Array.isArray(t))throw new Error("Column names must be an array");W(e,"Table name"),t.forEach(u=>W(u,"Column name"));let r=(p.exec("SELECT name, sql FROM main.sqlite_schema WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL ORDER BY name",[e])[0]?.values??[]).map(u=>({identifier:u[0],sql:u[1]}));if(r.length===0||t.length===0)return[];let i=(p.exec(`PRAGMA main.table_xinfo(${w(e)})`)[0]?.values??[]).map(u=>u[1]),a=Qr(i,t);if(a.length===0)return[];let s=crypto.randomUUID().replace(/-/g,""),l=`__sqlite_explorer_index_probe_${s}`,d=`__sqlite_explorer_index_candidate_${s}`,c=k("sp_index_dependencies");b(`SAVEPOINT ${c}`);try{b(zr(l,i));let u=k("sp_index_baseline");b(`SAVEPOINT ${u}`);try{for(let m of a)b(`ALTER TABLE temp.${w(l)} DROP COLUMN ${w(m)}`);b(`ROLLBACK TO ${u}`),b(`RELEASE ${u}`)}catch(m){throw B(u,"findDependentIndexBaseline"),new Error("Cannot establish the index dependency probe baseline",{cause:m})}let f=[];for(let m of r){let y=k("sp_index_candidate");b(`SAVEPOINT ${y}`);try{b(Xr(l,d,m.sql));let g=!1;for(let h of a)try{b(`ALTER TABLE temp.${w(l)} DROP COLUMN ${w(h)}`)}catch{g=!0;break}b(`ROLLBACK TO ${y}`),b(`RELEASE ${y}`),g&&f.push(m)}catch(g){throw B(y,"findDependentIndex"),new Error(`Cannot inspect dependency for index ${w(m.identifier)}`,{cause:g})}}return b(`ROLLBACK TO ${c}`),b(`RELEASE ${c}`),f}catch(u){throw B(c,"findDependentIndexes"),u}}function bc(e){if(e!==void 0){if(!Array.isArray(e))throw new Error("Dependent-index confirmation must be an array");return e.map(t=>{if(!t||typeof t!="object"||Array.isArray(t)||typeof t.identifier!="string"||typeof t.sql!="string")throw new Error("Dependent-index confirmation contains an invalid definition");return W(t.identifier,"Index name"),{identifier:t.identifier,sql:t.sql}})}}function Tc(e,t,n){if(t.length===0&&(n?.length??0)===0)return;if(!n)throw new Error("Column deletion requires confirmation for dependent indexes: "+t.map(i=>i.identifier).join(", "));let r=new Map(n.map(i=>[i.identifier,i.sql]));if(!(r.size===n.length&&n.length===t.length&&t.every(i=>r.get(i.identifier)===i.sql)))throw new Error(`Cannot delete columns from ${e}: dependent indexes changed while the confirmation was open`)}async function Cc(e,t,n){if(!p)throw new Error("No database initialized");if(Q("Column deletion"),t.length===0)return;let r=k("sp_delete_columns");b(`SAVEPOINT ${r}`);try{let o=bc(n),i=await ds(e,t);Tc(e,i,o),await Qo(e,t,i.map(a=>a.identifier),a=>b(a)),b(`RELEASE ${r}`)}catch(o){throw B(r,"deleteColumns"),Rc(o,t)}}function Rc(e,t){let n;try{n=Ic(t)}catch{return e}if(n.length===0)return e;let r=e instanceof Error?e.message:String(e),o=n.map(i=>`${i.type} ${i.identifier}`).join(", ");return new Error(`${r} \u2014 these schema objects mention ${t.join(", ")} and may be blocking the drop: ${o}. Drop or edit them first.`,{cause:e})}function Ic(e){return(p.exec(Ko)[0]?.values??[]).filter(n=>typeof n[1]=="string"&&typeof n[2]=="string"&&e.some(r=>zo(n[2],r))).map(n=>({type:n[0],identifier:n[1]}))}async function xc(e,t,n){if(!p)throw new Error("No database initialized");Q("Table creation");let r=Gr(e,t,n),o=k("sp_create_table");b(`SAVEPOINT ${o}`);try{let i=await j();b(r),ge(i,await j()),b(`RELEASE ${o}`)}catch(i){throw B(o,"createTable"),i}}async function fs(e,t=!1){if(!p)throw new Error("No database initialized");let r=p.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0]?.[0];if(typeof r!="string")return null;let o=bt.map(c=>p.exec(c.sql,c.params(e))[0]?.values||[]),{triggers:i,ambiguousTemporaryTriggerNames:a,unqualifiedTemporaryTriggers:s}=Br(e,o);if(s.length>0){let u=(p.exec("SELECT name FROM pragma.pragma_table_xinfo(?, 'main') ORDER BY cid",[e])[0]?.values??[]).map(f=>{if(typeof f[0]!="string")throw new Error(`SQLite returned invalid view column metadata for ${e}`);return f[0]});for(let f of s){if(i.some(m=>!m.temporary&&Me(m.identifier,f.identifier))){a.push(f.identifier);continue}try{let m=Ct(f.sql,"main",e,u);if(m===void 0){a.push(f.identifier);continue}let y=p.exec(m);kr(y[0]?.values??[],f.identifier)&&i.push({...f,sql:En(f.sql,f.identifier)})}catch{a.push(f.identifier)}}}let l,d;try{l=Mr(r),d=hn(r)}catch(c){if(!t)throw c;l=""}return{identifier:e,sql:r,selectSql:l,columnListSql:d,triggers:i,...a.length>0?{ambiguousTemporaryTriggerNames:a}:{}}}async function ms(e,t=!1){let n=await fs(e,t);if(!n)throw new Error(`View not found: ${e}`);return n}async function tn(e){return ms(e,!1)}function j(){return Hr({queryRows:async(e,t)=>p.exec(e,v(t))[0]?.values??[],compileStatements:async e=>e.map(t=>{try{Je(t);return}catch(n){return oe(n)}})})}function ps(e,t){let r=p.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0];Vr(e,r!==void 0,t);let o=r?.[0];return{storedSql:o,columnListSql:typeof o=="string"?hn(o):void 0}}function Q(e){if(H)throw new Error(`${e} is unavailable because the database is read-only`)}async function Ac(e,t,n="edit"){if(W(e,"View name"),!p)throw new Error("No database initialized");if(H)throw new Error("View validation is unavailable because the database is read-only");let r=pe(t),{storedSql:o,columnListSql:i}=ps(e,n),a=k("sp_validate_view");b(`SAVEPOINT ${a}`);try{let s=await j();typeof o=="string"&&b(`DROP VIEW ${J(e)}`),b(tt(e,r,i)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),ge(s,await j()),b(`ROLLBACK TO ${a}`),b(`RELEASE ${a}`)}catch(s){throw B(a,"validateViewDefinition"),s}}async function Nc(e,t,n=50,r="edit",o){if(W(e,"View name"),!p)throw new Error("No database initialized");let i=pe(t),a=Math.max(1,Math.min(100,Math.trunc(n)||50)),{storedSql:s,columnListSql:l}=ps(e,r);if(H){let c=w(e);return rr(l?`WITH ${c} ${l} AS (${i} + `)[0]?.values||[]).map(l=>({identifier:l[0],parentTable:l[1]}));return{tables:r,views:i,indexes:s}}async function Sr(e){if(!p)throw new Error("No database initialized");let t=p.exec(io,[e]);return t.length===0?[]:t[0].values.filter(n=>Number(n[6]??0)!==1).map(n=>({ordinal:n[0],identifier:n[1],declaredType:n[2],isRequired:n[3],defaultExpression:n[4],primaryKeyPosition:n[5],isGenerated:Number(n[6]??0)===2||Number(n[6]??0)===3,isRowidAlias:Number(n[7]??0)===1}))}function cs(){let e=n=>{let r=p.prepare(n),o=[];try{for(;r.step();)o.push(r.get());return o}finally{r.free()}},t=e("PRAGMA main.schema_version")[0]?.[0];if(!Number.isSafeInteger(t))throw new Error("Unable to read the destination database schema version.");return JSON.stringify([t,e("SELECT type, name, tbl_name, sql FROM temp.sqlite_schema ORDER BY type, name")])}async function oc(e){if(!p)throw new Error("No database initialized");W(e,"Table name");let t=k("sp_import_preview");b(`SAVEPOINT ${t}`);try{let n=await Sr(e);if(!n.length)throw new Error(`Table not found: ${e}`);let r=cs();return b(`RELEASE SAVEPOINT ${t}`),{columns:n,schemaVersion:r}}catch(n){throw B(t,"getImportTarget"),n}}function en(e){return(p.exec("SELECT name FROM pragma.pragma_table_xinfo(?) WHERE hidden = 0 ORDER BY cid",[e])[0]?.values??[]).map(n=>{if(typeof n[0]!="string")throw new Error(`SQLite returned invalid column metadata for ${e}`);return n[0]})}function ic(e,t,n,r){let o=ve(),i=U(n,t),a=r.map(ee),l=p.exec(`SELECT ${a.join(", ")||"1"} FROM ${N(e)} WHERE ${i.sql} LIMIT 2`,v(i.params),{useBigInt:!0})[0]?.values??[];if(l.length!==1)throw new Ce(e);let d=r.map((c,u)=>V(l[0][u*2],l[0][u*2+1],`${e}.${c}`,{textEncoding:o}));return{rowId:n,row:Object.fromEntries(r.map((c,u)=>[c,d[u].rawTextBytes??d[u].value])),storageClasses:r.map((c,u)=>({column:c,storageClass:d[u].storageClass}))}}function sc(e,t,n,r,o){if(o===void 0)return;let i=U(n,t),a=ii(r,t.kind==="rowid"),s=si(e,a,i),l=p.exec(s.sql,v(s.params),{useBigInt:!0})[0]?.values?.[0],d=ai(l);li({table:e,insertableColumns:r,includeSyntheticRowId:t.kind==="rowid",rowIds:[n],rowCount:d.rowCount,valueBytes:d.valueBytes,maxSnapshotBytes:o,operation:"Insert"})}function Fi(e,t,n,r){let o=en(e),i=U(n,t);return dr(e,[n],o,[i]),sc(e,t,n,o,r),ic(e,t,n,o)}async function ac(){if(!p)throw new Error("No database initialized");let e={},t=["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","encoding","auto_vacuum"];for(let n of t)try{let r=p.exec(`PRAGMA ${n}`);r.length>0&&r[0].values.length>0&&(e[n]=r[0].values[0][0])}catch{}return e}async function lc(e,t){if(!p)throw new Error("No database initialized");if(Q("Pragma updates"),!["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","auto_vacuum"].includes(e))throw new Error(`Invalid or disallowed PRAGMA: ${e}`);let r;if(typeof t=="string"){if(!/^[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid PRAGMA string value: contains disallowed characters");r=`PRAGMA ${e} = '${t}'`}else if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Invalid PRAGMA numeric value: must be finite");r=`PRAGMA ${e} = ${t}`}else if(typeof t=="boolean")r=`PRAGMA ${e} = ${t?"ON":"OFF"}`;else throw new Error(`Invalid PRAGMA value type: ${typeof t}`);b(r)}async function cc(e,t,n,r,o,i,a){let s=a===gr,l=!s&&i!==void 0,d=s?0:je([r],i);if(Ae(t),!p)throw new Error("No database initialized");if(Q("Cell updates"),Z(t))return(await hs(e,[{rowId:t,column:n,value:r,operation:"set"}],void 0,i,a))[0]?.newRowId??t;let c=M(t);if((await te(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let f=k("sp_update_rowid_cell");b(`SAVEPOINT ${f}`);try{let m=Er(e);Et(e,[n]);let y=w(n);if(p.run(`UPDATE ${N(e)} SET ${y} = ${G(r)} WHERE rowid = ?`+(l?` AND NOT (typeof(${y}) IN ('text', 'blob') AND length(CAST(${y} AS BLOB)) > ?)`:""),v(l?[r,c,d]:[r,c])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1){if(l){let C=await Zt({table:e,rowId:c,column:n});if((C.storageClass==="text"||C.storageClass==="blob")&&C.byteLength>d)throw new Fe(e,n,C.storageClass,C.byteLength,d)}throw new Error(`Cannot update ${e}.${n}: row ${t} no longer exists`)}let h=wr(e,m,c,n,r);return b(`RELEASE ${f}`),h}catch(m){throw B(f,"updateCell"),m}}async function uc(e,t,n,r,o,i){let a=je([r],i);if(bi(o,a),Ae(t),!p)throw new Error("No database initialized");Q("Oversized cell replacement");let s=await te(e),l=U(t,s),d=w(n),c=()=>{if(p.run(`UPDATE ${N(e)} SET ${d} = ${G(r)} WHERE ${l.sql} AND typeof(${d}) = ? AND length(CAST(${d} AS BLOB)) = ?`,v([r,...l.params,o.storageClass,o.byteLength])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(Ei);if(s.kind==="rowid")return wr(e,Er(e),M(t),n,r);let m=s.columns.findIndex(g=>g.identifier===n),y=Nn(t,s,m>=0?[{column:n,value:r}]:[]);return rn(e,s,U(y,s),lr(e))},u=k("sp_replace_oversized_cell");b(`SAVEPOINT ${u}`);try{Et(e,[n],s.kind==="rowid");let f=c();return b(`RELEASE ${u}`),f}catch(f){throw B(u,"replaceOversizedCell"),f}}async function us(e,t,n,r,o,i){if(!p)throw new Error("No database initialized");Q("Row insertion"),r!==gr&&je(Object.values(t),n);let a=Object.keys(t),s=Object.values(t),l=await te(e),d;if(a.length===0)d=`INSERT INTO ${N(e)} DEFAULT VALUES`;else{let u=a.map(w).join(", "),f=s.map(G).join(", ");d=`INSERT INTO ${N(e)} (${u}) VALUES (${f})`}if(l.kind==="primaryKey"){let u=k("sp_insert_pk_row");b(`SAVEPOINT ${u}`);try{Le("INSERT",e,a);let f=p.prepare(`${d} RETURNING `+ut(l),v(s)),m;try{if(!f.step())throw new Error(`Insert into ${e} did not return a primary-key identity`);if(m=f.get(null,{useBigInt:!0}),!m||f.step())throw new Error(`Insert into ${e} did not return exactly one primary-key identity`)}finally{f.free()}let y=dt(l,m,Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot insert into ${e}`),g=rn(e,l,U(y,l)),h=o?Fi(e,l,g,i):g;return b(`RELEASE ${u}`),h}catch(f){throw B(u,"insertPrimaryKeyRow"),f}}let c=k("sp_insert_rowid_row");b(`SAVEPOINT ${c}`);try{Le("INSERT",e,a),p.run(d,v(s));let u=p.exec("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")[0]?.values?.[0];if(!u||Number(u[0])!==1)throw new Error(`Insert into ${e} did not create exactly one row`);let f=M(u[1]),m=U(f,l);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE ${m.sql} LIMIT 2`,v(m.params))[0]?.values.length??0)!==1)throw new Error(`Insert into ${e} did not leave one addressable row; the insert was rolled back`);let g=o?Fi(e,l,f,i):f;return b(`RELEASE ${c}`),g}catch(u){throw B(c,"insertRowIdRow"),u}}async function dc(e,t,n,r){return us(e,t,n,r,!1)}async function fc(e,t,n,r){return us(e,t,n,void 0,!0,r)}var Yt=40;function mc(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Import options must be an object");if(e.expectedSchemaVersion!==void 0&&typeof e.expectedSchemaVersion!="string")throw new Error("Import expectedSchemaVersion must be a string");let t=n=>{let r=e[n];if(r!==void 0){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Import ${n} must be a non-negative safe integer`);return r}};return{maxEditValueBytes:e.maxEditValueBytes,maxUndoSnapshotBytes:t("maxUndoSnapshotBytes"),maxSnapshotTransportBytes:t("maxSnapshotTransportBytes")}}function pc(e,t){if(!Array.isArray(e))throw new Error("Import rows must be an array");if(e.length===0)throw new Error("Import requires at least one row");if(e.length>er)throw new Error(`Import supports at most ${er.toLocaleString("en-US")} rows`);let n=je([],t),r=new Array(e.length),o=0;for(let i=0;itr)throw new Error(`Import supports at most ${tr} columns`);if(o+=s.length,o>nr)throw new Error(`Import supports at most ${nr.toLocaleString("en-US")} cells; split the file into smaller imports`);for(let l of s)W(l,"Column name"),He(a[l],n);r[i]=s}return r}function gc(e,t,n,r){let o=N(e),i=t.length===0?`INSERT INTO ${o} DEFAULT VALUES`:`INSERT INTO ${o} (${t.map(w).join(", ")}) VALUES (${n.join(", ")})`;return r.kind!=="primaryKey"?i:`${i} RETURNING ${ut(r)}`}function yc(e,t,n,r){let o=en(e),i=qe(n,t),a=t.kind==="rowid"?"CAST(rowid AS TEXT)":ut(t),s=t.kind==="rowid"?1:t.columns.length*2,l=o.map(ee),d=new Map(n.map((y,g)=>[String(y),g])),c=[],u=new Map,f=new Array(n.length),m=0;for(let y of i){let g=p.exec(`SELECT ${a}${l.length>0?", ":""}${l.join(", ")} FROM ${N(e)} WHERE ${y.sql}`,v(y.params),{useBigInt:!0})[0];for(let h of g?.values??[]){let C=t.kind==="rowid"?M(h[0]):dt(t,h.slice(0,s),r,`Cannot import into ${e}`),T=d.get(String(C));if(T===void 0||f[T]!==void 0)throw new Error(`Import into ${e} could not re-read an inserted row by its identity`);let I=o.map((_,A)=>V(h[s+A*2],h[s+A*2+1],`${e}.${_}`,{textEncoding:r})),x=I.map(_=>_.storageClass),S=x.join(","),R=u.get(S);R===void 0&&(R=c.length,c.push(x),u.set(S,R)),f[T]={rowId:C,values:I.map(_=>_.rawTextBytes??_.value),pattern:R},m+=1}}if(m!==n.length)throw new Error(`Import into ${e} inserted ${n.length} rows but could re-read only ${m}`);return{columns:o,storageClassPatterns:c,rows:f}}function ur(e){if(e==null)return 4;switch(typeof e){case"string":{let t=sr(e)+2;for(let n=0;nr.maxUndoSnapshotBytes)throw new Error(`Import undo history for ${t} rows into ${e} needs ${a} bytes, over the ${r.maxUndoSnapshotBytes}-byte undo memory budget; import fewer rows at a time or increase maxUndoMemory. No rows were imported.`)}let o=Math.min(r.maxSnapshotTransportBytes??Number.MAX_SAFE_INTEGER,Gt),i=ur({rowCount:t,snapshots:n});if(i>o)throw new Error(`Import undo history for ${t} rows into ${e} is about ${i} bytes encoded, over the ${o}-byte limit this engine can return in one edit; import fewer rows at a time. No rows were imported.`)}async function Ec(e,t,n={}){if(!p)throw new Error("No database initialized");Q("Row import"),W(e,"Table name");let r=mc(n??{}),o=pc(t,r.maxEditValueBytes),i=k("sp_import_rows");b(`SAVEPOINT ${i}`);try{if(n?.expectedSchemaVersion!==void 0&&cs()!==n.expectedSchemaVersion)throw new Error("The destination database schema changed after the preview was prepared. Start the import again.");let a=await te(e),s=ve(),l=new Array(t.length),d=new Map,c=null;try{for(let f=0;fm[x]),h=g.map(G),C=`${JSON.stringify(y)}|${h.join(",")}`,T=d.get(C);if(T||(Le("INSERT",e,y),T=p.prepare(gc(e,y,h,a)),d.set(C,T)),T.bind(v(g)),a.kind==="primaryKey"){if(!T.step())throw new Error(`Import into ${e} did not return a primary-key identity`);let x=T.get(null,{useBigInt:!0});if(!x||T.step())throw new Error(`Import into ${e} did not return exactly one primary-key identity`);T.reset();let S=dt(a,x,s,`Cannot import into ${e}`);l[f]=rn(e,a,U(S,a));continue}T.step(),T.reset(),c??(c=p.prepare("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")),c.step();let I=c.get(null,{useBigInt:!0});if(c.reset(),!I||Number(I[0])!==1)throw new Error(`Import into ${e} did not create exactly one row for row ${f+1}`);l[f]=M(I[1])}}finally{for(let f of d.values())f.free();c?.free()}let u=yc(e,a,l,s);return hc(e,t.length,u,r),b(`RELEASE ${i}`),{rowCount:t.length,snapshots:u}}catch(a){throw B(i,"importRows"),a}}function ds(e){if(e===null||typeof e!="object"||!Array.isArray(e.columns)||!Array.isArray(e.storageClassPatterns)||!Array.isArray(e.rows)||e.rows.length===0||e.columns.some(r=>typeof r!="string"))throw new K;let t=e.columns.length,n=e.storageClassPatterns.map(r=>{if(!Array.isArray(r)||r.length!==t)throw new K;return e.columns.map((o,i)=>({column:o,storageClass:r[i]}))});return e.rows.map(r=>{if(r===null||typeof r!="object"||!Array.isArray(r.values)||r.values.length!==t||!Number.isInteger(r.pattern)||r.pattern<0||r.pattern>=n.length)throw new K;return{rowId:r.rowId,row:Object.fromEntries(e.columns.map((o,i)=>[o,r.values[i]])),storageClasses:n[r.pattern]}})}var Hi=64;function or(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||n<0)throw new Error(`Demo delete snapshot ${t} exceeds the web transport safety bound`);return n}function wc(e){let t=w(e);return`CASE typeof(${t}) WHEN 'text' THEN 6 * octet_length(${t}) WHEN 'blob' THEN 4 * ((octet_length(${t}) + 2) / 3) + 40 WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 4 END`}function Sc(e){let t=w(e);return`COALESCE(MAX(CASE WHEN typeof(${t}) = 'blob' THEN octet_length(${t}) ELSE 0 END), 0)`}function dr(e,t,n,r){let o=1024;for(let s of t)o+=64+6*String(s).length;let i=128+n.reduce((s,l)=>s+48+6*l.length,0),a=0;for(let s of r)for(let l=0;l0?", ":""}`+d.map(Sc).join(", ")+` FROM ${N(e)} WHERE ${s.sql}`,v(s.params),{useBigInt:!0})[0]?.values?.[0];if(!c)throw new Error("Demo delete snapshot preflight returned no metadata");let u=or(c[0],"row count");l===0&&(a+=u,o+=u*i),o+=or(c[1],"encoded size");for(let f of c.slice(2))if(or(f,"BLOB size")>We)throw new Error(`Demo delete snapshot exceeds the ${We}-byte web transport binary limit; the row was not deleted`);if(!Number.isSafeInteger(o))throw new Error("Demo delete snapshot exceeds the web transport safety bound")}if(a!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);if(o>Gt)throw new Error(`Demo delete snapshot exceeds the ${Gt}-byte web transport response limit; no rows were deleted`)}async function bc(e,t){if(t.forEach(Ae),!p)throw new Error("No database initialized");if(Q("Row deletion"),t.length===0)return[];let n=await te(e),r=ve();if(t.some(Z)){if(!t.every(Z))throw new Error("Cannot mix rowid and primary-key row identities");if(n.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let a=qe(t,n),s=k("sp_delete_pk_rows");b(`SAVEPOINT ${s}`);try{Le("DELETE",e);let l=en(e);dr(e,t,l,a);let d=[];for(let c of a){let f=p.exec(`SELECT ${l.map(ee).join(", ")||"1"} FROM ${N(e)} WHERE ${c.sql}`,v(c.params),{useBigInt:!0})[0]?.values??[],m=n.columns.map(y=>{let g=l.indexOf(y.identifier);if(g<0)throw new Error(`Primary-key column missing from ${e}: ${y.identifier}`);return g});d.push(...f.map(y=>{let g=l.map((h,C)=>V(y[C*2],y[C*2+1],`${e}.${h}`,{textEncoding:r}));return{rowId:Ve(n.columns,m.map(h=>g[h].value)),row:Object.fromEntries(l.map((h,C)=>[h,g[C].rawTextBytes??g[C].value])),storageClasses:l.map((h,C)=>({column:h,storageClass:g[C].storageClass}))}}))}if(d.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let c of a)p.run(`DELETE FROM ${N(e)} WHERE ${c.sql}`,v(c.params));return b(`RELEASE ${s}`),d}catch(l){throw B(s,"deletePrimaryKeyRows"),l}}if(n.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let o=qe(t,n),i=k("sp_delete_rowid_rows");b(`SAVEPOINT ${i}`);try{Le("DELETE",e);let a=en(e);dr(e,t,a,o);let s=[];for(let l of o){let d=p.exec(`SELECT CAST(rowid AS TEXT)${a.length>0?", ":""}${a.map(ee).join(", ")} FROM ${N(e)} WHERE ${l.sql}`,v(l.params),{useBigInt:!0})[0];s.push(...(d?.values??[]).map(c=>{let u=M(c[0]),f=a.map((m,y)=>V(c[y*2+1],c[y*2+2],`${e}.${m}`,{textEncoding:r}));return{rowId:u,row:Object.fromEntries(a.map((m,y)=>[m,f[y].rawTextBytes??f[y].value])),storageClasses:a.map((m,y)=>({column:m,storageClass:f[y].storageClass}))}}))}if(s.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let l of o)p.run(`DELETE FROM ${N(e)} WHERE ${l.sql}`,v(l.params));return b(`RELEASE ${i}`),s}catch(a){throw B(i,"deleteRowidRows"),a}}async function fs(e,t){if(!p)throw new Error("No database initialized");if(!Array.isArray(t))throw new Error("Column names must be an array");W(e,"Table name"),t.forEach(u=>W(u,"Column name"));let r=(p.exec("SELECT name, sql FROM main.sqlite_schema WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL ORDER BY name",[e])[0]?.values??[]).map(u=>({identifier:u[0],sql:u[1]}));if(r.length===0||t.length===0)return[];let i=(p.exec(`PRAGMA main.table_xinfo(${w(e)})`)[0]?.values??[]).map(u=>u[1]),a=Qr(i,t);if(a.length===0)return[];let s=crypto.randomUUID().replace(/-/g,""),l=`__sqlite_explorer_index_probe_${s}`,d=`__sqlite_explorer_index_candidate_${s}`,c=k("sp_index_dependencies");b(`SAVEPOINT ${c}`);try{b(zr(l,i));let u=k("sp_index_baseline");b(`SAVEPOINT ${u}`);try{for(let m of a)b(`ALTER TABLE temp.${w(l)} DROP COLUMN ${w(m)}`);b(`ROLLBACK TO ${u}`),b(`RELEASE ${u}`)}catch(m){throw B(u,"findDependentIndexBaseline"),new Error("Cannot establish the index dependency probe baseline",{cause:m})}let f=[];for(let m of r){let y=k("sp_index_candidate");b(`SAVEPOINT ${y}`);try{b(Xr(l,d,m.sql));let g=!1;for(let h of a)try{b(`ALTER TABLE temp.${w(l)} DROP COLUMN ${w(h)}`)}catch{g=!0;break}b(`ROLLBACK TO ${y}`),b(`RELEASE ${y}`),g&&f.push(m)}catch(g){throw B(y,"findDependentIndex"),new Error(`Cannot inspect dependency for index ${w(m.identifier)}`,{cause:g})}}return b(`ROLLBACK TO ${c}`),b(`RELEASE ${c}`),f}catch(u){throw B(c,"findDependentIndexes"),u}}function Tc(e){if(e!==void 0){if(!Array.isArray(e))throw new Error("Dependent-index confirmation must be an array");return e.map(t=>{if(!t||typeof t!="object"||Array.isArray(t)||typeof t.identifier!="string"||typeof t.sql!="string")throw new Error("Dependent-index confirmation contains an invalid definition");return W(t.identifier,"Index name"),{identifier:t.identifier,sql:t.sql}})}}function Cc(e,t,n){if(t.length===0&&(n?.length??0)===0)return;if(!n)throw new Error("Column deletion requires confirmation for dependent indexes: "+t.map(i=>i.identifier).join(", "));let r=new Map(n.map(i=>[i.identifier,i.sql]));if(!(r.size===n.length&&n.length===t.length&&t.every(i=>r.get(i.identifier)===i.sql)))throw new Error(`Cannot delete columns from ${e}: dependent indexes changed while the confirmation was open`)}async function Rc(e,t,n){if(!p)throw new Error("No database initialized");if(Q("Column deletion"),t.length===0)return;let r=k("sp_delete_columns");b(`SAVEPOINT ${r}`);try{let o=Tc(n),i=await fs(e,t);Cc(e,i,o),await Xo(e,t,i.map(a=>a.identifier),a=>b(a)),b(`RELEASE ${r}`)}catch(o){throw B(r,"deleteColumns"),Ic(o,t)}}function Ic(e,t){let n;try{n=xc(t)}catch{return e}if(n.length===0)return e;let r=e instanceof Error?e.message:String(e),o=n.map(i=>`${i.type} ${i.identifier}`).join(", ");return new Error(`${r} \u2014 these schema objects mention ${t.join(", ")} and may be blocking the drop: ${o}. Drop or edit them first.`,{cause:e})}function xc(e){return(p.exec(zo)[0]?.values??[]).filter(n=>typeof n[1]=="string"&&typeof n[2]=="string"&&e.some(r=>Qo(n[2],r))).map(n=>({type:n[0],identifier:n[1]}))}async function Ac(e,t,n){if(!p)throw new Error("No database initialized");Q("Table creation");let r=Gr(e,t,n),o=k("sp_create_table");b(`SAVEPOINT ${o}`);try{let i=await j();b(r),ge(i,await j()),b(`RELEASE ${o}`)}catch(i){throw B(o,"createTable"),i}}async function ms(e,t=!1){if(!p)throw new Error("No database initialized");let r=p.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0]?.[0];if(typeof r!="string")return null;let o=bt.map(c=>p.exec(c.sql,c.params(e))[0]?.values||[]),{triggers:i,ambiguousTemporaryTriggerNames:a,unqualifiedTemporaryTriggers:s}=Br(e,o);if(s.length>0){let u=(p.exec("SELECT name FROM pragma.pragma_table_xinfo(?, 'main') ORDER BY cid",[e])[0]?.values??[]).map(f=>{if(typeof f[0]!="string")throw new Error(`SQLite returned invalid view column metadata for ${e}`);return f[0]});for(let f of s){if(i.some(m=>!m.temporary&&Me(m.identifier,f.identifier))){a.push(f.identifier);continue}try{let m=Ct(f.sql,"main",e,u);if(m===void 0){a.push(f.identifier);continue}let y=p.exec(m);kr(y[0]?.values??[],f.identifier)&&i.push({...f,sql:En(f.sql,f.identifier)})}catch{a.push(f.identifier)}}}let l,d;try{l=Mr(r),d=hn(r)}catch(c){if(!t)throw c;l=""}return{identifier:e,sql:r,selectSql:l,columnListSql:d,triggers:i,...a.length>0?{ambiguousTemporaryTriggerNames:a}:{}}}async function ps(e,t=!1){let n=await ms(e,t);if(!n)throw new Error(`View not found: ${e}`);return n}async function tn(e){return ps(e,!1)}function j(){return Hr({queryRows:async(e,t)=>p.exec(e,v(t))[0]?.values??[],compileStatements:async e=>e.map(t=>{try{Je(t);return}catch(n){return oe(n)}})})}function gs(e,t){let r=p.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0];Vr(e,r!==void 0,t);let o=r?.[0];return{storedSql:o,columnListSql:typeof o=="string"?hn(o):void 0}}function Q(e){if(H)throw new Error(`${e} is unavailable because the database is read-only`)}async function Nc(e,t,n="edit"){if(W(e,"View name"),!p)throw new Error("No database initialized");if(H)throw new Error("View validation is unavailable because the database is read-only");let r=pe(t),{storedSql:o,columnListSql:i}=gs(e,n),a=k("sp_validate_view");b(`SAVEPOINT ${a}`);try{let s=await j();typeof o=="string"&&b(`DROP VIEW ${J(e)}`),b(tt(e,r,i)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),ge(s,await j()),b(`ROLLBACK TO ${a}`),b(`RELEASE ${a}`)}catch(s){throw B(a,"validateViewDefinition"),s}}async function _c(e,t,n=50,r="edit",o){if(W(e,"View name"),!p)throw new Error("No database initialized");let i=pe(t),a=Math.max(1,Math.min(100,Math.trunc(n)||50)),{storedSql:s,columnListSql:l}=gs(e,r);if(H){let c=w(e);return rr(l?`WITH ${c} ${l} AS (${i} ) SELECT * FROM ${c} LIMIT ${a}`:`WITH ${c} AS (${i} -) SELECT * FROM ${c} LIMIT ${a}`,o)}let d=k("sp_preview_view");b(`SAVEPOINT ${d}`);try{let c=await j();typeof s=="string"&&b(`DROP VIEW ${J(e)}`),b(tt(e,i,l)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),ge(c,await j());let u=rr(`SELECT * FROM ${J(e)} LIMIT ${a}`,o);return b(`ROLLBACK TO ${d}`),b(`RELEASE ${d}`),u}catch(c){throw B(d,"previewViewDefinition"),c}}async function _c(e,t){if(W(e,"View name"),!p)throw new Error("No database initialized");Q("View creation");let n=pe(t),r=k("sp_create_view");b(`SAVEPOINT ${r}`);try{let o=await j();b(tt(e,n)),Je(`EXPLAIN SELECT * FROM ${J(e)}`);let i=await tn(e);return ge(o,await j()),b(`RELEASE ${r}`),i}catch(o){throw B(r,"createView"),o}}async function $c(e,t,n=!0,r,o){if(!p)throw new Error("No database initialized");Q("View editing");let i=pe(t),a=k("sp_edit_view");b(`SAVEPOINT ${a}`);try{let s=await tn(e);Rt(s),It(r,s.sql,o,s.triggers);let l=await j();if(b(`DROP VIEW ${J(e)}`),b(tt(e,i,s.columnListSql,s.columns)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),n){let u=(p.exec(`PRAGMA main.table_info(${w(e)})`)[0]?.values??[]).map(f=>{if(typeof f[1]!="string")throw new Error(`SQLite returned invalid column metadata for view ${e}`);return f[1]});Ur(s.triggers,u);for(let f of s.triggers)b(wn(f))}let d=await tn(e);return ge(l,await j()),b(`RELEASE ${a}`),{before:s,after:d}}catch(s){throw B(a,"editView"),s}}async function Oc(e,t,n){if(!p)throw new Error("No database initialized");Q("View deletion");let r=k("sp_drop_view");b(`SAVEPOINT ${r}`);try{let o=await ms(e,!0);Rt(o),It(t,o.sql,n,o.triggers);let i=await j();return b(`DROP VIEW ${J(e)}`),ge(i,await j()),b(`RELEASE ${r}`),o}catch(o){throw B(r,"dropView"),o}}async function Qe(e,t,n){Q("View history replay");let r=k("sp_restore_view");b(`SAVEPOINT ${r}`);try{let o=await fs(e,!0);o&&Rt(o),Wr(t,o);let i=await j();if(o&&b(`DROP VIEW ${J(e)}`),n){b(n.sql),Je(`EXPLAIN SELECT * FROM ${J(n.identifier)}`);for(let a of n.triggers)b(wn(a))}ge(i,await j()),b(`RELEASE ${r}`)}catch(o){throw B(r,"restoreViewDefinition"),o}}function on(){let e=p.exec("SELECT changes()",void 0,{useBigInt:!0})[0]?.values?.[0]?.[0],t=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(t)||t<0)throw new Error("SQLite returned an invalid changes() count");return t}async function fr(e,t){if(!Array.isArray(t)||t.length===0)throw new K;t.forEach(pt);let n=await te(e),r=k("sp_history_delete_rows");b(`SAVEPOINT ${r}`);try{Le("DELETE",e);for(let o of t){let i=U(o.rowId,n),a=Dn(o,G);if(p.run(`DELETE FROM ${N(e)} WHERE (${i.sql}) AND (${a.sql})`,v([...i.params,...a.params])),on()!==1)throw new Ce(e)}b(`RELEASE ${r}`)}catch(o){throw B(r,"deleteRowHistorySnapshots"),o}}async function mr(e,t){if(!Array.isArray(t)||t.length===0)throw new K;let n=await te(e),r=t.map(i=>({snapshot:i,states:pt(i),writes:ni(i,G)})),o=k("sp_history_restore_rows");b(`SAVEPOINT ${o}`);try{for(let i of r){Le("INSERT",e,i.states.map(l=>l.column));let a=U(i.snapshot.rowId,n);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE ${a.sql} LIMIT 1`,v(a.params))[0]?.values.length??0)!==0)throw new Ce(e)}for(let i of r){let a=i.writes.map(f=>f.column),s=i.writes.map(f=>f.write.sql),l=i.writes.flatMap(f=>f.write.params);if(n.kind==="rowid"&&!a.some(f=>f.toLowerCase()==="rowid")&&(a.unshift("rowid"),s.unshift(G(i.snapshot.rowId)),l.unshift(i.snapshot.rowId)),p.run(`INSERT INTO ${N(e)} (${a.map(w).join(", ")}) VALUES (${s.join(", ")})`,v(l)),on()!==1)throw new Ce(e);let d=U(i.snapshot.rowId,n),c=Dn(i.snapshot,G);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE (${d.sql}) AND (${c.sql}) LIMIT 2`,v([...d.params,...c.params]))[0]?.values.length??0)!==1)throw new Ce(e)}b(`RELEASE ${o}`)}catch(i){throw B(o,"restoreRowHistorySnapshots"),i}}function Lc(e){let t=e.affectedCells??(e.targetRowId!==void 0&&e.targetColumn?[{rowId:e.targetRowId,newRowId:e.newTargetRowId,columnName:e.targetColumn,newValue:e.newValue,operation:e.operation,priorState:e.priorState,postState:e.postState}]:[]);if(t.length===0)throw new ft;return t.map(n=>(mt(n.priorState),mt(n.postState),n))}async function gs(e,t,n){if(t.undoPolicy==="barrier")throw new Error("Forward-only cell history barriers cannot be replayed");let r=Lc(t),o=r.some(c=>Z(c.rowId));if(o&&!r.every(c=>Z(c.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let i=await te(e);if(o&&i.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);if(!o&&i.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let a=ve(),s=new Map;for(let c of r){let u=s.get(c.rowId)??[];if(u.some(f=>Me(f.columnName,c.columnName)))throw new Error(`Cell history for ${e} contains the same column more than once`);u.push(c),s.set(c.rowId,u)}let l=[...s.entries()];n==="undo"&&r.some(c=>c.newRowId!==void 0&&c.newRowId!==c.rowId)&&l.reverse();let d=k("sp_replay_cell_history");b(`SAVEPOINT ${d}`);try{Et(e,r.map(c=>c.columnName),i.kind==="rowid");for(let[c,u]of l){if(new Set(u.map(E=>E.newRowId??E.rowId)).size!==1)throw new Error(`Cell history for ${e} has inconsistent post-update identities`);let m=u[0].newRowId??c,y=n==="undo"?m:c,g=n==="undo"?c:m,h=U(y,i),C=u.map(E=>ee(E.columnName)),T=p.exec(`SELECT ${C.join(", ")} FROM ${N(e)} WHERE ${h.sql} LIMIT 2`,v(h.params),{useBigInt:!0})[0];if((T?.values.length??0)!==1)throw new se(e,u.map(E=>E.columnName));let x=u.map((E,O)=>V(T.values[0][O*2],T.values[0][O*2+1],`${e}.${E.columnName}`,{textEncoding:a})),I=u.map((E,O)=>{let q=n==="undo"?E.postState:E.priorState,Y=n==="undo"?E.priorState:E.postState,X=x[O];if(E.operation!=="json_patch"){if(!Bn(X,q))throw new se(e,[E.columnName]);return Y}if(X.storageClass!==q.storageClass||E.newValue===void 0)throw new se(e,[E.columnName]);let le=ei(X.value,E.newValue,E.priorState.value,E.postState.value,n);if(le.kind==="conflict")throw new se(e,[E.columnName]);return Object.is(le.value,Y.value)?Y:V("text",le.value,`${e}.${E.columnName} JSON replay`)}),S=I.map(E=>Kt(E,G)),R=x.map((E,O)=>zt(u[O].columnName,E,G));if(p.run(`UPDATE ${N(e)} SET ${u.map((E,O)=>`${w(E.columnName)} = ${S[O].sql}`).join(", ")} WHERE ${h.sql} AND `+R.map(E=>`(${E.sql})`).join(" AND "),v([...S.flatMap(E=>E.params),...h.params,...R.flatMap(E=>E.params)])),on()!==1)throw new se(e,u.map(E=>E.columnName));let _=U(g,i),A=p.exec(`SELECT ${C.join(", ")} FROM ${N(e)} WHERE ${_.sql} LIMIT 2`,v(_.params),{useBigInt:!0})[0];if((A?.values.length??0)!==1)throw new se(e,u.map(E=>E.columnName));if(!I.every((E,O)=>Bn(E,V(A.values[0][O*2],A.values[0][O*2+1],`${e}.${u[O].columnName}`,{textEncoding:a}))))throw new se(e,u.map(E=>E.columnName))}b(`RELEASE ${d}`)}catch(c){throw B(d,"replayCellHistory"),c}}async function vc(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,newTargetRowId:s,targetColumn:l,priorValue:d,newValue:c,operation:u,deletedRows:f,insertedRow:m}=e;if(n)switch(t){case"cell_update":await gs(n,e,"undo");return;case"row_insert":if(e.importedRows){await fr(n,us(e.importedRows).reverse());return}if(!m||a===void 0)throw new K;if(typeof m.rowId!=typeof a||String(m.rowId)!==String(a))throw new K;await fr(n,[m]);return;case"row_delete":{if(!f||f.length===0)throw new K;await mr(n,f);return}case"view_create":if(o)await Qe(n,o,null);else throw new Error("Cannot undo view_create: missing view definition");return;case"view_edit":if(r&&o)await Qe(n,o,r);else throw new Error("Cannot undo view_edit: missing view definition");return;case"view_drop":if(r)await Qe(n,null,r);else throw new Error("Cannot undo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be undone: this operation is recorded as a history barrier, not a replayable change`)}}async function Pc(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,targetColumn:s,newValue:l,operation:d,rowData:c,affectedRowIds:u,insertedRow:f,deletedRows:m}=e;if(n)switch(t){case"cell_update":await gs(n,e,"redo");return;case"row_insert":{if(e.importedRows){await mr(n,us(e.importedRows));return}if(!f)throw new K;await mr(n,[f]);return}case"row_delete":if(!m||m.length===0)throw new K;await fr(n,m);return;case"view_create":if(o)await Qe(n,null,o);else throw new Error("Cannot redo view_create: missing view definition");return;case"view_edit":if(r&&o)await Qe(n,r,o);else throw new Error("Cannot redo view_edit: missing view definition");return;case"view_drop":if(r)await Qe(n,r,null);else throw new Error("Cannot redo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be redone: this operation is recorded as a history barrier, not a replayable change`)}}function kc(e,t){let n=new Map;for(let r of t){W(r.column,"Column name");let o;Z(r.rowId)?(So(r.rowId),o=`primary-key:${r.rowId}`):o=`rowid:${String(M(r.rowId))}`;let i=n.get(o)??[];if(i.some(a=>Me(a,r.column)))throw new Error(`Batch update for ${e} contains a duplicate row identity/column target: ${String(r.rowId)} / ${r.column}`);i.push(r.column),n.set(o,i)}}async function ys(e,t,n,r,o){if(t.forEach(c=>Ae(c.rowId)),!p)throw new Error("No database initialized");if(Q("Batch cell updates"),t.length===0)return[];kc(e,t);let i=o===gr,a=i?0:je(t.map(c=>c.value),r),s=ve();if(t.some(c=>Z(c.rowId))){if(!t.every(f=>Z(f.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let c=await te(e);if(c.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let u=k("sp_update_pk_batch");b(`SAVEPOINT ${u}`);try{if(Et(e,t.map(y=>y.column),!1),!i&&r!==void 0)for(let y of t){let g=await Zt({table:e,rowId:y.rowId,column:y.column});if((g.storageClass==="text"||g.storageClass==="blob")&&g.byteLength>a)throw new Fe(e,y.column,g.storageClass,g.byteLength,a)}let f=new Map;for(let y of t){let g=f.get(y.rowId)??[];g.push(y),f.set(y.rowId,g)}let m=[];for(let[y,g]of f){let h=U(y,c),C=[...new Set(g.map(E=>E.column))];if(C.length!==g.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let T=p.exec(`SELECT ${C.map(ee).join(", ")} FROM ${N(e)} WHERE ${h.sql} LIMIT 2`,v(h.params),{useBigInt:!0})[0];if((T?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let x=g.map((E,O)=>{let q=V(T.values[0][O*2],T.values[0][O*2+1],`${e}.${E.column}`,{textEncoding:s}),Y=q.value,X=jt(E.value,Y,E.operation??"set"),le=X.operation==="json_patch"?cr(Y,X.value):X.value;return!i&&X.operation==="json_patch"&&He(le,a),{update:E,priorValue:Y,priorState:q,prepared:X,storedValue:le}}),I=x.map(({update:E,storedValue:O})=>`${w(E.column)} = ${G(O)}`).join(", ");if(p.run(`UPDATE ${N(e)} SET ${I} WHERE ${h.sql}`,v([...x.map(E=>E.storedValue),...h.params])),on()!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let S=[];for(let E of x)c.columns.findIndex(q=>q.identifier===E.update.column)>=0&&S.push({column:E.update.column,value:E.storedValue});let R=Nn(y,c,S),_=rn(e,c,U(R,c),lr(e)),A=U(_,c),L=p.exec(`SELECT ${C.map(ee).join(", ")} FROM ${N(e)} WHERE ${A.sql} LIMIT 2`,v(A.params),{useBigInt:!0})[0];if((L?.values.length??0)!==1)throw lr(e);for(let[E,O]of x.entries())m.push({rowId:y,newRowId:_,columnName:O.update.column,priorValue:O.priorValue,newValue:O.prepared.value,priorState:O.priorState,postState:V(L.values[0][E*2],L.values[0][E*2+1],`${e}.${O.update.column}`,{textEncoding:s}),operation:O.prepared.operation})}return b(`RELEASE ${u}`),m}catch(f){throw B(u,"updatePrimaryKeyCellBatch"),f}}if((await te(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let d=k("sp_update_cell_batch");b(`SAVEPOINT ${d}`);try{if(!i&&r!==void 0)for(let S of t){let R=await Zt({table:e,rowId:S.rowId,column:S.column});if((R.storageClass==="text"||R.storageClass==="blob")&&R.byteLength>a)throw new Fe(e,S.column,R.storageClass,R.byteLength,a)}let c=Er(e);if(Et(e,t.map(S=>S.column)),c!==void 0&&t.some(S=>Me(S.column,c))){let S=Zl(e,c,t,a,i);return b(`RELEASE ${d}`),S}let u=[...new Set(t.map(S=>M(S.rowId)))],f=[...new Set(t.map(S=>S.column))],m=N(e),y=new Map,g=qe(u,{kind:"rowid"});for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT), ${f.map(ee).join(", ")} FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[]){let A=new Map;f.forEach((L,E)=>A.set(L,V(_[E*2+1],_[E*2+2],`${e}.${L}`,{textEncoding:s}))),y.set(String(M(_[0])),A)}}let h=[],C=t.map(S=>{let R=M(S.rowId),_=y.get(String(R));if(!_)throw new Error(`Cannot update ${e}.${S.column}: row ${S.rowId} no longer exists`);let A=_.get(S.column);if(!A)throw new Error(`Cannot update ${e}.${S.column}: cell state is unavailable`);let L=A.value,E=jt(S.value,L,S.operation??"set");if(!i&&E.operation==="json_patch"){let O=cr(L,E.value);He(O,a)}return h.push({rowId:R,columnName:S.column,priorValue:L,newValue:E.value,priorState:A,operation:E.operation}),{...S,rowId:R,value:E.value,operation:E.operation}});for(let S of C){let R=w(S.column),A=S.operation==="json_patch"?`UPDATE ${m} SET ${R} = json_patch(COALESCE(${R}, '{}'), ?) WHERE rowid = ?`:`UPDATE ${m} SET ${R} = ${G(S.value)} WHERE rowid = ?`;p.run(A,v([S.value,S.rowId]))}let T=new Set;for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT) FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[])T.add(String(M(_[0])))}if(u.some(S=>!T.has(String(S))))throw st(e);let x=new Map;for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT), ${f.map(ee).join(", ")} FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[]){let A=new Map;f.forEach((L,E)=>A.set(L,V(_[E*2+1],_[E*2+2],`${e}.${L}`,{textEncoding:s}))),x.set(String(M(_[0])),A)}}let I=h.map(S=>{let R=x.get(String(S.rowId))?.get(S.columnName);if(!R)throw st(e);return{...S,postState:R}});return b(`RELEASE ${d}`),I}catch(c){throw B(d,"updateCellBatch"),c}}async function Bc(e,t,n,r){if(W(e,"Table name"),W(t,"Column name"),!p)throw new Error("No database initialized");Q("Column creation"),cl(n);let o=`ALTER TABLE ${N(e)} ADD COLUMN ${w(t)} ${n}`;r!=null&&r!==""&&(o+=` DEFAULT ${ul(r)}`);let i=k("sp_add_column");b(`SAVEPOINT ${i}`);try{let a=await j();b(o),ge(a,await j()),b(`RELEASE ${i}`)}catch(a){throw B(i,"addColumn"),a}}async function Dc(){if(!p)return!1;try{return p.exec("SELECT 1"),!0}catch{return!1}}async function Mc(){throw new Error("Reload must be handled by the demo host so it can reinitialize from the original database source")}var Hi={initializeDatabase:Cl,runQuery:Al,runConsole:Vl,executeReadQuery:Nl,getCellMetadata:Zt,openCellReadSession:gl,readCellChunk:yl,closeCellReadSession:hl,exportDatabase:ql,exportTable:Wl,fetchTableData:ec,fetchTableCount:tc,fetchSchema:nc,getTableInfo:Sr,getImportTarget:rc,getPragmas:sc,setPragma:ac,updateCell:lc,replaceOversizedCell:cc,insertRow:uc,insertRowWithHistory:dc,importRows:hc,deleteRows:Sc,findDependentIndexes:ds,deleteColumns:Cc,createTable:xc,getViewDefinition:tn,validateViewDefinition:Ac,previewViewDefinition:Nc,createView:_c,editView:$c,dropView:Oc,undoModification:vc,redoModification:Pc,updateCellBatch:ys,addColumn:Bc,ping:Dc,refreshFile:Mc};self.onmessage=async e=>{let t=e.data;if(!t||t.channel!=="rpc"||!t.content){console.warn("[Worker] Invalid message format",{valueType:t===null?"null":Array.isArray(t)?"array":typeof t,hasRpcChannel:t?.channel==="rpc",hasContent:!!t?.content});return}let{kind:n,messageId:r,targetMethod:o,payload:i}=t.content;if(n!=="invoke")return;if(typeof r!="string"||r.length===0||r.length>256){console.warn("[Worker] Invalid RPC correlation ID");return}let s=typeof o=="string"&&Object.prototype.hasOwnProperty.call(Hi,o)?Hi[o]:void 0;if(typeof s!="function"){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:`Unknown method: ${typeof o=="string"?o.slice(0,256):""}`}});return}if(!Array.isArray(i)){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:"Worker RPC payload must be an array"}});return}try{El(o);let l=await s(...i),d={channel:"rpc",content:{kind:"response",messageId:r,success:!0,data:l}};if(o==="exportDatabase"&&l instanceof Uint8Array){let c=l.byteOffset===0&&l.byteLength===l.buffer.byteLength&&l.buffer instanceof ArrayBuffer?l:l.slice();d.content.data=c,self.postMessage(d,[c.buffer])}else self.postMessage(d)}catch(l){let d=oe(l);console.error("[Worker] Method error:",o,d);let c;try{c=bi(l)}catch{}self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:d,...c?{error:c}:{}}})}};})(); +) SELECT * FROM ${c} LIMIT ${a}`,o)}let d=k("sp_preview_view");b(`SAVEPOINT ${d}`);try{let c=await j();typeof s=="string"&&b(`DROP VIEW ${J(e)}`),b(tt(e,i,l)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),ge(c,await j());let u=rr(`SELECT * FROM ${J(e)} LIMIT ${a}`,o);return b(`ROLLBACK TO ${d}`),b(`RELEASE ${d}`),u}catch(c){throw B(d,"previewViewDefinition"),c}}async function $c(e,t){if(W(e,"View name"),!p)throw new Error("No database initialized");Q("View creation");let n=pe(t),r=k("sp_create_view");b(`SAVEPOINT ${r}`);try{let o=await j();b(tt(e,n)),Je(`EXPLAIN SELECT * FROM ${J(e)}`);let i=await tn(e);return ge(o,await j()),b(`RELEASE ${r}`),i}catch(o){throw B(r,"createView"),o}}async function Oc(e,t,n=!0,r,o){if(!p)throw new Error("No database initialized");Q("View editing");let i=pe(t),a=k("sp_edit_view");b(`SAVEPOINT ${a}`);try{let s=await tn(e);Rt(s),It(r,s.sql,o,s.triggers);let l=await j();if(b(`DROP VIEW ${J(e)}`),b(tt(e,i,s.columnListSql,s.columns)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),n){let u=(p.exec(`PRAGMA main.table_info(${w(e)})`)[0]?.values??[]).map(f=>{if(typeof f[1]!="string")throw new Error(`SQLite returned invalid column metadata for view ${e}`);return f[1]});Ur(s.triggers,u);for(let f of s.triggers)b(wn(f))}let d=await tn(e);return ge(l,await j()),b(`RELEASE ${a}`),{before:s,after:d}}catch(s){throw B(a,"editView"),s}}async function Lc(e,t,n){if(!p)throw new Error("No database initialized");Q("View deletion");let r=k("sp_drop_view");b(`SAVEPOINT ${r}`);try{let o=await ps(e,!0);Rt(o),It(t,o.sql,n,o.triggers);let i=await j();return b(`DROP VIEW ${J(e)}`),ge(i,await j()),b(`RELEASE ${r}`),o}catch(o){throw B(r,"dropView"),o}}async function Qe(e,t,n){Q("View history replay");let r=k("sp_restore_view");b(`SAVEPOINT ${r}`);try{let o=await ms(e,!0);o&&Rt(o),Wr(t,o);let i=await j();if(o&&b(`DROP VIEW ${J(e)}`),n){b(n.sql),Je(`EXPLAIN SELECT * FROM ${J(n.identifier)}`);for(let a of n.triggers)b(wn(a))}ge(i,await j()),b(`RELEASE ${r}`)}catch(o){throw B(r,"restoreViewDefinition"),o}}function on(){let e=p.exec("SELECT changes()",void 0,{useBigInt:!0})[0]?.values?.[0]?.[0],t=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(t)||t<0)throw new Error("SQLite returned an invalid changes() count");return t}async function fr(e,t){if(!Array.isArray(t)||t.length===0)throw new K;t.forEach(pt);let n=await te(e),r=k("sp_history_delete_rows");b(`SAVEPOINT ${r}`);try{Le("DELETE",e);for(let o of t){let i=U(o.rowId,n),a=Dn(o,G);if(p.run(`DELETE FROM ${N(e)} WHERE (${i.sql}) AND (${a.sql})`,v([...i.params,...a.params])),on()!==1)throw new Ce(e)}b(`RELEASE ${r}`)}catch(o){throw B(r,"deleteRowHistorySnapshots"),o}}async function mr(e,t){if(!Array.isArray(t)||t.length===0)throw new K;let n=await te(e),r=t.map(i=>({snapshot:i,states:pt(i),writes:ri(i,G)})),o=k("sp_history_restore_rows");b(`SAVEPOINT ${o}`);try{for(let i of r){Le("INSERT",e,i.states.map(l=>l.column));let a=U(i.snapshot.rowId,n);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE ${a.sql} LIMIT 1`,v(a.params))[0]?.values.length??0)!==0)throw new Ce(e)}for(let i of r){let a=i.writes.map(f=>f.column),s=i.writes.map(f=>f.write.sql),l=i.writes.flatMap(f=>f.write.params);if(n.kind==="rowid"&&!a.some(f=>f.toLowerCase()==="rowid")&&(a.unshift("rowid"),s.unshift(G(i.snapshot.rowId)),l.unshift(i.snapshot.rowId)),p.run(`INSERT INTO ${N(e)} (${a.map(w).join(", ")}) VALUES (${s.join(", ")})`,v(l)),on()!==1)throw new Ce(e);let d=U(i.snapshot.rowId,n),c=Dn(i.snapshot,G);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE (${d.sql}) AND (${c.sql}) LIMIT 2`,v([...d.params,...c.params]))[0]?.values.length??0)!==1)throw new Ce(e)}b(`RELEASE ${o}`)}catch(i){throw B(o,"restoreRowHistorySnapshots"),i}}function vc(e){let t=e.affectedCells??(e.targetRowId!==void 0&&e.targetColumn?[{rowId:e.targetRowId,newRowId:e.newTargetRowId,columnName:e.targetColumn,newValue:e.newValue,operation:e.operation,priorState:e.priorState,postState:e.postState}]:[]);if(t.length===0)throw new ft;return t.map(n=>(mt(n.priorState),mt(n.postState),n))}async function ys(e,t,n){if(t.undoPolicy==="barrier")throw new Error("Forward-only cell history barriers cannot be replayed");let r=vc(t),o=r.some(c=>Z(c.rowId));if(o&&!r.every(c=>Z(c.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let i=await te(e);if(o&&i.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);if(!o&&i.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let a=ve(),s=new Map;for(let c of r){let u=s.get(c.rowId)??[];if(u.some(f=>Me(f.columnName,c.columnName)))throw new Error(`Cell history for ${e} contains the same column more than once`);u.push(c),s.set(c.rowId,u)}let l=[...s.entries()];n==="undo"&&r.some(c=>c.newRowId!==void 0&&c.newRowId!==c.rowId)&&l.reverse();let d=k("sp_replay_cell_history");b(`SAVEPOINT ${d}`);try{Et(e,r.map(c=>c.columnName),i.kind==="rowid");for(let[c,u]of l){if(new Set(u.map(E=>E.newRowId??E.rowId)).size!==1)throw new Error(`Cell history for ${e} has inconsistent post-update identities`);let m=u[0].newRowId??c,y=n==="undo"?m:c,g=n==="undo"?c:m,h=U(y,i),C=u.map(E=>ee(E.columnName)),T=p.exec(`SELECT ${C.join(", ")} FROM ${N(e)} WHERE ${h.sql} LIMIT 2`,v(h.params),{useBigInt:!0})[0];if((T?.values.length??0)!==1)throw new se(e,u.map(E=>E.columnName));let I=u.map((E,O)=>V(T.values[0][O*2],T.values[0][O*2+1],`${e}.${E.columnName}`,{textEncoding:a})),x=u.map((E,O)=>{let q=n==="undo"?E.postState:E.priorState,Y=n==="undo"?E.priorState:E.postState,X=I[O];if(E.operation!=="json_patch"){if(!Bn(X,q))throw new se(e,[E.columnName]);return Y}if(X.storageClass!==q.storageClass||E.newValue===void 0)throw new se(e,[E.columnName]);let le=ti(X.value,E.newValue,E.priorState.value,E.postState.value,n);if(le.kind==="conflict")throw new se(e,[E.columnName]);return Object.is(le.value,Y.value)?Y:V("text",le.value,`${e}.${E.columnName} JSON replay`)}),S=x.map(E=>Kt(E,G)),R=I.map((E,O)=>zt(u[O].columnName,E,G));if(p.run(`UPDATE ${N(e)} SET ${u.map((E,O)=>`${w(E.columnName)} = ${S[O].sql}`).join(", ")} WHERE ${h.sql} AND `+R.map(E=>`(${E.sql})`).join(" AND "),v([...S.flatMap(E=>E.params),...h.params,...R.flatMap(E=>E.params)])),on()!==1)throw new se(e,u.map(E=>E.columnName));let _=U(g,i),A=p.exec(`SELECT ${C.join(", ")} FROM ${N(e)} WHERE ${_.sql} LIMIT 2`,v(_.params),{useBigInt:!0})[0];if((A?.values.length??0)!==1)throw new se(e,u.map(E=>E.columnName));if(!x.every((E,O)=>Bn(E,V(A.values[0][O*2],A.values[0][O*2+1],`${e}.${u[O].columnName}`,{textEncoding:a}))))throw new se(e,u.map(E=>E.columnName))}b(`RELEASE ${d}`)}catch(c){throw B(d,"replayCellHistory"),c}}async function Pc(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,newTargetRowId:s,targetColumn:l,priorValue:d,newValue:c,operation:u,deletedRows:f,insertedRow:m}=e;if(n)switch(t){case"cell_update":await ys(n,e,"undo");return;case"row_insert":if(e.importedRows){await fr(n,ds(e.importedRows).reverse());return}if(!m||a===void 0)throw new K;if(typeof m.rowId!=typeof a||String(m.rowId)!==String(a))throw new K;await fr(n,[m]);return;case"row_delete":{if(!f||f.length===0)throw new K;await mr(n,f);return}case"view_create":if(o)await Qe(n,o,null);else throw new Error("Cannot undo view_create: missing view definition");return;case"view_edit":if(r&&o)await Qe(n,o,r);else throw new Error("Cannot undo view_edit: missing view definition");return;case"view_drop":if(r)await Qe(n,null,r);else throw new Error("Cannot undo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be undone: this operation is recorded as a history barrier, not a replayable change`)}}async function kc(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,targetColumn:s,newValue:l,operation:d,rowData:c,affectedRowIds:u,insertedRow:f,deletedRows:m}=e;if(n)switch(t){case"cell_update":await ys(n,e,"redo");return;case"row_insert":{if(e.importedRows){await mr(n,ds(e.importedRows));return}if(!f)throw new K;await mr(n,[f]);return}case"row_delete":if(!m||m.length===0)throw new K;await fr(n,m);return;case"view_create":if(o)await Qe(n,null,o);else throw new Error("Cannot redo view_create: missing view definition");return;case"view_edit":if(r&&o)await Qe(n,r,o);else throw new Error("Cannot redo view_edit: missing view definition");return;case"view_drop":if(r)await Qe(n,r,null);else throw new Error("Cannot redo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be redone: this operation is recorded as a history barrier, not a replayable change`)}}function Bc(e,t){let n=new Map;for(let r of t){W(r.column,"Column name");let o;Z(r.rowId)?(So(r.rowId),o=`primary-key:${r.rowId}`):o=`rowid:${String(M(r.rowId))}`;let i=n.get(o)??[];if(i.some(a=>Me(a,r.column)))throw new Error(`Batch update for ${e} contains a duplicate row identity/column target: ${String(r.rowId)} / ${r.column}`);i.push(r.column),n.set(o,i)}}async function hs(e,t,n,r,o){if(t.forEach(c=>Ae(c.rowId)),!p)throw new Error("No database initialized");if(Q("Batch cell updates"),t.length===0)return[];Bc(e,t);let i=o===gr,a=i?0:je(t.map(c=>c.value),r),s=ve();if(t.some(c=>Z(c.rowId))){if(!t.every(f=>Z(f.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let c=await te(e);if(c.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let u=k("sp_update_pk_batch");b(`SAVEPOINT ${u}`);try{if(Et(e,t.map(y=>y.column),!1),!i&&r!==void 0)for(let y of t){let g=await Zt({table:e,rowId:y.rowId,column:y.column});if((g.storageClass==="text"||g.storageClass==="blob")&&g.byteLength>a)throw new Fe(e,y.column,g.storageClass,g.byteLength,a)}let f=new Map;for(let y of t){let g=f.get(y.rowId)??[];g.push(y),f.set(y.rowId,g)}let m=[];for(let[y,g]of f){let h=U(y,c),C=[...new Set(g.map(E=>E.column))];if(C.length!==g.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let T=p.exec(`SELECT ${C.map(ee).join(", ")} FROM ${N(e)} WHERE ${h.sql} LIMIT 2`,v(h.params),{useBigInt:!0})[0];if((T?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let I=g.map((E,O)=>{let q=V(T.values[0][O*2],T.values[0][O*2+1],`${e}.${E.column}`,{textEncoding:s}),Y=q.value,X=jt(E.value,Y,E.operation??"set"),le=X.operation==="json_patch"?cr(Y,X.value):X.value;return!i&&X.operation==="json_patch"&&He(le,a),{update:E,priorValue:Y,priorState:q,prepared:X,storedValue:le}}),x=I.map(({update:E,storedValue:O})=>`${w(E.column)} = ${G(O)}`).join(", ");if(p.run(`UPDATE ${N(e)} SET ${x} WHERE ${h.sql}`,v([...I.map(E=>E.storedValue),...h.params])),on()!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let S=[];for(let E of I)c.columns.findIndex(q=>q.identifier===E.update.column)>=0&&S.push({column:E.update.column,value:E.storedValue});let R=Nn(y,c,S),_=rn(e,c,U(R,c),lr(e)),A=U(_,c),L=p.exec(`SELECT ${C.map(ee).join(", ")} FROM ${N(e)} WHERE ${A.sql} LIMIT 2`,v(A.params),{useBigInt:!0})[0];if((L?.values.length??0)!==1)throw lr(e);for(let[E,O]of I.entries())m.push({rowId:y,newRowId:_,columnName:O.update.column,priorValue:O.priorValue,newValue:O.prepared.value,priorState:O.priorState,postState:V(L.values[0][E*2],L.values[0][E*2+1],`${e}.${O.update.column}`,{textEncoding:s}),operation:O.prepared.operation})}return b(`RELEASE ${u}`),m}catch(f){throw B(u,"updatePrimaryKeyCellBatch"),f}}if((await te(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let d=k("sp_update_cell_batch");b(`SAVEPOINT ${d}`);try{if(!i&&r!==void 0)for(let S of t){let R=await Zt({table:e,rowId:S.rowId,column:S.column});if((R.storageClass==="text"||R.storageClass==="blob")&&R.byteLength>a)throw new Fe(e,S.column,R.storageClass,R.byteLength,a)}let c=Er(e);if(Et(e,t.map(S=>S.column)),c!==void 0&&t.some(S=>Me(S.column,c))){let S=ec(e,c,t,a,i);return b(`RELEASE ${d}`),S}let u=[...new Set(t.map(S=>M(S.rowId)))],f=[...new Set(t.map(S=>S.column))],m=N(e),y=new Map,g=qe(u,{kind:"rowid"});for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT), ${f.map(ee).join(", ")} FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[]){let A=new Map;f.forEach((L,E)=>A.set(L,V(_[E*2+1],_[E*2+2],`${e}.${L}`,{textEncoding:s}))),y.set(String(M(_[0])),A)}}let h=[],C=t.map(S=>{let R=M(S.rowId),_=y.get(String(R));if(!_)throw new Error(`Cannot update ${e}.${S.column}: row ${S.rowId} no longer exists`);let A=_.get(S.column);if(!A)throw new Error(`Cannot update ${e}.${S.column}: cell state is unavailable`);let L=A.value,E=jt(S.value,L,S.operation??"set");if(!i&&E.operation==="json_patch"){let O=cr(L,E.value);He(O,a)}return h.push({rowId:R,columnName:S.column,priorValue:L,newValue:E.value,priorState:A,operation:E.operation}),{...S,rowId:R,value:E.value,operation:E.operation}});for(let S of C){let R=w(S.column),A=S.operation==="json_patch"?`UPDATE ${m} SET ${R} = json_patch(COALESCE(${R}, '{}'), ?) WHERE rowid = ?`:`UPDATE ${m} SET ${R} = ${G(S.value)} WHERE rowid = ?`;p.run(A,v([S.value,S.rowId]))}let T=new Set;for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT) FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[])T.add(String(M(_[0])))}if(u.some(S=>!T.has(String(S))))throw st(e);let I=new Map;for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT), ${f.map(ee).join(", ")} FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[]){let A=new Map;f.forEach((L,E)=>A.set(L,V(_[E*2+1],_[E*2+2],`${e}.${L}`,{textEncoding:s}))),I.set(String(M(_[0])),A)}}let x=h.map(S=>{let R=I.get(String(S.rowId))?.get(S.columnName);if(!R)throw st(e);return{...S,postState:R}});return b(`RELEASE ${d}`),x}catch(c){throw B(d,"updateCellBatch"),c}}async function Dc(e,t,n,r){if(W(e,"Table name"),W(t,"Column name"),!p)throw new Error("No database initialized");Q("Column creation"),ul(n);let o=`ALTER TABLE ${N(e)} ADD COLUMN ${w(t)} ${n}`;r!=null&&r!==""&&(o+=` DEFAULT ${dl(r)}`);let i=k("sp_add_column");b(`SAVEPOINT ${i}`);try{let a=await j();b(o),ge(a,await j()),b(`RELEASE ${i}`)}catch(a){throw B(i,"addColumn"),a}}async function Mc(){if(!p)return!1;try{return p.exec("SELECT 1"),!0}catch{return!1}}async function Uc(){throw new Error("Reload must be handled by the demo host so it can reinitialize from the original database source")}var ji={initializeDatabase:Rl,runQuery:Nl,runConsole:ql,executeReadQuery:_l,getCellMetadata:Zt,openCellReadSession:yl,readCellChunk:hl,closeCellReadSession:El,exportDatabase:Wl,exportTable:Fl,fetchTableData:tc,fetchTableCount:nc,fetchSchema:rc,getTableInfo:Sr,getImportTarget:oc,getPragmas:ac,setPragma:lc,updateCell:cc,replaceOversizedCell:uc,insertRow:dc,insertRowWithHistory:fc,importRows:Ec,deleteRows:bc,findDependentIndexes:fs,deleteColumns:Rc,createTable:Ac,getViewDefinition:tn,validateViewDefinition:Nc,previewViewDefinition:_c,createView:$c,editView:Oc,dropView:Lc,undoModification:Pc,redoModification:kc,updateCellBatch:hs,addColumn:Dc,ping:Mc,refreshFile:Uc};self.onmessage=async e=>{let t=e.data;if(!t||t.channel!=="rpc"||!t.content){console.warn("[Worker] Invalid message format",{valueType:t===null?"null":Array.isArray(t)?"array":typeof t,hasRpcChannel:t?.channel==="rpc",hasContent:!!t?.content});return}let{kind:n,messageId:r,targetMethod:o,payload:i}=t.content;if(n!=="invoke")return;if(typeof r!="string"||r.length===0||r.length>256){console.warn("[Worker] Invalid RPC correlation ID");return}let s=typeof o=="string"&&Object.prototype.hasOwnProperty.call(ji,o)?ji[o]:void 0;if(typeof s!="function"){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:`Unknown method: ${typeof o=="string"?o.slice(0,256):""}`}});return}if(!Array.isArray(i)){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:"Worker RPC payload must be an array"}});return}try{wl(o);let l=await s(...i),d={channel:"rpc",content:{kind:"response",messageId:r,success:!0,data:l}};if(o==="exportDatabase"&&l instanceof Uint8Array){let c=l.byteOffset===0&&l.byteLength===l.buffer.byteLength&&l.buffer instanceof ArrayBuffer?l:l.slice();d.content.data=c,self.postMessage(d,[c.buffer])}else self.postMessage(d)}catch(l){let d=oe(l);console.error("[Worker] Method error:",o,d);let c;try{c=Ti(l)}catch{}self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:d,...c?{error:c}:{}}})}};})(); From be339fae4f770bf50549f8a0c63da96435ccf729 Mon Sep 17 00:00:00 2001 From: zknpr <96851588+zknpr@users.noreply.github.com> Date: Fri, 23 Oct 2026 23:26:26 +0200 Subject: [PATCH 2/3] docs(readme): name 0.3.2 and the extension 1.8.2 integration as current Codex on c3745cf: the README still called 0.3.1 and extension 1.8.1 current. --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b7f85f0..826589e 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,9 @@ Linux and Windows. It shares its viewer with the [SQLite Explorer VS Code extension](https://github.com/zknpr/SQLite-Explorer) and runs in a Tauri desktop shell. -The current desktop version is **0.3.1**, integrating the extension's **1.8.1** -release and desktop-specific fixes. Packages for macOS, Linux and Windows are +The current desktop version is **0.3.2**, integrating the extension's **1.8.2** +release, its unreleased native-runtime and NUL-text fixes, and desktop-specific +fixes. Packages for macOS, Linux and Windows are attached to each [release](https://github.com/zknpr/SQLite-Explorer-App/releases); see [Install](#install). See [release readiness](docs/release-readiness.md) for the remaining distribution gates. @@ -106,7 +107,7 @@ node scripts/sync-viewer.mjs --verify ``` The pin is on the extension repository's `desktop-dev-port` branch. -Substituting the extension's `v1.8.1` tag omits the desktop fixes validated here. +Substituting the extension's `v1.8.2` tag omits the desktop fixes validated here. Build on the destination OS and CPU: From ce76506a51e04e19c8eb5a3cd1c32b3231678de0 Mon Sep 17 00:00:00 2001 From: zknpr <96851588+zknpr@users.noreply.github.com> Date: Sat, 24 Oct 2026 00:36:29 +0200 Subject: [PATCH 3/3] fix: re-sync the viewer for the WebAssembly surrogate fix and NUL keys Review of the extension changes behind this release found that sql.js 7245c26 bound TEXT containing an unpaired surrogate with the wrong byte length: 'x\uD800' was stored with a NUL appended, and some values also lost their end. Desktop 0.3.2 would have shipped that in its WebAssembly engine. Sync from desktop-dev-port at b4a3341, which merges the extension fix: sql.js 35ac205 stores those values as the native engine does. The same merge gives WITHOUT ROWID rows whose key contains NUL a read-only reason that names the NUL instead of a size limit. viewer-dist: worker.js, sql-wasm.js and native/native-worker-desktop.js change; sql-wasm.wasm, viewer.html and the native runtime are identical. Inventory and notices: sql.js 7245c26 -> 35ac205 (LICENSE and AUTHORS unchanged between them), viewerSource -> b4a3341. README pin follows. --- README.md | 2 +- THIRD_PARTY_NOTICES.txt | 4 +- third-party/inventory.json | 6 +- viewer-dist/manifest.json | 10 +- viewer-dist/native/native-worker-desktop.js | 48 ++--- viewer-dist/sql-wasm.js | 197 ++++++++++---------- viewer-dist/worker.js | 44 ++--- 7 files changed, 156 insertions(+), 155 deletions(-) diff --git a/README.md b/README.md index 826589e..afd4139 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ other target, first sync from a checkout containing the exact source commit: ```sh git clone --branch desktop-dev-port https://github.com/zknpr/SQLite-Explorer ../SQLite-Explorer -node scripts/sync-viewer.mjs --source ../SQLite-Explorer --ref e597c1d5c8fe32aa91603b9040eb590e773284d3 +node scripts/sync-viewer.mjs --source ../SQLite-Explorer --ref b4a33419988b017cb8dd576a83b30967038b65db node scripts/sync-viewer.mjs --verify ``` diff --git a/THIRD_PARTY_NOTICES.txt b/THIRD_PARTY_NOTICES.txt index e276f6a..e8d8774 100644 --- a/THIRD_PARTY_NOTICES.txt +++ b/THIRD_PARTY_NOTICES.txt @@ -75965,9 +75965,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ============================================================================== -sql.js 7245c26ebdd0905b11a2a16d1f7a555abd768eec +sql.js 35ac205b7f9470d9aa7696ceb9cdab5dec4b6ed3 ============================================================================== -Source: https://github.com/zknpr/sql.js/tree/7245c26ebdd0905b11a2a16d1f7a555abd768eec +Source: https://github.com/zknpr/sql.js/tree/35ac205b7f9470d9aa7696ceb9cdab5dec4b6ed3 --- LICENSE --- MIT license diff --git a/third-party/inventory.json b/third-party/inventory.json index 32af3b6..ae3ebd3 100644 --- a/third-party/inventory.json +++ b/third-party/inventory.json @@ -1,6 +1,6 @@ { "format": 1, - "viewerSource": "e597c1d5c8fe32aa91603b9040eb590e773284d3", + "viewerSource": "b4a33419988b017cb8dd576a83b30967038b65db", "components": [ { "component": "@vscode/codicons 0.0.45", @@ -7634,8 +7634,8 @@ ] }, { - "component": "sql.js 7245c26ebdd0905b11a2a16d1f7a555abd768eec", - "source": "https://github.com/zknpr/sql.js/tree/7245c26ebdd0905b11a2a16d1f7a555abd768eec", + "component": "sql.js 35ac205b7f9470d9aa7696ceb9cdab5dec4b6ed3", + "source": "https://github.com/zknpr/sql.js/tree/35ac205b7f9470d9aa7696ceb9cdab5dec4b6ed3", "notices": [ { "file": "LICENSE", diff --git a/viewer-dist/manifest.json b/viewer-dist/manifest.json index ca94755..04a92c0 100644 --- a/viewer-dist/manifest.json +++ b/viewer-dist/manifest.json @@ -1,17 +1,17 @@ { "source": "SQLite-Explorer desktop/ build target", - "ref": "e597c1d5c8fe32aa91603b9040eb590e773284d3", + "ref": "b4a33419988b017cb8dd576a83b30967038b65db", "target": "aarch64-macos", - "syncedAt": "2026-10-23T21:12:09.379Z", + "syncedAt": "2026-10-23T22:35:53.418Z", "files": { "viewer.html": "0a94f34a9565b29e6830463387dfc0747acece8bc5b0e98848007c5b7d4e0699", - "worker.js": "468533c20b15fa95a28f0480581cb68ec9670be7716ca8f71874193aaf62868f", - "sql-wasm.js": "989bc91af3221aa85ba53d5ae5c8f72da42c6a5a769c0f31f74337223f2ae73c", + "worker.js": "615ed08cd58a406c527e355bbba8e946ebdf6195da6c381619fa4721a1f1ac3d", + "sql-wasm.js": "5e68997539968392caf70207e26b78486ef2e9b1a50c04cdefa966030b782106", "sql-wasm.wasm": "ea94cafe49733bd55b8b2481d5cf0f07c5e006728c94b04999be04582b19a1e7", "dev-harness.html": "baf76f7b3494a2e76ff156aed1297d28e8cedd44f0ca383fa9f917ce8a869c2f", "codicons/codicon.css": "04fca10892d8f2be5104c920b640d9a58ddcf87f4902ea300fcf08de6634f3f6", "codicons/codicon.ttf": "2bb558cb693451e73c28c33fe64aa89bc19b1a4b70f95948322c243f93476920", - "native/native-worker-desktop.js": "93c1bb05145bcaad8e1a0fdd4506eb726db3d929748c6a37cfa9b9c35fd16fb1", + "native/native-worker-desktop.js": "e0526538dfe3b01fb911a607d8be742e89aa521aea555803f9f540b1b4606e30", "native/query-plan.dylib": "3a51dcd0ebc627e63d664e9b9c317667cb356f197e0d5645262bc3b5ef7b8c3c", "native/tjs": "833325341cd47a1887fadc69cf637a26c0b120fcaa1b52ce486537bab2bc3325" } diff --git a/viewer-dist/native/native-worker-desktop.js b/viewer-dist/native/native-worker-desktop.js index 6d4ddaa..63ea8e9 100644 --- a/viewer-dist/native/native-worker-desktop.js +++ b/viewer-dist/native/native-worker-desktop.js @@ -1,16 +1,16 @@ -/*! sqlite-explorer-native-worker-sha256:25265904edaa2243bf54f1d223f20ec8702506a167eb55993baf24d2cba9efba */ -var M=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};function al(e,t){let n=Ro[t];return n!==void 0&&String(e).trim()===n.text}function cl(e){let t=[];for(let n=0;ni.kind==="word");if(!r||!ll.has(r.value.toUpperCase())||n.some(i=>i.kind==="word"&&i.value.toUpperCase()==="WITH"))return null;let o=[];for(let i=0;i=fl)))break}return o}function pl(e){let t=xo(e),n=t.find(s=>s.kind==="word");if(!n||n.value.toUpperCase()!=="CREATE")return;let r=-1;for(let s=0;s=ml||typeof t.viewSql!="function")continue;let a=i.toLowerCase();if(r.has(a))continue;r.add(a);let s=pl(t.viewSql(i)??"");if(!s)continue;let l=Io(s);if(!(!l||l.length===0))for(let u of Ao(l,t,n+1,r))o.includes(u)||o.push(u)}return o}function _o(e,t,n,r){if(!al(t,e))return;let o=Ro[e];if(e===1&&n&&r){let a=Io(n);if(a&&a.length>0){let s=Ao(a,r);if(s.length>0)return s.map(l=>`no such table: ${l}`).join("; ")}}let i=o.detail?`: ${o.detail}`:"";return`${o.text} (${o.name}${i})`}var Ro,ll,ul,dl,Vn,fl,ml,No=M(()=>{"use strict";_();Ro=Object.freeze({1:{name:"SQLITE_ERROR",text:"SQL logic error",detail:"a misspelled name, a syntax error, or a misused construct \u2014 the native engine cannot report SQLite\u2019s detailed message"},3:{name:"SQLITE_PERM",text:"access permission denied",detail:""},4:{name:"SQLITE_ABORT",text:"query aborted",detail:"the statement was rolled back before it finished"},5:{name:"SQLITE_BUSY",text:"database is locked",detail:"another connection holds a write lock on this file"},6:{name:"SQLITE_LOCKED",text:"database table is locked",detail:"a table is locked by another statement on this same connection"},7:{name:"SQLITE_NOMEM",text:"out of memory",detail:""},8:{name:"SQLITE_READONLY",text:"attempt to write a readonly database",detail:""},9:{name:"SQLITE_INTERRUPT",text:"interrupted",detail:"the query deadline elapsed or the run was cancelled"},10:{name:"SQLITE_IOERR",text:"disk I/O error",detail:""},11:{name:"SQLITE_CORRUPT",text:"database disk image is malformed",detail:""},12:{name:"SQLITE_NOTFOUND",text:"unknown operation",detail:""},13:{name:"SQLITE_FULL",text:"database or disk is full",detail:""},14:{name:"SQLITE_CANTOPEN",text:"unable to open database file",detail:""},15:{name:"SQLITE_PROTOCOL",text:"locking protocol",detail:""},17:{name:"SQLITE_SCHEMA",text:"database schema has changed",detail:""},18:{name:"SQLITE_TOOBIG",text:"string or blob too big",detail:"a value exceeded SQLite\u2019s maximum length for this build"},19:{name:"SQLITE_CONSTRAINT",text:"constraint failed",detail:"a NOT NULL, UNIQUE, CHECK, PRIMARY KEY or FOREIGN KEY constraint rejected the row"},20:{name:"SQLITE_MISMATCH",text:"datatype mismatch",detail:"a value does not fit the target column (an INTEGER PRIMARY KEY only accepts integers)"},21:{name:"SQLITE_MISUSE",text:"bad parameter or other API misuse",detail:""},23:{name:"SQLITE_AUTH",text:"authorization denied",detail:""},25:{name:"SQLITE_RANGE",text:"column index out of range",detail:""},26:{name:"SQLITE_NOTADB",text:"file is not a database",detail:""}});ll=new Set(["SELECT","INSERT","REPLACE","UPDATE","DELETE","VALUES"]);ul=new Set(["FROM","JOIN","INTO","UPDATE"]),dl=new Set(["SELECT","VALUES","WITH"]),Vn=/[A-Za-z0-9_$\u0080-\uffff]/,fl=4,ml=4});function xl(e){let t=new Error(`${e.toUpperCase()} is blocked on the native engine: it can open or create a database file outside the path this session is bound to, which would defeat the desktop path sandbox. Only the bound database is reachable.`);return t.code=Cl,t}function Il(){let e=new Error("VACUUM ... INTO is blocked on the native engine: it writes a full copy of the database to an arbitrary path outside the one this session is bound to, defeating the desktop path sandbox. Plain VACUUM (in place) is allowed.");return e.code=Rl,e}function Wn(e){let t=0;for(;;){let n=t;for(;t{let r=/^(.*):\d+$/.exec(n);return r!==null&&t.has(r[1])})}function Ll(e,t){return typeof e=="bigint"&&!t?Number(e):e}function kt(e,t,n,r){if(n>=t.length)return null;let o=t.slice(n),i=Wn(o),a=El.exec(i);if(a)throw xl(a[0]);let s;try{s=e.prepare(o)}catch(d){throw jn(d,o,r)}let l;try{l=String(s)}catch(d){throw Z(s),d}if(l==="")return Z(s),null;let u=Nl(o,l);if(u<0)throw Z(s),new Error("Unable to determine the SQL statement boundary: the compiled statement text does not align with its source");let c=o.slice(0,u);if(wl.test(i)&&bl.test(c))throw Z(s),Il();return{compiled:s,source:c,expanded:l,end:n+u}}function Z(e){try{e?.finalize?.()}catch{}}function $l(e,t,n){let r=0;for(;;){let o=kt(e,t,r,n);if(o===null)return;r=o.end,Z(o.compiled)}}function Fn(e,t,n,r){let o=t,i,a=null,s,l=null,u=-1,c=n===r?n:r,d=()=>{if(e.assertUsable(),o===null)throw new Error("Statement closed")},f=()=>{if(s!==void 0)return s;let g=e.probeColumnNames(c);return s=g&&n!==r&&Ol(g)?null:g,s},m=()=>{if(a!==null)return a;let g;try{g=i===void 0?o.all():o.all(i)}catch(R){throw jn(R,n,e.describeError)}let S=g.length>0?Object.keys(g[0]):[],w=g.map(R=>S.map(I=>R[I]));if(s&&g.length>0&&s.length!==S.length){let R=n===r?e.readRowsThroughView(c):null;if(R)return a=R,a;s=S,l=S}return a={columns:s??S,values:w},a},E=()=>{if(l!==null)return l;if(a!==null)return l=a.columns,l;let g=f();return g?(l=g,l):hl.test(Wn(c))?(l=m().columns,l):[]},y={bind(g){return d(),i=g??void 0,a=null,u=-1,!0},step(){return d(),m(),u+=1,u=a.values.length)return[];let w=S?.useBigInt===!0;return a.values[u].map(R=>Ll(R,w))},getColumnNames(){return d(),E().slice()},run(g){return d(),g!=null&&y.bind(g),y.step(),y.reset()},reset(){return d(),i=void 0,a=null,u=-1,!0},getSQL(){return n},free(){if(o===null)return!1;let g=o;return o=null,e.forget(y),Z(g),!0}};return e.register(y),y}function Lo(e={},t={}){let n=t.sqlite;if(typeof n?.Database!="function")throw new Error("createShimDatabase requires deps.sqlite.Database");if(e.content!==void 0)throw new Error("createShimDatabase: opening from bytes is not supported by the native engine; open by path ({ path, readOnly }) or use the WASM engine");let r=e.readOnly===!0,o=e.path===void 0||e.path===null?new n.Database(":memory:"):new n.Database(e.path,r?{readOnly:!0}:{create:!0}),i=!1,a=new Set,s=null,l=null,u=()=>{if(l!==null)throw l;if(i)throw new Error("Database closed")},c=(p,b)=>{try{t.onCleanupFailure?.(p,b)}catch{}},d=p=>{let b=o.prepare(p);try{let k=b.all()[0];return k===void 0?void 0:k[Object.keys(k)[0]]}finally{Z(b)}},f=()=>{try{o.exec("PRAGMA query_only = 1")}catch(p){throw st(new Error(`Unable to enforce read-only mode: ${p?.message??p}`),p)}if(Number(d("PRAGMA query_only"))!==1)throw new Error("Unable to enforce read-only mode: PRAGMA query_only did not take")};if(r)try{f()}catch(p){throw o.close(),p}let m=!1,E=p=>{if(!r)return p();if(l!==null)throw l;if(m)throw new Error("Internal error: read-only write lift is not re-entrant");o.exec("PRAGMA query_only = 0"),m=!0;let b=null,N;try{N=p()}catch(k){b=k}try{o.exec("PRAGMA query_only = 1")}catch(k){l=st(new Error("Read-only enforcement could not be restored (PRAGMA query_only); this connection is no longer trustworthy and has been disabled"),k),l.cause=k,b?b.cause===void 0&&(b.cause=k):b=l}finally{m=!1}if(b)throw b;return N},y=(p,b)=>{let N=Wn(p);if(N==="")return null;let k=`_sqlx_shim_cols_${++gl}`,U=`"${k}"`,j=`'${k}'`;try{E(()=>{let F=o.prepare(`CREATE TEMP VIEW ${U} AS ${N}`);try{F.run()}finally{Z(F)}})}catch(F){if(l!==null)throw l;if(_l(F)&&Sl.test(N))throw st(new Error(`Column names are unavailable: this connection refuses writes (PRAGMA query_only is armed) but was not opened read-only, so the probe cannot create the temporary view it reads them from. Close and reopen the database to clear it. (A session made read-only after opening must be escalated through enforceReadOnly(), which is what lets the probe lift query_only. SQLite: ${F?.message??F})`),F);return null}try{return b({quoted:U,literal:j})}catch{if(l!==null)throw l;return null}finally{try{E(()=>o.exec(`DROP VIEW IF EXISTS temp.${U}`))}catch(F){c(F,"drop column-probe view")}}},g=p=>{let b;try{b=o.prepare(`SELECT 1 FROM "${String(p).replace(/"/g,'""')}" WHERE 0`)}catch{return!1}return Z(b),!0},S=p=>{let b;try{b=o.prepare("SELECT count(*) AS c FROM (SELECT name FROM sqlite_schema UNION ALL SELECT name FROM sqlite_temp_schema) WHERE name = ? COLLATE NOCASE")}catch{return!0}try{return Number(b.all([String(p)])[0]?.c??1)>0}catch{return!0}finally{Z(b)}},w=p=>{let b;try{b=o.prepare("SELECT sql FROM (SELECT name, type, sql FROM sqlite_schema UNION ALL SELECT name, type, sql FROM sqlite_temp_schema) WHERE type = 'view' AND name = ? COLLATE NOCASE LIMIT 1")}catch{return}try{let N=b.all([String(p)])[0]?.sql;return typeof N=="string"?N:void 0}catch{return}finally{Z(b)}},R=(p,b)=>_o(p.errno,p.message,b,{resolves:g,inCatalog:S,viewSql:w}),I={assertUsable:()=>{if(l!==null)throw l},describeError:R,register:p=>a.add(p),forget:p=>a.delete(p),probeColumnNames:p=>y(p,({literal:b})=>{let N=o.prepare(`SELECT name FROM pragma_table_info(${b})`);try{let k=N.all().map(U=>U.name);return k.length>0?k:null}finally{Z(N)}}),readRowsThroughView:p=>y(p,({quoted:b})=>{let N=o.prepare(`SELECT * FROM ${b}`);try{let k=N.all();if(k.length===0)return null;let U=Object.keys(k[0]);return{columns:U,values:k.map(j=>U.map(F=>j[F]))}}finally{Z(N)}})},T=p=>{let b=kt(o,p,0,R);if(b===null)throw new Error("Nothing to prepare");return Fn(I,b.compiled,b.source,b.expanded)},A=()=>{let p=t.fs;if(!p||typeof p.makeTempDir!="function"||typeof p.readFile!="function"||typeof p.remove!="function")throw new Error("export() requires deps.fs with makeTempDir/readFile/remove");return p},$=null,O=p=>E(()=>{o.vacuumInto(p)}),D={exec(p,b,N){u();let k=[],U=0;for(;;){let j=kt(o,p,U,R);if(j===null)break;U=j.end;let F=Fn(I,j.compiled,j.source,j.expanded);try{b!=null&&F.bind(b),F.getColumnNames();let re=null,Lt=[];for(;F.step();)re===null&&(re=F.getColumnNames()),Lt.push(F.get(null,N));re!==null&&k.push({columns:re,values:Lt})}finally{F.free()}}return k},run(p,b){if(u(),b!=null){let N=T(p);try{N.bind(b),N.step()}finally{N.free()}}else{Tl.test(p)&&$l(o,p,R);try{o.exec(p)}catch(N){throw jn(N,p,R)}}return D},prepare(p,b){u();let N=T(p);return b!=null&&N.bind(b),N},iterateStatements(p){u();let b=0,N=null,k=!1;return{next(){if(N!==null&&(N.free(),N=null),k)return{done:!0};u();let U;try{U=kt(o,p,b,R)}catch(j){throw k=!0,j}return U===null?(k=!0,{done:!0}):(b=U.end,N=Fn(I,U.compiled,U.source,U.expanded),{value:N,done:!1})},getRemainingSQL(){return p.slice(b)},[Symbol.iterator](){return this}}},getRowsModified(){return u(),s??=o.prepare("SELECT changes() AS c"),Number(s.all()[0].c)},export(){u();let p=A(),b=p.makeTempDir();if(typeof b?.then=="function")throw new Error("export() requires a synchronous deps.fs; use exportAsync() on runtimes whose filesystem API is promise-based (tjs)");try{let N=`${b}/export.sqlite`;O(N);let k=p.readFile(N);if(typeof k?.then=="function")throw new Error("export() requires a synchronous deps.fs.readFile; use exportAsync()");return k}finally{try{p.remove(b)}catch(N){c(N,"remove export temp directory")}}},async exportAsync(){u();let p=A(),b=await p.makeTempDir();try{let N=`${b}/export.sqlite`;return O(N),await p.readFile(N)}finally{try{await p.remove(b)}catch(N){c(N,"remove export temp directory")}}},async exportToPath(p){if(u(),typeof p!="string"||p.length===0)throw new Error("exportToPath requires a non-empty target path");O(p)},progress_handler(p,b){u(),$=b==null?null:{interval:p,callback:b}},get progressHandler(){return $},setQueryDeadline(p){u(),o.setQueryDeadline?.(p)},clearQueryDeadline(){u(),o.clearQueryDeadline?.()},interrupt(){u(),o.interrupt?.()},get inTransaction(){return u(),o.inTransaction===!0},enforceReadOnly(){if(u(),r)return!0;if(m)throw new Error("Internal error: cannot escalate to read-only while an internal write lift is open");try{f()}catch(p){throw l=st(new Error(`Read-only enforcement could not be armed (${p?.message??p}); this connection is no longer trustworthy and has been disabled`),p),l.cause=p,l}return r=!0,!0},close(){if(!i){i=!0;for(let p of[...a])p.free();a.clear(),Z(s),s=null,o.close()}},get backingDatabase(){return o}};return D}var gl,yl,hl,El,wl,Sl,bl,Tl,Cl,Rl,Oo,Al,$o=M(()=>{"use strict";_();No();gl=0,yl=/^(?:\?\d*|[:@$][A-Za-z0-9_$\u0080-\uffff]+(?:\([^()]*\))?)/,hl=/^explain\b/i,El=/^(?:attach|detach)\b/i,wl=/^vacuum\b/i,Sl=/^(?:select|values|with)\b/i,bl=/\binto\b/i,Tl=/\b(?:attach|detach|vacuum)\b/i,Cl="ERR_NATIVE_SQL_ATTACH_BLOCKED",Rl="ERR_NATIVE_SQL_VACUUM_INTO_BLOCKED";Oo="NULL";Al=8});function Kn(e){return Number.isNaN(e)?ko:e>0?vo:Qn}function zn(e){return e.startsWith("~")?`~${e}`:e}function Xn(e){return e.startsWith("~~")?e.slice(1):e===vo?Number.POSITIVE_INFINITY:e===Qn?Number.NEGATIVE_INFINITY:e===ko?Number.NaN:e}var Hn,vo,Qn,ko,vl,Pt=M(()=>{"use strict";_();Hn="~sqlite-explorer-non-finite:",vo=`${Hn}Infinity`,Qn=`${Hn}-Infinity`,ko=`${Hn}NaN`,vl=Qn.length+2});function Vo(e,t,n){return new at({code:kl,direction:e,actualBytes:t,limitBytes:n,message:`Native frame rejected: ${e} payload is ${t} bytes and exceeds the ${n}-byte frame limit.`})}function Dt(e,t){return new at({code:Pl,direction:"incoming",message:`Native frame rejected: ${e}`,cause:t})}function ql(e,t){return new at({code:Dl,direction:"incoming",actualBytes:e,limitBytes:t,fatal:!0,message:`Native frame stream desynchronised: header declares ${e} bytes, beyond the ${t}-byte recoverable-drain limit. The stream is no longer framed; reading has stopped.`})}function Fo(e){if(e===void 0)return Uo;if(!Number.isSafeInteger(e)||e<1||e>Po)throw new RangeError(`Native frame limit must be an integer in [1, ${Po}], got ${e}`);return e}function Vl(e,t){if(e===void 0)return t*qo;if(!Number.isSafeInteger(e)||eMt)throw new RangeError(`Native frame drain limit must be an integer in [${t}, ${Mt}], got ${e}`);return e}function Gn(e){if(e.length===0)return"";let t=[];for(let n=0;nMt)throw new RangeError(`Native frame header must be an integer in [0, ${Mt}], got ${e}`);return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function jl(e,t=0){if(!e||e.length>>0}function Mo(e){return e.length<=Bo?e:`${e.slice(0,Bo)}\u2026 [truncated]`}function Ut(e){if(!e||typeof e!="object")return{name:"Error",message:Mo(typeof e=="string"?e:String(e))};let t={name:typeof e.name=="string"?e.name:"Error",message:Mo(typeof e.message=="string"?e.message:String(e))};return typeof e.code=="string"&&(t.code=e.code),Number.isSafeInteger(e.errno)&&(t.errno=e.errno),t}function Hl(e){if(!e||typeof e!="object"||typeof e.message!="string")return;let t=new Error(e.message);return typeof e.name=="string"&&(t.name=e.name),typeof e.code=="string"&&(t.code=e.code),Number.isSafeInteger(e.errno)&&(t.errno=e.errno),t}function Yn(e){return!!e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"}function Ql(e){return Jn(e,new WeakSet)}function Jn(e,t){if(typeof e=="bigint")return{__type:"BigInt",decimal:e.toString()};if(typeof e=="number")return Number.isFinite(e)?e:Kn(e);if(typeof e=="string")return zn(e);if(e instanceof Uint8Array)return{__type:"Uint8Array",base64:Gn(e)};if(ArrayBuffer.isView(e))return{__type:"Uint8Array",base64:Gn(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))};if(e instanceof ArrayBuffer)return{__type:"Uint8Array",base64:Gn(new Uint8Array(e))};if(e instanceof Error)return{__type:"Error",error:Ut(e)};if(e===null||typeof e!="object")return e;if(t.has(e))throw new TypeError("Native frame value: circular reference");t.add(e);try{if(Array.isArray(e))return e.map(r=>Jn(r,t));if(!Yn(e))return e;let n={};for(let r of Object.keys(e))Wo(n,r,Jn(e[r],t));return n}finally{t.delete(e)}}function Bt(e,t,n){return t.length===2&&t.includes("__type")&&t.includes(n)}function Wo(e,t,n){if(t==="__proto__"){Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0});return}e[t]=n}function Zn(e){if(typeof e=="string")return Xn(e);if(Array.isArray(e))return e.map(Zn);if(!Yn(e))return e;let t=Object.keys(e);if(e.__type==="BigInt"&&typeof e.decimal=="string"&&Bt(e,t,"decimal")){if(!Ul.test(e.decimal))throw new TypeError(`Native frame value: invalid BigInt marker payload ${JSON.stringify(e.decimal)}`);return BigInt(e.decimal)}if(e.__type==="Uint8Array"&&typeof e.base64=="string"&&Bt(e,t,"base64"))return Fl(e.base64);if(e.__type==="Uint8Array"&&Array.isArray(e.data)&&Bt(e,t,"data"))return new Uint8Array(e.data);if(e.__type==="Error"&&Yn(e.error)&&Bt(e,t,"error")){let r=Hl(e.error);if(!r)throw new TypeError("Native frame value: invalid Error marker payload");return r}let n={};for(let r of t)Wo(n,r,Zn(e[r]));return n}function Kl(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function er(e,t){let n=Fo(t?.maxFrameBytes),r=JSON.stringify(Ql(e));if(typeof r!="string")throw new TypeError("Native frame: message is not JSON-serialisable");if(r.length*3>n){let a=Kl(r);if(a>n)throw Vo("outgoing",a,n)}let o=Bl.encode(r),i=new Uint8Array(Oe+o.length);return i.set(Wl(o.length),0),i.set(o,Oe),i}function jo(e,t,n){let r=Fo(n?.maxFrameBytes),o=Vl(n?.maxDrainBytes,r),i=[],a=0,s=0,l=-1,u=0,c=!1,d=!1,f=g=>{s-=g;let S=g;for(;S>0;){let R=i[0].length-a;R>S?(a+=S,S=0):(S-=R,i.shift(),a=0)}},m=g=>{if(g===0)return new Uint8Array(0);let S=i[0];if(S.length-a>=g){let I=S.subarray(a,a+g);return f(g),I}let w=new Uint8Array(g),R=0;for(;R{let S;try{S=Ml.decode(g)}catch(I){t(Dt(`payload is not valid UTF-8 (${g.length} bytes)`,I));return}let w;try{w=JSON.parse(S)}catch(I){t(Dt(`payload is not valid JSON (${g.length} bytes)`,I));return}let R;try{R=Zn(w)}catch(I){t(Dt(`payload carries an invalid tagged value: ${I?.message??I}`,I));return}e(R)},y=()=>{for(;;){if(u>0){let S=Math.min(u,s);if(S>0&&(f(S),u-=S),u>0)return;continue}if(l<0){if(so){d=!0,i.length=0,a=0,s=0,u=0,t(ql(S,o));return}if(S>r){u=S,t(Vo("incoming",S,r));continue}l=S}if(s0||l>=0))){let g=l>=0?l-s:null;t(Dt(g===null?`stream ended with a truncated frame header (${s} of ${Oe} bytes)`:`stream ended with a truncated frame payload (${g} of ${l} bytes missing)`))}},get bufferedBytes(){return s},get skipRemainingBytes(){return u},get fatal(){return d}}}function qe(e,t=null){let n=Ut(e);return{channel:"rpc",content:{kind:"response",messageId:t,success:!1,errorMessage:n.message,error:n}}}var Oe,Uo,qo,Ef,Po,Mt,kl,Pl,Dl,Bl,Ml,Ul,Do,Bo,at,tr=M(()=>{"use strict";_();Pt();Oe=4,Uo=16*1024*1024,qo=4,Ef=Uo*qo,Po=268435456,Mt=4294967295,kl="ERR_NATIVE_FRAME_TOO_LARGE",Pl="ERR_NATIVE_FRAME_MALFORMED",Dl="ERR_NATIVE_FRAME_DESYNC",Bl=new TextEncoder,Ml=new TextDecoder("utf-8",{fatal:!0}),Ul=/^-?(?:0|[1-9][0-9]*)$/,Do=32768,Bo=512,at=class extends Error{constructor(t){super(t.message,t.cause===void 0?void 0:{cause:t.cause}),this.name="NativeFrameError",this.code=t.code,this.direction=t.direction,this.actualBytes=t.actualBytes,this.limitBytes=t.limitBytes,this.fatal=t.fatal===!0}}});function Ho(e={}){let t=e.stdin??globalThis.tjs?.stdin,n=e.stdout??globalThis.tjs?.stdout;if(!t||typeof t.getReader!="function")throw new TypeError("stdio transport requires a WHATWG readable stdin (getReader)");if(!n||typeof n.getWriter!="function")throw new TypeError("stdio transport requires a WHATWG writable stdout (getWriter)");let r={};e.maxFrameBytes!==void 0&&(r.maxFrameBytes=e.maxFrameBytes),e.maxDrainBytes!==void 0&&(r.maxDrainBytes=e.maxDrainBytes);let o=e.maxFrameBytes===void 0?void 0:{maxFrameBytes:e.maxFrameBytes},i=t.getReader(),a=n.getWriter(),s=null,l=!1,u=!1,c=null,d=Promise.resolve(),f=(w,R,I)=>{try{R(I)}catch(T){console.error(`[stdio-transport] ${w} callback threw`,T)}},m=w=>{e.onTransportError?f("onTransportError",e.onTransportError,w):console.error("[stdio-transport]",w)},E=w=>{let R=d.then(()=>a.write(w));return d=R.then(()=>{},()=>{}),R.catch(m),R},y=jo(w=>{if(!s){m(new Error("stdio transport received a frame before onmessage was installed"));return}f("onmessage",s,{data:w})},w=>{try{E(er(qe(w),o))}catch(R){m(R)}w?.fatal===!0&&(c=w)},r),g=w=>{u||(u=!0,e.onEof&&f("onEof",e.onEof,w))},S=async()=>{let w={kind:"eof"};try{for(;;){let R=await i.read();if(R.done)break;let I=R.value;if(I&&I.length>0&&y.push(I),c){w={kind:"fatal",error:c};break}}}catch(R){m(R),w={kind:"stream-error",error:R}}finally{y.end(),g(w)}};return{get onmessage(){return s},set onmessage(w){s=w},postMessage(w){return E(er(w,o))},start(){if(l)throw new Error("stdio transport already started");return l=!0,S()},flush(){return d}}}var Qo=M(()=>{"use strict";_();tr()});function Ko(e){return e.startsWith("--path-utf8=")?decodeURIComponent(e.slice(12)):e}var zo=M(()=>{"use strict";_()});import{Database as zl}from"tjs:sqlite";import Xo from"tjs:path";async function ec(e){let t=Xo.dirname(tjs.exePath);for(let n of["query-plan.dylib","query-plan.so","query-plan.dll"]){let r=Xo.join(t,n);try{await tjs.stat(r)}catch(o){if(o?.code==="ENOENT")continue;throw o}e.backingDatabase.loadExtension(r,"sqlite3_sqliteexplorer_init");return}throw new Error("Missing bundled query-plan reader beside the native runtime.")}async function B(e){if(Ve=null,e?.path!==qt)throw new Error(`refusing to open a database other than the one this sidecar was bound to at spawn (got ${JSON.stringify(e?.path??null)})`);let t=e.readOnlyMode===!0;if(Yl&&!t)throw new Error("refusing a writable open: this sidecar was spawned for a read-only session");let n=Lo({path:qt,readOnly:t},Zl);try{await ec(n)}catch(i){throw n.close(),new Error(`Unable to initialize the bounded query-plan reader: ${i?.message??i}`,{cause:i})}let r=Number.isFinite(e.queryTimeout)&&e.queryTimeout>0?e.queryTimeout:Xl,o=n.progress_handler.bind(n);return n.progress_handler=(i,a)=>{o(i,a),i!=null&&typeof a=="function"?n.setQueryDeadline(r):n.clearQueryDeadline()},Ve=n,{SQL:Object.freeze({engine:"tjs-native",queryPlanReaderActive:!0}),db:n}}async function rc(e,t){let n=`__shell_export_${++tc}_${Math.random().toString(36).slice(2)}`,r=null;Vt.set(n,o=>{r=o});try{if(typeof globalThis.onmessage!="function")throw new Error("worker method layer is not loaded (no onmessage handler)");await globalThis.onmessage({data:{channel:"rpc",content:{kind:"invoke",messageId:n,targetMethod:e,payload:t}}})}finally{Vt.delete(n)}if(r===null)throw new Error(`in-process ${e} completed without posting a response`);if(r.success!==!0){let o=new Error(r.errorMessage||`${e} failed`);throw typeof r.error?.code=="string"&&(o.code=r.error.code),Number.isSafeInteger(r.error?.errno)&&(o.errno=r.error.errno),o}return r.data}async function oc(e){try{if(!Ve)throw new Error("No database initialized");let t=await Ve.exportAsync();We({channel:"rpc",content:{kind:"response",messageId:e,success:!0,data:t}})}catch(t){We(qe(t,e))}}async function ic(e){let t=typeof e?.messageId=="string"||typeof e?.messageId=="number"?e.messageId:null;if(t===null){console.error("[native-worker] shell export request without a messageId; dropped");return}try{let n=e.method,r=e.tempPath;if(n!=="exportDatabase"&&n!=="exportTable")throw new Error(`unknown shell export method ${JSON.stringify(n??null)}`);if(typeof r!="string"||r.length===0)throw new Error("shell export request carries no tempPath");let o;if(n==="exportDatabase"){if(!Ve)throw new Error("No database initialized");await Ve.exportToPath(r),o=(await tjs.stat(r)).size}else{if(!Array.isArray(e.args))throw new Error("shell exportTable request carries no args array");let a=(await rc("exportTable",e.args))?.contentChunks;if(!Array.isArray(a))throw new Error("exportTable returned no contentChunks array");o=await sc(r,a)}We({channel:"shell",content:{kind:"export-result",messageId:t,success:!0,bytesWritten:o}})}catch(n){We({channel:"shell",content:{kind:"export-result",messageId:t,success:!1,error:Ut(n)}})}}async function sc(e,t){let n=await tjs.open(e,"wx"),r=0,o=null;try{let i=new TextEncoder;for(let a of t){let s;if(typeof a=="string")s=i.encode(a);else if(a instanceof Uint8Array)s=a;else throw new Error(`exportTable produced an unwritable chunk (${typeof a})`);for(;s.length>0;){let l=await n.write(s);if(!Number.isInteger(l)||l<=0)throw new Error(`short write to export temp file (wrote ${l})`);r+=l,s=s.subarray(l)}}return await n.sync(),r}catch(i){throw o=i,i}finally{try{await n.close()}catch(i){if(o===null)throw i;console.error(`[native-worker] failed to close export temp file: ${i?.message??i}`)}}}var Jo,Zo,ei,Go,Xl,Gl,Le,qt,Yl,Jl,Zl,Ve,ti,ni,Fe,ri,We,Vt,tc,nc,Yo,nr=M(()=>{"use strict";_();$o();Qo();tr();zo();Jo=0,Zo=1,ei=2,Go=3,Xl=3e4,Gl=1e3,Le=tjs.args.slice(3);(Le.length!==2||Le[0]===""||Le[1]!=="ro"&&Le[1]!=="rw")&&(console.error(`[native-worker] bad argv ${JSON.stringify(Le)}; usage: tjs run native-worker-desktop.js ro|rw`),tjs.exit(ei));try{if(qt=Ko(Le[0]),!qt)throw new Error("database path is empty")}catch(e){console.error(`[native-worker] invalid bound path: ${e.message}`),tjs.exit(ei)}Yl=Le[1]==="ro",Jl=(tjs.env.TMPDIR??tjs.env.TEMP??tjs.env.TMP??"/tmp").replace(/[\\/]+$/,""),Zl={sqlite:{Database:zl},fs:{makeTempDir:()=>tjs.makeTempDir(`${Jl}/sqlite-explorer-export-XXXXXX`),readFile:e=>tjs.readFile(e),remove:e=>tjs.remove(e,{recursive:!0})},onCleanupFailure:(e,t)=>{console.error(`[native-worker] cleanup failed (${t}): ${e?.message??e}`)}},Ve=null;ti={kind:"eof"},ni=()=>ti,Fe=Ho({onEof:e=>{ti=e},onTransportError:e=>{console.error(`[native-worker] transport error: ${e?.message??e}`)}}),ri=e=>{let t=e?.content?.messageId;return typeof t=="string"||typeof t=="number"?t:null},We=e=>{try{Fe.postMessage(e)}catch(t){try{Fe.postMessage(qe(t,ri(e)))}catch(n){console.error(`[native-worker] failed to send bounded error response: ${n?.message??n}`)}}};globalThis.postMessage=(e,t)=>{nc(e)||We(e)};Vt=new Map,tc=0,nc=e=>{if(e?.channel!=="rpc"||e?.content?.kind!=="response")return!1;let t=Vt.get(e.content.messageId);return t===void 0?!1:(Vt.delete(e.content.messageId),t(e.content),!0)};Fe.onmessage=async e=>{let t=e?.data;try{if(t?.channel==="shell"){t.content?.kind==="export"?await ic(t.content):console.error(`[native-worker] unknown shell message kind ${JSON.stringify(t.content?.kind??null)}; dropped`);return}let n=t?.channel==="rpc"?t.content:void 0;if(n?.kind==="invoke"&&n.targetMethod==="exportDatabase"){await oc(n.messageId);return}await globalThis.onmessage?.(e)}catch(n){We(qe(n,ri(t)))}};Yo=tjs.ppid;setInterval(()=>{tjs.ppid!==Yo&&(console.error(`[native-worker] parent process ${Yo} vanished without closing stdin (ppid now ${tjs.ppid}); exiting (code ${Go})`),tjs.exit(Go))},Gl)});var _=M(()=>{"use strict";nr()});function ge(e){if(e==="utf-8")return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});let t=e==="utf-16le";return{decode(n){if(n.length%2!==0)throw new TypeError(`Invalid ${e}: odd byte length`);let r=a=>t?n[a]|n[a+1]<<8:n[a]<<8|n[a+1],o=[],i="";for(let a=0;a=55296&&s<=56319){let l=a+257343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s,l),a+=2}else{if(s>=56320&&s<=57343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s)}i.length>=8192&&(o.push(i),i="")}return o.push(i),o.join("")}}}var Ft=M(()=>{"use strict";_()});function C(e){return`"${e.replace(/"/g,'""')}"`}function L(e){return`main.${C(e)}`}function z(e,t="Identifier"){if(typeof e!="string"||e.length===0)throw new Error(`${t} is required`);if(e.includes("\0"))throw new Error(`${t} cannot contain NUL characters`)}function rr(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function oi(e){if(e==null)return"NULL";if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();if(typeof e=="string"){if(e.includes("\0")){let n=new TextEncoder().encode(e);return`CAST(X'${Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}' AS TEXT)`}return`'${e.replace(/'/g,"''")}'`}return e instanceof Uint8Array?`X'${Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}'`:`'${String(e).replace(/'/g,"''")}'`}function lt(e,t="\\"){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`[${n}%_]`,"g");return e.replace(r,o=>t+o)}function H(e){let t=typeof e;if(t!=="string"&&t!=="number"&&t!=="bigint")throw new Error(`Invalid rowid: ${e}`);if(typeof e=="number"){if(!Number.isSafeInteger(e))throw new Error(`Invalid rowid: ${e}`);return e}let n=typeof e=="string"?e.trim():e.toString();if(!/^[+-]?\d+$/.test(n))throw new Error(`Invalid rowid: ${e}`);let r=BigInt(n);if(rlc)throw new Error(`Invalid rowid: ${e}`);let o=Number(r);return Number.isSafeInteger(o)?o:r.toString()}var ac,lc,Y=M(()=>{"use strict";_();ac=-9223372036854775808n,lc=9223372036854775807n});function ii(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function li(e){let t=[],n=0;for(;nt.toLowerCase())}function je(e,t){if(!ye(e[t]))throw new Error("Expected an SQL identifier");return t+1}function cc(e,t){return t=je(e,t),e[t]?.kind==="symbol"&&e[t].value==="."&&(t=je(e,t+1)),t}function jt(e){let t=li(e),n=[],r,o=0,i=d=>{if(!X(t[o],d))throw new Error(`Expected ${d} in stored CREATE TRIGGER SQL`);o++};if(i("CREATE"),(X(t[o],"TEMP")||X(t[o],"TEMPORARY"))&&o++,i("TRIGGER"),X(t[o],"IF")&&(o++,i("NOT"),i("EXISTS")),o=cc(t,o),X(t[o],"BEFORE")||X(t[o],"AFTER")?o++:X(t[o],"INSTEAD")&&(o++,i("OF")),X(t[o],"INSERT"))r="insert",o++;else if(X(t[o],"DELETE"))r="delete",o++;else if(X(t[o],"UPDATE")){if(r="update",o++,X(t[o],"OF")){if(o++,!ye(t[o]))throw new Error("Expected an SQL identifier after UPDATE OF");for(n.push(t[o]),o=je(t,o);t[o]?.kind==="symbol"&&t[o].value===",";){if(o++,!ye(t[o]))throw new Error("Expected an SQL identifier in UPDATE OF column list");n.push(t[o]),o=je(t,o)}}}else throw new Error("Expected a trigger event in stored CREATE TRIGGER SQL");i("ON");let a=o,s=t[o];o=je(t,o);let l;t[o]?.kind==="symbol"&&t[o].value==="."&&(l=s.value,o=je(t,o+1));let u=o,c=t.findIndex((d,f)=>f>=o&&X(d,"BEGIN"));if(c<0)throw new Error("Expected BEGIN in stored CREATE TRIGGER SQL");return{tokens:t,event:r,targetSchema:l,targetStartIndex:a,updateOfColumns:n,referenceStartIndex:u,bodyStartIndex:c+1}}function ir(e){let t=jt(e);return{event:t.event,targetSchema:t.targetSchema,updateOfColumns:t.updateOfColumns.map(n=>n.value)}}function Ht(e,t,n,r){let o=ir(e),i=`${C(t)}.${C(n)}`;if(o.event==="insert")return`EXPLAIN INSERT INTO ${i} DEFAULT VALUES`;if(o.event==="delete")return`EXPLAIN DELETE FROM ${i} WHERE 0`;let a=new Map(r.map(c=>[he(c),c])),s=o.updateOfColumns.map(c=>a.get(he(c))).find(c=>c!==void 0);if(o.updateOfColumns.length>0&&s===void 0)return;let l=s??r[0];if(l===void 0)throw new Error(`Trigger target ${t}.${n} has no writable column to probe`);let u=C(l);return`EXPLAIN UPDATE ${i} SET ${u} = ${u} WHERE 0`}function uc(e){return jt(e).targetSchema}function oe(e){return`main.${C(e)}`}function ci(e,t){let n=`-- TRIGGER ${t}`;return e.some(r=>r.some(o=>o===n))}function ui(e,t){if(t.length!==Wt.length)throw new Error(`View trigger definition fetch was incomplete for ${e}`);let n=[],r=[],o=[];return Wt.forEach((i,a)=>{t[a].forEach(s=>{if(typeof s[0]!="string"||typeof s[1]!="string")throw new Error(`View trigger definition is unavailable for ${e}`);if(i.temporary){let l=s[2]===1||s[2]===1n;if(s[2]!==0&&s[2]!==0n&&!l)throw new Error(`Temporary view shadow state is unavailable for ${e}`);let u;try{u=uc(s[1])}catch(c){let d=c instanceof Error?c.message:String(c);throw new Error(`Unable to determine the target of temporary trigger ${s[0]}: ${d}`)}if(u!==void 0&&he(u)!=="main")return;if(u===void 0){o.push({identifier:s[0],sql:s[1],temporary:!0});return}}n.push(i.temporary?{identifier:s[0],sql:s[1],temporary:!0}:{identifier:s[0],sql:s[1]})})}),{triggers:n,ambiguousTemporaryTriggerNames:r,unqualifiedTemporaryTriggers:o}}function Qt(e){let t=e.ambiguousTemporaryTriggerNames??[];if(t.length===0)return;let n=t.map(r=>`"${r}"`).join(", ");throw new Error(`Cannot modify main view "${e.identifier}" because temporary trigger target ownership is ambiguous for ${n}. Each named trigger uses an unqualified ON target whose historical schema cannot be proven. Drop the TEMP trigger, or recreate it with an explicitly schema-qualified target, before editing or dropping the main view.`)}function Ee(e){let t=e.trim();if(!t)throw new Error("View SELECT definition is required");let n=-1,r,o=!1,i=!1;for(let a=0;a=0&&t[n]===";"?(t.slice(0,n).trimEnd()+t.slice(n+1)).trim():t}function di(e){let t=0,n=-1,r=-1;for(let o of li(e)){if(o.kind==="symbol"&&o.value==="("){t===0&&n===-1&&(n=o.start),t++;continue}if(o.kind==="symbol"&&o.value===")"){t===1&&n!==-1&&r===-1&&(r=o.end),t=Math.max(0,t-1);continue}if(t===0&&X(o,"AS"))return{selectStart:o.end,columnListSql:n!==-1&&r!==-1?e.slice(n,r):void 0}}throw new Error("Unable to locate the SELECT body in the stored view definition")}function fi(e){let{selectStart:t}=di(e);return Ee(e.slice(t))}function sr(e){return di(e).columnListSql}function ct(e,t,n,r){let o=n??(r?.length?`(${r.map(i=>C(i)).join(", ")})`:void 0);return`CREATE VIEW ${C(e)}${o?` ${o}`:""} AS ${t}`}function ar(e,t){let n=jt(e);if(n.targetSchema===void 0){let r=n.tokens[n.targetStartIndex];return`${e.slice(0,r.start)}main.${e.slice(r.start)}`}if(he(n.targetSchema)!=="main")throw new Error(`Unable to recreate temporary trigger ${t}: target is not in main`);return e}function lr(e){if(!e.temporary)return e.sql;let t=/^(\s*CREATE\s+)(?:(?:TEMP|TEMPORARY)\s+)?(TRIGGER\b)/i;if(!t.test(e.sql))throw new Error(`Unable to recreate temporary trigger ${e.identifier}: stored SQL is not a CREATE TRIGGER statement`);return ar(e.sql,e.identifier).replace(t,"$1TEMP $2")}function or(e,t){return e.push({parent:t,aliases:new Set,hasAmbiguousSource:!1}),e.length-1}function mc(e){let{tokens:t,referenceStartIndex:n,bodyStartIndex:r}=e,o=[],i=new Array(t.length),a=new Map,s=[],l=[or(o)],u=!1;for(let c=n;c1&&l.pop()}else d.kind==="symbol"&&d.value===";"&&l.length===1&&(u=!0)}return{scopes:o,tokenScopes:i,matchingParentheses:a}}function pc(e,t){t&&/^(?:NEW|OLD)$/i.test(t)&&e.aliases.add(he(t))}function si(e,t,n,r){let o=r.scopes[n],i=t,a;if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}else if(ye(e[i])){if(a=e[i].value,i++,e[i]?.kind==="symbol"&&e[i].value==="."){if(!ye(e[i+1]))return o.hasAmbiguousSource=!0,i+1;a=e[i+1].value,i+=2}if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}}else return o.hasAmbiguousSource=!0,i+1;let s;if(X(e[i],"AS")){if(!ye(e[i+1]))return o.hasAmbiguousSource=!0,i+1;s=e[i+1].value,i+=2}else if(ye(e[i])){let l=e[i];l.kind==="word"&&dc.has(l.value.toUpperCase())||(s=l.value,i++)}return pc(o,s??a),i}function gc(e,t){let n=new Map;for(let r=e.referenceStartIndex;r{let o=t[r];return n.identifier===o.identifier&&n.sql===o.sql&&n.temporary===!0==(o.temporary===!0)})}function Kt(e,t,n,r){if(e!==void 0&&!hc(e,t)||!Ec(n,r))throw new Error(gi)}function yi(e,t){if(e===null||t===null){if(e!==t)throw new Error(gi);return}Kt(e.sql,t.sql,e.triggers,t.triggers)}var Wt,dc,fc,gi,ut=M(()=>{"use strict";_();Y();Wt=[{sql:"SELECT name, sql FROM main.sqlite_schema WHERE type = 'trigger' AND tbl_name = ? COLLATE NOCASE ORDER BY rowid",params:e=>[e],temporary:!1},{sql:"SELECT temp_trigger.name, temp_trigger.sql, EXISTS (SELECT 1 FROM sqlite_temp_schema AS temp_view WHERE temp_view.type = 'view' AND temp_view.name = ? COLLATE NOCASE) FROM sqlite_temp_schema AS temp_trigger WHERE temp_trigger.type = 'trigger' AND temp_trigger.tbl_name = ? COLLATE NOCASE ORDER BY temp_trigger.rowid",params:e=>[e,e],temporary:!0}];dc=new Set(["AS","CROSS","END","EXCEPT","FULL","GROUP","HAVING","INDEXED","INNER","INTERSECT","JOIN","LEFT","LIMIT","NATURAL","NOT","OFFSET","ON","ORDER","OUTER","RETURNING","RIGHT","SET","UNION","USING","VALUES","WHERE","WINDOW"]),fc=new Set(["END","EXCEPT","GROUP","HAVING","INTERSECT","LIMIT","OFFSET","ON","ORDER","RETURNING","SET","UNION","USING","VALUES","WHERE","WINDOW"]);gi="The view changed outside this editor. Reload before saving; the view was not modified."});function dr(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function ur(e){return JSON.stringify(e.map(dr))}function cr(e,t,n,r,o){let i=[e,t,n];return ur(r===void 0||o===void 0?i:[...i,r,o])}function hi(e){let t=e instanceof Error?e.message:String(e);return t.length>500?`${t.slice(0,500)}...`:t}function Xt(e,t,n){if(!(e<=t))throw new Error(`View dependency validation refused to inspect ${e} ${n}; the fail-closed limit is ${t}`)}async function Sc(e){let t=await e.queryRows("PRAGMA database_list"),n=[],r=new Set;for(let o of t){if(typeof o[1]!="string")throw new Error("SQLite returned invalid database-list metadata during view validation");let i=dr(o[1]);r.has(i)||(r.add(i),n.push(o[1]))}return r.has("temp")||n.unshift("temp"),Xt(n.length,wc,"database schemas"),n}async function bc(e,t){let n=[];for(let r of t){let o=zt-n.length;o<0&&Xt(n.length,zt,"schema objects");let i=await e.queryRows(`SELECT type, name, tbl_name, sql FROM ${C(r)}.sqlite_schema WHERE type IN ('view', 'trigger') ORDER BY type, name LIMIT ${o+1}`);for(let a of i){let[s,l,u,c]=a;if(s!=="view"&&s!=="trigger"||typeof l!="string"||typeof c!="string"||s==="trigger"&&typeof u!="string")throw new Error(`SQLite returned invalid ${r} schema metadata during view validation`);n.push({schema:r,kind:s,identifier:l,targetIdentifier:s==="trigger"?u:void 0,sql:c})}Xt(n.length,zt,"schema objects")}return n}async function Tc(e,t,n){return(await e.queryRows(`SELECT 1 FROM ${C(t)}.sqlite_schema WHERE type IN ('table', 'view') AND name = ? COLLATE NOCASE LIMIT 1`,[n])).length>0}async function Cc(e,t,n){let r=ir(n.sql);if(r.targetSchema!==void 0)return[r.targetSchema];if(dr(n.schema)!=="temp")return[n.schema];let o=[];for(let i of t)await Tc(e,i,n.targetIdentifier)&&o.push(i);return o.length>0?o:["main"]}async function Rc(e,t,n){let r=await e.queryRows(`PRAGMA ${C(t)}.table_xinfo(${C(n)})`),o=[];for(let i of r){if(typeof i[1]!="string")throw new Error(`SQLite returned invalid column metadata for ${t}.${n}`);let a=i[6];a!==2&&a!==2n&&a!==3&&a!==3n&&o.push(i[1])}return o}async function Ei(e){let t=await Sc(e),n=await bc(e,t),r=new Map,o=[],i=new Map;for(let s of n){if(s.kind==="view"){o.push({key:cr("view",s.schema,s.identifier),kind:"view",schema:s.schema,identifier:s.identifier,sql:`EXPLAIN SELECT * FROM ${C(s.schema)}.${C(s.identifier)}`});continue}let l;try{l=await Cc(e,t,s)}catch(u){let c=cr("trigger",s.schema,s.identifier);r.set(c,{key:c,kind:"trigger",schema:s.schema,identifier:s.identifier,valid:!1,error:hi(u)});continue}for(let u of l){let c=s.targetIdentifier,d=cr("trigger",s.schema,s.identifier,u,c);try{let f=ur([u,c]),m=i.get(f);m||(m=Rc(e,u,c),i.set(f,m));let E=Ht(s.sql,u,c,await m);if(E===void 0){r.set(d,{key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,valid:!0});continue}o.push({key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,sql:E})}catch(f){r.set(d,{key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,valid:!1,error:hi(f)})}}}Xt(o.length+r.size,zt,"view and trigger probes");let a=await e.compileStatements(o.map(s=>s.sql));if(a.length!==o.length)throw new Error("View dependency validation returned an incomplete probe result set");return o.forEach((s,l)=>{let u=a[l];r.set(s.key,{key:s.key,kind:s.kind,schema:s.schema,identifier:s.identifier,targetSchema:s.targetSchema,targetIdentifier:s.targetIdentifier,valid:u===void 0,...u===void 0?{}:{error:u}})}),r}function we(e,t){for(let n of e.values()){if(!n.valid)continue;let r=t.get(n.key);if(!r||r.valid)continue;let o=r.targetSchema&&r.targetIdentifier?` on ${r.targetSchema}.${r.targetIdentifier}`:"";throw new Error(`Schema change would break existing ${r.kind} "${r.schema}.${r.identifier}"${o}: ${r.error??"SQLite rejected it"}`)}}var wc,zt,wi=M(()=>{"use strict";_();Y();ut();wc=32,zt=1024});function dt(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function xc(e){return/[A-Za-z_\u0080-\uFFFF]/.test(e)}function Ic(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Ac(e,t,n){let r=t+1,o="";for(;rSi)throw new Error(`Cannot inspect index dependency: definition exceeds ${Si} characters`);let t=[],n=o=>{if(t.push(o),t.length>bi)throw new Error(`Cannot inspect index dependency: definition exceeds ${bi} tokens`)},r=0;for(;rs.kind==="word"&&s.value.toUpperCase()==="INDEX"),r=t.findIndex((s,l)=>l>n&&s.kind==="word"&&s.value.toUpperCase()==="ON"),o=t.findIndex((s,l)=>l>r&&s.kind==="symbol"&&s.value==="(");if(n<0||r<0||o<0)throw new Error("Cannot inspect index dependency: unsupported CREATE INDEX definition");let i=t.filter((s,l)=>l>=o&&s.kind==="symbol"&&s.value===";");if(i.length>1||i.length===1&&t.at(-1)!==i[0])throw new Error("Cannot inspect index dependency: multiple statements are not allowed");let a=i[0]?.start??e.length;return e.slice(t[o].start,a).trim()}function Ti(e,t){let n=[...t],r=`${e}_dummy`,o=new Set(t.map(dt));for(;o.has(dt(r));)r+="_";return n.push(r),`CREATE TEMP TABLE ${C(e)} (${n.map(C).join(", ")})`}function Ci(e,t){let n=new Set(t.map(dt));return e.filter(r=>n.has(dt(r)))}function Ri(e,t,n){let r=Nc(n);return`CREATE INDEX temp.${C(t)} ON ${C(e)} ${r}`}function xi(e,t,n={}){if(z(e,"Table name"),t.length===0)throw new Error("At least one column is required");if(!n||typeof n!="object"||Array.isArray(n)||n.withoutRowid!==void 0&&typeof n.withoutRowid!="boolean")throw new Error("Invalid Create Table options");let r=t.filter(s=>s.primaryKey);if(n.withoutRowid&&r.length===0)throw new Error("WITHOUT ROWID requires a primary key");let o=r.length>1,i=new Set,a=t.map(s=>{if(typeof s=="string")throw new Error("Legacy string column definitions not supported for security");z(s.name,"Column name"),rr(s.type);let l=dt(s.name);if(i.has(l))throw new Error(`Column ${JSON.stringify(s.name)} is defined more than once`);i.add(l);let u=`${C(s.name)} ${s.type}`;return s.primaryKey&&!o&&(u+=" PRIMARY KEY"),s.notNull&&(u+=" NOT NULL"),u+=Oc(s.defaultValue),u});return o&&a.push(`PRIMARY KEY (${r.map(s=>C(s.name)).join(", ")})`),`CREATE TABLE ${L(e)} (${a.join(", ")})${n.withoutRowid?" WITHOUT ROWID":""}`}function Oc(e){return e==null||e===""?"":e.toLowerCase()==="null"?" DEFAULT NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e)?` DEFAULT ${e}`:` DEFAULT '${e.replace(/'/g,"''")}'`}var Si,bi,fr=M(()=>{"use strict";_();Y();Si=1024*1024,bi=2e5});function Ii(){return{dangerousPrefix:!1,prefixOpen:!0,needsQuotes:!1}}function Ai(e,t){if((t.includes(",")||t.includes('"')||t.includes(` -`)||t.includes("\r"))&&(e.needsQuotes=!0),!!e.prefixOpen)for(let n of t){if(Lc.has(n)){e.dangerousPrefix=!0,e.needsQuotes=!0,e.prefixOpen=!1;return}if(!$c.test(n)){e.prefixOpen=!1;return}}}function vc(e){let t=Ii();Ai(t,e);let n=t.dangerousPrefix?`'${e}`:e;return t.needsQuotes?`"${n.replace(/"/g,'""')}"`:n}function kc(e,t){return e==="sql"?{prefix:"CAST(X'",suffix:"' AS TEXT)",byteEncoding:"hex"}:e==="json"?{prefix:`{"$sqliteExplorerTextBytes":{"encoding":${JSON.stringify(t)},"base64":"`,suffix:'"}}',byteEncoding:"base64"}:{prefix:`[SQLite TEXT bytes; encoding=${t}; base64=`,suffix:"]",byteEncoding:"base64"}}function _i(e){let t="",n=0;for(;n+2>>18&63]+Se[o>>>12&63]+Se[o>>>6&63]+Se[o&63]}let r=e.length-n;if(r===1){let o=e[n]<<16;t+=Se[o>>>18&63]+Se[o>>>12&63]+"=="}else if(r===2){let o=e[n]<<16|e[n+1]<<8;t+=Se[o>>>18&63]+Se[o>>>12&63]+Se[o>>>6&63]+"="}return t}function mr(e){let t=typeof e=="bigint"?e.toString():typeof e=="string"?e:void 0;if(t===void 0)throw new Error("SQLite returned invalid exact INTEGER text for export");try{if(BigInt(t).toString()!==t)throw new Error}catch{throw new Error("SQLite returned non-canonical INTEGER text for export")}return t}function Pc(e){if(!(e instanceof Uint8Array))throw new Error("SQLite returned invalid BLOB data for export");return e}function pr(e,t){let n=e.unrepresentableTextBytes;if(n===void 0)return;if(e.storageClass!=="text"||!(n instanceof Uint8Array)||!e.textEncoding)throw new Error("SQLite returned invalid unrepresentable TEXT export metadata");let r=kc(t,e.textEncoding),o=r.byteEncoding==="hex"?Array.from(n,i=>i.toString(16).padStart(2,"0")).join(""):_i(n);return r.prefix+o+r.suffix}function gr(e){let t=pr(e,"csv");return t!==void 0?t:e.storageClass==="null"?"":e.storageClass==="blob"?"[BLOB]":e.storageClass==="integer"?mr(e.value):e.storageClass==="text"?vc(String(e.value)):String(e.value)}function Ni(e){let t=pr(e,"json");return t!==void 0?t:e.storageClass==="integer"?mr(e.value):e.storageClass==="blob"?JSON.stringify(_i(Pc(e.value))):JSON.stringify(e.value)??"null"}function Oi(e){let t=pr(e,"sql");return t!==void 0?t:e.storageClass==="integer"?mr(e.value):oi(e.value)}var Lc,$c,Se,yr=M(()=>{"use strict";_();Y();Lc=new Set(["=","+","-","@","\uFF1D","\uFF0B","\uFF0D","\uFF20"]),$c=/^(?:\p{White_Space}|\p{Cc}|\p{Cf})$/u;Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"});function Pi(e,t){if(e.length!==0){if(e.length!==1||e[0].length<1||typeof e[0][0]!="string")throw new Error(`SQLite returned invalid rowid-alias metadata for ${t}`);return e[0][0]}}function Yt(e){return e.replace(/[A-Z]/g,t=>String.fromCharCode(t.charCodeAt(0)+32))}function He(e,t){return Yt(e)===Yt(t)}function Di(e,t){let n=BigInt(Number.MAX_SAFE_INTEGER),r=BigInt(Number.MIN_SAFE_INTEGER);return e.some(o=>{let i=o[t];return typeof i=="bigint"&&(i>n||i`${Bc}${f}`),r=Array.from({length:t},(d,f)=>`${Mc}${f}`),o=C(Dc),i=n.map(C),a=t*2<=qc,s=i.map((d,f)=>`CASE WHEN typeof(${d}) = 'real' THEN CAST(${d} AS TEXT) END AS ${C(r[f])}`),l=a?[...i,...s]:i,u=a?[...n,...r]:n,c={sql:`WITH ${o} (${i.join(", ")}) AS ( +/*! sqlite-explorer-native-worker-sha256:c055230c79b255cab5384406f31b04304478737f79b77c0d14041ee58ea82239 */ +var M=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};function al(e,t){let n=xo[t];return n!==void 0&&String(e).trim()===n.text}function cl(e){let t=[];for(let n=0;ni.kind==="word");if(!r||!ll.has(r.value.toUpperCase())||n.some(i=>i.kind==="word"&&i.value.toUpperCase()==="WITH"))return null;let o=[];for(let i=0;i=fl)))break}return o}function pl(e){let t=Io(e),n=t.find(s=>s.kind==="word");if(!n||n.value.toUpperCase()!=="CREATE")return;let r=-1;for(let s=0;s=ml||typeof t.viewSql!="function")continue;let a=i.toLowerCase();if(r.has(a))continue;r.add(a);let s=pl(t.viewSql(i)??"");if(!s)continue;let l=Ao(s);if(!(!l||l.length===0))for(let u of _o(l,t,n+1,r))o.includes(u)||o.push(u)}return o}function No(e,t,n,r){if(!al(t,e))return;let o=xo[e];if(e===1&&n&&r){let a=Ao(n);if(a&&a.length>0){let s=_o(a,r);if(s.length>0)return s.map(l=>`no such table: ${l}`).join("; ")}}let i=o.detail?`: ${o.detail}`:"";return`${o.text} (${o.name}${i})`}var xo,ll,ul,dl,Fn,fl,ml,Oo=M(()=>{"use strict";A();xo=Object.freeze({1:{name:"SQLITE_ERROR",text:"SQL logic error",detail:"a misspelled name, a syntax error, or a misused construct \u2014 the native engine cannot report SQLite\u2019s detailed message"},3:{name:"SQLITE_PERM",text:"access permission denied",detail:""},4:{name:"SQLITE_ABORT",text:"query aborted",detail:"the statement was rolled back before it finished"},5:{name:"SQLITE_BUSY",text:"database is locked",detail:"another connection holds a write lock on this file"},6:{name:"SQLITE_LOCKED",text:"database table is locked",detail:"a table is locked by another statement on this same connection"},7:{name:"SQLITE_NOMEM",text:"out of memory",detail:""},8:{name:"SQLITE_READONLY",text:"attempt to write a readonly database",detail:""},9:{name:"SQLITE_INTERRUPT",text:"interrupted",detail:"the query deadline elapsed or the run was cancelled"},10:{name:"SQLITE_IOERR",text:"disk I/O error",detail:""},11:{name:"SQLITE_CORRUPT",text:"database disk image is malformed",detail:""},12:{name:"SQLITE_NOTFOUND",text:"unknown operation",detail:""},13:{name:"SQLITE_FULL",text:"database or disk is full",detail:""},14:{name:"SQLITE_CANTOPEN",text:"unable to open database file",detail:""},15:{name:"SQLITE_PROTOCOL",text:"locking protocol",detail:""},17:{name:"SQLITE_SCHEMA",text:"database schema has changed",detail:""},18:{name:"SQLITE_TOOBIG",text:"string or blob too big",detail:"a value exceeded SQLite\u2019s maximum length for this build"},19:{name:"SQLITE_CONSTRAINT",text:"constraint failed",detail:"a NOT NULL, UNIQUE, CHECK, PRIMARY KEY or FOREIGN KEY constraint rejected the row"},20:{name:"SQLITE_MISMATCH",text:"datatype mismatch",detail:"a value does not fit the target column (an INTEGER PRIMARY KEY only accepts integers)"},21:{name:"SQLITE_MISUSE",text:"bad parameter or other API misuse",detail:""},23:{name:"SQLITE_AUTH",text:"authorization denied",detail:""},25:{name:"SQLITE_RANGE",text:"column index out of range",detail:""},26:{name:"SQLITE_NOTADB",text:"file is not a database",detail:""}});ll=new Set(["SELECT","INSERT","REPLACE","UPDATE","DELETE","VALUES"]);ul=new Set(["FROM","JOIN","INTO","UPDATE"]),dl=new Set(["SELECT","VALUES","WITH"]),Fn=/[A-Za-z0-9_$\u0080-\uffff]/,fl=4,ml=4});function xl(e){let t=new Error(`${e.toUpperCase()} is blocked on the native engine: it can open or create a database file outside the path this session is bound to, which would defeat the desktop path sandbox. Only the bound database is reachable.`);return t.code=Cl,t}function Il(){let e=new Error("VACUUM ... INTO is blocked on the native engine: it writes a full copy of the database to an arbitrary path outside the one this session is bound to, defeating the desktop path sandbox. Plain VACUUM (in place) is allowed.");return e.code=Rl,e}function jn(e){let t=0;for(;;){let n=t;for(;t{let r=/^(.*):\d+$/.exec(n);return r!==null&&t.has(r[1])})}function Ll(e,t){return typeof e=="bigint"&&!t?Number(e):e}function kt(e,t,n,r){if(n>=t.length)return null;let o=t.slice(n),i=jn(o),a=El.exec(i);if(a)throw xl(a[0]);let s;try{s=e.prepare(o)}catch(d){throw Hn(d,o,r)}let l;try{l=String(s)}catch(d){throw Z(s),d}if(l==="")return Z(s),null;let u=Nl(o,l);if(u<0)throw Z(s),new Error("Unable to determine the SQL statement boundary: the compiled statement text does not align with its source");let c=o.slice(0,u);if(wl.test(i)&&bl.test(c))throw Z(s),Il();return{compiled:s,source:c,expanded:l,end:n+u}}function Z(e){try{e?.finalize?.()}catch{}}function $l(e,t,n){let r=0;for(;;){let o=kt(e,t,r,n);if(o===null)return;r=o.end,Z(o.compiled)}}function Wn(e,t,n,r){let o=t,i,a=null,s,l=null,u=-1,c=n===r?n:r,d=()=>{if(e.assertUsable(),o===null)throw new Error("Statement closed")},f=()=>{if(s!==void 0)return s;let g=e.probeColumnNames(c);return s=g&&n!==r&&Ol(g)?null:g,s},m=()=>{if(a!==null)return a;let g;try{g=i===void 0?o.all():o.all(i)}catch(R){throw Hn(R,n,e.describeError)}let S=g.length>0?Object.keys(g[0]):[],w=g.map(R=>S.map(I=>R[I]));if(s&&g.length>0&&s.length!==S.length){let R=n===r?e.readRowsThroughView(c):null;if(R)return a=R,a;s=S,l=S}return a={columns:s??S,values:w},a},E=()=>{if(l!==null)return l;if(a!==null)return l=a.columns,l;let g=f();return g?(l=g,l):hl.test(jn(c))?(l=m().columns,l):[]},y={bind(g){return d(),i=g??void 0,a=null,u=-1,!0},step(){return d(),m(),u+=1,u=a.values.length)return[];let w=S?.useBigInt===!0;return a.values[u].map(R=>Ll(R,w))},getColumnNames(){return d(),E().slice()},run(g){return d(),g!=null&&y.bind(g),y.step(),y.reset()},reset(){return d(),i=void 0,a=null,u=-1,!0},getSQL(){return n},free(){if(o===null)return!1;let g=o;return o=null,e.forget(y),Z(g),!0}};return e.register(y),y}function $o(e={},t={}){let n=t.sqlite;if(typeof n?.Database!="function")throw new Error("createShimDatabase requires deps.sqlite.Database");if(e.content!==void 0)throw new Error("createShimDatabase: opening from bytes is not supported by the native engine; open by path ({ path, readOnly }) or use the WASM engine");let r=e.readOnly===!0,o=e.path===void 0||e.path===null?new n.Database(":memory:"):new n.Database(e.path,r?{readOnly:!0}:{create:!0}),i=!1,a=new Set,s=null,l=null,u=()=>{if(l!==null)throw l;if(i)throw new Error("Database closed")},c=(p,b)=>{try{t.onCleanupFailure?.(p,b)}catch{}},d=p=>{let b=o.prepare(p);try{let k=b.all()[0];return k===void 0?void 0:k[Object.keys(k)[0]]}finally{Z(b)}},f=()=>{try{o.exec("PRAGMA query_only = 1")}catch(p){throw st(new Error(`Unable to enforce read-only mode: ${p?.message??p}`),p)}if(Number(d("PRAGMA query_only"))!==1)throw new Error("Unable to enforce read-only mode: PRAGMA query_only did not take")};if(r)try{f()}catch(p){throw o.close(),p}let m=!1,E=p=>{if(!r)return p();if(l!==null)throw l;if(m)throw new Error("Internal error: read-only write lift is not re-entrant");o.exec("PRAGMA query_only = 0"),m=!0;let b=null,N;try{N=p()}catch(k){b=k}try{o.exec("PRAGMA query_only = 1")}catch(k){l=st(new Error("Read-only enforcement could not be restored (PRAGMA query_only); this connection is no longer trustworthy and has been disabled"),k),l.cause=k,b?b.cause===void 0&&(b.cause=k):b=l}finally{m=!1}if(b)throw b;return N},y=(p,b)=>{let N=jn(p);if(N==="")return null;let k=`_sqlx_shim_cols_${++gl}`,U=`"${k}"`,j=`'${k}'`;try{E(()=>{let F=o.prepare(`CREATE TEMP VIEW ${U} AS ${N}`);try{F.run()}finally{Z(F)}})}catch(F){if(l!==null)throw l;if(_l(F)&&Sl.test(N))throw st(new Error(`Column names are unavailable: this connection refuses writes (PRAGMA query_only is armed) but was not opened read-only, so the probe cannot create the temporary view it reads them from. Close and reopen the database to clear it. (A session made read-only after opening must be escalated through enforceReadOnly(), which is what lets the probe lift query_only. SQLite: ${F?.message??F})`),F);return null}try{return b({quoted:U,literal:j})}catch{if(l!==null)throw l;return null}finally{try{E(()=>o.exec(`DROP VIEW IF EXISTS temp.${U}`))}catch(F){c(F,"drop column-probe view")}}},g=p=>{let b;try{b=o.prepare(`SELECT 1 FROM "${String(p).replace(/"/g,'""')}" WHERE 0`)}catch{return!1}return Z(b),!0},S=p=>{let b;try{b=o.prepare("SELECT count(*) AS c FROM (SELECT name FROM sqlite_schema UNION ALL SELECT name FROM sqlite_temp_schema) WHERE name = ? COLLATE NOCASE")}catch{return!0}try{return Number(b.all([String(p)])[0]?.c??1)>0}catch{return!0}finally{Z(b)}},w=p=>{let b;try{b=o.prepare("SELECT sql FROM (SELECT name, type, sql FROM sqlite_schema UNION ALL SELECT name, type, sql FROM sqlite_temp_schema) WHERE type = 'view' AND name = ? COLLATE NOCASE LIMIT 1")}catch{return}try{let N=b.all([String(p)])[0]?.sql;return typeof N=="string"?N:void 0}catch{return}finally{Z(b)}},R=(p,b)=>No(p.errno,p.message,b,{resolves:g,inCatalog:S,viewSql:w}),I={assertUsable:()=>{if(l!==null)throw l},describeError:R,register:p=>a.add(p),forget:p=>a.delete(p),probeColumnNames:p=>y(p,({literal:b})=>{let N=o.prepare(`SELECT name FROM pragma_table_info(${b})`);try{let k=N.all().map(U=>U.name);return k.length>0?k:null}finally{Z(N)}}),readRowsThroughView:p=>y(p,({quoted:b})=>{let N=o.prepare(`SELECT * FROM ${b}`);try{let k=N.all();if(k.length===0)return null;let U=Object.keys(k[0]);return{columns:U,values:k.map(j=>U.map(F=>j[F]))}}finally{Z(N)}})},T=p=>{let b=kt(o,p,0,R);if(b===null)throw new Error("Nothing to prepare");return Wn(I,b.compiled,b.source,b.expanded)},_=()=>{let p=t.fs;if(!p||typeof p.makeTempDir!="function"||typeof p.readFile!="function"||typeof p.remove!="function")throw new Error("export() requires deps.fs with makeTempDir/readFile/remove");return p},$=null,O=p=>E(()=>{o.vacuumInto(p)}),D={exec(p,b,N){u();let k=[],U=0;for(;;){let j=kt(o,p,U,R);if(j===null)break;U=j.end;let F=Wn(I,j.compiled,j.source,j.expanded);try{b!=null&&F.bind(b),F.getColumnNames();let re=null,Lt=[];for(;F.step();)re===null&&(re=F.getColumnNames()),Lt.push(F.get(null,N));re!==null&&k.push({columns:re,values:Lt})}finally{F.free()}}return k},run(p,b){if(u(),b!=null){let N=T(p);try{N.bind(b),N.step()}finally{N.free()}}else{Tl.test(p)&&$l(o,p,R);try{o.exec(p)}catch(N){throw Hn(N,p,R)}}return D},prepare(p,b){u();let N=T(p);return b!=null&&N.bind(b),N},iterateStatements(p){u();let b=0,N=null,k=!1;return{next(){if(N!==null&&(N.free(),N=null),k)return{done:!0};u();let U;try{U=kt(o,p,b,R)}catch(j){throw k=!0,j}return U===null?(k=!0,{done:!0}):(b=U.end,N=Wn(I,U.compiled,U.source,U.expanded),{value:N,done:!1})},getRemainingSQL(){return p.slice(b)},[Symbol.iterator](){return this}}},getRowsModified(){return u(),s??=o.prepare("SELECT changes() AS c"),Number(s.all()[0].c)},export(){u();let p=_(),b=p.makeTempDir();if(typeof b?.then=="function")throw new Error("export() requires a synchronous deps.fs; use exportAsync() on runtimes whose filesystem API is promise-based (tjs)");try{let N=`${b}/export.sqlite`;O(N);let k=p.readFile(N);if(typeof k?.then=="function")throw new Error("export() requires a synchronous deps.fs.readFile; use exportAsync()");return k}finally{try{p.remove(b)}catch(N){c(N,"remove export temp directory")}}},async exportAsync(){u();let p=_(),b=await p.makeTempDir();try{let N=`${b}/export.sqlite`;return O(N),await p.readFile(N)}finally{try{await p.remove(b)}catch(N){c(N,"remove export temp directory")}}},async exportToPath(p){if(u(),typeof p!="string"||p.length===0)throw new Error("exportToPath requires a non-empty target path");O(p)},progress_handler(p,b){u(),$=b==null?null:{interval:p,callback:b}},get progressHandler(){return $},setQueryDeadline(p){u(),o.setQueryDeadline?.(p)},clearQueryDeadline(){u(),o.clearQueryDeadline?.()},interrupt(){u(),o.interrupt?.()},get inTransaction(){return u(),o.inTransaction===!0},enforceReadOnly(){if(u(),r)return!0;if(m)throw new Error("Internal error: cannot escalate to read-only while an internal write lift is open");try{f()}catch(p){throw l=st(new Error(`Read-only enforcement could not be armed (${p?.message??p}); this connection is no longer trustworthy and has been disabled`),p),l.cause=p,l}return r=!0,!0},close(){if(!i){i=!0;for(let p of[...a])p.free();a.clear(),Z(s),s=null,o.close()}},get backingDatabase(){return o}};return D}var gl,yl,hl,El,wl,Sl,bl,Tl,Cl,Rl,Lo,Al,vo=M(()=>{"use strict";A();Oo();gl=0,yl=/^(?:\?\d*|[:@$][A-Za-z0-9_$\u0080-\uffff]+(?:\([^()]*\))?)/,hl=/^explain\b/i,El=/^(?:attach|detach)\b/i,wl=/^vacuum\b/i,Sl=/^(?:select|values|with)\b/i,bl=/\binto\b/i,Tl=/\b(?:attach|detach|vacuum)\b/i,Cl="ERR_NATIVE_SQL_ATTACH_BLOCKED",Rl="ERR_NATIVE_SQL_VACUUM_INTO_BLOCKED";Lo="NULL";Al=8});function zn(e){return Number.isNaN(e)?Po:e>0?ko:Kn}function Xn(e){return e.startsWith("~")?`~${e}`:e}function Gn(e){return e.startsWith("~~")?e.slice(1):e===ko?Number.POSITIVE_INFINITY:e===Kn?Number.NEGATIVE_INFINITY:e===Po?Number.NaN:e}var Qn,ko,Kn,Po,vl,Pt=M(()=>{"use strict";A();Qn="~sqlite-explorer-non-finite:",ko=`${Qn}Infinity`,Kn=`${Qn}-Infinity`,Po=`${Qn}NaN`,vl=Kn.length+2});function Fo(e,t,n){return new at({code:kl,direction:e,actualBytes:t,limitBytes:n,message:`Native frame rejected: ${e} payload is ${t} bytes and exceeds the ${n}-byte frame limit.`})}function Dt(e,t){return new at({code:Pl,direction:"incoming",message:`Native frame rejected: ${e}`,cause:t})}function ql(e,t){return new at({code:Dl,direction:"incoming",actualBytes:e,limitBytes:t,fatal:!0,message:`Native frame stream desynchronised: header declares ${e} bytes, beyond the ${t}-byte recoverable-drain limit. The stream is no longer framed; reading has stopped.`})}function Wo(e){if(e===void 0)return qo;if(!Number.isSafeInteger(e)||e<1||e>Do)throw new RangeError(`Native frame limit must be an integer in [1, ${Do}], got ${e}`);return e}function Vl(e,t){if(e===void 0)return t*Vo;if(!Number.isSafeInteger(e)||eMt)throw new RangeError(`Native frame drain limit must be an integer in [${t}, ${Mt}], got ${e}`);return e}function Yn(e){if(e.length===0)return"";let t=[];for(let n=0;nMt)throw new RangeError(`Native frame header must be an integer in [0, ${Mt}], got ${e}`);return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function jl(e,t=0){if(!e||e.length>>0}function Uo(e){return e.length<=Mo?e:`${e.slice(0,Mo)}\u2026 [truncated]`}function Ut(e){if(!e||typeof e!="object")return{name:"Error",message:Uo(typeof e=="string"?e:String(e))};let t={name:typeof e.name=="string"?e.name:"Error",message:Uo(typeof e.message=="string"?e.message:String(e))};return typeof e.code=="string"&&(t.code=e.code),Number.isSafeInteger(e.errno)&&(t.errno=e.errno),t}function Hl(e){if(!e||typeof e!="object"||typeof e.message!="string")return;let t=new Error(e.message);return typeof e.name=="string"&&(t.name=e.name),typeof e.code=="string"&&(t.code=e.code),Number.isSafeInteger(e.errno)&&(t.errno=e.errno),t}function Jn(e){return!!e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"}function Ql(e){return Zn(e,new WeakSet)}function Zn(e,t){if(typeof e=="bigint")return{__type:"BigInt",decimal:e.toString()};if(typeof e=="number")return Number.isFinite(e)?e:zn(e);if(typeof e=="string")return Xn(e);if(e instanceof Uint8Array)return{__type:"Uint8Array",base64:Yn(e)};if(ArrayBuffer.isView(e))return{__type:"Uint8Array",base64:Yn(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))};if(e instanceof ArrayBuffer)return{__type:"Uint8Array",base64:Yn(new Uint8Array(e))};if(e instanceof Error)return{__type:"Error",error:Ut(e)};if(e===null||typeof e!="object")return e;if(t.has(e))throw new TypeError("Native frame value: circular reference");t.add(e);try{if(Array.isArray(e))return e.map(r=>Zn(r,t));if(!Jn(e))return e;let n={};for(let r of Object.keys(e))jo(n,r,Zn(e[r],t));return n}finally{t.delete(e)}}function Bt(e,t,n){return t.length===2&&t.includes("__type")&&t.includes(n)}function jo(e,t,n){if(t==="__proto__"){Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0});return}e[t]=n}function er(e){if(typeof e=="string")return Gn(e);if(Array.isArray(e))return e.map(er);if(!Jn(e))return e;let t=Object.keys(e);if(e.__type==="BigInt"&&typeof e.decimal=="string"&&Bt(e,t,"decimal")){if(!Ul.test(e.decimal))throw new TypeError(`Native frame value: invalid BigInt marker payload ${JSON.stringify(e.decimal)}`);return BigInt(e.decimal)}if(e.__type==="Uint8Array"&&typeof e.base64=="string"&&Bt(e,t,"base64"))return Fl(e.base64);if(e.__type==="Uint8Array"&&Array.isArray(e.data)&&Bt(e,t,"data"))return new Uint8Array(e.data);if(e.__type==="Error"&&Jn(e.error)&&Bt(e,t,"error")){let r=Hl(e.error);if(!r)throw new TypeError("Native frame value: invalid Error marker payload");return r}let n={};for(let r of t)jo(n,r,er(e[r]));return n}function Kl(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function tr(e,t){let n=Wo(t?.maxFrameBytes),r=JSON.stringify(Ql(e));if(typeof r!="string")throw new TypeError("Native frame: message is not JSON-serialisable");if(r.length*3>n){let a=Kl(r);if(a>n)throw Fo("outgoing",a,n)}let o=Bl.encode(r),i=new Uint8Array(Oe+o.length);return i.set(Wl(o.length),0),i.set(o,Oe),i}function Ho(e,t,n){let r=Wo(n?.maxFrameBytes),o=Vl(n?.maxDrainBytes,r),i=[],a=0,s=0,l=-1,u=0,c=!1,d=!1,f=g=>{s-=g;let S=g;for(;S>0;){let R=i[0].length-a;R>S?(a+=S,S=0):(S-=R,i.shift(),a=0)}},m=g=>{if(g===0)return new Uint8Array(0);let S=i[0];if(S.length-a>=g){let I=S.subarray(a,a+g);return f(g),I}let w=new Uint8Array(g),R=0;for(;R{let S;try{S=Ml.decode(g)}catch(I){t(Dt(`payload is not valid UTF-8 (${g.length} bytes)`,I));return}let w;try{w=JSON.parse(S)}catch(I){t(Dt(`payload is not valid JSON (${g.length} bytes)`,I));return}let R;try{R=er(w)}catch(I){t(Dt(`payload carries an invalid tagged value: ${I?.message??I}`,I));return}e(R)},y=()=>{for(;;){if(u>0){let S=Math.min(u,s);if(S>0&&(f(S),u-=S),u>0)return;continue}if(l<0){if(so){d=!0,i.length=0,a=0,s=0,u=0,t(ql(S,o));return}if(S>r){u=S,t(Fo("incoming",S,r));continue}l=S}if(s0||l>=0))){let g=l>=0?l-s:null;t(Dt(g===null?`stream ended with a truncated frame header (${s} of ${Oe} bytes)`:`stream ended with a truncated frame payload (${g} of ${l} bytes missing)`))}},get bufferedBytes(){return s},get skipRemainingBytes(){return u},get fatal(){return d}}}function qe(e,t=null){let n=Ut(e);return{channel:"rpc",content:{kind:"response",messageId:t,success:!1,errorMessage:n.message,error:n}}}var Oe,qo,Vo,Ef,Do,Mt,kl,Pl,Dl,Bl,Ml,Ul,Bo,Mo,at,nr=M(()=>{"use strict";A();Pt();Oe=4,qo=16*1024*1024,Vo=4,Ef=qo*Vo,Do=268435456,Mt=4294967295,kl="ERR_NATIVE_FRAME_TOO_LARGE",Pl="ERR_NATIVE_FRAME_MALFORMED",Dl="ERR_NATIVE_FRAME_DESYNC",Bl=new TextEncoder,Ml=new TextDecoder("utf-8",{fatal:!0}),Ul=/^-?(?:0|[1-9][0-9]*)$/,Bo=32768,Mo=512,at=class extends Error{constructor(t){super(t.message,t.cause===void 0?void 0:{cause:t.cause}),this.name="NativeFrameError",this.code=t.code,this.direction=t.direction,this.actualBytes=t.actualBytes,this.limitBytes=t.limitBytes,this.fatal=t.fatal===!0}}});function Qo(e={}){let t=e.stdin??globalThis.tjs?.stdin,n=e.stdout??globalThis.tjs?.stdout;if(!t||typeof t.getReader!="function")throw new TypeError("stdio transport requires a WHATWG readable stdin (getReader)");if(!n||typeof n.getWriter!="function")throw new TypeError("stdio transport requires a WHATWG writable stdout (getWriter)");let r={};e.maxFrameBytes!==void 0&&(r.maxFrameBytes=e.maxFrameBytes),e.maxDrainBytes!==void 0&&(r.maxDrainBytes=e.maxDrainBytes);let o=e.maxFrameBytes===void 0?void 0:{maxFrameBytes:e.maxFrameBytes},i=t.getReader(),a=n.getWriter(),s=null,l=!1,u=!1,c=null,d=Promise.resolve(),f=(w,R,I)=>{try{R(I)}catch(T){console.error(`[stdio-transport] ${w} callback threw`,T)}},m=w=>{e.onTransportError?f("onTransportError",e.onTransportError,w):console.error("[stdio-transport]",w)},E=w=>{let R=d.then(()=>a.write(w));return d=R.then(()=>{},()=>{}),R.catch(m),R},y=Ho(w=>{if(!s){m(new Error("stdio transport received a frame before onmessage was installed"));return}f("onmessage",s,{data:w})},w=>{try{E(tr(qe(w),o))}catch(R){m(R)}w?.fatal===!0&&(c=w)},r),g=w=>{u||(u=!0,e.onEof&&f("onEof",e.onEof,w))},S=async()=>{let w={kind:"eof"};try{for(;;){let R=await i.read();if(R.done)break;let I=R.value;if(I&&I.length>0&&y.push(I),c){w={kind:"fatal",error:c};break}}}catch(R){m(R),w={kind:"stream-error",error:R}}finally{y.end(),g(w)}};return{get onmessage(){return s},set onmessage(w){s=w},postMessage(w){return E(tr(w,o))},start(){if(l)throw new Error("stdio transport already started");return l=!0,S()},flush(){return d}}}var Ko=M(()=>{"use strict";A();nr()});function zo(e){return e.startsWith("--path-utf8=")?decodeURIComponent(e.slice(12)):e}var Xo=M(()=>{"use strict";A()});import{Database as zl}from"tjs:sqlite";import Go from"tjs:path";async function ec(e){let t=Go.dirname(tjs.exePath);for(let n of["query-plan.dylib","query-plan.so","query-plan.dll"]){let r=Go.join(t,n);try{await tjs.stat(r)}catch(o){if(o?.code==="ENOENT")continue;throw o}e.backingDatabase.loadExtension(r,"sqlite3_sqliteexplorer_init");return}throw new Error("Missing bundled query-plan reader beside the native runtime.")}async function B(e){if(Ve=null,e?.path!==qt)throw new Error(`refusing to open a database other than the one this sidecar was bound to at spawn (got ${JSON.stringify(e?.path??null)})`);let t=e.readOnlyMode===!0;if(Yl&&!t)throw new Error("refusing a writable open: this sidecar was spawned for a read-only session");let n=$o({path:qt,readOnly:t},Zl);try{await ec(n)}catch(i){throw n.close(),new Error(`Unable to initialize the bounded query-plan reader: ${i?.message??i}`,{cause:i})}let r=Number.isFinite(e.queryTimeout)&&e.queryTimeout>0?e.queryTimeout:Xl,o=n.progress_handler.bind(n);return n.progress_handler=(i,a)=>{o(i,a),i!=null&&typeof a=="function"?n.setQueryDeadline(r):n.clearQueryDeadline()},Ve=n,{SQL:Object.freeze({engine:"tjs-native",queryPlanReaderActive:!0}),db:n}}async function rc(e,t){let n=`__shell_export_${++tc}_${Math.random().toString(36).slice(2)}`,r=null;Vt.set(n,o=>{r=o});try{if(typeof globalThis.onmessage!="function")throw new Error("worker method layer is not loaded (no onmessage handler)");await globalThis.onmessage({data:{channel:"rpc",content:{kind:"invoke",messageId:n,targetMethod:e,payload:t}}})}finally{Vt.delete(n)}if(r===null)throw new Error(`in-process ${e} completed without posting a response`);if(r.success!==!0){let o=new Error(r.errorMessage||`${e} failed`);throw typeof r.error?.code=="string"&&(o.code=r.error.code),Number.isSafeInteger(r.error?.errno)&&(o.errno=r.error.errno),o}return r.data}async function oc(e){try{if(!Ve)throw new Error("No database initialized");let t=await Ve.exportAsync();We({channel:"rpc",content:{kind:"response",messageId:e,success:!0,data:t}})}catch(t){We(qe(t,e))}}async function ic(e){let t=typeof e?.messageId=="string"||typeof e?.messageId=="number"?e.messageId:null;if(t===null){console.error("[native-worker] shell export request without a messageId; dropped");return}try{let n=e.method,r=e.tempPath;if(n!=="exportDatabase"&&n!=="exportTable")throw new Error(`unknown shell export method ${JSON.stringify(n??null)}`);if(typeof r!="string"||r.length===0)throw new Error("shell export request carries no tempPath");let o;if(n==="exportDatabase"){if(!Ve)throw new Error("No database initialized");await Ve.exportToPath(r),o=(await tjs.stat(r)).size}else{if(!Array.isArray(e.args))throw new Error("shell exportTable request carries no args array");let a=(await rc("exportTable",e.args))?.contentChunks;if(!Array.isArray(a))throw new Error("exportTable returned no contentChunks array");o=await sc(r,a)}We({channel:"shell",content:{kind:"export-result",messageId:t,success:!0,bytesWritten:o}})}catch(n){We({channel:"shell",content:{kind:"export-result",messageId:t,success:!1,error:Ut(n)}})}}async function sc(e,t){let n=await tjs.open(e,"wx"),r=0,o=null;try{let i=new TextEncoder;for(let a of t){let s;if(typeof a=="string")s=i.encode(a);else if(a instanceof Uint8Array)s=a;else throw new Error(`exportTable produced an unwritable chunk (${typeof a})`);for(;s.length>0;){let l=await n.write(s);if(!Number.isInteger(l)||l<=0)throw new Error(`short write to export temp file (wrote ${l})`);r+=l,s=s.subarray(l)}}return await n.sync(),r}catch(i){throw o=i,i}finally{try{await n.close()}catch(i){if(o===null)throw i;console.error(`[native-worker] failed to close export temp file: ${i?.message??i}`)}}}var Zo,ei,ti,Yo,Xl,Gl,Le,qt,Yl,Jl,Zl,Ve,ni,ri,Fe,oi,We,Vt,tc,nc,Jo,rr=M(()=>{"use strict";A();vo();Ko();nr();Xo();Zo=0,ei=1,ti=2,Yo=3,Xl=3e4,Gl=1e3,Le=tjs.args.slice(3);(Le.length!==2||Le[0]===""||Le[1]!=="ro"&&Le[1]!=="rw")&&(console.error(`[native-worker] bad argv ${JSON.stringify(Le)}; usage: tjs run native-worker-desktop.js ro|rw`),tjs.exit(ti));try{if(qt=zo(Le[0]),!qt)throw new Error("database path is empty")}catch(e){console.error(`[native-worker] invalid bound path: ${e.message}`),tjs.exit(ti)}Yl=Le[1]==="ro",Jl=(tjs.env.TMPDIR??tjs.env.TEMP??tjs.env.TMP??"/tmp").replace(/[\\/]+$/,""),Zl={sqlite:{Database:zl},fs:{makeTempDir:()=>tjs.makeTempDir(`${Jl}/sqlite-explorer-export-XXXXXX`),readFile:e=>tjs.readFile(e),remove:e=>tjs.remove(e,{recursive:!0})},onCleanupFailure:(e,t)=>{console.error(`[native-worker] cleanup failed (${t}): ${e?.message??e}`)}},Ve=null;ni={kind:"eof"},ri=()=>ni,Fe=Qo({onEof:e=>{ni=e},onTransportError:e=>{console.error(`[native-worker] transport error: ${e?.message??e}`)}}),oi=e=>{let t=e?.content?.messageId;return typeof t=="string"||typeof t=="number"?t:null},We=e=>{try{Fe.postMessage(e)}catch(t){try{Fe.postMessage(qe(t,oi(e)))}catch(n){console.error(`[native-worker] failed to send bounded error response: ${n?.message??n}`)}}};globalThis.postMessage=(e,t)=>{nc(e)||We(e)};Vt=new Map,tc=0,nc=e=>{if(e?.channel!=="rpc"||e?.content?.kind!=="response")return!1;let t=Vt.get(e.content.messageId);return t===void 0?!1:(Vt.delete(e.content.messageId),t(e.content),!0)};Fe.onmessage=async e=>{let t=e?.data;try{if(t?.channel==="shell"){t.content?.kind==="export"?await ic(t.content):console.error(`[native-worker] unknown shell message kind ${JSON.stringify(t.content?.kind??null)}; dropped`);return}let n=t?.channel==="rpc"?t.content:void 0;if(n?.kind==="invoke"&&n.targetMethod==="exportDatabase"){await oc(n.messageId);return}await globalThis.onmessage?.(e)}catch(n){We(qe(n,oi(t)))}};Jo=tjs.ppid;setInterval(()=>{tjs.ppid!==Jo&&(console.error(`[native-worker] parent process ${Jo} vanished without closing stdin (ppid now ${tjs.ppid}); exiting (code ${Yo})`),tjs.exit(Yo))},Gl)});var A=M(()=>{"use strict";rr()});function ge(e){if(e==="utf-8")return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});let t=e==="utf-16le";return{decode(n){if(n.length%2!==0)throw new TypeError(`Invalid ${e}: odd byte length`);let r=a=>t?n[a]|n[a+1]<<8:n[a]<<8|n[a+1],o=[],i="";for(let a=0;a=55296&&s<=56319){let l=a+257343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s,l),a+=2}else{if(s>=56320&&s<=57343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s)}i.length>=8192&&(o.push(i),i="")}return o.push(i),o.join("")}}}var Ft=M(()=>{"use strict";A()});function C(e){return`"${e.replace(/"/g,'""')}"`}function L(e){return`main.${C(e)}`}function z(e,t="Identifier"){if(typeof e!="string"||e.length===0)throw new Error(`${t} is required`);if(e.includes("\0"))throw new Error(`${t} cannot contain NUL characters`)}function or(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function ii(e){if(e==null)return"NULL";if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();if(typeof e=="string"){if(e.includes("\0")){let n=new TextEncoder().encode(e);return`CAST(X'${Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}' AS TEXT)`}return`'${e.replace(/'/g,"''")}'`}return e instanceof Uint8Array?`X'${Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}'`:`'${String(e).replace(/'/g,"''")}'`}function lt(e,t="\\"){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`[${n}%_]`,"g");return e.replace(r,o=>t+o)}function H(e){let t=typeof e;if(t!=="string"&&t!=="number"&&t!=="bigint")throw new Error(`Invalid rowid: ${e}`);if(typeof e=="number"){if(!Number.isSafeInteger(e))throw new Error(`Invalid rowid: ${e}`);return e}let n=typeof e=="string"?e.trim():e.toString();if(!/^[+-]?\d+$/.test(n))throw new Error(`Invalid rowid: ${e}`);let r=BigInt(n);if(rlc)throw new Error(`Invalid rowid: ${e}`);let o=Number(r);return Number.isSafeInteger(o)?o:r.toString()}var ac,lc,Y=M(()=>{"use strict";A();ac=-9223372036854775808n,lc=9223372036854775807n});function si(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function ci(e){let t=[],n=0;for(;nt.toLowerCase())}function je(e,t){if(!ye(e[t]))throw new Error("Expected an SQL identifier");return t+1}function cc(e,t){return t=je(e,t),e[t]?.kind==="symbol"&&e[t].value==="."&&(t=je(e,t+1)),t}function jt(e){let t=ci(e),n=[],r,o=0,i=d=>{if(!X(t[o],d))throw new Error(`Expected ${d} in stored CREATE TRIGGER SQL`);o++};if(i("CREATE"),(X(t[o],"TEMP")||X(t[o],"TEMPORARY"))&&o++,i("TRIGGER"),X(t[o],"IF")&&(o++,i("NOT"),i("EXISTS")),o=cc(t,o),X(t[o],"BEFORE")||X(t[o],"AFTER")?o++:X(t[o],"INSTEAD")&&(o++,i("OF")),X(t[o],"INSERT"))r="insert",o++;else if(X(t[o],"DELETE"))r="delete",o++;else if(X(t[o],"UPDATE")){if(r="update",o++,X(t[o],"OF")){if(o++,!ye(t[o]))throw new Error("Expected an SQL identifier after UPDATE OF");for(n.push(t[o]),o=je(t,o);t[o]?.kind==="symbol"&&t[o].value===",";){if(o++,!ye(t[o]))throw new Error("Expected an SQL identifier in UPDATE OF column list");n.push(t[o]),o=je(t,o)}}}else throw new Error("Expected a trigger event in stored CREATE TRIGGER SQL");i("ON");let a=o,s=t[o];o=je(t,o);let l;t[o]?.kind==="symbol"&&t[o].value==="."&&(l=s.value,o=je(t,o+1));let u=o,c=t.findIndex((d,f)=>f>=o&&X(d,"BEGIN"));if(c<0)throw new Error("Expected BEGIN in stored CREATE TRIGGER SQL");return{tokens:t,event:r,targetSchema:l,targetStartIndex:a,updateOfColumns:n,referenceStartIndex:u,bodyStartIndex:c+1}}function sr(e){let t=jt(e);return{event:t.event,targetSchema:t.targetSchema,updateOfColumns:t.updateOfColumns.map(n=>n.value)}}function Ht(e,t,n,r){let o=sr(e),i=`${C(t)}.${C(n)}`;if(o.event==="insert")return`EXPLAIN INSERT INTO ${i} DEFAULT VALUES`;if(o.event==="delete")return`EXPLAIN DELETE FROM ${i} WHERE 0`;let a=new Map(r.map(c=>[he(c),c])),s=o.updateOfColumns.map(c=>a.get(he(c))).find(c=>c!==void 0);if(o.updateOfColumns.length>0&&s===void 0)return;let l=s??r[0];if(l===void 0)throw new Error(`Trigger target ${t}.${n} has no writable column to probe`);let u=C(l);return`EXPLAIN UPDATE ${i} SET ${u} = ${u} WHERE 0`}function uc(e){return jt(e).targetSchema}function oe(e){return`main.${C(e)}`}function ui(e,t){let n=`-- TRIGGER ${t}`;return e.some(r=>r.some(o=>o===n))}function di(e,t){if(t.length!==Wt.length)throw new Error(`View trigger definition fetch was incomplete for ${e}`);let n=[],r=[],o=[];return Wt.forEach((i,a)=>{t[a].forEach(s=>{if(typeof s[0]!="string"||typeof s[1]!="string")throw new Error(`View trigger definition is unavailable for ${e}`);if(i.temporary){let l=s[2]===1||s[2]===1n;if(s[2]!==0&&s[2]!==0n&&!l)throw new Error(`Temporary view shadow state is unavailable for ${e}`);let u;try{u=uc(s[1])}catch(c){let d=c instanceof Error?c.message:String(c);throw new Error(`Unable to determine the target of temporary trigger ${s[0]}: ${d}`)}if(u!==void 0&&he(u)!=="main")return;if(u===void 0){o.push({identifier:s[0],sql:s[1],temporary:!0});return}}n.push(i.temporary?{identifier:s[0],sql:s[1],temporary:!0}:{identifier:s[0],sql:s[1]})})}),{triggers:n,ambiguousTemporaryTriggerNames:r,unqualifiedTemporaryTriggers:o}}function Qt(e){let t=e.ambiguousTemporaryTriggerNames??[];if(t.length===0)return;let n=t.map(r=>`"${r}"`).join(", ");throw new Error(`Cannot modify main view "${e.identifier}" because temporary trigger target ownership is ambiguous for ${n}. Each named trigger uses an unqualified ON target whose historical schema cannot be proven. Drop the TEMP trigger, or recreate it with an explicitly schema-qualified target, before editing or dropping the main view.`)}function Ee(e){let t=e.trim();if(!t)throw new Error("View SELECT definition is required");let n=-1,r,o=!1,i=!1;for(let a=0;a=0&&t[n]===";"?(t.slice(0,n).trimEnd()+t.slice(n+1)).trim():t}function fi(e){let t=0,n=-1,r=-1;for(let o of ci(e)){if(o.kind==="symbol"&&o.value==="("){t===0&&n===-1&&(n=o.start),t++;continue}if(o.kind==="symbol"&&o.value===")"){t===1&&n!==-1&&r===-1&&(r=o.end),t=Math.max(0,t-1);continue}if(t===0&&X(o,"AS"))return{selectStart:o.end,columnListSql:n!==-1&&r!==-1?e.slice(n,r):void 0}}throw new Error("Unable to locate the SELECT body in the stored view definition")}function mi(e){let{selectStart:t}=fi(e);return Ee(e.slice(t))}function ar(e){return fi(e).columnListSql}function ct(e,t,n,r){let o=n??(r?.length?`(${r.map(i=>C(i)).join(", ")})`:void 0);return`CREATE VIEW ${C(e)}${o?` ${o}`:""} AS ${t}`}function lr(e,t){let n=jt(e);if(n.targetSchema===void 0){let r=n.tokens[n.targetStartIndex];return`${e.slice(0,r.start)}main.${e.slice(r.start)}`}if(he(n.targetSchema)!=="main")throw new Error(`Unable to recreate temporary trigger ${t}: target is not in main`);return e}function cr(e){if(!e.temporary)return e.sql;let t=/^(\s*CREATE\s+)(?:(?:TEMP|TEMPORARY)\s+)?(TRIGGER\b)/i;if(!t.test(e.sql))throw new Error(`Unable to recreate temporary trigger ${e.identifier}: stored SQL is not a CREATE TRIGGER statement`);return lr(e.sql,e.identifier).replace(t,"$1TEMP $2")}function ir(e,t){return e.push({parent:t,aliases:new Set,hasAmbiguousSource:!1}),e.length-1}function mc(e){let{tokens:t,referenceStartIndex:n,bodyStartIndex:r}=e,o=[],i=new Array(t.length),a=new Map,s=[],l=[ir(o)],u=!1;for(let c=n;c1&&l.pop()}else d.kind==="symbol"&&d.value===";"&&l.length===1&&(u=!0)}return{scopes:o,tokenScopes:i,matchingParentheses:a}}function pc(e,t){t&&/^(?:NEW|OLD)$/i.test(t)&&e.aliases.add(he(t))}function ai(e,t,n,r){let o=r.scopes[n],i=t,a;if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}else if(ye(e[i])){if(a=e[i].value,i++,e[i]?.kind==="symbol"&&e[i].value==="."){if(!ye(e[i+1]))return o.hasAmbiguousSource=!0,i+1;a=e[i+1].value,i+=2}if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}}else return o.hasAmbiguousSource=!0,i+1;let s;if(X(e[i],"AS")){if(!ye(e[i+1]))return o.hasAmbiguousSource=!0,i+1;s=e[i+1].value,i+=2}else if(ye(e[i])){let l=e[i];l.kind==="word"&&dc.has(l.value.toUpperCase())||(s=l.value,i++)}return pc(o,s??a),i}function gc(e,t){let n=new Map;for(let r=e.referenceStartIndex;r{let o=t[r];return n.identifier===o.identifier&&n.sql===o.sql&&n.temporary===!0==(o.temporary===!0)})}function Kt(e,t,n,r){if(e!==void 0&&!hc(e,t)||!Ec(n,r))throw new Error(yi)}function hi(e,t){if(e===null||t===null){if(e!==t)throw new Error(yi);return}Kt(e.sql,t.sql,e.triggers,t.triggers)}var Wt,dc,fc,yi,ut=M(()=>{"use strict";A();Y();Wt=[{sql:"SELECT name, sql FROM main.sqlite_schema WHERE type = 'trigger' AND tbl_name = ? COLLATE NOCASE ORDER BY rowid",params:e=>[e],temporary:!1},{sql:"SELECT temp_trigger.name, temp_trigger.sql, EXISTS (SELECT 1 FROM sqlite_temp_schema AS temp_view WHERE temp_view.type = 'view' AND temp_view.name = ? COLLATE NOCASE) FROM sqlite_temp_schema AS temp_trigger WHERE temp_trigger.type = 'trigger' AND temp_trigger.tbl_name = ? COLLATE NOCASE ORDER BY temp_trigger.rowid",params:e=>[e,e],temporary:!0}];dc=new Set(["AS","CROSS","END","EXCEPT","FULL","GROUP","HAVING","INDEXED","INNER","INTERSECT","JOIN","LEFT","LIMIT","NATURAL","NOT","OFFSET","ON","ORDER","OUTER","RETURNING","RIGHT","SET","UNION","USING","VALUES","WHERE","WINDOW"]),fc=new Set(["END","EXCEPT","GROUP","HAVING","INTERSECT","LIMIT","OFFSET","ON","ORDER","RETURNING","SET","UNION","USING","VALUES","WHERE","WINDOW"]);yi="The view changed outside this editor. Reload before saving; the view was not modified."});function fr(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function dr(e){return JSON.stringify(e.map(fr))}function ur(e,t,n,r,o){let i=[e,t,n];return dr(r===void 0||o===void 0?i:[...i,r,o])}function Ei(e){let t=e instanceof Error?e.message:String(e);return t.length>500?`${t.slice(0,500)}...`:t}function Xt(e,t,n){if(!(e<=t))throw new Error(`View dependency validation refused to inspect ${e} ${n}; the fail-closed limit is ${t}`)}async function Sc(e){let t=await e.queryRows("PRAGMA database_list"),n=[],r=new Set;for(let o of t){if(typeof o[1]!="string")throw new Error("SQLite returned invalid database-list metadata during view validation");let i=fr(o[1]);r.has(i)||(r.add(i),n.push(o[1]))}return r.has("temp")||n.unshift("temp"),Xt(n.length,wc,"database schemas"),n}async function bc(e,t){let n=[];for(let r of t){let o=zt-n.length;o<0&&Xt(n.length,zt,"schema objects");let i=await e.queryRows(`SELECT type, name, tbl_name, sql FROM ${C(r)}.sqlite_schema WHERE type IN ('view', 'trigger') ORDER BY type, name LIMIT ${o+1}`);for(let a of i){let[s,l,u,c]=a;if(s!=="view"&&s!=="trigger"||typeof l!="string"||typeof c!="string"||s==="trigger"&&typeof u!="string")throw new Error(`SQLite returned invalid ${r} schema metadata during view validation`);n.push({schema:r,kind:s,identifier:l,targetIdentifier:s==="trigger"?u:void 0,sql:c})}Xt(n.length,zt,"schema objects")}return n}async function Tc(e,t,n){return(await e.queryRows(`SELECT 1 FROM ${C(t)}.sqlite_schema WHERE type IN ('table', 'view') AND name = ? COLLATE NOCASE LIMIT 1`,[n])).length>0}async function Cc(e,t,n){let r=sr(n.sql);if(r.targetSchema!==void 0)return[r.targetSchema];if(fr(n.schema)!=="temp")return[n.schema];let o=[];for(let i of t)await Tc(e,i,n.targetIdentifier)&&o.push(i);return o.length>0?o:["main"]}async function Rc(e,t,n){let r=await e.queryRows(`PRAGMA ${C(t)}.table_xinfo(${C(n)})`),o=[];for(let i of r){if(typeof i[1]!="string")throw new Error(`SQLite returned invalid column metadata for ${t}.${n}`);let a=i[6];a!==2&&a!==2n&&a!==3&&a!==3n&&o.push(i[1])}return o}async function wi(e){let t=await Sc(e),n=await bc(e,t),r=new Map,o=[],i=new Map;for(let s of n){if(s.kind==="view"){o.push({key:ur("view",s.schema,s.identifier),kind:"view",schema:s.schema,identifier:s.identifier,sql:`EXPLAIN SELECT * FROM ${C(s.schema)}.${C(s.identifier)}`});continue}let l;try{l=await Cc(e,t,s)}catch(u){let c=ur("trigger",s.schema,s.identifier);r.set(c,{key:c,kind:"trigger",schema:s.schema,identifier:s.identifier,valid:!1,error:Ei(u)});continue}for(let u of l){let c=s.targetIdentifier,d=ur("trigger",s.schema,s.identifier,u,c);try{let f=dr([u,c]),m=i.get(f);m||(m=Rc(e,u,c),i.set(f,m));let E=Ht(s.sql,u,c,await m);if(E===void 0){r.set(d,{key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,valid:!0});continue}o.push({key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,sql:E})}catch(f){r.set(d,{key:d,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:u,targetIdentifier:c,valid:!1,error:Ei(f)})}}}Xt(o.length+r.size,zt,"view and trigger probes");let a=await e.compileStatements(o.map(s=>s.sql));if(a.length!==o.length)throw new Error("View dependency validation returned an incomplete probe result set");return o.forEach((s,l)=>{let u=a[l];r.set(s.key,{key:s.key,kind:s.kind,schema:s.schema,identifier:s.identifier,targetSchema:s.targetSchema,targetIdentifier:s.targetIdentifier,valid:u===void 0,...u===void 0?{}:{error:u}})}),r}function we(e,t){for(let n of e.values()){if(!n.valid)continue;let r=t.get(n.key);if(!r||r.valid)continue;let o=r.targetSchema&&r.targetIdentifier?` on ${r.targetSchema}.${r.targetIdentifier}`:"";throw new Error(`Schema change would break existing ${r.kind} "${r.schema}.${r.identifier}"${o}: ${r.error??"SQLite rejected it"}`)}}var wc,zt,Si=M(()=>{"use strict";A();Y();ut();wc=32,zt=1024});function dt(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function xc(e){return/[A-Za-z_\u0080-\uFFFF]/.test(e)}function Ic(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Ac(e,t,n){let r=t+1,o="";for(;rbi)throw new Error(`Cannot inspect index dependency: definition exceeds ${bi} characters`);let t=[],n=o=>{if(t.push(o),t.length>Ti)throw new Error(`Cannot inspect index dependency: definition exceeds ${Ti} tokens`)},r=0;for(;rs.kind==="word"&&s.value.toUpperCase()==="INDEX"),r=t.findIndex((s,l)=>l>n&&s.kind==="word"&&s.value.toUpperCase()==="ON"),o=t.findIndex((s,l)=>l>r&&s.kind==="symbol"&&s.value==="(");if(n<0||r<0||o<0)throw new Error("Cannot inspect index dependency: unsupported CREATE INDEX definition");let i=t.filter((s,l)=>l>=o&&s.kind==="symbol"&&s.value===";");if(i.length>1||i.length===1&&t.at(-1)!==i[0])throw new Error("Cannot inspect index dependency: multiple statements are not allowed");let a=i[0]?.start??e.length;return e.slice(t[o].start,a).trim()}function Ci(e,t){let n=[...t],r=`${e}_dummy`,o=new Set(t.map(dt));for(;o.has(dt(r));)r+="_";return n.push(r),`CREATE TEMP TABLE ${C(e)} (${n.map(C).join(", ")})`}function Ri(e,t){let n=new Set(t.map(dt));return e.filter(r=>n.has(dt(r)))}function xi(e,t,n){let r=Nc(n);return`CREATE INDEX temp.${C(t)} ON ${C(e)} ${r}`}function Ii(e,t,n={}){if(z(e,"Table name"),t.length===0)throw new Error("At least one column is required");if(!n||typeof n!="object"||Array.isArray(n)||n.withoutRowid!==void 0&&typeof n.withoutRowid!="boolean")throw new Error("Invalid Create Table options");let r=t.filter(s=>s.primaryKey);if(n.withoutRowid&&r.length===0)throw new Error("WITHOUT ROWID requires a primary key");let o=r.length>1,i=new Set,a=t.map(s=>{if(typeof s=="string")throw new Error("Legacy string column definitions not supported for security");z(s.name,"Column name"),or(s.type);let l=dt(s.name);if(i.has(l))throw new Error(`Column ${JSON.stringify(s.name)} is defined more than once`);i.add(l);let u=`${C(s.name)} ${s.type}`;return s.primaryKey&&!o&&(u+=" PRIMARY KEY"),s.notNull&&(u+=" NOT NULL"),u+=Oc(s.defaultValue),u});return o&&a.push(`PRIMARY KEY (${r.map(s=>C(s.name)).join(", ")})`),`CREATE TABLE ${L(e)} (${a.join(", ")})${n.withoutRowid?" WITHOUT ROWID":""}`}function Oc(e){return e==null||e===""?"":e.toLowerCase()==="null"?" DEFAULT NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e)?` DEFAULT ${e}`:` DEFAULT '${e.replace(/'/g,"''")}'`}var bi,Ti,mr=M(()=>{"use strict";A();Y();bi=1024*1024,Ti=2e5});function Ai(){return{dangerousPrefix:!1,prefixOpen:!0,needsQuotes:!1}}function _i(e,t){if((t.includes(",")||t.includes('"')||t.includes(` +`)||t.includes("\r"))&&(e.needsQuotes=!0),!!e.prefixOpen)for(let n of t){if(Lc.has(n)){e.dangerousPrefix=!0,e.needsQuotes=!0,e.prefixOpen=!1;return}if(!$c.test(n)){e.prefixOpen=!1;return}}}function vc(e){let t=Ai();_i(t,e);let n=t.dangerousPrefix?`'${e}`:e;return t.needsQuotes?`"${n.replace(/"/g,'""')}"`:n}function kc(e,t){return e==="sql"?{prefix:"CAST(X'",suffix:"' AS TEXT)",byteEncoding:"hex"}:e==="json"?{prefix:`{"$sqliteExplorerTextBytes":{"encoding":${JSON.stringify(t)},"base64":"`,suffix:'"}}',byteEncoding:"base64"}:{prefix:`[SQLite TEXT bytes; encoding=${t}; base64=`,suffix:"]",byteEncoding:"base64"}}function Ni(e){let t="",n=0;for(;n+2>>18&63]+Se[o>>>12&63]+Se[o>>>6&63]+Se[o&63]}let r=e.length-n;if(r===1){let o=e[n]<<16;t+=Se[o>>>18&63]+Se[o>>>12&63]+"=="}else if(r===2){let o=e[n]<<16|e[n+1]<<8;t+=Se[o>>>18&63]+Se[o>>>12&63]+Se[o>>>6&63]+"="}return t}function pr(e){let t=typeof e=="bigint"?e.toString():typeof e=="string"?e:void 0;if(t===void 0)throw new Error("SQLite returned invalid exact INTEGER text for export");try{if(BigInt(t).toString()!==t)throw new Error}catch{throw new Error("SQLite returned non-canonical INTEGER text for export")}return t}function Pc(e){if(!(e instanceof Uint8Array))throw new Error("SQLite returned invalid BLOB data for export");return e}function gr(e,t){let n=e.unrepresentableTextBytes;if(n===void 0)return;if(e.storageClass!=="text"||!(n instanceof Uint8Array)||!e.textEncoding)throw new Error("SQLite returned invalid unrepresentable TEXT export metadata");let r=kc(t,e.textEncoding),o=r.byteEncoding==="hex"?Array.from(n,i=>i.toString(16).padStart(2,"0")).join(""):Ni(n);return r.prefix+o+r.suffix}function yr(e){let t=gr(e,"csv");return t!==void 0?t:e.storageClass==="null"?"":e.storageClass==="blob"?"[BLOB]":e.storageClass==="integer"?pr(e.value):e.storageClass==="text"?vc(String(e.value)):String(e.value)}function Oi(e){let t=gr(e,"json");return t!==void 0?t:e.storageClass==="integer"?pr(e.value):e.storageClass==="blob"?JSON.stringify(Ni(Pc(e.value))):JSON.stringify(e.value)??"null"}function Li(e){let t=gr(e,"sql");return t!==void 0?t:e.storageClass==="integer"?pr(e.value):ii(e.value)}var Lc,$c,Se,hr=M(()=>{"use strict";A();Y();Lc=new Set(["=","+","-","@","\uFF1D","\uFF0B","\uFF0D","\uFF20"]),$c=/^(?:\p{White_Space}|\p{Cc}|\p{Cf})$/u;Se="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"});function Di(e,t){if(e.length!==0){if(e.length!==1||e[0].length<1||typeof e[0][0]!="string")throw new Error(`SQLite returned invalid rowid-alias metadata for ${t}`);return e[0][0]}}function Yt(e){return e.replace(/[A-Z]/g,t=>String.fromCharCode(t.charCodeAt(0)+32))}function He(e,t){return Yt(e)===Yt(t)}function Bi(e,t){let n=BigInt(Number.MAX_SAFE_INTEGER),r=BigInt(Number.MIN_SAFE_INTEGER);return e.some(o=>{let i=o[t];return typeof i=="bigint"&&(i>n||i`${Bc}${f}`),r=Array.from({length:t},(d,f)=>`${Mc}${f}`),o=C(Dc),i=n.map(C),a=t*2<=qc,s=i.map((d,f)=>`CASE WHEN typeof(${d}) = 'real' THEN CAST(${d} AS TEXT) END AS ${C(r[f])}`),l=a?[...i,...s]:i,u=a?[...n,...r]:n,c={sql:`WITH ${o} (${i.join(", ")}) AS ( SELECT * FROM ( ${e} ) LIMIT -1 OFFSET 0 ) -SELECT ${l.join(", ")} FROM ${o}`,transportColumns:u};return a&&(c.valueColumnCount=t),c}function Bi(e,t,n){if(t.length<2||t[0].toLowerCase()!=="rowid"||n.length===0)return[];let r=t.slice(1),o=[];for(let i=0;ii+d+1),l=s.map(c=>`${Uc}${c}`),u=a.map((c,d)=>{let f=C(c);return`CASE WHEN typeof(${f}) = 'real' THEN CAST(${f} AS TEXT) END AS ${C(l[d])}`});for(let c=0;ctypeof m=="bigint"?m.toString():m);o.push({sql:`SELECT rowid AS ${C(Li)}, ${u.join(", ")} FROM ${L(e)} WHERE rowid IN (${d.map(()=>"?").join(", ")})`,params:f,transportColumns:[Li,...l],columnIndices:s})}}return o}function Mi(e,t){if(t.length===0)return;let n=new Map;e.forEach((o,i)=>{let a=o[0];if(!["bigint","number","string"].includes(typeof a))throw new Error(`Invalid rowid identity at source row ${i}`);let s=String(a);if(n.has(s))throw new Error(`Duplicate rowid identity at source row ${i}`);n.set(s,i)});let r;for(let{query:o,rows:i}of t)for(let a of i){if(a.length{let c=a[u+1];if(c==null)return;if(typeof c!="string")throw new Error(`Rowid exact REAL text at row ${s}, column ${l} is not text`);let d=e[s]?.[l];if(d===void 0)throw new Error(`Rowid exact REAL text is outside row ${s}, column ${l}`);c!==String(d)&&(r??={},r[s]??={},r[s][l]=c)})}return r}function Qe(e,t,n,r){let o,i=(s,l,u)=>{o??={},o[s]??={},o[s][l]=u},a=e.map((s,l)=>{let u=t??s.length;if(t!==void 0&&s.length{let f=c;if(typeof c=="bigint"){let m=Number(c);if(Number.isSafeInteger(m))f=m;else{let E=c.toString();d===r?f=E:(i(l,d,E),f=m)}}if(t!==void 0){let m=s[t+d];if(m!=null){if(typeof m!="string")throw new Error(`Exact numeric text at row ${l}, column ${d} is not text`);m!==String(f)&&i(l,d,m)}}return f})});if(n)for(let[s,l]of Object.entries(n)){let u=Number(s);if(!Number.isInteger(u)||u<0||l===null||typeof l!="object")throw new Error(`Invalid exact numeric text row index: ${s}`);for(let[c,d]of Object.entries(l)){let f=Number(c);if(!Number.isInteger(f)||f<0||typeof d!="string")throw new Error(`Invalid exact numeric text entry at row ${s}, column ${c}`);let m=a[u]?.[f];if(m===void 0)throw new Error(`Exact numeric text entry is outside row ${s}, column ${c}`);d!==String(m)&&i(u,f,d)}}return o?{rows:a,exactIntegerTexts:o}:{rows:a}}var Dc,Bc,Mc,Li,Uc,qc,$i,Gt,ft,vi,ki,pt=M(()=>{"use strict";_();Y();Dc="__sqlite_explorer_numeric_source",Bc="__sqlite_explorer_numeric_value_",Mc="__sqlite_explorer_numeric_text_",Li="__sqlite_explorer_numeric_rowid",Uc="__sqlite_explorer_numeric_rowid_text_",qc=2e3,$i=999,Gt=32766,ft=`SELECT 1 FROM pragma.pragma_table_list AS target WHERE "schema" = 'main' AND "name" = ? AND (("type" IN ('table', 'shadow') AND "wr" = 0) OR "type" = 'virtual') AND (NOT EXISTS (SELECT 1 FROM pragma.pragma_table_info(?, 'main') WHERE lower("name") = 'rowid') OR ("type" = 'table' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND EXISTS (SELECT 1 FROM pragma.pragma_table_info(target."name", 'main') WHERE lower("name") = 'rowid' AND lower(trim("type")) = 'integer' AND "pk" = 1) AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk'))) LIMIT 1`,vi=`SELECT info."name" FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_info(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? AND target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') LIMIT 2`,ki=`SELECT info."cid", info."name", info."type", info."notnull", info."dflt_value", info."pk", info."hidden", CASE WHEN target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') THEN 1 ELSE 0 END AS is_rowid_alias FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_xinfo(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? ORDER BY info."cid"`});function yt(e){return new Error(`An UPDATE trigger changed or removed the rowid identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function Fi(e,t){if(e.length!==1||e[0].length<1)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);let n=e[0][0],r=typeof n=="bigint"?Number(n):n;if(!Number.isSafeInteger(r)||Number(r)<0)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);return Number(r)}function $e(e){let t=typeof e=="bigint"?Number(e):e;return Number.isSafeInteger(t)?Number(t):void 0}function Wi(e,t,n,r="rowid"){if(!Number.isSafeInteger(t)||t<0)throw new Error(`SQLite returned invalid table root-page metadata for ${e}`);let o=!1,i=-1,a=0,s=!1,l,u=()=>{if(!l||l.isUserTrigger||!l.hasWrite)return;let c=l.prologueParameters,d=l.parametersAfterWrite,f=c.filter((E,y)=>y%2===1);c.length>0&&c.length%2===0&&f.every(E=>d.has(E))||(s=!0)};for(let c=0;c1?{isUserTrigger:m,hasWrite:!1,prologueParameters:[],parametersAfterWrite:new Set,prologueComplete:!1}:void 0;continue}if(l){if(d[1]==="Param"){let m=$e(d[2]);if(m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);l.hasWrite?l.parametersAfterWrite.add(m):l.prologueComplete||l.prologueParameters.push(m);continue}d[1]==="OpenWrite"||d[1]==="Clear"?(l.prologueComplete=!0,l.hasWrite=!0):d[1].startsWith("Open")&&(l.prologueComplete=!0)}}if(u(),o)throw i<0?new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`):n.slice(i).some(d=>{if(d[1]==="OpenWrite"){let f=$e(d[3]),m=$e(d[4]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}if(d[1]==="Clear"){let f=$e(d[2]),m=$e(d[3]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}return!1})?new Error(`SQLite Explorer cannot prove whether an applicable UPDATE trigger changed or removed the ${r} identity in ${e}; the trigger can write the target table, so the edit was rolled back because SQLite cannot expose a trustworthy post-trigger ${r} identity.`):new Error(`Cannot update ${e} while an applicable UPDATE trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);if(s)throw new Error(`Cannot update ${e} while a mutating foreign-key UPDATE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function ji(e,t,n){let r=0,o=!1;for(let i of n){if(i.length<6||typeof i[1]!="string")throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);let a=$e(i[0]);if(a===void 0)throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);if(i[1]==="Init"&&a===0){if(r+=1,typeof i[5]=="string"&&i[5].startsWith("-- TRIGGER "))throw new Error(`Cannot ${e.toLowerCase()} ${t} while an applicable ${e} trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);continue}e==="DELETE"&&r>1&&(i[1]==="OpenWrite"||i[1]==="Clear")&&(o=!0)}if(o)throw new Error(`Cannot delete from ${t} while a mutating foreign-key DELETE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function Vc(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function Fc(e){let t=new Uint8Array(e.length/2);for(let n=0;n4096)throw new Error("Read-only primary-key reason must contain 1 through 4096 characters");if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid read-only primary-key row ordinal: ${t}`);return Jt+encodeURIComponent(JSON.stringify({v:Ui,r:t,m:e}))}function jc(e){let t;try{t=JSON.parse(decodeURIComponent(e.slice(Jt.length)))}catch{throw new Error("Invalid read-only primary-key identity encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Ui||!Number.isSafeInteger(t.r)||Number(t.r)<0||typeof t.m!="string"||String(t.m).length<1||String(t.m).length>4096)throw new Error("Invalid read-only primary-key identity payload");let n=t;if(Jt+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Read-only primary-key identity is not canonical");return n}function ve(e){if(Wc(e))throw new Error(jc(e).m)}function Ke(e,t){if(e.length===0||e.length!==t.length)throw new Error("Primary-key identity column/value count mismatch");let n={v:Er,c:e.map((r,o)=>[r.identifier,Zt(t[o])])};return gt+encodeURIComponent(JSON.stringify(n))}function Ki(e){if(!ie(e))throw new Error(`Invalid primary-key identity: ${String(e)}`);let t,n;try{t=decodeURIComponent(e.slice(gt.length)),n=JSON.parse(t)}catch{throw new Error("Invalid primary-key identity encoding")}if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||n.v!==Er||!Array.isArray(n.c))throw new Error("Invalid primary-key identity payload");let r=n.c;if(r.length===0)throw new Error("Primary-key identity has no columns");let o=new Set,i=[],a=[],s=[],l=[];for(let c of r){if(!Array.isArray(c)||c.length!==2||typeof c[0]!="string")throw new Error("Invalid primary-key identity member");if(o.has(c[0]))throw new Error(`Duplicate primary-key identity column: ${c[0]}`);o.add(c[0]),i.push(c[0]);let d=Hi(c[1]);a.push(d.value),s.push(d.storageClass),l.push(c[1])}if(gt+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Primary-key identity is not canonical");return{columns:i,values:a,storageClasses:s,encodedValues:l}}function zi(e){let{columns:t,values:n}=Ki(e);return{columns:t,values:n}}function en(e,t){ve(e);let n=Ki(e),r=t.columns.map(o=>o.identifier);if(n.columns.length!==r.length||n.columns.some((o,i)=>o!==r[i]))throw new Error(`Primary-key identity columns do not match the declared key (${r.join(", ")})`);return n}function wr(e,t,n){let r=en(e,t),o=new Map,i=new Set(t.columns.map(s=>s.identifier));for(let s of n){if(!i.has(s.column))throw new Error(`Primary-key replacement column is not declared: ${s.column}`);if(o.has(s.column))throw new Error(`Duplicate primary-key replacement column: ${s.column}`);o.set(s.column,s.value)}let a={v:Er,c:t.columns.map((s,l)=>[s.identifier,o.has(s.identifier)?Zt(o.get(s.identifier)):r.encodedValues[l]])};return gt+encodeURIComponent(JSON.stringify(a))}function hr(e){return e==="integer"?"CAST(? AS INTEGER)":"?"}function Q(e,t){if(ve(e),t.kind==="rowid")return{sql:"rowid = ?",params:[H(e)]};let n=en(e,t),r=t.columns.map(i=>i.identifier),o=r.map((i,a)=>hr(n.storageClasses[a]));return{sql:r.map((i,a)=>`${C(i)} = ${o[a]}`).join(" AND "),params:n.values,primaryKey:{columns:n.columns,values:n.values},primaryKeyIntegerCasts:o.map(i=>i!=="?")}}function Hc(e,t){if(e.length===0)throw new Error("At least one row identity is required");if(t.kind==="rowid"){let a=e.map(s=>Q(s,t));return{sql:`rowid IN (${a.map(()=>"?").join(", ")})`,params:a.flatMap(s=>s.params)}}let n=e.map(a=>en(a,t)),r=t.columns.map(a=>C(a.identifier)),o=n.flatMap(a=>a.values);if(r.length===1)return{sql:`${r[0]} IN (${n.map(a=>hr(a.storageClasses[0])).join(", ")})`,params:o};let i=n.map(a=>`(${a.storageClasses.map(s=>hr(s)).join(", ")})`);return{sql:`(${r.join(", ")}) IN (VALUES ${i.join(", ")})`,params:o}}function ze(e,t){if(e.length===0)throw new Error("At least one row identity is required");let n=new Set;for(let a of e){let s;if(t.kind==="rowid"?s=`rowid:${String(H(a))}`:(en(a,t),s=`primaryKey:${String(a)}`),n.has(s))throw new Error("Duplicate row identities are not allowed");n.add(s)}let r=t.kind==="rowid"?1:t.columns.length,o=Math.max(1,Math.floor((Gt-1)/r)),i=[];for(let a=0;at.primaryKeyPosition>0).map(t=>({identifier:t.identifier,declaredType:t.declaredType,position:t.primaryKeyPosition})).sort((t,n)=>t.position-n.position)}var gt,Er,Jt,Ui,qi,Vi,Et=M(()=>{"use strict";_();pt();Y();gt="pk:",Er=1,Jt="readonly-pk:",Ui=1,qi=` +SELECT ${l.join(", ")} FROM ${o}`,transportColumns:u};return a&&(c.valueColumnCount=t),c}function Mi(e,t,n){if(t.length<2||t[0].toLowerCase()!=="rowid"||n.length===0)return[];let r=t.slice(1),o=[];for(let i=0;ii+d+1),l=s.map(c=>`${Uc}${c}`),u=a.map((c,d)=>{let f=C(c);return`CASE WHEN typeof(${f}) = 'real' THEN CAST(${f} AS TEXT) END AS ${C(l[d])}`});for(let c=0;ctypeof m=="bigint"?m.toString():m);o.push({sql:`SELECT rowid AS ${C($i)}, ${u.join(", ")} FROM ${L(e)} WHERE rowid IN (${d.map(()=>"?").join(", ")})`,params:f,transportColumns:[$i,...l],columnIndices:s})}}return o}function Ui(e,t){if(t.length===0)return;let n=new Map;e.forEach((o,i)=>{let a=o[0];if(!["bigint","number","string"].includes(typeof a))throw new Error(`Invalid rowid identity at source row ${i}`);let s=String(a);if(n.has(s))throw new Error(`Duplicate rowid identity at source row ${i}`);n.set(s,i)});let r;for(let{query:o,rows:i}of t)for(let a of i){if(a.length{let c=a[u+1];if(c==null)return;if(typeof c!="string")throw new Error(`Rowid exact REAL text at row ${s}, column ${l} is not text`);let d=e[s]?.[l];if(d===void 0)throw new Error(`Rowid exact REAL text is outside row ${s}, column ${l}`);c!==String(d)&&(r??={},r[s]??={},r[s][l]=c)})}return r}function Qe(e,t,n,r){let o,i=(s,l,u)=>{o??={},o[s]??={},o[s][l]=u},a=e.map((s,l)=>{let u=t??s.length;if(t!==void 0&&s.length{let f=c;if(typeof c=="bigint"){let m=Number(c);if(Number.isSafeInteger(m))f=m;else{let E=c.toString();d===r?f=E:(i(l,d,E),f=m)}}if(t!==void 0){let m=s[t+d];if(m!=null){if(typeof m!="string")throw new Error(`Exact numeric text at row ${l}, column ${d} is not text`);m!==String(f)&&i(l,d,m)}}return f})});if(n)for(let[s,l]of Object.entries(n)){let u=Number(s);if(!Number.isInteger(u)||u<0||l===null||typeof l!="object")throw new Error(`Invalid exact numeric text row index: ${s}`);for(let[c,d]of Object.entries(l)){let f=Number(c);if(!Number.isInteger(f)||f<0||typeof d!="string")throw new Error(`Invalid exact numeric text entry at row ${s}, column ${c}`);let m=a[u]?.[f];if(m===void 0)throw new Error(`Exact numeric text entry is outside row ${s}, column ${c}`);d!==String(m)&&i(u,f,d)}}return o?{rows:a,exactIntegerTexts:o}:{rows:a}}var Dc,Bc,Mc,$i,Uc,qc,vi,Gt,ft,ki,Pi,pt=M(()=>{"use strict";A();Y();Dc="__sqlite_explorer_numeric_source",Bc="__sqlite_explorer_numeric_value_",Mc="__sqlite_explorer_numeric_text_",$i="__sqlite_explorer_numeric_rowid",Uc="__sqlite_explorer_numeric_rowid_text_",qc=2e3,vi=999,Gt=32766,ft=`SELECT 1 FROM pragma.pragma_table_list AS target WHERE "schema" = 'main' AND "name" = ? AND (("type" IN ('table', 'shadow') AND "wr" = 0) OR "type" = 'virtual') AND (NOT EXISTS (SELECT 1 FROM pragma.pragma_table_info(?, 'main') WHERE lower("name") = 'rowid') OR ("type" = 'table' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND EXISTS (SELECT 1 FROM pragma.pragma_table_info(target."name", 'main') WHERE lower("name") = 'rowid' AND lower(trim("type")) = 'integer' AND "pk" = 1) AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk'))) LIMIT 1`,ki=`SELECT info."name" FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_info(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? AND target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') LIMIT 2`,Pi=`SELECT info."cid", info."name", info."type", info."notnull", info."dflt_value", info."pk", info."hidden", CASE WHEN target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') THEN 1 ELSE 0 END AS is_rowid_alias FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_xinfo(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? ORDER BY info."cid"`});function yt(e){return new Error(`An UPDATE trigger changed or removed the rowid identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function Wi(e,t){if(e.length!==1||e[0].length<1)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);let n=e[0][0],r=typeof n=="bigint"?Number(n):n;if(!Number.isSafeInteger(r)||Number(r)<0)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);return Number(r)}function $e(e){let t=typeof e=="bigint"?Number(e):e;return Number.isSafeInteger(t)?Number(t):void 0}function ji(e,t,n,r="rowid"){if(!Number.isSafeInteger(t)||t<0)throw new Error(`SQLite returned invalid table root-page metadata for ${e}`);let o=!1,i=-1,a=0,s=!1,l,u=()=>{if(!l||l.isUserTrigger||!l.hasWrite)return;let c=l.prologueParameters,d=l.parametersAfterWrite,f=c.filter((E,y)=>y%2===1);c.length>0&&c.length%2===0&&f.every(E=>d.has(E))||(s=!0)};for(let c=0;c1?{isUserTrigger:m,hasWrite:!1,prologueParameters:[],parametersAfterWrite:new Set,prologueComplete:!1}:void 0;continue}if(l){if(d[1]==="Param"){let m=$e(d[2]);if(m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);l.hasWrite?l.parametersAfterWrite.add(m):l.prologueComplete||l.prologueParameters.push(m);continue}d[1]==="OpenWrite"||d[1]==="Clear"?(l.prologueComplete=!0,l.hasWrite=!0):d[1].startsWith("Open")&&(l.prologueComplete=!0)}}if(u(),o)throw i<0?new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`):n.slice(i).some(d=>{if(d[1]==="OpenWrite"){let f=$e(d[3]),m=$e(d[4]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}if(d[1]==="Clear"){let f=$e(d[2]),m=$e(d[3]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}return!1})?new Error(`SQLite Explorer cannot prove whether an applicable UPDATE trigger changed or removed the ${r} identity in ${e}; the trigger can write the target table, so the edit was rolled back because SQLite cannot expose a trustworthy post-trigger ${r} identity.`):new Error(`Cannot update ${e} while an applicable UPDATE trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);if(s)throw new Error(`Cannot update ${e} while a mutating foreign-key UPDATE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function Hi(e,t,n){let r=0,o=!1;for(let i of n){if(i.length<6||typeof i[1]!="string")throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);let a=$e(i[0]);if(a===void 0)throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);if(i[1]==="Init"&&a===0){if(r+=1,typeof i[5]=="string"&&i[5].startsWith("-- TRIGGER "))throw new Error(`Cannot ${e.toLowerCase()} ${t} while an applicable ${e} trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);continue}e==="DELETE"&&r>1&&(i[1]==="OpenWrite"||i[1]==="Clear")&&(o=!0)}if(o)throw new Error(`Cannot delete from ${t} while a mutating foreign-key DELETE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function Vc(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function Fc(e){let t=new Uint8Array(e.length/2);for(let n=0;n4096)throw new Error("Read-only primary-key reason must contain 1 through 4096 characters");if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid read-only primary-key row ordinal: ${t}`);return Jt+encodeURIComponent(JSON.stringify({v:qi,r:t,m:e}))}function jc(e){let t;try{t=JSON.parse(decodeURIComponent(e.slice(Jt.length)))}catch{throw new Error("Invalid read-only primary-key identity encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==qi||!Number.isSafeInteger(t.r)||Number(t.r)<0||typeof t.m!="string"||String(t.m).length<1||String(t.m).length>4096)throw new Error("Invalid read-only primary-key identity payload");let n=t;if(Jt+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Read-only primary-key identity is not canonical");return n}function ve(e){if(Wc(e))throw new Error(jc(e).m)}function Ke(e,t){if(e.length===0||e.length!==t.length)throw new Error("Primary-key identity column/value count mismatch");let n={v:wr,c:e.map((r,o)=>[r.identifier,Zt(t[o])])};return gt+encodeURIComponent(JSON.stringify(n))}function zi(e){if(!ie(e))throw new Error(`Invalid primary-key identity: ${String(e)}`);let t,n;try{t=decodeURIComponent(e.slice(gt.length)),n=JSON.parse(t)}catch{throw new Error("Invalid primary-key identity encoding")}if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||n.v!==wr||!Array.isArray(n.c))throw new Error("Invalid primary-key identity payload");let r=n.c;if(r.length===0)throw new Error("Primary-key identity has no columns");let o=new Set,i=[],a=[],s=[],l=[];for(let c of r){if(!Array.isArray(c)||c.length!==2||typeof c[0]!="string")throw new Error("Invalid primary-key identity member");if(o.has(c[0]))throw new Error(`Duplicate primary-key identity column: ${c[0]}`);o.add(c[0]),i.push(c[0]);let d=Qi(c[1]);a.push(d.value),s.push(d.storageClass),l.push(c[1])}if(gt+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Primary-key identity is not canonical");return{columns:i,values:a,storageClasses:s,encodedValues:l}}function Xi(e){let{columns:t,values:n}=zi(e);return{columns:t,values:n}}function en(e,t){ve(e);let n=zi(e),r=t.columns.map(o=>o.identifier);if(n.columns.length!==r.length||n.columns.some((o,i)=>o!==r[i]))throw new Error(`Primary-key identity columns do not match the declared key (${r.join(", ")})`);return n}function Sr(e,t,n){let r=en(e,t),o=new Map,i=new Set(t.columns.map(s=>s.identifier));for(let s of n){if(!i.has(s.column))throw new Error(`Primary-key replacement column is not declared: ${s.column}`);if(o.has(s.column))throw new Error(`Duplicate primary-key replacement column: ${s.column}`);o.set(s.column,s.value)}let a={v:wr,c:t.columns.map((s,l)=>[s.identifier,o.has(s.identifier)?Zt(o.get(s.identifier)):r.encodedValues[l]])};return gt+encodeURIComponent(JSON.stringify(a))}function Er(e){return e==="integer"?"CAST(? AS INTEGER)":"?"}function Q(e,t){if(ve(e),t.kind==="rowid")return{sql:"rowid = ?",params:[H(e)]};let n=en(e,t),r=t.columns.map(i=>i.identifier),o=r.map((i,a)=>Er(n.storageClasses[a]));return{sql:r.map((i,a)=>`${C(i)} = ${o[a]}`).join(" AND "),params:n.values,primaryKey:{columns:n.columns,values:n.values},primaryKeyIntegerCasts:o.map(i=>i!=="?")}}function Hc(e,t){if(e.length===0)throw new Error("At least one row identity is required");if(t.kind==="rowid"){let a=e.map(s=>Q(s,t));return{sql:`rowid IN (${a.map(()=>"?").join(", ")})`,params:a.flatMap(s=>s.params)}}let n=e.map(a=>en(a,t)),r=t.columns.map(a=>C(a.identifier)),o=n.flatMap(a=>a.values);if(r.length===1)return{sql:`${r[0]} IN (${n.map(a=>Er(a.storageClasses[0])).join(", ")})`,params:o};let i=n.map(a=>`(${a.storageClasses.map(s=>Er(s)).join(", ")})`);return{sql:`(${r.join(", ")}) IN (VALUES ${i.join(", ")})`,params:o}}function ze(e,t){if(e.length===0)throw new Error("At least one row identity is required");let n=new Set;for(let a of e){let s;if(t.kind==="rowid"?s=`rowid:${String(H(a))}`:(en(a,t),s=`primaryKey:${String(a)}`),n.has(s))throw new Error("Duplicate row identities are not allowed");n.add(s)}let r=t.kind==="rowid"?1:t.columns.length,o=Math.max(1,Math.floor((Gt-1)/r)),i=[];for(let a=0;at.primaryKeyPosition>0).map(t=>({identifier:t.identifier,declaredType:t.declaredType,position:t.primaryKeyPosition})).sort((t,n)=>t.position-n.position)}var gt,wr,Jt,qi,Vi,Fi,Et=M(()=>{"use strict";A();pt();Y();gt="pk:",wr=1,Jt="readonly-pk:",qi=1,Vi=` SELECT tl."name" AS table_name, tl."type" AS object_type, @@ -23,41 +23,41 @@ FROM pragma.pragma_table_list AS tl LEFT JOIN pragma.pragma_table_info(tl."name", tl."schema") AS ti ON tl."type" IN ('table', 'shadow') AND tl."wr" = 1 WHERE tl."schema" = 'main' AND tl."name" NOT LIKE 'sqlite_%' -ORDER BY tl."name", ti."cid"`;Vi=`SELECT "rootpage" FROM main.sqlite_schema WHERE "type" = 'table' AND "name" = ? LIMIT 2`});function tn(e,t){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:t}function Zc(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell containment requires a positive column count, got ${t}`);let n=tn(e.maxInlineCellBytes,rn),r=tn(e.maxPageResponseBytes,be),i=tn(e.limit,1)*t,a=Number.isSafeInteger(i)?Math.floor(r/i):0;if(!Number.isSafeInteger(i))return 0;let s=String(t-1).length+3,l=wt+Cr+s+zc,u=ue-St,c=Math.floor(u/i),d=Math.max(0,Math.floor((c-l)/4)*4),f=Math.floor(d/4)*3;return Math.min(n,a,Math.max(Qc,f))}function eu(e,t){return`typeof(${e}) IN ('text', 'blob') AND octet_length(${e}) > ${t}`}function tu(e,t){return`CASE WHEN ${eu(e,t)} THEN CASE typeof(${e}) WHEN 'text' THEN 't' ELSE 'b' END || CAST(octet_length(${e}) AS TEXT) ELSE '' END`}function nu(e,t){let n=[];for(let r=0;rtu(a,t)).map((a,s)=>`${s===0?"SELECT":"UNION ALL SELECT"} ${a} AS "cell"`).join(` +ORDER BY tl."name", ti."cid"`;Fi=`SELECT "rootpage" FROM main.sqlite_schema WHERE "type" = 'table' AND "name" = ? LIMIT 2`});function tn(e,t){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:t}function Zc(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell containment requires a positive column count, got ${t}`);let n=tn(e.maxInlineCellBytes,rn),r=tn(e.maxPageResponseBytes,be),i=tn(e.limit,1)*t,a=Number.isSafeInteger(i)?Math.floor(r/i):0;if(!Number.isSafeInteger(i))return 0;let s=String(t-1).length+3,l=wt+Rr+s+zc,u=ue-St,c=Math.floor(u/i),d=Math.max(0,Math.floor((c-l)/4)*4),f=Math.floor(d/4)*3;return Math.min(n,a,Math.max(Qc,f))}function eu(e,t){return`typeof(${e}) IN ('text', 'blob') AND octet_length(${e}) > ${t}`}function tu(e,t){return`CASE WHEN ${eu(e,t)} THEN CASE typeof(${e}) WHEN 'text' THEN 't' ELSE 'b' END || CAST(octet_length(${e}) AS TEXT) ELSE '' END`}function nu(e,t){let n=[];for(let r=0;rtu(a,t)).map((a,s)=>`${s===0?"SELECT":"UNION ALL SELECT"} ${a} AS "cell"`).join(` `);n.push(`(SELECT group_concat("cell", '|') FROM ( ${i} -))`)}return n.join(" || '|' || ")}function on(e,t,n,r=[],o="blob"){let i=Zc(n,t),a=Math.floor(i/Jc),s=Array.from({length:t},(I,T)=>`${Gc}${T}`),l=s.map(C);if(new Set(r).size!==r.length||r.some(I=>!Number.isInteger(I)||I<0||I>=t))throw new Error("Cell containment raw-TEXT columns must be unique in-range indices");let u=r.length>0&&t+1+r.length>Tr,c=u?[]:r,d=l.map((I,T)=>`CASE WHEN typeof(${I}) = 'text' AND octet_length(${I}) > ${i} THEN substr(${I}, 1, ${a}) WHEN typeof(${I}) = 'blob' AND octet_length(${I}) > ${i} THEN substr(${I}, 1, ${i}) ELSE ${I} END AS ${C(s[T])}`),f=C(Xc),m=nu(l,i),E=c.map((I,T)=>{let A=l[I];return`CASE WHEN typeof(${A}) = 'text' AND octet_length(${A}) <= ${i} THEN ${o==="hex"?`hex(CAST(${A} AS BLOB))`:`CAST(${A} AS BLOB)`} END AS ${C(`${ts}${T}`)}`}),y=E.length>0?`, ${E.join(", ")}`:"",g=t+1>Tr,S=`WITH ${f} (${l.join(", ")}) AS${g?" MATERIALIZED":""} ( +))`)}return n.join(" || '|' || ")}function on(e,t,n,r=[],o="blob"){let i=Zc(n,t),a=Math.floor(i/Jc),s=Array.from({length:t},(I,T)=>`${Gc}${T}`),l=s.map(C);if(new Set(r).size!==r.length||r.some(I=>!Number.isInteger(I)||I<0||I>=t))throw new Error("Cell containment raw-TEXT columns must be unique in-range indices");let u=r.length>0&&t+1+r.length>Cr,c=u?[]:r,d=l.map((I,T)=>`CASE WHEN typeof(${I}) = 'text' AND octet_length(${I}) > ${i} THEN substr(${I}, 1, ${a}) WHEN typeof(${I}) = 'blob' AND octet_length(${I}) > ${i} THEN substr(${I}, 1, ${i}) ELSE ${I} END AS ${C(s[T])}`),f=C(Xc),m=nu(l,i),E=c.map((I,T)=>{let _=l[I];return`CASE WHEN typeof(${_}) = 'text' AND octet_length(${_}) <= ${i} THEN ${o==="hex"?`hex(CAST(${_} AS BLOB))`:`CAST(${_} AS BLOB)`} END AS ${C(`${ns}${T}`)}`}),y=E.length>0?`, ${E.join(", ")}`:"",g=t+1>Cr,S=`WITH ${f} (${l.join(", ")}) AS${g?" MATERIALIZED":""} ( SELECT * FROM ( ${e} ) LIMIT -1 OFFSET 0 ) `,w=g?"":`, ${m} AS ${C(Yc)}`,R=g?` UNION ALL -SELECT (SELECT COALESCE(group_concat(${m}, char(10)), '') FROM ${f})${t>1?`, ${Array(t-1).fill("NULL").join(", ")}`:""}`:"";return{sql:S+`SELECT ${d.join(", ")}${w}${y} FROM ${f}`+R,metadataTrailer:g,primaryTransportColumnCount:t+(g?0:1)+c.length,valueColumnCount:t,metadataColumnIndex:t,transportColumnCount:t+1+c.length,rawTextColumnStart:t+1,rawTextColumnCount:c.length,rawTextTransport:o,rawTextColumnIndices:c,rawTextValidationUnavailable:u,effectiveInlineCellBytes:i}}function ns(e,t,n){if(!n.metadataTrailer){if(t!==void 0)throw new Error("Cell containment received unexpected separate metadata rows");return e}if(t!==void 0)throw new Error("Cell containment metadata must come from the value statement");let r=e.at(-1);if(!r||r.length!==n.primaryTransportColumnCount)throw new Error("Cell containment metadata trailer is missing or malformed");if(typeof r[0]!="string"||r.slice(1).some(a=>a!==null))throw new Error("Cell containment metadata trailer is not one packed text value");let o=e.slice(0,-1),i=r[0]===""?[]:r[0].split(` -`);if(i.length!==o.length)throw new Error("Cell containment metadata row count does not match the value page");return o.map((a,s)=>{if(a.length{if(!s)return;let l={};for(let[u,c]of Object.entries(s)){let d=Number(u);l[d]={};for(let[f,m]of Object.entries(c))l[d][Number(f)+1]=m}return l},o=r(t.exactIntegerTexts),i;for(let s of[n,o])if(s){i??={};for(let[l,u]of Object.entries(s)){let c=Number(l);i[c]??={},Object.assign(i[c],u)}}let a=r(t.oversizedCells);return{rows:t.rows.map((s,l)=>[e[l],...s]),...a?{oversizedCells:a}:{},...i?{exactIntegerTexts:i}:{}}}function os(e,t){let n,r=0,o,i=s=>{if(s>=48&&s<=57)return s-48;let l=s|32;return l>=97&&l<=102?l-87:-1},a=(s,l,u)=>{let c=typeof s=="string"?s.length/2:NaN;if(typeof s!="string"||!Number.isSafeInteger(c)||!Number.isSafeInteger(t.effectiveInlineCellBytes)||t.effectiveInlineCellBytes<0||c>t.effectiveInlineCellBytes)throw new Error(`Raw TEXT value at row ${l}, key ${u} is not bounded hexadecimal text`);if(c===0)return o??=new Uint8Array(0);let d;c>Gi?d=new Uint8Array(c):((!n||n.byteLength-r{if(s.length{let d=s[t.rawTextColumnStart+c];if(d!==null&&t.rawTextTransport==="hex")return a(d,l,c);if(d!==null&&!(d instanceof Uint8Array))throw new Error(`Raw TEXT value at row ${l}, key ${c} is not a BLOB`);return d})})}function is(e,t,n){if(n.includes("\0"))return!1;try{return e.decode(t)===n}catch{return!1}}function ss(e){if(e.sourceRows.length===0||e.sourceColumnIndices.length===0)return;if(e.rawTextValidationUnavailable)return new Set(e.sourceRows.map((o,i)=>i));if(e.rawTextRows.length!==e.sourceRows.length)throw new Error("Raw TEXT validation row count does not match the source page");let t=e.sourceColumnIndices.map(o=>{let i=e.rawTextColumnIndices.indexOf(o);if(i<0)throw new Error(`Raw TEXT validation column ${o} was not projected`);return i}),n=ge(e.textEncoding),r;return e.sourceRows.forEach((o,i)=>{let a=e.rawTextRows[i];if(!a||a.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT validation row ${i} has the wrong width`);for(let s=0;sArray.from(s)),n;if(e.contained.oversizedCells){n={};for(let[s,l]of Object.entries(e.contained.oversizedCells))n[Number(s)]={...l}}let r;if(e.contained.exactIntegerTexts){r={};for(let[s,l]of Object.entries(e.contained.exactIntegerTexts))r[Number(s)]={...l}}let o=ue-St,i=an(t)+ln(n)+cn(r),a=ge(e.textEncoding);if(e.sourceRows.forEach((s,l)=>{let u=e.rawTextRows[l];if(!u||u.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT containment row ${l} has the wrong width`);e.rawTextColumnIndices.forEach((c,d)=>{let f=s[c];if(typeof f!="string"||n?.[l]?.[c])return;let m=u[d];if(!(m instanceof Uint8Array))throw new Error(`Raw TEXT containment bytes are missing at row ${l}, column ${c}`);if(is(a,m,f))return;let E=t[l][c],y=ls(n,l,c);n??={},n[l]??={},n[l][c]={storageClass:"text",byteLength:m.byteLength};let g=Math.max(0,o-i-y+de(E)),S=g>wt?Math.floor((g-wt)/4)*3:0,w=Math.min(m.byteLength,Kc,S);if(w===0)throw new Error(`Raw TEXT containment cannot retain an authoritative byte prefix for row ${l}, column ${c} within the webview transport limit`);let R=m.slice(0,w);t[l][c]=R,i+=de(R)-de(E)+y,r?.[l]&&(delete r[l][c],Object.keys(r[l]).length===0&&delete r[l])})}),i>o)throw new Error(`Raw TEXT containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:t,...n?{oversizedCells:n}:{},...r&&Object.keys(r).length>0?{exactIntegerTexts:r}:{}}}function ru(e,t,n){if(e==="")return;let r=/^([tb])([1-9]\d*)$/.exec(e);if(!r)throw new Error(`Invalid oversized-cell metadata at row ${t}, column ${n}`);let o=Number(r[2]);if(!Number.isSafeInteger(o))throw new Error(`Oversized-cell byte length is unsafe at row ${t}, column ${n}`);return{storageClass:r[1]==="t"?"text":"blob",byteLength:o}}function sn(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function ou(e){if(typeof e=="string")return sn(e);if(e instanceof Uint8Array)return e.byteLength}function Ji(e){return e==="text"?"":new Uint8Array(0)}function iu(e){return 4*Math.ceil(e/3)}function de(e){return e instanceof Uint8Array?iu(e.byteLength)+wt:typeof e=="string"?sn(e)+2:8}function xe(e){return sn(e)+3}function an(e){let t=2+Math.max(0,e.length-1);for(let n of e){t+=2+Math.max(0,n.length-1);for(let r of n)t+=de(r)}return t}function ln(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=xe(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a]of i)n+=xe(a)+Cr}return n}function ls(e,t,n){if(e?.[t]?.[n])return 0;let r=xe(String(n))+Cr;if(e?.[t])return 1+r;let i=xe(String(t))+2+r;return e?1+i:2+i}function cn(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=xe(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a,s]of i)n+=xe(a)+sn(s)+2}return n}function cs(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t)n+=xe(r)+de(o);return n}function un(e,t,n,r=be){let o=tn(r,be),i,a=0,s=!1,l=[],u=(E,y,g)=>{i??={},i[E]??={},i[E][y]??=g},c=e.map((E,y)=>{if(E.length{let T=ru(R,y,I);T&&u(y,I,T);let A=w[I],$=ou(A);if($===void 0||$===0)return;let O=T??{storageClass:typeof A=="string"?"text":"blob",byteLength:$};if(s||$>o-a){s=!0,u(y,I,O),w[I]=Ji(O.storageClass);return}a+=$,l.push({rowIndex:y,columnIndex:I,metadata:O})}),w}),d;if(n)for(let[E,y]of Object.entries(n))for(let[g,S]of Object.entries(y)){let w=Number(g);w>=t||(d??={},d[Number(E)]??={},d[Number(E)][w]=S)}let f=ue-St,m=an(c)+ln(i)+cn(d);for(let E=l.length-1;E>=0&&m>f;E--){let y=l[E],g=c[y.rowIndex][y.columnIndex],S=Ji(y.metadata.storageClass),w=de(S)-de(g)+ls(i,y.rowIndex,y.columnIndex);w>=0||(u(y.rowIndex,y.columnIndex,y.metadata),c[y.rowIndex][y.columnIndex]=S,m+=w)}if(m>f)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:c,...i?{oversizedCells:i}:{},...d?{exactIntegerTexts:d}:{}}}function Zi(e,t){if(!e)return;let n;for(let[r,o]of Object.entries(e))for(let[i,a]of Object.entries(o)){let s=Number(i);s>=t||(n??={},n[Number(r)]??={},n[Number(r)][s+1]=a)}return n}function es(e,t){if(!e)return;let n;for(let[r,o]of Object.entries(e))for(let[i,a]of Object.entries(o)){let s=Number(i);s!==t&&(n??={},n[Number(r)]??={},n[Number(r)][s]=a)}return n}function us(e){let t=`Row is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity.`,n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o=e.rows.map((u,c)=>{if(u.length===0)throw new Error(`Shadowed rowid result row ${c} has no identity slot`);let d=n+c;if(!Number.isSafeInteger(d))throw new Error("Shadowed rowid result ordinal exceeds the safe integer range");return r??={},r[c]=t,[ht(t,d),...u.slice(1)]}),i=es(e.oversizedCells,0),a=es(e.exactIntegerTexts,0),s=ue-St;if(an(o)+ln(i)+cn(a)+cs(r)>s)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:o,...i?{oversizedCells:i}:{},...a?{exactIntegerTexts:a}:{},...r?{readOnlyRowReasons:r}:{}}}function nn(e){return`"${e.length<=128?e:`${e.slice(0,125)}...`}"`}function ds(e){let t=e.slice(0,8).map(nn);return e.length>t.length?`${t.join(", ")}, and ${e.length-t.length} more`:t.join(", ")}function su(e,t){if(e.length===1){let r=e[0];return`Row is read-only because WITHOUT ROWID primary-key column ${nn(r.identifier)} is ${r.byteLength} bytes and exceeds the ${t}-byte inline limit; its identity was not transported.`}let n=e.slice(0,8).map(r=>`${nn(r.identifier)} (${r.byteLength} bytes)`);return e.length>n.length&&n.push(`and ${e.length-n.length} more`),`Row is read-only because WITHOUT ROWID primary-key columns ${n.join(", ")} exceed the ${t}-byte inline limit; their identity was not transported.`}function fs(e){return e==="utf-8"?"UTF-8":e==="utf-16le"?"UTF-16LE":"UTF-16BE"}function bt(e){if(e.columns.length*2>Tr)throw new Error(`Cannot mint a byte-faithful WITHOUT ROWID identity with ${e.columns.length} primary-key columns within SQLite's result-column limit`);let t=e.columns.map(r=>C(r.identifier)),n=t.map((r,o)=>`CASE WHEN typeof(${r}) = 'text' THEN CAST(${r} AS BLOB) END AS `+C(`${ts}${o}`));return[...t,...n].join(", ")}function Tt(e,t,n,r){let o=e.columns.length;if(t.length!==o*2)throw new Error(`${r}: SQLite returned an invalid primary-key validation row`);let i=t.slice(0,o),a=ge(n);for(let s=0;s{let g=e.sourceColumns.indexOf(y.identifier);if(g<0)throw new Error(`Primary-key column missing from table fetch: ${y.identifier}`);return g}),n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o,i=[],a=ge(e.textEncoding),s=e.rawTextValidationUnavailable?[]:t.map(y=>{let g=e.rawTextColumnIndices.indexOf(y);if(g<0)throw new Error(`Primary-key raw TEXT column ${y} was not projected`);return g}),l=e.rows.map((y,g)=>{let S=e.identity.columns.flatMap((A,$)=>{let O=e.oversizedCells?.[g]?.[t[$]];return O?[{identifier:A.identifier,byteLength:O.byteLength}]:[]}),w=e.identityRows[g];if(!w)throw new Error(`Primary-key identity row missing at index ${g}`);let R=e.rawTextBytes[g];if(!e.rawTextValidationUnavailable&&(!R||R.length!==e.rawTextColumnIndices.length))throw new Error(`Primary-key raw TEXT row missing at index ${g}`);let I=e.rawTextValidationUnavailable?e.identity.columns.map(A=>A.identifier):e.identity.columns.flatMap((A,$)=>{let O=w[t[$]];if(typeof O!="string")return[];let D=e.oversizedCells?.[g]?.[t[$]];if(D&&D.byteLength>e.effectiveInlineCellBytes)return[];let p=R[s[$]];if(!(p instanceof Uint8Array))return[A.identifier];try{return a.decode(p)===O?[]:[A.identifier]}catch{return[A.identifier]}}),T;if(e.rawTextValidationUnavailable&&(o??=new Set,o.add(g)),I.length>0){let A=e.rawTextValidationUnavailable?lu(I):au(I,e.textEncoding);r??={},r[g]=A,o??=new Set,o.add(g),T=ht(A,n+g)}else if(S.length>0){let A=su(S,e.effectiveInlineCellBytes);r??={},r[g]=A,T=ht(A,n+g)}else T=Ke(e.identity.columns,t.map(A=>w[A])),i.push(g);return[T,...y.slice(0,e.visibleColumnCount)]}),u=Zi(e.oversizedCells,e.visibleColumnCount),c=Zi(e.exactIntegerTexts,e.visibleColumnCount),d=ue-St,f=an(l)+ln(u)+cn(c)+cs(r),m="Row is read-only because its encoded WITHOUT ROWID primary-key identity exceeds the page transport budget.",E=y=>{if(r?.[y]!==void 0)return 0;let g=xe(String(y))+de(m);return r?1+g:2+g};for(let y=i.length-1;y>=0&&f>d;y--){let g=i[y],S=l[g][0],w=ht(m,n+g),R=de(w)-de(S)+E(g);R>=0||(l[g][0]=w,r??={},r[g]=m,f+=R)}if(f>d)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:l,...u?{oversizedCells:u}:{},...c?{exactIntegerTexts:c}:{},...r?{readOnlyRowReasons:r}:{},...o?{unrepresentableTextKeyRows:o}:{}}}var rn,be,Qc,ue,Kc,wt,St,Cr,zc,Xc,Gc,Yc,ts,Gi,Yi,Jc,Tr,dn=M(()=>{"use strict";_();Y();Ft();Et();rn=1024*1024,be=16*1024*1024,Qc=256,ue=2*be,Kc=64*1024,wt=40,St=512*1024,Cr=45,zc=2,Xc="__sqlite_explorer_cell_source",Gc="__sqlite_explorer_cell_value_",Yc="__sqlite_explorer_cell_metadata",ts="__sqlite_explorer_cell_raw_text_",Gi=64*1024,Yi=400,Jc=4,Tr=2e3});function gs(e){if(e.length>ps)throw new Error("Query text exceeds 65,536 characters.");let t=Ee(e),n="",r=0,o=0;for(let i=0;i1?`, ${Array(t-1).fill("NULL").join(", ")}`:""}`:"";return{sql:S+`SELECT ${d.join(", ")}${w}${y} FROM ${f}`+R,metadataTrailer:g,primaryTransportColumnCount:t+(g?0:1)+c.length,valueColumnCount:t,metadataColumnIndex:t,transportColumnCount:t+1+c.length,rawTextColumnStart:t+1,rawTextColumnCount:c.length,rawTextTransport:o,rawTextColumnIndices:c,rawTextValidationUnavailable:u,effectiveInlineCellBytes:i}}function rs(e,t,n){if(!n.metadataTrailer){if(t!==void 0)throw new Error("Cell containment received unexpected separate metadata rows");return e}if(t!==void 0)throw new Error("Cell containment metadata must come from the value statement");let r=e.at(-1);if(!r||r.length!==n.primaryTransportColumnCount)throw new Error("Cell containment metadata trailer is missing or malformed");if(typeof r[0]!="string"||r.slice(1).some(a=>a!==null))throw new Error("Cell containment metadata trailer is not one packed text value");let o=e.slice(0,-1),i=r[0]===""?[]:r[0].split(` +`);if(i.length!==o.length)throw new Error("Cell containment metadata row count does not match the value page");return o.map((a,s)=>{if(a.length{if(!s)return;let l={};for(let[u,c]of Object.entries(s)){let d=Number(u);l[d]={};for(let[f,m]of Object.entries(c))l[d][Number(f)+1]=m}return l},o=r(t.exactIntegerTexts),i;for(let s of[n,o])if(s){i??={};for(let[l,u]of Object.entries(s)){let c=Number(l);i[c]??={},Object.assign(i[c],u)}}let a=r(t.oversizedCells);return{rows:t.rows.map((s,l)=>[e[l],...s]),...a?{oversizedCells:a}:{},...i?{exactIntegerTexts:i}:{}}}function is(e,t){let n,r=0,o,i=s=>{if(s>=48&&s<=57)return s-48;let l=s|32;return l>=97&&l<=102?l-87:-1},a=(s,l,u)=>{let c=typeof s=="string"?s.length/2:NaN;if(typeof s!="string"||!Number.isSafeInteger(c)||!Number.isSafeInteger(t.effectiveInlineCellBytes)||t.effectiveInlineCellBytes<0||c>t.effectiveInlineCellBytes)throw new Error(`Raw TEXT value at row ${l}, key ${u} is not bounded hexadecimal text`);if(c===0)return o??=new Uint8Array(0);let d;c>Yi?d=new Uint8Array(c):((!n||n.byteLength-r{if(s.length{let d=s[t.rawTextColumnStart+c];if(d!==null&&t.rawTextTransport==="hex")return a(d,l,c);if(d!==null&&!(d instanceof Uint8Array))throw new Error(`Raw TEXT value at row ${l}, key ${c} is not a BLOB`);return d})})}function sn(e,t,n){if(n.includes("\0"))return!1;try{return e.decode(t)===n}catch{return!1}}function ss(e){if(e.sourceRows.length===0||e.sourceColumnIndices.length===0)return;if(e.rawTextValidationUnavailable)return new Set(e.sourceRows.map((o,i)=>i));if(e.rawTextRows.length!==e.sourceRows.length)throw new Error("Raw TEXT validation row count does not match the source page");let t=e.sourceColumnIndices.map(o=>{let i=e.rawTextColumnIndices.indexOf(o);if(i<0)throw new Error(`Raw TEXT validation column ${o} was not projected`);return i}),n=ge(e.textEncoding),r;return e.sourceRows.forEach((o,i)=>{let a=e.rawTextRows[i];if(!a||a.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT validation row ${i} has the wrong width`);for(let s=0;sArray.from(s)),n;if(e.contained.oversizedCells){n={};for(let[s,l]of Object.entries(e.contained.oversizedCells))n[Number(s)]={...l}}let r;if(e.contained.exactIntegerTexts){r={};for(let[s,l]of Object.entries(e.contained.exactIntegerTexts))r[Number(s)]={...l}}let o=ue-St,i=ln(t)+cn(n)+un(r),a=ge(e.textEncoding);if(e.sourceRows.forEach((s,l)=>{let u=e.rawTextRows[l];if(!u||u.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT containment row ${l} has the wrong width`);e.rawTextColumnIndices.forEach((c,d)=>{let f=s[c];if(typeof f!="string"||n?.[l]?.[c])return;let m=u[d];if(!(m instanceof Uint8Array))throw new Error(`Raw TEXT containment bytes are missing at row ${l}, column ${c}`);if(sn(a,m,f))return;let E=t[l][c],y=ls(n,l,c);n??={},n[l]??={},n[l][c]={storageClass:"text",byteLength:m.byteLength};let g=Math.max(0,o-i-y+de(E)),S=g>wt?Math.floor((g-wt)/4)*3:0,w=Math.min(m.byteLength,Kc,S);if(w===0)throw new Error(`Raw TEXT containment cannot retain an authoritative byte prefix for row ${l}, column ${c} within the webview transport limit`);let R=m.slice(0,w);t[l][c]=R,i+=de(R)-de(E)+y,r?.[l]&&(delete r[l][c],Object.keys(r[l]).length===0&&delete r[l])})}),i>o)throw new Error(`Raw TEXT containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:t,...n?{oversizedCells:n}:{},...r&&Object.keys(r).length>0?{exactIntegerTexts:r}:{}}}function ru(e,t,n){if(e==="")return;let r=/^([tb])([1-9]\d*)$/.exec(e);if(!r)throw new Error(`Invalid oversized-cell metadata at row ${t}, column ${n}`);let o=Number(r[2]);if(!Number.isSafeInteger(o))throw new Error(`Oversized-cell byte length is unsafe at row ${t}, column ${n}`);return{storageClass:r[1]==="t"?"text":"blob",byteLength:o}}function an(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function ou(e){if(typeof e=="string")return an(e);if(e instanceof Uint8Array)return e.byteLength}function Zi(e){return e==="text"?"":new Uint8Array(0)}function iu(e){return 4*Math.ceil(e/3)}function de(e){return e instanceof Uint8Array?iu(e.byteLength)+wt:typeof e=="string"?an(e)+2:8}function xe(e){return an(e)+3}function ln(e){let t=2+Math.max(0,e.length-1);for(let n of e){t+=2+Math.max(0,n.length-1);for(let r of n)t+=de(r)}return t}function cn(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=xe(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a]of i)n+=xe(a)+Rr}return n}function ls(e,t,n){if(e?.[t]?.[n])return 0;let r=xe(String(n))+Rr;if(e?.[t])return 1+r;let i=xe(String(t))+2+r;return e?1+i:2+i}function un(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=xe(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a,s]of i)n+=xe(a)+an(s)+2}return n}function cs(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t)n+=xe(r)+de(o);return n}function dn(e,t,n,r=be){let o=tn(r,be),i,a=0,s=!1,l=[],u=(E,y,g)=>{i??={},i[E]??={},i[E][y]??=g},c=e.map((E,y)=>{if(E.length{let T=ru(R,y,I);T&&u(y,I,T);let _=w[I],$=ou(_);if($===void 0||$===0)return;let O=T??{storageClass:typeof _=="string"?"text":"blob",byteLength:$};if(s||$>o-a){s=!0,u(y,I,O),w[I]=Zi(O.storageClass);return}a+=$,l.push({rowIndex:y,columnIndex:I,metadata:O})}),w}),d;if(n)for(let[E,y]of Object.entries(n))for(let[g,S]of Object.entries(y)){let w=Number(g);w>=t||(d??={},d[Number(E)]??={},d[Number(E)][w]=S)}let f=ue-St,m=ln(c)+cn(i)+un(d);for(let E=l.length-1;E>=0&&m>f;E--){let y=l[E],g=c[y.rowIndex][y.columnIndex],S=Zi(y.metadata.storageClass),w=de(S)-de(g)+ls(i,y.rowIndex,y.columnIndex);w>=0||(u(y.rowIndex,y.columnIndex,y.metadata),c[y.rowIndex][y.columnIndex]=S,m+=w)}if(m>f)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:c,...i?{oversizedCells:i}:{},...d?{exactIntegerTexts:d}:{}}}function es(e,t){if(!e)return;let n;for(let[r,o]of Object.entries(e))for(let[i,a]of Object.entries(o)){let s=Number(i);s>=t||(n??={},n[Number(r)]??={},n[Number(r)][s+1]=a)}return n}function ts(e,t){if(!e)return;let n;for(let[r,o]of Object.entries(e))for(let[i,a]of Object.entries(o)){let s=Number(i);s!==t&&(n??={},n[Number(r)]??={},n[Number(r)][s]=a)}return n}function us(e){let t=`Row is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity.`,n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o=e.rows.map((u,c)=>{if(u.length===0)throw new Error(`Shadowed rowid result row ${c} has no identity slot`);let d=n+c;if(!Number.isSafeInteger(d))throw new Error("Shadowed rowid result ordinal exceeds the safe integer range");return r??={},r[c]=t,[ht(t,d),...u.slice(1)]}),i=ts(e.oversizedCells,0),a=ts(e.exactIntegerTexts,0),s=ue-St;if(ln(o)+cn(i)+un(a)+cs(r)>s)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:o,...i?{oversizedCells:i}:{},...a?{exactIntegerTexts:a}:{},...r?{readOnlyRowReasons:r}:{}}}function nn(e){return`"${e.length<=128?e:`${e.slice(0,125)}...`}"`}function ds(e){let t=e.slice(0,8).map(nn);return e.length>t.length?`${t.join(", ")}, and ${e.length-t.length} more`:t.join(", ")}function su(e,t){if(e.length===1){let r=e[0];return`Row is read-only because WITHOUT ROWID primary-key column ${nn(r.identifier)} is ${r.byteLength} bytes and exceeds the ${t}-byte inline limit; its identity was not transported.`}let n=e.slice(0,8).map(r=>`${nn(r.identifier)} (${r.byteLength} bytes)`);return e.length>n.length&&n.push(`and ${e.length-n.length} more`),`Row is read-only because WITHOUT ROWID primary-key columns ${n.join(", ")} exceed the ${t}-byte inline limit; their identity was not transported.`}function fs(e){return e==="utf-8"?"UTF-8":e==="utf-16le"?"UTF-16LE":"UTF-16BE"}function bt(e){if(e.columns.length*2>Cr)throw new Error(`Cannot mint a byte-faithful WITHOUT ROWID identity with ${e.columns.length} primary-key columns within SQLite's result-column limit`);let t=e.columns.map(r=>C(r.identifier)),n=t.map((r,o)=>`CASE WHEN typeof(${r}) = 'text' THEN CAST(${r} AS BLOB) END AS `+C(`${ns}${o}`));return[...t,...n].join(", ")}function Tt(e,t,n,r){let o=e.columns.length;if(t.length!==o*2)throw new Error(`${r}: SQLite returned an invalid primary-key validation row`);let i=t.slice(0,o),a=ge(n);for(let s=0;s{let g=e.sourceColumns.indexOf(y.identifier);if(g<0)throw new Error(`Primary-key column missing from table fetch: ${y.identifier}`);return g}),n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o,i=[],a=ge(e.textEncoding),s=e.rawTextValidationUnavailable?[]:t.map(y=>{let g=e.rawTextColumnIndices.indexOf(y);if(g<0)throw new Error(`Primary-key raw TEXT column ${y} was not projected`);return g}),l=e.rows.map((y,g)=>{let S=e.identity.columns.flatMap((_,$)=>{let O=e.oversizedCells?.[g]?.[t[$]];return O?[{identifier:_.identifier,byteLength:O.byteLength}]:[]}),w=e.identityRows[g];if(!w)throw new Error(`Primary-key identity row missing at index ${g}`);let R=e.rawTextBytes[g];if(!e.rawTextValidationUnavailable&&(!R||R.length!==e.rawTextColumnIndices.length))throw new Error(`Primary-key raw TEXT row missing at index ${g}`);let I=e.rawTextValidationUnavailable?e.identity.columns.map(_=>_.identifier):e.identity.columns.flatMap((_,$)=>{let O=w[t[$]];if(typeof O!="string")return[];let D=e.oversizedCells?.[g]?.[t[$]];if(D&&D.byteLength>e.effectiveInlineCellBytes)return[];let p=R[s[$]];return p instanceof Uint8Array?sn(a,p,O)?[]:[_.identifier]:[_.identifier]}),T;if(e.rawTextValidationUnavailable&&(o??=new Set,o.add(g)),I.length>0){let _=e.rawTextValidationUnavailable?lu(I):au(I,e.textEncoding);r??={},r[g]=_,o??=new Set,o.add(g),T=ht(_,n+g)}else if(S.length>0){let _=su(S,e.effectiveInlineCellBytes);r??={},r[g]=_,T=ht(_,n+g)}else T=Ke(e.identity.columns,t.map(_=>w[_])),i.push(g);return[T,...y.slice(0,e.visibleColumnCount)]}),u=es(e.oversizedCells,e.visibleColumnCount),c=es(e.exactIntegerTexts,e.visibleColumnCount),d=ue-St,f=ln(l)+cn(u)+un(c)+cs(r),m="Row is read-only because its encoded WITHOUT ROWID primary-key identity exceeds the page transport budget.",E=y=>{if(r?.[y]!==void 0)return 0;let g=xe(String(y))+de(m);return r?1+g:2+g};for(let y=i.length-1;y>=0&&f>d;y--){let g=i[y],S=l[g][0],w=ht(m,n+g),R=de(w)-de(S)+E(g);R>=0||(l[g][0]=w,r??={},r[g]=m,f+=R)}if(f>d)throw new Error(`Cell containment cannot fit this page within the ${ue}-byte transport limit`);return{rows:l,...u?{oversizedCells:u}:{},...c?{exactIntegerTexts:c}:{},...r?{readOnlyRowReasons:r}:{},...o?{unrepresentableTextKeyRows:o}:{}}}var rn,be,Qc,ue,Kc,wt,St,Rr,zc,Xc,Gc,Yc,ns,Yi,Ji,Jc,Cr,fn=M(()=>{"use strict";A();Y();Ft();Et();rn=1024*1024,be=16*1024*1024,Qc=256,ue=2*be,Kc=64*1024,wt=40,St=512*1024,Rr=45,zc=2,Xc="__sqlite_explorer_cell_source",Gc="__sqlite_explorer_cell_value_",Yc="__sqlite_explorer_cell_metadata",ns="__sqlite_explorer_cell_raw_text_",Yi=64*1024,Ji=400,Jc=4,Cr=2e3});function gs(e){if(e.length>ps)throw new Error("Query text exceeds 65,536 characters.");let t=Ee(e),n="",r=0,o=0;for(let i=0;ia+1?Number(t.slice(a+1,i)):r+1;if(!Number.isInteger(l)||l<1||l>100)throw new Error("Use at most 100 positional parameters.");r=Math.max(r,l),n+="NULL";continue}else{if(s==="("&&o++,s===")"&&--o<0)throw new Error("Unbalanced query parentheses.");if(s===";")throw new Error("Exactly one read query is required.");if(s===":"||s==="@"||s==="$")throw new Error("Use positional ? or ?NNN parameters. Named parameters are not supported.");i++}n+=t.slice(a,i)}if(o!==0)throw new Error("Unbalanced query parentheses.");return{sourceSql:t,sql:`SELECT * FROM ( ${t} ) LIMIT ${Ie+1}`,metadataSql:`SELECT * FROM ( ${n} -) LIMIT 0`,parameterCount:r}}function ys(e,t){return{sql:`SELECT sqlite_explorer_query_plan(${Array(t.length+1).fill("?").join(", ")}) AS plan`,params:[e,...t]}}function hs(e){if(typeof e!="string"||e.length>Rr)throw new Error("SQLite returned an invalid query plan.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>Ie+1||t.some(n=>!Array.isArray(n)||n.length!==4||n.slice(0,3).some(r=>!Number.isSafeInteger(r))||typeof n[3]!="string"))throw new Error("SQLite returned an invalid query plan.");return{headers:["id","parent","notused","detail"],rows:t}}function Es(e){if(e.length>ps)throw new Error("Parameters exceed 65,536 characters.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>100)throw new Error("Enter a JSON array of at most 100 values.");for(let n of t){if(n!==null&&typeof n!="string"&&typeof n!="number")throw new Error("Parameters must be null, string, or number.");if(typeof n=="number"&&(!Number.isFinite(n)||Number.isInteger(n)&&!Number.isSafeInteger(n)))throw new Error("Numbers must be finite and integer values must be safe integers. Supply an exact integer as a quoted string and use CAST(? AS INTEGER).")}return t}function ws(e,t){if(t<1||t>fn)throw new Error("Queries support 1 to 128 result columns.");let n=on(e,t,{limit:Ie+1,maxInlineCellBytes:64*1024,maxPageResponseBytes:Rr});return mt(n.sql,n.primaryTransportColumnCount)}function Ss(e,t,n){let r=Qe(t,n);return{headers:e,...un(r.rows,e.length,r.exactIntegerTexts,Rr)}}var Ie,Rr,ps,fn,bs=M(()=>{"use strict";_();ut();dn();pt();yr();Ie=1e3,Rr=4*1024*1024,ps=64*1024,fn=128});function cu(e){return e.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Cs(e,t){let n=cu(t);return new RegExp(`(^|[^A-Za-z0-9_$])${n}($|[^A-Za-z0-9_$])`,"i").test(e)}async function Rs(e,t,n,r){let o=`main.${C(e)}`;for(let i of n??[])await r(`DROP INDEX IF EXISTS main.${C(i)}`);for(let i of t)await r(`ALTER TABLE ${o} DROP COLUMN ${C(i)}`)}var Ts,Cm,Rm,xs=M(()=>{"use strict";_();Et();fr();Y();ut();Ts=` +) LIMIT 0`,parameterCount:r}}function ys(e,t){return{sql:`SELECT sqlite_explorer_query_plan(${Array(t.length+1).fill("?").join(", ")}) AS plan`,params:[e,...t]}}function hs(e){if(typeof e!="string"||e.length>xr)throw new Error("SQLite returned an invalid query plan.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>Ie+1||t.some(n=>!Array.isArray(n)||n.length!==4||n.slice(0,3).some(r=>!Number.isSafeInteger(r))||typeof n[3]!="string"))throw new Error("SQLite returned an invalid query plan.");return{headers:["id","parent","notused","detail"],rows:t}}function Es(e){if(e.length>ps)throw new Error("Parameters exceed 65,536 characters.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>100)throw new Error("Enter a JSON array of at most 100 values.");for(let n of t){if(n!==null&&typeof n!="string"&&typeof n!="number")throw new Error("Parameters must be null, string, or number.");if(typeof n=="number"&&(!Number.isFinite(n)||Number.isInteger(n)&&!Number.isSafeInteger(n)))throw new Error("Numbers must be finite and integer values must be safe integers. Supply an exact integer as a quoted string and use CAST(? AS INTEGER).")}return t}function ws(e,t){if(t<1||t>mn)throw new Error("Queries support 1 to 128 result columns.");let n=on(e,t,{limit:Ie+1,maxInlineCellBytes:64*1024,maxPageResponseBytes:xr});return mt(n.sql,n.primaryTransportColumnCount)}function Ss(e,t,n){let r=Qe(t,n);return{headers:e,...dn(r.rows,e.length,r.exactIntegerTexts,xr)}}var Ie,xr,ps,mn,bs=M(()=>{"use strict";A();ut();fn();pt();hr();Ie=1e3,xr=4*1024*1024,ps=64*1024,mn=128});function cu(e){return e.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Cs(e,t){let n=cu(t);return new RegExp(`(^|[^A-Za-z0-9_$])${n}($|[^A-Za-z0-9_$])`,"i").test(e)}async function Rs(e,t,n,r){let o=`main.${C(e)}`;for(let i of n??[])await r(`DROP INDEX IF EXISTS main.${C(i)}`);for(let i of t)await r(`ALTER TABLE ${o} DROP COLUMN ${C(i)}`)}var Ts,Cm,Rm,xs=M(()=>{"use strict";A();Et();mr();Y();ut();Ts=` SELECT type, name, sql FROM main.sqlite_schema WHERE type IN ('view', 'trigger') AND sql IS NOT NULL -ORDER BY type, name`;Cm=2*1024*1024,Rm=64*1024});function Ae(e){let t=e==null?"":String(e);return t.trim()?t:void 0}var xr=M(()=>{"use strict";_()});function gn(e,t,n="set"){if(n==="json_patch")return{value:e,operation:"json_patch"};if(typeof e!="string"||typeof t!="string"||!(e.startsWith("{")||e.startsWith("["))||!(t.startsWith("{")||t.startsWith("[")))return{value:e,operation:"set"};try{let r=JSON.parse(t),o=JSON.parse(e);if(!r||typeof r!="object"||Array.isArray(r)||!o||typeof o!="object"||Array.isArray(o))return{value:e,operation:"set"};let i=Ns(r,o);return i===void 0||_s(i)?{value:e,operation:"set"}:{value:JSON.stringify(i),operation:"json_patch"}}catch{return{value:e,operation:"set"}}}function _s(e){return e===null?!0:ee(e)?Object.values(e).some(_s):!1}function Ns(e,t,n=0){if(n>1e3)throw new Error("JSON merge patch depth limit exceeded");if(e===t)return;if(!ee(e)||!ee(t)||Array.isArray(e)||Array.isArray(t))return t;let r=Object.create(null),o=!1;for(let i of Object.keys(t)){let a=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0,s=t[i];if(a===void 0)r[i]=s,o=!0;else if(a!==s){let l=Ns(a,s,n+1);l!==void 0&&(r[i]=l,o=!0)}}for(let i of Object.keys(e))Object.prototype.hasOwnProperty.call(t,i)||(r[i]=null,o=!0);return o?r:void 0}function Os(e,t,n=0){if(n>1e3)throw new Error("JSON apply merge patch depth limit exceeded");if(t===null)return null;if(typeof t!="object"||Array.isArray(t))return t;let r;typeof e!="object"||e===null||Array.isArray(e)?r=Object.create(null):r=Object.assign(Object.create(null),e);let o=t;for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=o[i];a===null?delete r[i]:r[i]=Os(r[i],a,n+1)}return r}function mn(e){if(typeof e=="string")try{let t=JSON.parse(e);return ee(t)?t:void 0}catch{return}}function Ls(e,t,n,r,o){let i=o==="undo"?r:n,a=o==="undo"?n:r,s=()=>As(e,i)?{kind:"write",value:a}:{kind:"conflict"};if(pn(e)||pn(t)||pn(n)||pn(r))return s();let l=mn(e),u=mn(t),c=mn(n),d=mn(r);if(!l||!u||!c||!d)return s();if(!$s(l,o==="undo"?d:c,u,c,0))return{kind:"conflict"};if(As(e,i))return{kind:"write",value:a};let m=o==="undo"?Ar(l,u,c,0):Os(l,u,0);return{kind:"write",value:JSON.stringify(m)}}function $s(e,t,n,r,o){if(o>1e3)throw new Error("JSON history replay depth limit exceeded");for(let i of Object.keys(n)){let a=n[i],s=Object.prototype.hasOwnProperty.call(e,i),l=Object.prototype.hasOwnProperty.call(t,i),u=Object.prototype.hasOwnProperty.call(r,i),c=s?e[i]:void 0,d=l?t[i]:void 0,f=u?r[i]:void 0;if(ee(a)){if(!u||!ee(f)){if(!Is(s,c,l,d,o+1))return!1;continue}if(!s||!ee(c)||!l||!ee(d)||!$s(c,d,a,f,o+1))return!1;continue}if(!Is(s,c,l,d,o+1))return!1}return!0}function Is(e,t,n,r,o){return e===n&&(!e||Ir(t,r,o))}function Ir(e,t,n){if(n>1e3)throw new Error("JSON history replay depth limit exceeded");if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((i,a)=>Ir(i,t[a],n+1));if(!ee(e)||!ee(t))return!1;let r=Object.keys(e),o=Object.keys(t);return r.length!==o.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&Ir(e[i],t[i],n+1))}function As(e,t){return e instanceof Uint8Array||t instanceof Uint8Array?!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:e.length===t.length&&e.every((n,r)=>n===t[r]):Object.is(e,t)}function Ar(e,t,n,r){if(r>1e3)throw new Error("JSON undo restore depth limit exceeded");let o=Object.assign(Object.create(null),e);for(let i of Object.keys(t)){let a=t[i],s=Object.prototype.hasOwnProperty.call(n,i),l=s?n[i]:void 0;if(ee(a))if(s&&ee(l))if(Object.prototype.hasOwnProperty.call(o,i)&&ee(o[i])){let u=o[i];o[i]=Ar(u,a,l,r+1)}else o[i]=l;else if(s)o[i]=l;else{let u=Object.prototype.hasOwnProperty.call(o,i)&&ee(o[i])?o[i]:Object.create(null),c=Ar(u,a,Object.create(null),r+1);Object.keys(c).length===0?delete o[i]:o[i]=c}else s?o[i]=l:delete o[i]}return o}function pn(e){if(typeof e!="string")return!1;let n=e.replace(/"(?:\\.|[^"\\])*"/g,'""').match(/-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g);return n?n.some(r=>{let o=Number(r);return!Number.isFinite(o)||JSON.stringify(o)!==r}):!1}function ee(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var vs=M(()=>{"use strict";_()});function se(e){let t=C(e);return`typeof(${t}), CASE WHEN typeof(${t}) = 'text' THEN CAST(${t} AS BLOB) ELSE ${t} END`}function mu(e,t,n){if(!t)throw new Error(`SQLite text encoding is required for ${n}`);try{return{value:ge(t).decode(e)}}catch{return{value:"",rawTextBytes:e}}}function K(e,t,n,r={}){if(typeof e!="string"||!uu.has(e))throw new Error(`SQLite returned an invalid storage class for ${n}`);let o=e;if(o!=="text"&&r.rawTextBytes!==void 0)throw new Error(`SQLite returned raw TEXT bytes for non-TEXT ${n}`);if(o==="text"){if(t instanceof Uint8Array)return{storageClass:o,...mu(t,r.textEncoding,n)};if(typeof t!="string")throw new Error(`SQLite returned an invalid text value for ${n}`);if(r.rawTextBytes!==void 0&&!(r.rawTextBytes instanceof Uint8Array))throw new Error(`SQLite returned invalid raw TEXT bytes for ${n}`);return{storageClass:o,value:t,...r.rawTextBytes instanceof Uint8Array?{rawTextBytes:r.rawTextBytes}:{}}}if(!(o==="null"?t===null:o==="integer"?typeof t=="bigint"||typeof t=="number"&&Number.isInteger(t):o==="real"?typeof t=="number":t instanceof Uint8Array))throw new Error(`SQLite returned an invalid ${o} value for ${n}`);return{storageClass:o,value:t}}function Rt(e){if(!e||typeof e!="object")throw new Ct;K(e.storageClass,e.value,"cell history",{rawTextBytes:e.rawTextBytes})}function _r(e,t){if(e.storageClass!==t.storageClass)return!1;if(e.storageClass==="text"){let o=e.rawTextBytes,i=t.rawTextBytes;if(o||i)return!o||!i?!1:o.length===i.length&&o.every((a,s)=>a===i[s])}let n=e.value,r=t.value;return e.storageClass==="integer"&&typeof n!=typeof r?typeof n=="number"&&Number.isSafeInteger(n)&&typeof r=="bigint"?BigInt(n)===r:typeof r=="number"&&Number.isSafeInteger(r)&&typeof n=="bigint"?n===BigInt(r):!1:n instanceof Uint8Array||r instanceof Uint8Array?!(n instanceof Uint8Array)||!(r instanceof Uint8Array)?!1:n.length===r.length&&n.every((o,i)=>o===r[i]):Object.is(n,r)}function yn(e,t=()=>"?"){switch(Rt(e),e.storageClass){case"null":return{sql:"NULL",params:[]};case"integer":return{sql:t(e.value),params:[e.value]};case"real":return{sql:"CAST(? AS REAL)",params:[e.value]};case"text":return{sql:e.rawTextBytes?"CAST(substr(?, 1) AS TEXT)":"CAST(? AS TEXT)",params:[e.rawTextBytes??e.value]};case"blob":return{sql:"?",params:[e.value]}}}function hn(e,t,n=()=>"?"){Rt(t);let r=C(e);switch(t.storageClass){case"null":return{sql:`typeof(${r}) = 'null'`,params:[]};case"integer":{let o=n(t.value);return{sql:`typeof(${r}) = 'integer' AND ${r} IS ${o}`,params:[t.value]}}case"real":return{sql:`typeof(${r}) = 'real' AND ${r} IS CAST(? AS REAL)`,params:[t.value]};case"text":return{sql:`typeof(${r}) = 'text' AND CAST(${r} AS BLOB) = CAST(? AS BLOB)`,params:[t.rawTextBytes??t.value]};case"blob":return{sql:`typeof(${r}) = 'blob' AND ${r} IS ?`,params:[t.value]}}}var uu,du,fu,fe,Ct,Nr=M(()=>{"use strict";_();Y();Ft();uu=new Set(["null","integer","real","text","blob"]),du="Cell changed outside SQLite Explorer history; undo/redo was not applied.",fu="This edit predates guarded cell history and cannot be replayed safely. Save or reload the database.",fe=class extends Error{code="SQLITE_EXPLORER_CELL_HISTORY_CONFLICT";constructor(t,n){let r=n.length===1?`${t}.${n[0]}`:`${n.length} cells in ${t}`;super(`${r}: ${du}`),this.name="CellHistoryConflictError"}},Ct=class extends Error{code="SQLITE_EXPLORER_LEGACY_CELL_HISTORY";constructor(){super(fu),this.name="LegacyCellHistoryError"}}});function xt(e){if(!Array.isArray(e.storageClasses))throw new J;let t=new Set;return e.storageClasses.map(n=>{let r=typeof n?.column=="string"?Yt(n.column):void 0;if(!n||typeof n.column!="string"||r===void 0||t.has(r)||!Object.prototype.hasOwnProperty.call(e.row,n.column))throw new J;t.add(r);let o=e.row[n.column],i=n.storageClass==="text"&&o instanceof Uint8Array?o:void 0;return{column:n.column,state:K(n.storageClass,i?"":o,`row history column ${n.column}`,{rawTextBytes:i})}})}function Or(e,t=()=>"?"){let n=xt(e).map(({column:r,state:o})=>hn(r,o,t));return{sql:n.length>0?n.map(r=>`(${r.sql})`).join(" AND "):"1",params:n.flatMap(r=>r.params)}}function ks(e,t=()=>"?"){return xt(e).map(({column:n,state:r})=>({column:n,write:yn(r,t)}))}var pu,gu,_e,J,Ps=M(()=>{"use strict";_();Nr();pt();pu="Row changed outside SQLite Explorer history; undo/redo was not applied.",gu="This row edit predates guarded row history and cannot be replayed safely. Save or reload the database.",_e=class extends Error{code="SQLITE_EXPLORER_ROW_HISTORY_CONFLICT";constructor(t){super(`${t}: ${pu}`),this.name="RowHistoryConflictError"}},J=class extends Error{code="SQLITE_EXPLORER_LEGACY_ROW_HISTORY";constructor(){super(gu),this.name="LegacyRowHistoryError"}}});function It(e){let t=new Set,n=[e],r=0;for(;n.length>0;){let o=n.pop();if(o!=null){if(typeof o=="boolean")r+=4;else if(typeof o=="number"||typeof o=="bigint")r+=8;else if(typeof o=="string")r+=o.length*2;else if(o instanceof Uint8Array)r+=o.byteLength;else if(typeof o=="object"){if(t.has(o))continue;if(t.add(o),r+=8,Array.isArray(o))for(let i of o)n.push(i);else for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r+=i.length*2,n.push(o[i]))}}}return r}var En=M(()=>{"use strict";_();Pt()});function Ds(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error(`SQLite returned an unsafe ${t} during delete undo preflight`);return Number(n)}function Bs(e,t){return[...e]}function Ms(e,t,n){return{sql:`SELECT COUNT(*), COALESCE(SUM(${t.map(o=>{let i=C(o);return`CASE typeof(${i}) WHEN 'text' THEN 2 * octet_length(${i}) WHEN 'blob' THEN octet_length(${i}) WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 0 END`}).join(" + ")||"0"}), 0) FROM ${L(e)} WHERE ${n.sql}`,params:n.params}}function Us(e){if(!e||e.length<2)throw new Error("SQLite omitted delete undo preflight metadata");return{rowCount:Ds(e[0],"row count"),valueBytes:Ds(e[1],"value byte count")}}function qs(e){if(!Number.isSafeInteger(e.maxSnapshotBytes)||e.maxSnapshotBytes<0)throw new Error("Delete undo snapshot budget must be a non-negative safe integer");if(e.rowCount!==e.rowIds.length)throw new Error(`Cannot delete from ${e.table}: one or more row identities no longer exist`);let n=[...new Set(e.insertableColumns)].reduce((a,s)=>a+s.length*2,0),r=e.rowIds.reduce((a,s)=>a+It(s),0),o=e.rowCount*e.insertableColumns.reduce((a,s)=>a+s.length*2+hu,0),i=e.valueBytes+r+e.rowCount*(yu+n)+o;if(!Number.isSafeInteger(i)||i>e.maxSnapshotBytes){let a=e.operation??"Delete";throw new Error(`${a} undo snapshot exceeds the ${e.maxSnapshotBytes}-byte memory budget; ${a.toLowerCase()} fewer rows or increase sqliteExplorer.maxUndoMemory.`)}}var yu,hu,Vs=M(()=>{"use strict";_();En();Y();yu=32,hu=48});function vr(e){return e.orderBy?.toLowerCase()==="rowid"&&e.columns?.[0]?.toLowerCase()==="rowid"&&!e.columns.slice(1).some(t=>t.toLowerCase()==="rowid")}function kr(e,t){let n=(t.filters??[]).flatMap(l=>{let u=Ae(l.value);return u===void 0?[]:[[l.column,u]]}),r=Ae(t.globalFilter)??null,o=r===null?null:t.globalFilterColumns??t.columns??null,i=typeof t.orderBy=="string"&&t.orderBy!==""?t.orderBy:null,a=i!==null&&t.orderDir==="DESC"?"DESC":"ASC",s=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)?t.limit:null;return JSON.stringify([Sn,e,i,a,s,n,r,o])}function Pr(e,t){if(!t||e.orderByColumns?.length)return;let n=t.kind==="rowid"?["rowid"]:t.columns.map(i=>i.identifier);if(n.length===0)return;let r=typeof e.orderBy=="string"&&e.orderBy!==""?e.orderBy:void 0;if(r===void 0)return{keyColumns:n,nullableSortKey:!1,direction:"ASC"};let o=e.orderDir==="DESC"?"DESC":"ASC";return vr(e)?{keyColumns:n,nullableSortKey:!1,direction:o}:n.includes(r)?{keyColumns:[r,...n.filter(i=>i!==r)],nullableSortKey:!1,direction:o}:{keyColumns:[r,...n],nullableSortKey:!0,direction:o}}function Fs(e,t){if(!(!e||t))return{orderByColumns:e.keyColumns,orderDir:e.direction}}function wu(e){return e===null?["null"]:Zt(e)}function Su(e){return Array.isArray(e)&&e.length===1&&e[0]==="null"?{value:null,storageClass:"null"}:{value:Qi(e),storageClass:e[0]}}function bu(e,t){if(t.length===0)throw new Error("Keyset anchor requires at least one key value");let n={v:Sn,t:e,k:t.map(wu)};return wn+encodeURIComponent(JSON.stringify(n))}function Tu(e){if(e.length>$r)throw new Error(`Keyset anchor exceeds the ${$r}-byte limit`)}function Cu(e){if(typeof e!="string"||!e.startsWith(wn))throw new Error("Invalid keyset anchor");Tu(e);let t;try{t=JSON.parse(decodeURIComponent(e.slice(wn.length)))}catch{throw new Error("Invalid keyset anchor encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Sn||typeof t.t!="string"||!Array.isArray(t.k))throw new Error("Invalid keyset anchor payload");let n=t.k;if(n.length===0)throw new Error("Keyset anchor has no key values");let r,o;try{let a=n.map(Su);r=a.map(s=>s.value),o=a.map(s=>s.storageClass)}catch(a){throw new Error(`Invalid keyset anchor value: ${a instanceof Error?a.message:String(a)}`)}if(wn+encodeURIComponent(JSON.stringify({v:Sn,t:t.t,k:n}))!==e)throw new Error("Keyset anchor is not canonical");return{tag:t.t,values:r,valueClasses:o}}function Ws(e,t,n){let r=t.keyset;if(!r||typeof r!="object"||Array.isArray(r)||!Eu.includes(r.mode))return;let o=Pr(t,n);if(!o)return;let i=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)&&t.limit>0?t.limit:void 0;if(i===void 0)return;if(r.mode==="first")return{...o,mode:"first",limit:i};if(r.mode==="last"){let l=r.lastPageRowCount??i;return typeof l!="number"||!Number.isSafeInteger(l)||l<1||l>i?void 0:{...o,mode:"last",limit:l}}if(r.anchor===void 0)return;let a=Cu(r.anchor);if(a.tag!==kr(e,t)||a.values.length!==o.keyColumns.length)return;let s=o.nullableSortKey?1:0;if(a.values.some((l,u)=>l===null&&u>=s))throw new Error("Keyset anchor has NULL in an identity slot");return{...o,mode:r.mode,values:a.values,valueClasses:a.valueClasses,limit:i}}function Lr(e,t,n){return e.length===1?`${e[0]} ${t} ${n[0]}`:`(${e.join(", ")}) ${t} (${n.join(", ")})`}function Ru(e){let t=e.values,r=e.mode==="before"?e.direction==="ASC"?"DESC":"ASC":e.direction,o=(r==="ASC"?">":"<")+(e.mode==="atOrAfter"?"=":""),i=e.keyColumns.map(C),a=e.keyColumns.map((f,m)=>e.valueClasses?.[m]==="integer"?"CAST(? AS INTEGER)":"?");if(!e.nullableSortKey)return{sql:Lr(i,o,a),params:t};let s=i[0],l=i.slice(1),u=t[0],c=t.slice(1);if(u===null){let f=Lr(l,o,a.slice(1));return r==="ASC"?{sql:`((${s} IS NULL AND ${f}) OR ${s} IS NOT NULL)`,params:c}:{sql:`(${s} IS NULL AND ${f})`,params:c}}let d=Lr(i,o,a);return r==="ASC"?{sql:d,params:t}:{sql:`(${d} OR ${s} IS NULL)`,params:t}}function js(e){let{plan:t}=e,n=t.mode==="before"||t.mode==="last",r=n?t.direction==="ASC"?"DESC":"ASC":t.direction,o=[...e.whereClauses],i=[...e.filterParams];if(t.mode!=="first"&&t.mode!=="last"){let u=Ru(t);o.push(u.sql),i.push(...u.params)}let a=t.keyColumns.map(C),s=u=>a.map(c=>`${c} ${u}`).join(", "),l=`SELECT ${e.selectListSql} FROM ${e.escapedTable}`;return o.length>0&&(l+=` WHERE ${o.join(" AND ")}`),l+=` ORDER BY ${s(r)} LIMIT ${t.limit}`,n&&(l=`SELECT * FROM (${l}) ORDER BY ${s(t.direction)}`),{sql:l,params:i}}function Hs(e){if(e.rows.length===0)return;let t=e.key.keyColumns.map(i=>e.projectionColumns.indexOf(i));if(t.some(i=>i<0))return;let n=i=>{if(e.excludedRowIndices?.has(i))return;let a=e.rows[i],s=[];for(let u=0;u{"use strict";_();Y();xr();Et();wn="ksa:",Sn=1,$r=128*1024,Eu=["first","after","atOrAfter","before","last"]});function xu(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<1)throw new Error("Table page limit must be a positive safe integer");return Math.min(e,1e5)}function Iu(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<0)throw new Error("Table page offset must be a non-negative safe integer");return e}function Ks(e,t=5e3){return{...e,limit:xu(e.limit??t),offset:Iu(e.offset??0)}}var zs=M(()=>{"use strict";_()});function Gs(e){if(!e||typeof e!="object")throw new Error("Cell read target is required");if(typeof e.table!="string"||e.table.length===0)throw new Error("Cell read table must be a non-empty string");if(typeof e.column!="string"||e.column.length===0)throw new Error("Cell read column must be a non-empty string")}function Ys(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error("Cell read byte offset must be a non-negative safe integer");if(!Number.isSafeInteger(t)||t<1||t>Xs)throw new Error(`Cell read chunk size must be an integer from 1 through ${Xs}`)}function ke(e){let t=String(e).toLowerCase().replace(/[_\s-]/g,"");if(t==="utf8")return"utf-8";if(t==="utf16le")return"utf-16le";if(t==="utf16be")return"utf-16be";throw new Error(`Unsupported SQLite text encoding: ${String(e)}`)}function Js(e,t,n){if(e.length!==1)throw new Error(e.length===0?`Cell ${n.table}.${n.column} no longer exists`:`Cell ${n.table}.${n.column} matched more than one row`);let r=e[0][0];if(typeof r!="string"||!Au.has(r))throw new Error(`SQLite returned an invalid storage class for ${n.table}.${n.column}`);let o=e[0][1],i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i)||Number(i)<0)throw new Error(`SQLite returned an unsafe byte length for ${n.table}.${n.column}`);return{storageClass:r,byteLength:Number(i),...r==="text"?{textEncoding:t}:{}}}function Mr(e,t){return Number.isFinite(e)&&Number(e)>=1?Math.floor(Number(e)):t}var Xs,Dr,Br,Au,Zs=M(()=>{"use strict";_();Y();Xs=1024*1024,Dr=3e4,Br=5*6e4,Au=new Set(["null","integer","real","text","blob"])});var Xe,bn,Tn=M(()=>{"use strict";_();dn();Pt();Xe=be,bn=ue});function _u(e){let t=0;for(let n=0;n=55296&&r<=56319){let o=e.charCodeAt(n+1);o>=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function Ye(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);let n=typeof e=="string"?"text":e instanceof Uint8Array?"blob":void 0;if(!n)return;let r=typeof e=="string"?_u(e):e instanceof Uint8Array?e.byteLength:0;if(r>t)throw new Vr(n,r,t)}function na(e){let t=e??ta;if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);return t}function Je(e,t){let n=na(t);for(let r of e)Ye(r,n);return n}function ra(e,t){let n=na(t);if(!e||e.storageClass!=="text"&&e.storageClass!=="blob"||!Number.isSafeInteger(e.byteLength)||e.byteLength<=n)throw new Error("Guarded oversized-cell replacement requires exact TEXT/BLOB metadata above the edit limit");return n}function Nu(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="CellEditPolicyError"||t.code!==Ur||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"CellEditPolicyError",code:Ur,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function Ou(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="OversizedCellReplacementRequiredError"||t.code!==qr||typeof t.table!="string"||typeof t.column!="string"||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"OversizedCellReplacementRequiredError",code:qr,table:t.table,column:t.column,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function oa(e){return Nu(e)??Ou(e)}var Ur,qr,ea,ta,Vr,Ge,Fr=M(()=>{"use strict";_();Tn();Ur="SQLITE_EXPLORER_CELL_EDIT_VALUE_TOO_LARGE",qr="SQLITE_EXPLORER_OVERSIZED_CELL_REPLACEMENT_REQUIRED",ea="Oversized cell metadata changed before the confirmed replacement was applied",ta=Xe,Vr=class extends Error{constructor(n,r,o,i=`New ${n.toUpperCase()} cell value is ${r} bytes and exceeds the ${o}-byte edit limit.`){super(i);this.storageClass=n;this.actualBytes=r;this.limitBytes=o}storageClass;actualBytes;limitBytes;name="CellEditPolicyError";code=Ur},Ge=class extends Error{constructor(n,r,o,i,a,s=`Existing ${o.toUpperCase()} cell ${n}.${r} is ${i} bytes. Use the explicitly confirmed oversized-cell replacement path.`){super(s);this.table=n;this.column=r;this.storageClass=o;this.actualBytes=i;this.limitBytes=a}table;column;storageClass;actualBytes;limitBytes;name="OversizedCellReplacementRequiredError";code=qr}});var dp,At,ia=M(()=>{"use strict";_();Tn();dp=1024*1024*1024,At=2145386496});function Wr(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:Lu}function jr(e){return e.storage==="paged"&&!e.filtered&&e.authorityConfirmedRowIdTable&&e.pagedFileSizeBytes>e.exactCountMaxFileBytes}function la(e){let t=L(e);return`SELECT (SELECT CAST(min(rowid) AS TEXT) FROM ${t}), (SELECT CAST(max(rowid) AS TEXT) FROM ${t})`}function ca(e){return`SELECT COUNT(*) FROM (SELECT 1 FROM ${L(e)} LIMIT ?)`}function ua(e,t){if(!(typeof e!="number"||!Number.isSafeInteger(e)||e<0||e>Ze+1))return e<=Ze?{count:e,isExact:!0}:{count:Hr(t,e),isExact:!1}}function Hr(e,t=Ze+1){return(!Number.isSafeInteger(t)||t<0)&&(t=Ze+1),!Number.isSafeInteger(e)||eBigInt(Number.MAX_SAFE_INTEGER)))return Number(i)}var Lu,Ze,aa,fa=M(()=>{"use strict";_();Y();Lu=64*1024*1024,Ze=1e4,aa=`SELECT 1 FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? AND "type" IN ('table', 'shadow') AND "wr" = 1 LIMIT 1`});var ma=M(()=>{"use strict";_()});var pa=M(()=>{"use strict";_()});var xp,Qr,Kr,zr,ga=M(()=>{"use strict";_();pa();En();Fr();xp=64*1024*1024,Qr=1e5,Kr=256,zr=2e6});var af={};function Pu(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function Du(e){let t=String(e);return t.toLowerCase()==="null"?"NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function V(e){return wa++,C(`${e}_${wa}`)}function nt(e){let t=`/*sqlite_explorer_boundary_${crypto.randomUUID().replace(/-/g,"")}*/`,n=h.prepare(`${e} -${t}`);if(!n.getSQL().trimEnd().endsWith(t))throw n.free(),new Error("Exactly one SQL statement is required");return n}function x(e){nt(e).free();let n=h.prepare(e);try{n.run()}finally{n.free()}}function P(e){return e?.map(t=>{if(Oa(t))return Bu(t);if(typeof t!="bigint")return t;let n=Number(t);return Number.isSafeInteger(n)?n:t.toString()})}function Oa(e){return typeof e=="string"&&e.includes("\0")}function ne(e){return typeof e=="bigint"&&!Number.isSafeInteger(Number(e))?"CAST(? AS INTEGER)":Oa(e)?"CAST(? AS TEXT)":"?"}function Bu(e){let t=ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]);if(t==="utf-8")return new TextEncoder().encode(e);let n=t==="utf-16le",r=new Uint8Array(e.length*2);for(let o=0;o>>8,r[o*2+1]=n?i>>>8:i&255}return r}function ot(e){nt(e).free()}function rt(e,t){if(t!==void 0&&!(typeof SharedArrayBuffer=="function"&&t instanceof Int32Array&&t.length>0&&t.buffer instanceof SharedArrayBuffer))throw new Error("Invalid query cancellation flag");let n=()=>t!==void 0&&Atomics.load(t,0)!==0,r=()=>{let a=new Error("Query execution cancelled");throw a.name="AbortError",a};n()&&r();let o=Date.now()+Yr,i;h.progress_handler($u,()=>n()?(i="cancelled",!0):Date.now(){let n=nt(e),r=n.getColumnNames();n.free();let o=mt(e,r.length),i=nt(o.sql),a=[];try{for(;i.step();)a.push(i.get(null,{useBigInt:!0}));let{rows:s,exactIntegerTexts:l}=Qe(a,o.valueColumnCount);return{headers:r,rows:s,exactIntegerTexts:l}}finally{i.free()}},t)}function La(e,t){if(t!=null)return t;let n=e??[];return n[0]==="rowid"?n.slice(1):n}function W(e,t){try{x(`ROLLBACK TO ${e}`),x(`RELEASE ${e}`)}catch(n){console.warn(`Failed to rollback savepoint (${t}):`,Te(n))}}function Mu(e){for(Pe.add(e);Pe.size>64;)Pe.delete(Pe.values().next().value)}function $a(e){x(`ROLLBACK TO ${e}`),x(`RELEASE ${e}`)}function On(e){let t=tt;if(!t||e!==void 0&&t.sessionId!==e)return!1;tt=null,Mu(t.sessionId),t.expiryTimer!==void 0&&clearTimeout(t.expiryTimer);try{x(`RELEASE ${t.savepointName}`)}catch(n){try{$a(t.savepointName)}catch(r){let o=[n,r];try{h?.close()}catch(i){o.push(i)}finally{h=null}throw new AggregateError(o,"Cell read snapshot cleanup failed; the owning web database was closed")}}return!0}function va(e){e.expiryTimer!==void 0&&clearTimeout(e.expiryTimer),e.expiresAt=Math.min(e.absoluteExpiresAt,e.lastAccessAt+lo),e.expiryTimer=setTimeout(()=>{try{On(e.sessionId)}catch(t){console.error("[Worker] Failed to expire cell read session:",Te(t))}},Math.max(1,e.expiresAt-Date.now()))}async function ka(e){Gs(e);let t=await le(e.table),n=Q(e.rowId,t);return{table:e.table,column:e.column,predicateSql:n.sql,predicateParams:n.params}}function Uu(e){let t=C(e.column);return{sql:`SELECT typeof(${t}), CASE WHEN ${t} IS NULL THEN 0 ELSE length(CAST(${t} AS BLOB)) END FROM ${L(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function qu(e){return{sql:`SELECT substr(CAST(${C(e.column)} AS BLOB), ? + 1, ?) FROM ${L(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function Be(){return ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0])}function Pa(e,t){let n=Uu(t),r=h.exec(n.sql,P(n.params),{useBigInt:!0});return Js(r[0]?.values??[],Be(),e)}async function An(e){if(!h)throw new Error("No database initialized");let t=await ka(e);return Pa(e,t)}async function Vu(e){if(!h)throw new Error("No database initialized");if(tt)throw new Error("At most one web cell read session may be open");let t=await ka(e),n=V("sp_cell_read");x(`SAVEPOINT ${n}`);try{let r=Pa(e,t),o=Date.now(),i={sessionId:crypto.randomUUID(),target:e,sqlTarget:t,metadata:r,savepointName:n,lastAccessAt:o,absoluteExpiresAt:o+Na,expiresAt:o+lo,expiryTimer:void 0};return tt=i,va(i),{sessionId:i.sessionId,metadata:r,expiresAt:i.expiresAt}}catch(r){try{$a(n)}catch(o){let i=[r,o];try{h?.close()}catch(a){i.push(a)}finally{h=null}throw new AggregateError(i,"Cell read session open failed; the owning web database was closed")}throw r}}async function Fu(e,t,n){Ys(t,n);let r=tt;if(!r||r.sessionId!==e)throw new Error(Pe.has(e)?`Cell read session ${e} is closed or expired`:`Unknown cell read session: ${String(e)}`);if(Date.now()>=r.expiresAt)throw On(e),new Error(`Cell read session ${e} is closed or expired`);let o=qu(r.sqlTarget),a=h.exec(o.sql,P([t,n,...o.params]))[0]?.values??[];if(a.length!==1)throw new Error(a.length===0?`Cell ${r.target.table}.${r.target.column} no longer exists in its snapshot`:`Cell ${r.target.table}.${r.target.column} matched more than one row`);let s=a[0][0],l=s===null?new Uint8Array(0):s;if(!(l instanceof Uint8Array))throw new Error(`SQLite returned a non-BLOB chunk for ${r.target.table}.${r.target.column}`);return r.lastAccessAt=Date.now(),va(r),{byteOffset:t,bytes:l.slice(),done:t+l.byteLength>=r.metadata.byteLength}}async function Wu(e){if(typeof e!="string"||e.length===0)throw new Error("Cell read session id is required");if(!On(e)&&!Pe.has(e))throw new Error(`Unknown cell read session: ${e}`)}function ju(e){if(tt&&!["readCellChunk","closeCellReadSession","initializeDatabase"].includes(e))throw new Error("A cell read snapshot is active; close it before another database operation")}function Hu(e){if(e===void 0)return At;if(!Number.isSafeInteger(e)||e<1)throw new Error("pagedExportMaxBytes must be a positive safe integer");if(e>At)throw new Error(`pagedExportMaxBytes must not exceed ${At} bytes`);return e}function Te(e){let t="Unknown error";try{t=e&&typeof e=="object"&&typeof e.message=="string"&&e.message?e.message:String(e)}catch{}return t||(t="Unknown error"),t.length<=ya?t:t.slice(0,ya)+`... [truncated from ${t.length} characters]`}async function Qu(e,t){if(On(),h&&(h.close(),h=null),Yr=Number.isFinite(t.queryTimeout)&&t.queryTimeout>0?t.queryTimeout:Ia,ae=t.readOnlyMode===!0,Cn=null,Nt="memory",_t=0,xn=Hu(t.pagedExportMaxBytes),_a=Wr(t.pagedExactCountMaxFileBytes),lo=Mr(t.cellReadSessionIdleTimeoutMs,Dr),Na=Mr(t.cellReadSessionAbsoluteTimeoutMs,Br),Pe.clear(),{SQL:Ea,db:h}=await B(t),Aa=Ea.queryPlanReaderActive===!0,h.run("PRAGMA foreign_keys = ON"),!ae){let n=zu();n&&(ae=!0,Cn=n)}return ae&&(typeof h.enforceReadOnly=="function"?h.enforceReadOnly():h.run("PRAGMA query_only = ON")),{operations:{},isReadOnly:ae,storage:Nt,...Cn?{readOnlyReason:Cn}:{}}}function Sa(e){return e?.errno===Ku||/read[\s-]?only/i.test(Te(e))?"This database cannot be written by this process, so it is open read-only (SQLite: attempt to write a readonly database).":null}function zu(){let e=Number(h.exec("PRAGMA user_version")[0]?.values?.[0]?.[0])|0;try{h.run("BEGIN")}catch(n){return Sa(n)}let t=null;try{h.run(`PRAGMA user_version = ${e}`)}catch(n){t=Sa(n)}finally{h.run("ROLLBACK")}return t}async function Xu(e,t=[],n){if(!h)throw new Error("No database initialized");if(ae)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");try{return rt(()=>h.exec(e,t),n).map(o=>({headers:o.columns,rows:o.values}))}catch(r){throw r}}async function Gu(e,t="[]",n){if(!h)throw new Error("No database initialized");if(typeof e!="string"||typeof t!="string")throw new TypeError("SQL and parameter JSON must be strings");let r=gs(e),o=Es(t);if(o.length!==r.parameterCount)throw new Error(`Expected ${r.parameterCount} positional parameters.`);let i=`query_columns_${crypto.randomUUID().replace(/-/g,"")}`,a=Number(h.exec("PRAGMA query_only")[0]?.values[0]?.[0])===1,s=!1,l;try{a&&x("PRAGMA query_only = OFF"),l=rt(()=>{x(`CREATE TEMP VIEW "${i}" AS ${r.metadataSql}`),s=!0;let u=(h.exec("SELECT substr(name, 1, 4097) FROM pragma.pragma_table_info(?, 'temp') ORDER BY cid LIMIT ?",[i,fn+1])[0]?.values??[]).map(c=>String(c[0]));if(!u.length||u.length>fn)throw new Error("Queries support 1 to 128 result columns.");if(u.some(c=>c.length>4096))throw new Error("Result column labels must be at most 4096 characters.");return u},n)}finally{try{s&&(a&&x("PRAGMA query_only = OFF"),x(`DROP VIEW temp."${i}"`))}finally{if(a)try{x("PRAGMA query_only = ON")}catch(u){let c=h;throw h=null,c.close(),u}}}return rt(()=>{let u=ws(r.sql,l.length),c=nt(u.sql);try{c.bind(o);let d=[];for(;d.length<=Ie&&c.step();)d.push(c.get(null,{useBigInt:!0}));return Ss(l,d,u.valueColumnCount)}finally{c.free()}},n)}function Yu(e){if(e==null)return 5e3;let t=Number(e);return Number.isFinite(t)?Math.min(5e4,Math.max(1,Math.trunc(t))):5e3}function Ju(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.trunc(t)):1/0}function Zu(e){if(e==null)return[];if(!Array.isArray(e))throw new Error("Console parameters must be a JSON array.");if(e.length>ba)throw new Error(`Use at most ${ba} positional parameters.`);for(let t of e)if(t!==null){if(typeof t=="string"){if(t.includes("\0"))throw new Error("Console parameters must not contain NUL bytes; SQLite would bind the text truncated at the first one.");continue}if(!(typeof t=="number"&&Number.isFinite(t)))throw new Error("Console parameters must be null, string, or finite number values.")}return e}function Da(e,t){try{e.bind(t)}catch(n){throw new Error(`cannot bind ${t.length} positional parameter${t.length===1?"":"s"}: `+Te(n))}}function Ua(e){let t=0;for(;;){let n=t;for(;tIe}}function od(e,t){let n=ys(e,t),r=h.prepare(n.sql);try{if(r.bind(n.params),!r.step())throw new Error(Ma);return Va(hs(r.get()[0]).rows)}finally{r.free()}}function id(e,t){if(nd.test(Ua(e)))throw new Error("PRAGMA statements have no query plan (and some pragmas take effect while being compiled, so they are not even prepared here). Use Run.");let n=nt(`EXPLAIN QUERY PLAN ${e}`);try{t.length>0&&Da(n,t);let r=[];for(;r.length<=Ie&&n.step();){let o=n.get();if(o.length!==Ba.length||typeof o[3]!="string")throw new Error(Ma);if(new TextEncoder().encode(o[3]).byteLength>td)throw new Error("Query plan detail exceeds the 65,536-byte limit.");r.push(o)}return Va(r)}finally{n.free()}}function sd(e,t){if(typeof e!="string"||e.trim()==="")throw new Error("Enter one SQL statement to explain.");if(new TextEncoder().encode(e).byteLength>ed)throw new Error("Query plan SQL exceeds 262,144 UTF-8 bytes.");let n=Ee(e);for(let r of n.matchAll(qa))if(r[0]===";")throw new Error("Exactly one SQL statement is required");return Aa&&rd(n)?od(n,t):id(n,t)}async function ad(e,t={},n){if(!h)throw new Error("No database initialized");if(ae)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");if(typeof e=="string"&&e.includes("\0"))throw new Error("SQL contains a NUL byte; SQLite stops compiling at the first NUL, so the rest of the script would be silently skipped");let r=Zu(t.params),o=Yu(t.maxRows),i=Ju(t.maxStatements),a=Date.now(),s=h.exec("SELECT total_changes()")[0].values[0][0],l=h.exec("PRAGMA schema_version")[0].values[0][0],u=()=>{let E=h.exec("SELECT total_changes()")[0].values[0][0],y=h.exec("PRAGMA schema_version")[0].values[0][0];return{mutated:E-s>0||y!==l,changes:E-s,durationMs:Date.now()-a}},c=()=>{try{return u()}catch{return{mutated:!0,changes:0,durationMs:Date.now()-a}}};if(t.explain===!0)try{return{results:[rt(()=>sd(e,r),n)],explain:!0,statementsSkipped:!1,...u()}}catch(E){return{results:[],error:Te(E),explain:!0,multiStatement:!1,statementsSkipped:!1,...c()}}let d=0,f=!1,m;try{m=rt(()=>{let E=[],y=h.iterateStatements(e),g=!1;for(;;){if(d>=i){g=!0;break}d++;let S=y.next();if(S.done)break;let w=S.value;try{r.length>0&&Da(w,r);let R=w.getColumnNames(),I=!1,T=!1;if(R.length===0&&(T=w.step(),I=!0,T&&(R=w.getColumnNames())),R.length===0){if(!I||T)for(;w.step(););}else{let A=[],$=!1;for(I||(T=w.step());T;)A.length1,statementsSkipped:f,...g}}return{results:m,statementsSkipped:f,...u()}}async function ld(e){if(!h)throw new Error("No database initialized");let t=Nt==="paged"&&!ae;if(Nt==="paged"&&ae)throw new Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");let n=()=>new Error(`Cannot download this page-on-demand database: the merged image would exceed the ${xn}-byte browser memory limit. Saving materializes the complete database in memory; use the desktop extension or reduce the database size.`);if(t&&_t>xn)throw n();let r;try{r=h.export()}catch(o){let i=Te(o);throw t&&/transaction is open|while a transaction/i.test(i)?new Error("Cannot save while a database transaction is open; retry after the edit completes.",{cause:o}):o}if(t&&r.byteLength>xn)throw n();return r}async function cd(e,t,n,r,o={}){if(!h)throw new Error("No database initialized");let i=e?.table;if(!i)throw new Error("No table specified");let{format:a="csv",header:s=!0,includeTableName:l=!0,rowIds:u=null,maxExportBytes:c}=o;if(!["csv","json","sql","excel"].includes(a))throw new Error(`Unsupported export format: ${a}`);let d=Number.isSafeInteger(c)&&c>0?Math.min(c,ku):so,f=[{sql:"",params:[]}];if(u&&u.length>0){let O=await le(i);if(u.some(ie)&&!u.every(ie))throw new Error("Cannot mix rowid and primary-key row identities");let D=new Set,p=[];for(let b of u){let N=O.kind==="rowid"?H(b):b,k=String(N);D.has(k)||(D.add(k),p.push(N))}f=ze(p,O)}let m=t&&t.length>0?t:ud(i);if(m.length>In)throw new Error(`Cannot export more than ${In} columns`);let E=a!=="csv"&&a!=="excel",y=m.map((O,D)=>{let p=C(O),b=`typeof(${p})`,N=`octet_length(${p})`;return`CASE ${b} WHEN 'null' THEN 'n:0:' WHEN 'integer' THEN 'i:0:' || CAST(${p} AS TEXT) WHEN 'real' THEN 'r:0:' || printf('%!.17g', ${p}) WHEN 'text' THEN 't:' || CAST(${N} AS TEXT) || ':' || hex(CAST(${p} AS BLOB)) WHEN 'blob' THEN 'b:' || CAST(${N} AS TEXT) || ':' || `+(E?`hex(${p}) `:"'' ")+`END AS ${C(`__export_cell_${D}`)}`}).join(", "),g=V("sp_export_rows");x(`SAVEPOINT ${g}`);let S=[];try{let O=1024;for(let D of f){let p=D.sql?` WHERE ${D.sql}`:"";if(O+=pd(i,m,p,D.params,a,d),!Number.isSafeInteger(O)||O>d)throw co(d)}for(let D of f){let p=D.sql?` WHERE ${D.sql}`:"",b=h.exec(`SELECT ${y} FROM ${L(i)}${p}`,D.params);b.length>0&&S.push(...b[0].values)}x(`RELEASE ${g}`)}catch(O){throw W(g,"exportTable"),O}let w=m,R=ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),I=S.map((O,D)=>{if(O.length!==m.length)throw new Error(`SQLite returned ${O.length} packed export cells for row ${D}; expected ${m.length}`);return m.map((p,b)=>fd(i,p,O[b],E,R))}),T=new Zr(d),A="text/plain",$=`${i}.${a}`;switch(a){case"csv":Ta(w,I,s,T),A="text/csv";break;case"json":gd(w,I,T),A="application/json";break;case"sql":yd(i,w,I,l,T),A="text/sql";break;case"excel":Ta(w,I,s,T),A="text/csv",$=`${i}.csv`;break}return{contentChunks:T.finish(),filename:$,mimeType:A}}function co(e){if(e===so)return new Error(`Web demo exports are limited to ${vu} because the worker RPC cannot stream downloads; use the desktop extension for larger exports.`);let t=e/(1024*1024);return new Error(`Export exceeds the ${t} MiB (${e} bytes) limit; the worker assembles the whole file in memory, so larger exports need the native engine.`)}function ud(e){let t=h.prepare(`SELECT * FROM ${L(e)} LIMIT 0`);try{return t.getColumnNames()}finally{t.free()}}function dd(e,t,n){if(e.length!==t*2||/[^0-9a-f]/i.test(e))throw new Error(`SQLite returned invalid packed bytes for ${n}`);let r=new Uint8Array(t);for(let o=0;o1;){let n=[];for(let r=0;r{let f=C(d),m=`length(${f})`,E=o==="csv"||o==="excel"?"64":o==="json"?`((${m} + 2) / 3) * 4 + 64`:`${m} * 2 + 64`;return`CASE typeof(${f}) WHEN 'text' THEN length(CAST(${f} AS BLOB)) * 6 + 64 WHEN 'blob' THEN ${E} ELSE 64 END`})),l=h.exec(`SELECT COUNT(*), COALESCE(SUM(${a}), 0) FROM ${L(e)}${n}`,r)[0]?.values?.[0]??[0,0],u=Number(l[0]),c=Number(l[1])+u*128;if(!Number.isSafeInteger(c)||c<0)throw co(i);return c}function Jr(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function Ta(e,t,n,r){let o=!1,i=a=>{o&&r.append(` -`),r.append(a.join(",")),o=!0};n&&i(e.map(a=>gr({storageClass:"text",value:a})));for(let a of t)i(a.map(gr))}function gd(e,t,n){n.append("[");for(let r=0;r{"use strict";A()});function yn(e,t,n="set"){if(n==="json_patch")return{value:e,operation:"json_patch"};if(typeof e!="string"||typeof t!="string"||!(e.startsWith("{")||e.startsWith("["))||!(t.startsWith("{")||t.startsWith("[")))return{value:e,operation:"set"};try{let r=JSON.parse(t),o=JSON.parse(e);if(!r||typeof r!="object"||Array.isArray(r)||!o||typeof o!="object"||Array.isArray(o))return{value:e,operation:"set"};let i=Ns(r,o);return i===void 0||_s(i)?{value:e,operation:"set"}:{value:JSON.stringify(i),operation:"json_patch"}}catch{return{value:e,operation:"set"}}}function _s(e){return e===null?!0:ee(e)?Object.values(e).some(_s):!1}function Ns(e,t,n=0){if(n>1e3)throw new Error("JSON merge patch depth limit exceeded");if(e===t)return;if(!ee(e)||!ee(t)||Array.isArray(e)||Array.isArray(t))return t;let r=Object.create(null),o=!1;for(let i of Object.keys(t)){let a=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0,s=t[i];if(a===void 0)r[i]=s,o=!0;else if(a!==s){let l=Ns(a,s,n+1);l!==void 0&&(r[i]=l,o=!0)}}for(let i of Object.keys(e))Object.prototype.hasOwnProperty.call(t,i)||(r[i]=null,o=!0);return o?r:void 0}function Os(e,t,n=0){if(n>1e3)throw new Error("JSON apply merge patch depth limit exceeded");if(t===null)return null;if(typeof t!="object"||Array.isArray(t))return t;let r;typeof e!="object"||e===null||Array.isArray(e)?r=Object.create(null):r=Object.assign(Object.create(null),e);let o=t;for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=o[i];a===null?delete r[i]:r[i]=Os(r[i],a,n+1)}return r}function pn(e){if(typeof e=="string")try{let t=JSON.parse(e);return ee(t)?t:void 0}catch{return}}function Ls(e,t,n,r,o){let i=o==="undo"?r:n,a=o==="undo"?n:r,s=()=>As(e,i)?{kind:"write",value:a}:{kind:"conflict"};if(gn(e)||gn(t)||gn(n)||gn(r))return s();let l=pn(e),u=pn(t),c=pn(n),d=pn(r);if(!l||!u||!c||!d)return s();if(!$s(l,o==="undo"?d:c,u,c,0))return{kind:"conflict"};if(As(e,i))return{kind:"write",value:a};let m=o==="undo"?_r(l,u,c,0):Os(l,u,0);return{kind:"write",value:JSON.stringify(m)}}function $s(e,t,n,r,o){if(o>1e3)throw new Error("JSON history replay depth limit exceeded");for(let i of Object.keys(n)){let a=n[i],s=Object.prototype.hasOwnProperty.call(e,i),l=Object.prototype.hasOwnProperty.call(t,i),u=Object.prototype.hasOwnProperty.call(r,i),c=s?e[i]:void 0,d=l?t[i]:void 0,f=u?r[i]:void 0;if(ee(a)){if(!u||!ee(f)){if(!Is(s,c,l,d,o+1))return!1;continue}if(!s||!ee(c)||!l||!ee(d)||!$s(c,d,a,f,o+1))return!1;continue}if(!Is(s,c,l,d,o+1))return!1}return!0}function Is(e,t,n,r,o){return e===n&&(!e||Ar(t,r,o))}function Ar(e,t,n){if(n>1e3)throw new Error("JSON history replay depth limit exceeded");if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((i,a)=>Ar(i,t[a],n+1));if(!ee(e)||!ee(t))return!1;let r=Object.keys(e),o=Object.keys(t);return r.length!==o.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&Ar(e[i],t[i],n+1))}function As(e,t){return e instanceof Uint8Array||t instanceof Uint8Array?!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:e.length===t.length&&e.every((n,r)=>n===t[r]):Object.is(e,t)}function _r(e,t,n,r){if(r>1e3)throw new Error("JSON undo restore depth limit exceeded");let o=Object.assign(Object.create(null),e);for(let i of Object.keys(t)){let a=t[i],s=Object.prototype.hasOwnProperty.call(n,i),l=s?n[i]:void 0;if(ee(a))if(s&&ee(l))if(Object.prototype.hasOwnProperty.call(o,i)&&ee(o[i])){let u=o[i];o[i]=_r(u,a,l,r+1)}else o[i]=l;else if(s)o[i]=l;else{let u=Object.prototype.hasOwnProperty.call(o,i)&&ee(o[i])?o[i]:Object.create(null),c=_r(u,a,Object.create(null),r+1);Object.keys(c).length===0?delete o[i]:o[i]=c}else s?o[i]=l:delete o[i]}return o}function gn(e){if(typeof e!="string")return!1;let n=e.replace(/"(?:\\.|[^"\\])*"/g,'""').match(/-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g);return n?n.some(r=>{let o=Number(r);return!Number.isFinite(o)||JSON.stringify(o)!==r}):!1}function ee(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var vs=M(()=>{"use strict";A()});function se(e){let t=C(e);return`typeof(${t}), CASE WHEN typeof(${t}) = 'text' THEN CAST(${t} AS BLOB) ELSE ${t} END`}function mu(e,t,n){if(!t)throw new Error(`SQLite text encoding is required for ${n}`);try{return{value:ge(t).decode(e)}}catch{return{value:"",rawTextBytes:e}}}function K(e,t,n,r={}){if(typeof e!="string"||!uu.has(e))throw new Error(`SQLite returned an invalid storage class for ${n}`);let o=e;if(o!=="text"&&r.rawTextBytes!==void 0)throw new Error(`SQLite returned raw TEXT bytes for non-TEXT ${n}`);if(o==="text"){if(t instanceof Uint8Array)return{storageClass:o,...mu(t,r.textEncoding,n)};if(typeof t!="string")throw new Error(`SQLite returned an invalid text value for ${n}`);if(r.rawTextBytes!==void 0&&!(r.rawTextBytes instanceof Uint8Array))throw new Error(`SQLite returned invalid raw TEXT bytes for ${n}`);return{storageClass:o,value:t,...r.rawTextBytes instanceof Uint8Array?{rawTextBytes:r.rawTextBytes}:{}}}if(!(o==="null"?t===null:o==="integer"?typeof t=="bigint"||typeof t=="number"&&Number.isInteger(t):o==="real"?typeof t=="number":t instanceof Uint8Array))throw new Error(`SQLite returned an invalid ${o} value for ${n}`);return{storageClass:o,value:t}}function Rt(e){if(!e||typeof e!="object")throw new Ct;K(e.storageClass,e.value,"cell history",{rawTextBytes:e.rawTextBytes})}function Nr(e,t){if(e.storageClass!==t.storageClass)return!1;if(e.storageClass==="text"){let o=e.rawTextBytes,i=t.rawTextBytes;if(o||i)return!o||!i?!1:o.length===i.length&&o.every((a,s)=>a===i[s])}let n=e.value,r=t.value;return e.storageClass==="integer"&&typeof n!=typeof r?typeof n=="number"&&Number.isSafeInteger(n)&&typeof r=="bigint"?BigInt(n)===r:typeof r=="number"&&Number.isSafeInteger(r)&&typeof n=="bigint"?n===BigInt(r):!1:n instanceof Uint8Array||r instanceof Uint8Array?!(n instanceof Uint8Array)||!(r instanceof Uint8Array)?!1:n.length===r.length&&n.every((o,i)=>o===r[i]):Object.is(n,r)}function hn(e,t=()=>"?"){switch(Rt(e),e.storageClass){case"null":return{sql:"NULL",params:[]};case"integer":return{sql:t(e.value),params:[e.value]};case"real":return{sql:"CAST(? AS REAL)",params:[e.value]};case"text":return{sql:e.rawTextBytes?"CAST(substr(?, 1) AS TEXT)":"CAST(? AS TEXT)",params:[e.rawTextBytes??e.value]};case"blob":return{sql:"?",params:[e.value]}}}function En(e,t,n=()=>"?"){Rt(t);let r=C(e);switch(t.storageClass){case"null":return{sql:`typeof(${r}) = 'null'`,params:[]};case"integer":{let o=n(t.value);return{sql:`typeof(${r}) = 'integer' AND ${r} IS ${o}`,params:[t.value]}}case"real":return{sql:`typeof(${r}) = 'real' AND ${r} IS CAST(? AS REAL)`,params:[t.value]};case"text":return{sql:`typeof(${r}) = 'text' AND CAST(${r} AS BLOB) = CAST(? AS BLOB)`,params:[t.rawTextBytes??t.value]};case"blob":return{sql:`typeof(${r}) = 'blob' AND ${r} IS ?`,params:[t.value]}}}var uu,du,fu,fe,Ct,Or=M(()=>{"use strict";A();Y();Ft();uu=new Set(["null","integer","real","text","blob"]),du="Cell changed outside SQLite Explorer history; undo/redo was not applied.",fu="This edit predates guarded cell history and cannot be replayed safely. Save or reload the database.",fe=class extends Error{code="SQLITE_EXPLORER_CELL_HISTORY_CONFLICT";constructor(t,n){let r=n.length===1?`${t}.${n[0]}`:`${n.length} cells in ${t}`;super(`${r}: ${du}`),this.name="CellHistoryConflictError"}},Ct=class extends Error{code="SQLITE_EXPLORER_LEGACY_CELL_HISTORY";constructor(){super(fu),this.name="LegacyCellHistoryError"}}});function xt(e){if(!Array.isArray(e.storageClasses))throw new J;let t=new Set;return e.storageClasses.map(n=>{let r=typeof n?.column=="string"?Yt(n.column):void 0;if(!n||typeof n.column!="string"||r===void 0||t.has(r)||!Object.prototype.hasOwnProperty.call(e.row,n.column))throw new J;t.add(r);let o=e.row[n.column],i=n.storageClass==="text"&&o instanceof Uint8Array?o:void 0;return{column:n.column,state:K(n.storageClass,i?"":o,`row history column ${n.column}`,{rawTextBytes:i})}})}function Lr(e,t=()=>"?"){let n=xt(e).map(({column:r,state:o})=>En(r,o,t));return{sql:n.length>0?n.map(r=>`(${r.sql})`).join(" AND "):"1",params:n.flatMap(r=>r.params)}}function ks(e,t=()=>"?"){return xt(e).map(({column:n,state:r})=>({column:n,write:hn(r,t)}))}var pu,gu,_e,J,Ps=M(()=>{"use strict";A();Or();pt();pu="Row changed outside SQLite Explorer history; undo/redo was not applied.",gu="This row edit predates guarded row history and cannot be replayed safely. Save or reload the database.",_e=class extends Error{code="SQLITE_EXPLORER_ROW_HISTORY_CONFLICT";constructor(t){super(`${t}: ${pu}`),this.name="RowHistoryConflictError"}},J=class extends Error{code="SQLITE_EXPLORER_LEGACY_ROW_HISTORY";constructor(){super(gu),this.name="LegacyRowHistoryError"}}});function It(e){let t=new Set,n=[e],r=0;for(;n.length>0;){let o=n.pop();if(o!=null){if(typeof o=="boolean")r+=4;else if(typeof o=="number"||typeof o=="bigint")r+=8;else if(typeof o=="string")r+=o.length*2;else if(o instanceof Uint8Array)r+=o.byteLength;else if(typeof o=="object"){if(t.has(o))continue;if(t.add(o),r+=8,Array.isArray(o))for(let i of o)n.push(i);else for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r+=i.length*2,n.push(o[i]))}}}return r}var wn=M(()=>{"use strict";A();Pt()});function Ds(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error(`SQLite returned an unsafe ${t} during delete undo preflight`);return Number(n)}function Bs(e,t){return[...e]}function Ms(e,t,n){return{sql:`SELECT COUNT(*), COALESCE(SUM(${t.map(o=>{let i=C(o);return`CASE typeof(${i}) WHEN 'text' THEN 2 * octet_length(${i}) WHEN 'blob' THEN octet_length(${i}) WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 0 END`}).join(" + ")||"0"}), 0) FROM ${L(e)} WHERE ${n.sql}`,params:n.params}}function Us(e){if(!e||e.length<2)throw new Error("SQLite omitted delete undo preflight metadata");return{rowCount:Ds(e[0],"row count"),valueBytes:Ds(e[1],"value byte count")}}function qs(e){if(!Number.isSafeInteger(e.maxSnapshotBytes)||e.maxSnapshotBytes<0)throw new Error("Delete undo snapshot budget must be a non-negative safe integer");if(e.rowCount!==e.rowIds.length)throw new Error(`Cannot delete from ${e.table}: one or more row identities no longer exist`);let n=[...new Set(e.insertableColumns)].reduce((a,s)=>a+s.length*2,0),r=e.rowIds.reduce((a,s)=>a+It(s),0),o=e.rowCount*e.insertableColumns.reduce((a,s)=>a+s.length*2+hu,0),i=e.valueBytes+r+e.rowCount*(yu+n)+o;if(!Number.isSafeInteger(i)||i>e.maxSnapshotBytes){let a=e.operation??"Delete";throw new Error(`${a} undo snapshot exceeds the ${e.maxSnapshotBytes}-byte memory budget; ${a.toLowerCase()} fewer rows or increase sqliteExplorer.maxUndoMemory.`)}}var yu,hu,Vs=M(()=>{"use strict";A();wn();Y();yu=32,hu=48});function kr(e){return e.orderBy?.toLowerCase()==="rowid"&&e.columns?.[0]?.toLowerCase()==="rowid"&&!e.columns.slice(1).some(t=>t.toLowerCase()==="rowid")}function Pr(e,t){let n=(t.filters??[]).flatMap(l=>{let u=Ae(l.value);return u===void 0?[]:[[l.column,u]]}),r=Ae(t.globalFilter)??null,o=r===null?null:t.globalFilterColumns??t.columns??null,i=typeof t.orderBy=="string"&&t.orderBy!==""?t.orderBy:null,a=i!==null&&t.orderDir==="DESC"?"DESC":"ASC",s=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)?t.limit:null;return JSON.stringify([bn,e,i,a,s,n,r,o])}function Dr(e,t){if(!t||e.orderByColumns?.length)return;let n=t.kind==="rowid"?["rowid"]:t.columns.map(i=>i.identifier);if(n.length===0)return;let r=typeof e.orderBy=="string"&&e.orderBy!==""?e.orderBy:void 0;if(r===void 0)return{keyColumns:n,nullableSortKey:!1,direction:"ASC"};let o=e.orderDir==="DESC"?"DESC":"ASC";return kr(e)?{keyColumns:n,nullableSortKey:!1,direction:o}:n.includes(r)?{keyColumns:[r,...n.filter(i=>i!==r)],nullableSortKey:!1,direction:o}:{keyColumns:[r,...n],nullableSortKey:!0,direction:o}}function Fs(e,t){if(!(!e||t))return{orderByColumns:e.keyColumns,orderDir:e.direction}}function wu(e){return e===null?["null"]:Zt(e)}function Su(e){return Array.isArray(e)&&e.length===1&&e[0]==="null"?{value:null,storageClass:"null"}:{value:Ki(e),storageClass:e[0]}}function bu(e,t){if(t.length===0)throw new Error("Keyset anchor requires at least one key value");let n={v:bn,t:e,k:t.map(wu)};return Sn+encodeURIComponent(JSON.stringify(n))}function Tu(e){if(e.length>vr)throw new Error(`Keyset anchor exceeds the ${vr}-byte limit`)}function Cu(e){if(typeof e!="string"||!e.startsWith(Sn))throw new Error("Invalid keyset anchor");Tu(e);let t;try{t=JSON.parse(decodeURIComponent(e.slice(Sn.length)))}catch{throw new Error("Invalid keyset anchor encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==bn||typeof t.t!="string"||!Array.isArray(t.k))throw new Error("Invalid keyset anchor payload");let n=t.k;if(n.length===0)throw new Error("Keyset anchor has no key values");let r,o;try{let a=n.map(Su);r=a.map(s=>s.value),o=a.map(s=>s.storageClass)}catch(a){throw new Error(`Invalid keyset anchor value: ${a instanceof Error?a.message:String(a)}`)}if(Sn+encodeURIComponent(JSON.stringify({v:bn,t:t.t,k:n}))!==e)throw new Error("Keyset anchor is not canonical");return{tag:t.t,values:r,valueClasses:o}}function Ws(e,t,n){let r=t.keyset;if(!r||typeof r!="object"||Array.isArray(r)||!Eu.includes(r.mode))return;let o=Dr(t,n);if(!o)return;let i=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)&&t.limit>0?t.limit:void 0;if(i===void 0)return;if(r.mode==="first")return{...o,mode:"first",limit:i};if(r.mode==="last"){let l=r.lastPageRowCount??i;return typeof l!="number"||!Number.isSafeInteger(l)||l<1||l>i?void 0:{...o,mode:"last",limit:l}}if(r.anchor===void 0)return;let a=Cu(r.anchor);if(a.tag!==Pr(e,t)||a.values.length!==o.keyColumns.length)return;let s=o.nullableSortKey?1:0;if(a.values.some((l,u)=>l===null&&u>=s))throw new Error("Keyset anchor has NULL in an identity slot");return{...o,mode:r.mode,values:a.values,valueClasses:a.valueClasses,limit:i}}function $r(e,t,n){return e.length===1?`${e[0]} ${t} ${n[0]}`:`(${e.join(", ")}) ${t} (${n.join(", ")})`}function Ru(e){let t=e.values,r=e.mode==="before"?e.direction==="ASC"?"DESC":"ASC":e.direction,o=(r==="ASC"?">":"<")+(e.mode==="atOrAfter"?"=":""),i=e.keyColumns.map(C),a=e.keyColumns.map((f,m)=>e.valueClasses?.[m]==="integer"?"CAST(? AS INTEGER)":"?");if(!e.nullableSortKey)return{sql:$r(i,o,a),params:t};let s=i[0],l=i.slice(1),u=t[0],c=t.slice(1);if(u===null){let f=$r(l,o,a.slice(1));return r==="ASC"?{sql:`((${s} IS NULL AND ${f}) OR ${s} IS NOT NULL)`,params:c}:{sql:`(${s} IS NULL AND ${f})`,params:c}}let d=$r(i,o,a);return r==="ASC"?{sql:d,params:t}:{sql:`(${d} OR ${s} IS NULL)`,params:t}}function js(e){let{plan:t}=e,n=t.mode==="before"||t.mode==="last",r=n?t.direction==="ASC"?"DESC":"ASC":t.direction,o=[...e.whereClauses],i=[...e.filterParams];if(t.mode!=="first"&&t.mode!=="last"){let u=Ru(t);o.push(u.sql),i.push(...u.params)}let a=t.keyColumns.map(C),s=u=>a.map(c=>`${c} ${u}`).join(", "),l=`SELECT ${e.selectListSql} FROM ${e.escapedTable}`;return o.length>0&&(l+=` WHERE ${o.join(" AND ")}`),l+=` ORDER BY ${s(r)} LIMIT ${t.limit}`,n&&(l=`SELECT * FROM (${l}) ORDER BY ${s(t.direction)}`),{sql:l,params:i}}function Hs(e){if(e.rows.length===0)return;let t=e.key.keyColumns.map(i=>e.projectionColumns.indexOf(i));if(t.some(i=>i<0))return;let n=i=>{if(e.excludedRowIndices?.has(i))return;let a=e.rows[i],s=[];for(let u=0;u{"use strict";A();Y();Ir();Et();Sn="ksa:",bn=1,vr=128*1024,Eu=["first","after","atOrAfter","before","last"]});function xu(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<1)throw new Error("Table page limit must be a positive safe integer");return Math.min(e,1e5)}function Iu(e){if(typeof e!="number"||!Number.isSafeInteger(e)||e<0)throw new Error("Table page offset must be a non-negative safe integer");return e}function Ks(e,t=5e3){return{...e,limit:xu(e.limit??t),offset:Iu(e.offset??0)}}var zs=M(()=>{"use strict";A()});function Gs(e){if(!e||typeof e!="object")throw new Error("Cell read target is required");if(typeof e.table!="string"||e.table.length===0)throw new Error("Cell read table must be a non-empty string");if(typeof e.column!="string"||e.column.length===0)throw new Error("Cell read column must be a non-empty string")}function Ys(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error("Cell read byte offset must be a non-negative safe integer");if(!Number.isSafeInteger(t)||t<1||t>Xs)throw new Error(`Cell read chunk size must be an integer from 1 through ${Xs}`)}function ke(e){let t=String(e).toLowerCase().replace(/[_\s-]/g,"");if(t==="utf8")return"utf-8";if(t==="utf16le")return"utf-16le";if(t==="utf16be")return"utf-16be";throw new Error(`Unsupported SQLite text encoding: ${String(e)}`)}function Js(e,t,n){if(e.length!==1)throw new Error(e.length===0?`Cell ${n.table}.${n.column} no longer exists`:`Cell ${n.table}.${n.column} matched more than one row`);let r=e[0][0];if(typeof r!="string"||!Au.has(r))throw new Error(`SQLite returned an invalid storage class for ${n.table}.${n.column}`);let o=e[0][1],i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i)||Number(i)<0)throw new Error(`SQLite returned an unsafe byte length for ${n.table}.${n.column}`);return{storageClass:r,byteLength:Number(i),...r==="text"?{textEncoding:t}:{}}}function Ur(e,t){return Number.isFinite(e)&&Number(e)>=1?Math.floor(Number(e)):t}var Xs,Br,Mr,Au,Zs=M(()=>{"use strict";A();Y();Xs=1024*1024,Br=3e4,Mr=5*6e4,Au=new Set(["null","integer","real","text","blob"])});var Xe,Tn,Cn=M(()=>{"use strict";A();fn();Pt();Xe=be,Tn=ue});function _u(e){let t=0;for(let n=0;n=55296&&r<=56319){let o=e.charCodeAt(n+1);o>=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function Ye(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);let n=typeof e=="string"?"text":e instanceof Uint8Array?"blob":void 0;if(!n)return;let r=typeof e=="string"?_u(e):e instanceof Uint8Array?e.byteLength:0;if(r>t)throw new Fr(n,r,t)}function na(e){let t=e??ta;if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);return t}function Je(e,t){let n=na(t);for(let r of e)Ye(r,n);return n}function ra(e,t){let n=na(t);if(!e||e.storageClass!=="text"&&e.storageClass!=="blob"||!Number.isSafeInteger(e.byteLength)||e.byteLength<=n)throw new Error("Guarded oversized-cell replacement requires exact TEXT/BLOB metadata above the edit limit");return n}function Nu(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="CellEditPolicyError"||t.code!==qr||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"CellEditPolicyError",code:qr,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function Ou(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="OversizedCellReplacementRequiredError"||t.code!==Vr||typeof t.table!="string"||typeof t.column!="string"||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"OversizedCellReplacementRequiredError",code:Vr,table:t.table,column:t.column,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function oa(e){return Nu(e)??Ou(e)}var qr,Vr,ea,ta,Fr,Ge,Wr=M(()=>{"use strict";A();Cn();qr="SQLITE_EXPLORER_CELL_EDIT_VALUE_TOO_LARGE",Vr="SQLITE_EXPLORER_OVERSIZED_CELL_REPLACEMENT_REQUIRED",ea="Oversized cell metadata changed before the confirmed replacement was applied",ta=Xe,Fr=class extends Error{constructor(n,r,o,i=`New ${n.toUpperCase()} cell value is ${r} bytes and exceeds the ${o}-byte edit limit.`){super(i);this.storageClass=n;this.actualBytes=r;this.limitBytes=o}storageClass;actualBytes;limitBytes;name="CellEditPolicyError";code=qr},Ge=class extends Error{constructor(n,r,o,i,a,s=`Existing ${o.toUpperCase()} cell ${n}.${r} is ${i} bytes. Use the explicitly confirmed oversized-cell replacement path.`){super(s);this.table=n;this.column=r;this.storageClass=o;this.actualBytes=i;this.limitBytes=a}table;column;storageClass;actualBytes;limitBytes;name="OversizedCellReplacementRequiredError";code=Vr}});var dp,At,ia=M(()=>{"use strict";A();Cn();dp=1024*1024*1024,At=2145386496});function jr(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:Lu}function Hr(e){return e.storage==="paged"&&!e.filtered&&e.authorityConfirmedRowIdTable&&e.pagedFileSizeBytes>e.exactCountMaxFileBytes}function la(e){let t=L(e);return`SELECT (SELECT CAST(min(rowid) AS TEXT) FROM ${t}), (SELECT CAST(max(rowid) AS TEXT) FROM ${t})`}function ca(e){return`SELECT COUNT(*) FROM (SELECT 1 FROM ${L(e)} LIMIT ?)`}function ua(e,t){if(!(typeof e!="number"||!Number.isSafeInteger(e)||e<0||e>Ze+1))return e<=Ze?{count:e,isExact:!0}:{count:Qr(t,e),isExact:!1}}function Qr(e,t=Ze+1){return(!Number.isSafeInteger(t)||t<0)&&(t=Ze+1),!Number.isSafeInteger(e)||eBigInt(Number.MAX_SAFE_INTEGER)))return Number(i)}var Lu,Ze,aa,fa=M(()=>{"use strict";A();Y();Lu=64*1024*1024,Ze=1e4,aa=`SELECT 1 FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? AND "type" IN ('table', 'shadow') AND "wr" = 1 LIMIT 1`});var ma=M(()=>{"use strict";A()});var pa=M(()=>{"use strict";A()});var xp,Kr,zr,Xr,ga=M(()=>{"use strict";A();pa();wn();Wr();xp=64*1024*1024,Kr=1e5,zr=256,Xr=2e6});var af={};function Pu(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function Du(e){let t=String(e);return t.toLowerCase()==="null"?"NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(t)?t:`'${t.replace(/'/g,"''")}'`}function V(e){return wa++,C(`${e}_${wa}`)}function nt(e){let t=`/*sqlite_explorer_boundary_${crypto.randomUUID().replace(/-/g,"")}*/`,n=h.prepare(`${e} +${t}`);if(!n.getSQL().trimEnd().endsWith(t))throw n.free(),new Error("Exactly one SQL statement is required");return n}function x(e){nt(e).free();let n=h.prepare(e);try{n.run()}finally{n.free()}}function P(e){return e?.map(t=>{if(Oa(t))return Bu(t);if(typeof t!="bigint")return t;let n=Number(t);return Number.isSafeInteger(n)?n:t.toString()})}function Oa(e){return typeof e=="string"&&e.includes("\0")}function ne(e){return typeof e=="bigint"&&!Number.isSafeInteger(Number(e))?"CAST(? AS INTEGER)":Oa(e)?"CAST(? AS TEXT)":"?"}function Bu(e){let t=ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]);if(t==="utf-8")return new TextEncoder().encode(e);let n=t==="utf-16le",r=new Uint8Array(e.length*2);for(let o=0;o>>8,r[o*2+1]=n?i>>>8:i&255}return r}function ot(e){nt(e).free()}function rt(e,t){if(t!==void 0&&!(typeof SharedArrayBuffer=="function"&&t instanceof Int32Array&&t.length>0&&t.buffer instanceof SharedArrayBuffer))throw new Error("Invalid query cancellation flag");let n=()=>t!==void 0&&Atomics.load(t,0)!==0,r=()=>{let a=new Error("Query execution cancelled");throw a.name="AbortError",a};n()&&r();let o=Date.now()+Jr,i;h.progress_handler($u,()=>n()?(i="cancelled",!0):Date.now(){let n=nt(e),r=n.getColumnNames();n.free();let o=mt(e,r.length),i=nt(o.sql),a=[];try{for(;i.step();)a.push(i.get(null,{useBigInt:!0}));let{rows:s,exactIntegerTexts:l}=Qe(a,o.valueColumnCount);return{headers:r,rows:s,exactIntegerTexts:l}}finally{i.free()}},t)}function La(e,t){if(t!=null)return t;let n=e??[];return n[0]==="rowid"?n.slice(1):n}function W(e,t){try{x(`ROLLBACK TO ${e}`),x(`RELEASE ${e}`)}catch(n){console.warn(`Failed to rollback savepoint (${t}):`,Te(n))}}function Mu(e){for(Pe.add(e);Pe.size>64;)Pe.delete(Pe.values().next().value)}function $a(e){x(`ROLLBACK TO ${e}`),x(`RELEASE ${e}`)}function Ln(e){let t=tt;if(!t||e!==void 0&&t.sessionId!==e)return!1;tt=null,Mu(t.sessionId),t.expiryTimer!==void 0&&clearTimeout(t.expiryTimer);try{x(`RELEASE ${t.savepointName}`)}catch(n){try{$a(t.savepointName)}catch(r){let o=[n,r];try{h?.close()}catch(i){o.push(i)}finally{h=null}throw new AggregateError(o,"Cell read snapshot cleanup failed; the owning web database was closed")}}return!0}function va(e){e.expiryTimer!==void 0&&clearTimeout(e.expiryTimer),e.expiresAt=Math.min(e.absoluteExpiresAt,e.lastAccessAt+co),e.expiryTimer=setTimeout(()=>{try{Ln(e.sessionId)}catch(t){console.error("[Worker] Failed to expire cell read session:",Te(t))}},Math.max(1,e.expiresAt-Date.now()))}async function ka(e){Gs(e);let t=await le(e.table),n=Q(e.rowId,t);return{table:e.table,column:e.column,predicateSql:n.sql,predicateParams:n.params}}function Uu(e){let t=C(e.column);return{sql:`SELECT typeof(${t}), CASE WHEN ${t} IS NULL THEN 0 ELSE length(CAST(${t} AS BLOB)) END FROM ${L(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function qu(e){return{sql:`SELECT substr(CAST(${C(e.column)} AS BLOB), ? + 1, ?) FROM ${L(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function Be(){return ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0])}function Pa(e,t){let n=Uu(t),r=h.exec(n.sql,P(n.params),{useBigInt:!0});return Js(r[0]?.values??[],Be(),e)}async function _n(e){if(!h)throw new Error("No database initialized");let t=await ka(e);return Pa(e,t)}async function Vu(e){if(!h)throw new Error("No database initialized");if(tt)throw new Error("At most one web cell read session may be open");let t=await ka(e),n=V("sp_cell_read");x(`SAVEPOINT ${n}`);try{let r=Pa(e,t),o=Date.now(),i={sessionId:crypto.randomUUID(),target:e,sqlTarget:t,metadata:r,savepointName:n,lastAccessAt:o,absoluteExpiresAt:o+Na,expiresAt:o+co,expiryTimer:void 0};return tt=i,va(i),{sessionId:i.sessionId,metadata:r,expiresAt:i.expiresAt}}catch(r){try{$a(n)}catch(o){let i=[r,o];try{h?.close()}catch(a){i.push(a)}finally{h=null}throw new AggregateError(i,"Cell read session open failed; the owning web database was closed")}throw r}}async function Fu(e,t,n){Ys(t,n);let r=tt;if(!r||r.sessionId!==e)throw new Error(Pe.has(e)?`Cell read session ${e} is closed or expired`:`Unknown cell read session: ${String(e)}`);if(Date.now()>=r.expiresAt)throw Ln(e),new Error(`Cell read session ${e} is closed or expired`);let o=qu(r.sqlTarget),a=h.exec(o.sql,P([t,n,...o.params]))[0]?.values??[];if(a.length!==1)throw new Error(a.length===0?`Cell ${r.target.table}.${r.target.column} no longer exists in its snapshot`:`Cell ${r.target.table}.${r.target.column} matched more than one row`);let s=a[0][0],l=s===null?new Uint8Array(0):s;if(!(l instanceof Uint8Array))throw new Error(`SQLite returned a non-BLOB chunk for ${r.target.table}.${r.target.column}`);return r.lastAccessAt=Date.now(),va(r),{byteOffset:t,bytes:l.slice(),done:t+l.byteLength>=r.metadata.byteLength}}async function Wu(e){if(typeof e!="string"||e.length===0)throw new Error("Cell read session id is required");if(!Ln(e)&&!Pe.has(e))throw new Error(`Unknown cell read session: ${e}`)}function ju(e){if(tt&&!["readCellChunk","closeCellReadSession","initializeDatabase"].includes(e))throw new Error("A cell read snapshot is active; close it before another database operation")}function Hu(e){if(e===void 0)return At;if(!Number.isSafeInteger(e)||e<1)throw new Error("pagedExportMaxBytes must be a positive safe integer");if(e>At)throw new Error(`pagedExportMaxBytes must not exceed ${At} bytes`);return e}function Te(e){let t="Unknown error";try{t=e&&typeof e=="object"&&typeof e.message=="string"&&e.message?e.message:String(e)}catch{}return t||(t="Unknown error"),t.length<=ya?t:t.slice(0,ya)+`... [truncated from ${t.length} characters]`}async function Qu(e,t){if(Ln(),h&&(h.close(),h=null),Jr=Number.isFinite(t.queryTimeout)&&t.queryTimeout>0?t.queryTimeout:Ia,ae=t.readOnlyMode===!0,Rn=null,Nt="memory",_t=0,In=Hu(t.pagedExportMaxBytes),_a=jr(t.pagedExactCountMaxFileBytes),co=Ur(t.cellReadSessionIdleTimeoutMs,Br),Na=Ur(t.cellReadSessionAbsoluteTimeoutMs,Mr),Pe.clear(),{SQL:Ea,db:h}=await B(t),Aa=Ea.queryPlanReaderActive===!0,h.run("PRAGMA foreign_keys = ON"),!ae){let n=zu();n&&(ae=!0,Rn=n)}return ae&&(typeof h.enforceReadOnly=="function"?h.enforceReadOnly():h.run("PRAGMA query_only = ON")),{operations:{},isReadOnly:ae,storage:Nt,...Rn?{readOnlyReason:Rn}:{}}}function Sa(e){return e?.errno===Ku||/read[\s-]?only/i.test(Te(e))?"This database cannot be written by this process, so it is open read-only (SQLite: attempt to write a readonly database).":null}function zu(){let e=Number(h.exec("PRAGMA user_version")[0]?.values?.[0]?.[0])|0;try{h.run("BEGIN")}catch(n){return Sa(n)}let t=null;try{h.run(`PRAGMA user_version = ${e}`)}catch(n){t=Sa(n)}finally{h.run("ROLLBACK")}return t}async function Xu(e,t=[],n){if(!h)throw new Error("No database initialized");if(ae)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");try{return rt(()=>h.exec(e,t),n).map(o=>({headers:o.columns,rows:o.values}))}catch(r){throw r}}async function Gu(e,t="[]",n){if(!h)throw new Error("No database initialized");if(typeof e!="string"||typeof t!="string")throw new TypeError("SQL and parameter JSON must be strings");let r=gs(e),o=Es(t);if(o.length!==r.parameterCount)throw new Error(`Expected ${r.parameterCount} positional parameters.`);let i=`query_columns_${crypto.randomUUID().replace(/-/g,"")}`,a=Number(h.exec("PRAGMA query_only")[0]?.values[0]?.[0])===1,s=!1,l;try{a&&x("PRAGMA query_only = OFF"),l=rt(()=>{x(`CREATE TEMP VIEW "${i}" AS ${r.metadataSql}`),s=!0;let u=(h.exec("SELECT substr(name, 1, 4097) FROM pragma.pragma_table_info(?, 'temp') ORDER BY cid LIMIT ?",[i,mn+1])[0]?.values??[]).map(c=>String(c[0]));if(!u.length||u.length>mn)throw new Error("Queries support 1 to 128 result columns.");if(u.some(c=>c.length>4096))throw new Error("Result column labels must be at most 4096 characters.");return u},n)}finally{try{s&&(a&&x("PRAGMA query_only = OFF"),x(`DROP VIEW temp."${i}"`))}finally{if(a)try{x("PRAGMA query_only = ON")}catch(u){let c=h;throw h=null,c.close(),u}}}return rt(()=>{let u=ws(r.sql,l.length),c=nt(u.sql);try{c.bind(o);let d=[];for(;d.length<=Ie&&c.step();)d.push(c.get(null,{useBigInt:!0}));return Ss(l,d,u.valueColumnCount)}finally{c.free()}},n)}function Yu(e){if(e==null)return 5e3;let t=Number(e);return Number.isFinite(t)?Math.min(5e4,Math.max(1,Math.trunc(t))):5e3}function Ju(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.trunc(t)):1/0}function Zu(e){if(e==null)return[];if(!Array.isArray(e))throw new Error("Console parameters must be a JSON array.");if(e.length>ba)throw new Error(`Use at most ${ba} positional parameters.`);for(let t of e)if(t!==null){if(typeof t=="string"){if(t.includes("\0"))throw new Error("Console parameters must not contain NUL bytes; SQLite would bind the text truncated at the first one.");continue}if(!(typeof t=="number"&&Number.isFinite(t)))throw new Error("Console parameters must be null, string, or finite number values.")}return e}function Da(e,t){try{e.bind(t)}catch(n){throw new Error(`cannot bind ${t.length} positional parameter${t.length===1?"":"s"}: `+Te(n))}}function Ua(e){let t=0;for(;;){let n=t;for(;tIe}}function od(e,t){let n=ys(e,t),r=h.prepare(n.sql);try{if(r.bind(n.params),!r.step())throw new Error(Ma);return Va(hs(r.get()[0]).rows)}finally{r.free()}}function id(e,t){if(nd.test(Ua(e)))throw new Error("PRAGMA statements have no query plan (and some pragmas take effect while being compiled, so they are not even prepared here). Use Run.");let n=nt(`EXPLAIN QUERY PLAN ${e}`);try{t.length>0&&Da(n,t);let r=[];for(;r.length<=Ie&&n.step();){let o=n.get();if(o.length!==Ba.length||typeof o[3]!="string")throw new Error(Ma);if(new TextEncoder().encode(o[3]).byteLength>td)throw new Error("Query plan detail exceeds the 65,536-byte limit.");r.push(o)}return Va(r)}finally{n.free()}}function sd(e,t){if(typeof e!="string"||e.trim()==="")throw new Error("Enter one SQL statement to explain.");if(new TextEncoder().encode(e).byteLength>ed)throw new Error("Query plan SQL exceeds 262,144 UTF-8 bytes.");let n=Ee(e);for(let r of n.matchAll(qa))if(r[0]===";")throw new Error("Exactly one SQL statement is required");return Aa&&rd(n)?od(n,t):id(n,t)}async function ad(e,t={},n){if(!h)throw new Error("No database initialized");if(ae)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");if(typeof e=="string"&&e.includes("\0"))throw new Error("SQL contains a NUL byte; SQLite stops compiling at the first NUL, so the rest of the script would be silently skipped");let r=Zu(t.params),o=Yu(t.maxRows),i=Ju(t.maxStatements),a=Date.now(),s=h.exec("SELECT total_changes()")[0].values[0][0],l=h.exec("PRAGMA schema_version")[0].values[0][0],u=()=>{let E=h.exec("SELECT total_changes()")[0].values[0][0],y=h.exec("PRAGMA schema_version")[0].values[0][0];return{mutated:E-s>0||y!==l,changes:E-s,durationMs:Date.now()-a}},c=()=>{try{return u()}catch{return{mutated:!0,changes:0,durationMs:Date.now()-a}}};if(t.explain===!0)try{return{results:[rt(()=>sd(e,r),n)],explain:!0,statementsSkipped:!1,...u()}}catch(E){return{results:[],error:Te(E),explain:!0,multiStatement:!1,statementsSkipped:!1,...c()}}let d=0,f=!1,m;try{m=rt(()=>{let E=[],y=h.iterateStatements(e),g=!1;for(;;){if(d>=i){g=!0;break}d++;let S=y.next();if(S.done)break;let w=S.value;try{r.length>0&&Da(w,r);let R=w.getColumnNames(),I=!1,T=!1;if(R.length===0&&(T=w.step(),I=!0,T&&(R=w.getColumnNames())),R.length===0){if(!I||T)for(;w.step(););}else{let _=[],$=!1;for(I||(T=w.step());T;)_.length1,statementsSkipped:f,...g}}return{results:m,statementsSkipped:f,...u()}}async function ld(e){if(!h)throw new Error("No database initialized");let t=Nt==="paged"&&!ae;if(Nt==="paged"&&ae)throw new Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");let n=()=>new Error(`Cannot download this page-on-demand database: the merged image would exceed the ${In}-byte browser memory limit. Saving materializes the complete database in memory; use the desktop extension or reduce the database size.`);if(t&&_t>In)throw n();let r;try{r=h.export()}catch(o){let i=Te(o);throw t&&/transaction is open|while a transaction/i.test(i)?new Error("Cannot save while a database transaction is open; retry after the edit completes.",{cause:o}):o}if(t&&r.byteLength>In)throw n();return r}async function cd(e,t,n,r,o={}){if(!h)throw new Error("No database initialized");let i=e?.table;if(!i)throw new Error("No table specified");let{format:a="csv",header:s=!0,includeTableName:l=!0,rowIds:u=null,maxExportBytes:c}=o;if(!["csv","json","sql","excel"].includes(a))throw new Error(`Unsupported export format: ${a}`);let d=Number.isSafeInteger(c)&&c>0?Math.min(c,ku):ao,f=[{sql:"",params:[]}];if(u&&u.length>0){let O=await le(i);if(u.some(ie)&&!u.every(ie))throw new Error("Cannot mix rowid and primary-key row identities");let D=new Set,p=[];for(let b of u){let N=O.kind==="rowid"?H(b):b,k=String(N);D.has(k)||(D.add(k),p.push(N))}f=ze(p,O)}let m=t&&t.length>0?t:ud(i);if(m.length>An)throw new Error(`Cannot export more than ${An} columns`);let E=a!=="csv"&&a!=="excel",y=m.map((O,D)=>{let p=C(O),b=`typeof(${p})`,N=`octet_length(${p})`;return`CASE ${b} WHEN 'null' THEN 'n:0:' WHEN 'integer' THEN 'i:0:' || CAST(${p} AS TEXT) WHEN 'real' THEN 'r:0:' || printf('%!.17g', ${p}) WHEN 'text' THEN 't:' || CAST(${N} AS TEXT) || ':' || hex(CAST(${p} AS BLOB)) WHEN 'blob' THEN 'b:' || CAST(${N} AS TEXT) || ':' || `+(E?`hex(${p}) `:"'' ")+`END AS ${C(`__export_cell_${D}`)}`}).join(", "),g=V("sp_export_rows");x(`SAVEPOINT ${g}`);let S=[];try{let O=1024;for(let D of f){let p=D.sql?` WHERE ${D.sql}`:"";if(O+=pd(i,m,p,D.params,a,d),!Number.isSafeInteger(O)||O>d)throw uo(d)}for(let D of f){let p=D.sql?` WHERE ${D.sql}`:"",b=h.exec(`SELECT ${y} FROM ${L(i)}${p}`,D.params);b.length>0&&S.push(...b[0].values)}x(`RELEASE ${g}`)}catch(O){throw W(g,"exportTable"),O}let w=m,R=ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),I=S.map((O,D)=>{if(O.length!==m.length)throw new Error(`SQLite returned ${O.length} packed export cells for row ${D}; expected ${m.length}`);return m.map((p,b)=>fd(i,p,O[b],E,R))}),T=new eo(d),_="text/plain",$=`${i}.${a}`;switch(a){case"csv":Ta(w,I,s,T),_="text/csv";break;case"json":gd(w,I,T),_="application/json";break;case"sql":yd(i,w,I,l,T),_="text/sql";break;case"excel":Ta(w,I,s,T),_="text/csv",$=`${i}.csv`;break}return{contentChunks:T.finish(),filename:$,mimeType:_}}function uo(e){if(e===ao)return new Error(`Web demo exports are limited to ${vu} because the worker RPC cannot stream downloads; use the desktop extension for larger exports.`);let t=e/(1024*1024);return new Error(`Export exceeds the ${t} MiB (${e} bytes) limit; the worker assembles the whole file in memory, so larger exports need the native engine.`)}function ud(e){let t=h.prepare(`SELECT * FROM ${L(e)} LIMIT 0`);try{return t.getColumnNames()}finally{t.free()}}function dd(e,t,n){if(e.length!==t*2||/[^0-9a-f]/i.test(e))throw new Error(`SQLite returned invalid packed bytes for ${n}`);let r=new Uint8Array(t);for(let o=0;o1;){let n=[];for(let r=0;r{let f=C(d),m=`length(${f})`,E=o==="csv"||o==="excel"?"64":o==="json"?`((${m} + 2) / 3) * 4 + 64`:`${m} * 2 + 64`;return`CASE typeof(${f}) WHEN 'text' THEN length(CAST(${f} AS BLOB)) * 6 + 64 WHEN 'blob' THEN ${E} ELSE 64 END`})),l=h.exec(`SELECT COUNT(*), COALESCE(SUM(${a}), 0) FROM ${L(e)}${n}`,r)[0]?.values?.[0]??[0,0],u=Number(l[0]),c=Number(l[1])+u*128;if(!Number.isSafeInteger(c)||c<0)throw uo(i);return c}function Zr(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function Ta(e,t,n,r){let o=!1,i=a=>{o&&r.append(` +`),r.append(a.join(",")),o=!0};n&&i(e.map(a=>yr({storageClass:"text",value:a})));for(let a of t)i(a.map(yr))}function gd(e,t,n){n.append("[");for(let r=0;r{l>0&&n.append(`, -`),n.append(` ${JSON.stringify(s)}: ${Ni(i[s])}`)}),n.append(` +`),n.append(` ${JSON.stringify(s)}: ${Oi(i[s])}`)}),n.append(` }`)}n.append(t.length===0?"]":` -]`)}function yd(e,t,n,r,o){let i=r?C(e):'"table_name"',a=t.map(C).join(", ");n.forEach((s,l)=>{let u=s.map(Oi).join(", ");l>0&&o.append(` -`),o.append(`INSERT INTO ${i} (${a}) VALUES (${u});`)})}async function Fa(e){let t=h.exec(`SELECT "type", "wr" FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? LIMIT 1`,[e]);if((t[0]?.values.length??0)===0)return;let n=Sr(t[0].values[0][0],t[0].values[0][1]);if(!n)return;if(n==="rowid")return{kind:"rowid"};let r=br(await mo(e));if(r.length===0)throw new Error(`WITHOUT ROWID table ${e} has no declared primary key`);return{kind:"primaryKey",columns:r}}async function le(e){let t=await Fa(e);if(!t)throw new Error(`Table not found: ${e}`);if(t.kind==="rowid"&&(h.exec(ft,[e,e])[0]?.values.length??0)!==1)throw new Error(`Table ${e} is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity`);return t}function eo(e){return new Error(`An UPDATE trigger changed or removed the primary-key identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function Ln(e,t,n,r){let i=h.exec(`SELECT ${bt(t)} FROM ${L(e)} WHERE ${n.sql} LIMIT 2`,P(n.params),{useBigInt:!0})[0]?.values??[];if(i.length===0)throw r??new Error(`Updated row in ${e} no longer exists`);if(i.length!==1)throw new Error(`Primary-key identity for ${e} matched more than one row`);return Tt(t,i[0],ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot resolve updated identity in ${e}`)}function uo(e){let t=h.exec(vi,[e]);return Pi(t[0]?.values??[],e)}function hd(e,t,n=!0){let r=[...new Set(t)];if(r.length===0)throw new Error("UPDATE trigger probe requires at least one column");let o=r.map(a=>{let s=C(a);return`${s} = ${s}`}),i=n?"rowid = ?":"0";return`EXPLAIN UPDATE ${L(e)} SET ${o.join(", ")} WHERE ${i}`}function Ed(e,t){return`EXPLAIN ${t.length===0?`INSERT INTO ${L(e)} DEFAULT VALUES`:`INSERT INTO ${L(e)} (${t.map(C).join(", ")}) VALUES (${t.map(()=>"NULL").join(", ")})`}`}function wd(e){return`EXPLAIN DELETE FROM ${L(e)} WHERE 0`}function Ot(e,t,n=!0){let r=h.exec(Vi,P([e]),{useBigInt:!0}),o=Fi(r[0]?.values??[],e),i=h.exec(hd(e,t,n),P(n?[0]:[]),{useBigInt:!0});Wi(e,o,i[0]?.values??[],n?"rowid":"primary-key")}function De(e,t,n=[]){let r=e==="INSERT"?Ed(t,n):wd(t),o=h.exec(r,[],{useBigInt:!0});ji(e,t,o[0]?.values??[])}function fo(e,t,n,r,o){let i=t!==void 0&&r!==void 0&&He(t,r),a=i?C(t):"rowid",s=i?o:n,u=h.exec(`SELECT CAST(rowid AS TEXT) FROM ${L(e)} WHERE ${a} = ? LIMIT 2`,P([s??null]),{useBigInt:!0})[0]?.values??[];if(u.length===0)throw yt(e);if(u.length!==1)throw new Error(`Rowid identity for ${e} matched more than one row`);return H(u[0][0])}function to(e,t){let n=typeof t=="string"?t:JSON.stringify(t),r=h.exec("SELECT json_patch(COALESCE(?, '{}'), ?)",P([e,n]))[0]?.values?.[0]?.[0];if(typeof r!="string")throw new Error("SQLite returned an invalid json_patch result");return r}function Sd(e,t,n,r,o){let i=Be(),a=new Map;for(let l of n){let u=H(l.rowId),c=a.get(u)??[];c.push({...l,rowId:u}),a.set(u,c)}let s=[];for(let[l,u]of a){let c=[...new Set(u.map(y=>y.column))];if(c.length!==u.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let d=h.exec(`SELECT ${c.map(se).join(", ")} FROM ${L(e)} WHERE rowid = ? LIMIT 2`,P([l]),{useBigInt:!0})[0];if((d?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let f=u.map((y,g)=>{let S=K(d.values[0][g*2],d.values[0][g*2+1],`${e}.${y.column}`,{textEncoding:i}),w=S.value,R=gn(y.value,w,y.operation??"set"),I=R.operation==="json_patch"?to(w,R.value):R.value;return!o&&R.operation==="json_patch"&&Ye(I,r),{update:y,priorValue:w,priorState:S,prepared:R,storedValue:I}}),m=l;for(let y of f){let g=C(y.update.column),S=y.prepared.operation==="json_patch",w=S?typeof y.prepared.value=="string"?y.prepared.value:JSON.stringify(y.prepared.value):y.storedValue,R=S?`json_patch(COALESCE(${g}, '{}'), ?)`:ne(y.storedValue);if(h.run(`UPDATE ${L(e)} SET ${g} = ${R} WHERE rowid = ?`,P([w,m])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);m=fo(e,t,m,y.update.column,y.storedValue)}let E=h.exec(`SELECT ${c.map(se).join(", ")} FROM ${L(e)} WHERE rowid = ? LIMIT 2`,P([m]),{useBigInt:!0})[0];if((E?.values.length??0)!==1)throw yt(e);for(let[y,g]of f.entries())s.push({rowId:l,newRowId:m,columnName:g.update.column,priorValue:g.priorValue,newValue:g.prepared.value,priorState:g.priorState,postState:K(E.values[0][y*2],E.values[0][y*2+1],`${e}.${g.update.column}`,{textEncoding:i}),operation:g.prepared.operation})}return s}async function bd(e,t={}){if(!h)throw new Error("No database initialized");t=Ks(t,1e3);let{columns:n=null,offset:r,limit:o,orderBy:i=null,orderDir:a="ASC",filters:s=[],globalFilter:l="",globalFilterColumns:u=null}=t,c=n,d=i,f=null,m,E,y=!1;if(n?.[0]?.toLowerCase()==="rowid")if(E=await Fa(e),E?.kind==="primaryKey"){let v=E,q=n.slice(1),ce=v.columns.map(Re=>Re.identifier).filter(Re=>!q.includes(Re));c=[...q,...ce],m={identity:v,visibleColumns:q},vr({...t,columns:n})&&(d=null,f=v.columns.map(Re=>Re.identifier))}else E?.kind==="rowid"&&(y=(h.exec(ft,[e,e])[0]?.values.length??0)>0);let g=E?.kind==="primaryKey"||y?E:void 0,S=Pr(t,g),w=S?kr(e,t):void 0,R=S?Ws(e,t,g):void 0,I=y&&c?.[0]?.toLowerCase()==="rowid"&&c.length>In,T=I?c.slice(1):c,A;T&&T.length>0?A=T.map((v,q)=>y&&q===0&&v.toLowerCase()==="rowid"?`${C(v)} AS ${C("rowid")}`:C(v)).join(", "):A="*";let $=[],O=[];if(s&&s.length>0)for(let v of s){let q=Ae(v.value);v.column&&q!==void 0&&($.push(`${C(v.column)} LIKE ? ESCAPE '\\'`),O.push(`%${lt(q)}%`))}let D=Ae(l);if(D!==void 0){let v=La(n,u);if(v.length>0){let q=v.map(ce=>`${C(ce)} LIKE ? ESCAPE '\\'`);$.push(`(${q.join(" OR ")})`);for(let ce=0;ce{if(R)return js({selectListSql:v,escapedTable:L(e),whereClauses:$,filterParams:p,plan:R});let q=`SELECT ${v} FROM ${L(e)}`;$.length>0&&(q+=` WHERE ${$.join(" AND ")}`);let ce=Fs(S,R),Re=ce?ce.orderByColumns:f??(d?[d]:[]);if(Re.length>0){let il=ce?ce.orderDir:a==="DESC"?"DESC":"ASC";q+=` ORDER BY ${Re.map(sl=>`${C(sl)} ${il}`).join(", ")}`}return q+=` LIMIT ${parseInt(o,10)} OFFSET ${parseInt(r,10)}`,{sql:q,params:p}},{sql:N,params:k}=b(A);O=k;let U=I?b(C("rowid")):void 0,j=h.prepare(N,O),F=j.getColumnNames(),re=I?["rowid",...F]:F;j.free();let Lt=Number.isSafeInteger(t.maxInlineCellBytes)&&t.maxInlineCellBytes>0?t.maxInlineCellBytes:rn,Za=Number.isSafeInteger(t.maxPageResponseBytes)&&t.maxPageResponseBytes>0?t.maxPageResponseBytes:be,go={limit:parseInt(o,10),maxInlineCellBytes:Math.min(rn,Lt),maxPageResponseBytes:Math.min(be,Za)},el=m?m.identity.columns.map(v=>{let q=re.indexOf(v.identifier);if(q<0)throw new Error(`Primary-key column missing from table fetch: ${v.identifier}`);return q}):[],yo=S?S.keyColumns.map(v=>re.indexOf(v)).filter(v=>v>=0):[],ho=[...new Set([...el,...yo])],tl=I?ho.filter(v=>v>0).map(v=>v-1):ho,Eo=F.length*2+1<=In?F.map((v,q)=>q):tl,me=on(N,F.length,go,Eo),vn=mt(me.sql,me.primaryTransportColumnCount),nl=h.exec(vn.sql,O,{useBigInt:!0}),$t=ns(nl[0]?.values??[],void 0,me),Me=(U?h.exec(U.sql,U.params,{useBigInt:!0}):void 0)?.[0]?.values;if(Me&&Me.length!==$t.length)throw new Error("Synthetic rowid companion row count does not match the value page");let Ce=Me?Me.map((v,q)=>{if(v.length!==1)throw new Error(`Synthetic rowid companion row ${q} is not one value`);return[v[0],...$t[q]]}):$t,wo=[],kn=re[0]?.toLowerCase()==="rowid",Pn=kn&&Di(Ce,0),So=vn.valueColumnCount===void 0&&kn;if(!y&&(So||Pn)&&Ce.length>0&&(y=(h.exec(ft,[e,e])[0]?.values.length??0)>0),y&&So)for(let v of Bi(e,re,Ce.map(q=>q[0]))){let q=h.exec(v.sql,v.params,{useBigInt:!0});wo.push({query:v,rows:q[0]?.values??[]})}let bo=Mi(Ce,wo),Dn=Qe($t,vn.valueColumnCount,I?void 0:bo,!I&&y&&Pn?0:void 0),To=un(Dn.rows,F.length,Dn.exactIntegerTexts,go.maxPageResponseBytes),Co=Me?rs(Qe(Me,void 0,void 0,Pn?0:void 0).rows.map(v=>v[0]),To,bo):To,Bn=os(Dn.rows,me),Ue=Eo.length>0?ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]):void 0,Mn=I?me.rawTextColumnIndices.map(v=>v+1):me.rawTextColumnIndices,rl=Ue?as({sourceRows:Ce,rawTextRows:Bn,rawTextColumnIndices:Mn,textEncoding:Ue,contained:Co}):Co,{rows:Un,oversizedCells:it,exactIntegerTexts:qn}=rl,pe=E?.kind==="rowid"&&kn&&!y?us({rows:Un,oversizedCells:it,exactIntegerTexts:qn,rowOffset:parseInt(r,10)}):void 0,Ne=m&&Ue?ms({identity:m.identity,sourceColumns:re,visibleColumnCount:m.visibleColumns.length,identityRows:Ce,rawTextBytes:Bn,rawTextColumnIndices:Mn,rawTextValidationUnavailable:me.rawTextValidationUnavailable,textEncoding:Ue,rows:Un,oversizedCells:it,exactIntegerTexts:qn,effectiveInlineCellBytes:me.effectiveInlineCellBytes,rowOffset:parseInt(r,10)}):void 0,ol=S&&Ue?ss({sourceRows:Ce,sourceColumnIndices:yo,rawTextRows:Bn,rawTextColumnIndices:Mn,textEncoding:Ue,rawTextValidationUnavailable:me.rawTextValidationUnavailable}):void 0,vt=S&&w!==void 0?Hs({tag:w,key:S,projectionColumns:re,rows:Ce,oversizedCells:it,excludedRowIndices:ol}):void 0;return m&&Ne?{headers:["rowid",...m.visibleColumns],rows:Ne.rows,exactIntegerTexts:Ne.exactIntegerTexts,...Ne.oversizedCells?{oversizedCells:Ne.oversizedCells}:{},...Ne.readOnlyRowReasons?{readOnlyRowReasons:Ne.readOnlyRowReasons}:{},...vt?{keysetAnchors:vt}:{}}:{headers:re,rows:pe?.rows??Un,exactIntegerTexts:pe?pe.exactIntegerTexts:qn,...(pe?pe.oversizedCells:it)?{oversizedCells:pe?pe.oversizedCells:it}:{},...pe?.readOnlyRowReasons?{readOnlyRowReasons:pe.readOnlyRowReasons}:{},...vt?{keysetAnchors:vt}:{}}}async function Td(e,t={}){if(!h)throw new Error("No database initialized");let{columns:n=[],filters:r=[],globalFilter:o="",globalFilterColumns:i=null}=t,a=`SELECT COUNT(*) FROM ${L(e)}`,s=[],l=[];if(r&&r.length>0)for(let f of r){let m=Ae(f.value);f.column&&m!==void 0&&(s.push(`${C(f.column)} LIKE ? ESCAPE '\\'`),l.push(`%${lt(m)}%`))}let u=Ae(o);if(u!==void 0){let f=La(n,i);if(f.length>0){let m=f.map(E=>`${C(E)} LIKE ? ESCAPE '\\'`);s.push(`(${m.join(" OR ")})`);for(let E=0;E0&&(a+=` WHERE ${s.join(" AND ")}`);let c={storage:Nt,filtered:s.length>0,authorityConfirmedRowIdTable:!0,pagedFileSizeBytes:_t,exactCountMaxFileBytes:_a};if(jr(c)){let f=!1;try{if(f=(h.exec(ft,[e,e])[0]?.values.length??0)>0,jr({...c,authorityConfirmedRowIdTable:f})){let E=h.exec(la(e)),y=da(E[0]?.values?.[0]);if(y!==void 0)return{count:y,isExact:!1}}}catch{}if(!f){let m=!1;try{m=(h.exec(aa,[e])[0]?.values.length??0)>0}catch{}if(m){try{let E=h.exec(ca(e),[Ze+1]),y=ua(E[0]?.values?.[0]?.[0],_t);if(y)return y}catch{}return{count:Hr(_t),isExact:!1}}}}let d=h.exec(a,l);return d.length===0||d[0].values.length===0?{count:0,isExact:!0}:{count:d[0].values[0][0],isExact:!0}}async function Cd(){if(!h)throw new Error("No database initialized");let e=h.exec(` +]`)}function yd(e,t,n,r,o){let i=r?C(e):'"table_name"',a=t.map(C).join(", ");n.forEach((s,l)=>{let u=s.map(Li).join(", ");l>0&&o.append(` +`),o.append(`INSERT INTO ${i} (${a}) VALUES (${u});`)})}async function Fa(e){let t=h.exec(`SELECT "type", "wr" FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? LIMIT 1`,[e]);if((t[0]?.values.length??0)===0)return;let n=br(t[0].values[0][0],t[0].values[0][1]);if(!n)return;if(n==="rowid")return{kind:"rowid"};let r=Tr(await po(e));if(r.length===0)throw new Error(`WITHOUT ROWID table ${e} has no declared primary key`);return{kind:"primaryKey",columns:r}}async function le(e){let t=await Fa(e);if(!t)throw new Error(`Table not found: ${e}`);if(t.kind==="rowid"&&(h.exec(ft,[e,e])[0]?.values.length??0)!==1)throw new Error(`Table ${e} is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity`);return t}function to(e){return new Error(`An UPDATE trigger changed or removed the primary-key identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function $n(e,t,n,r){let i=h.exec(`SELECT ${bt(t)} FROM ${L(e)} WHERE ${n.sql} LIMIT 2`,P(n.params),{useBigInt:!0})[0]?.values??[];if(i.length===0)throw r??new Error(`Updated row in ${e} no longer exists`);if(i.length!==1)throw new Error(`Primary-key identity for ${e} matched more than one row`);return Tt(t,i[0],ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot resolve updated identity in ${e}`)}function fo(e){let t=h.exec(ki,[e]);return Di(t[0]?.values??[],e)}function hd(e,t,n=!0){let r=[...new Set(t)];if(r.length===0)throw new Error("UPDATE trigger probe requires at least one column");let o=r.map(a=>{let s=C(a);return`${s} = ${s}`}),i=n?"rowid = ?":"0";return`EXPLAIN UPDATE ${L(e)} SET ${o.join(", ")} WHERE ${i}`}function Ed(e,t){return`EXPLAIN ${t.length===0?`INSERT INTO ${L(e)} DEFAULT VALUES`:`INSERT INTO ${L(e)} (${t.map(C).join(", ")}) VALUES (${t.map(()=>"NULL").join(", ")})`}`}function wd(e){return`EXPLAIN DELETE FROM ${L(e)} WHERE 0`}function Ot(e,t,n=!0){let r=h.exec(Fi,P([e]),{useBigInt:!0}),o=Wi(r[0]?.values??[],e),i=h.exec(hd(e,t,n),P(n?[0]:[]),{useBigInt:!0});ji(e,o,i[0]?.values??[],n?"rowid":"primary-key")}function De(e,t,n=[]){let r=e==="INSERT"?Ed(t,n):wd(t),o=h.exec(r,[],{useBigInt:!0});Hi(e,t,o[0]?.values??[])}function mo(e,t,n,r,o){let i=t!==void 0&&r!==void 0&&He(t,r),a=i?C(t):"rowid",s=i?o:n,u=h.exec(`SELECT CAST(rowid AS TEXT) FROM ${L(e)} WHERE ${a} = ? LIMIT 2`,P([s??null]),{useBigInt:!0})[0]?.values??[];if(u.length===0)throw yt(e);if(u.length!==1)throw new Error(`Rowid identity for ${e} matched more than one row`);return H(u[0][0])}function no(e,t){let n=typeof t=="string"?t:JSON.stringify(t),r=h.exec("SELECT json_patch(COALESCE(?, '{}'), ?)",P([e,n]))[0]?.values?.[0]?.[0];if(typeof r!="string")throw new Error("SQLite returned an invalid json_patch result");return r}function Sd(e,t,n,r,o){let i=Be(),a=new Map;for(let l of n){let u=H(l.rowId),c=a.get(u)??[];c.push({...l,rowId:u}),a.set(u,c)}let s=[];for(let[l,u]of a){let c=[...new Set(u.map(y=>y.column))];if(c.length!==u.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let d=h.exec(`SELECT ${c.map(se).join(", ")} FROM ${L(e)} WHERE rowid = ? LIMIT 2`,P([l]),{useBigInt:!0})[0];if((d?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let f=u.map((y,g)=>{let S=K(d.values[0][g*2],d.values[0][g*2+1],`${e}.${y.column}`,{textEncoding:i}),w=S.value,R=yn(y.value,w,y.operation??"set"),I=R.operation==="json_patch"?no(w,R.value):R.value;return!o&&R.operation==="json_patch"&&Ye(I,r),{update:y,priorValue:w,priorState:S,prepared:R,storedValue:I}}),m=l;for(let y of f){let g=C(y.update.column),S=y.prepared.operation==="json_patch",w=S?typeof y.prepared.value=="string"?y.prepared.value:JSON.stringify(y.prepared.value):y.storedValue,R=S?`json_patch(COALESCE(${g}, '{}'), ?)`:ne(y.storedValue);if(h.run(`UPDATE ${L(e)} SET ${g} = ${R} WHERE rowid = ?`,P([w,m])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);m=mo(e,t,m,y.update.column,y.storedValue)}let E=h.exec(`SELECT ${c.map(se).join(", ")} FROM ${L(e)} WHERE rowid = ? LIMIT 2`,P([m]),{useBigInt:!0})[0];if((E?.values.length??0)!==1)throw yt(e);for(let[y,g]of f.entries())s.push({rowId:l,newRowId:m,columnName:g.update.column,priorValue:g.priorValue,newValue:g.prepared.value,priorState:g.priorState,postState:K(E.values[0][y*2],E.values[0][y*2+1],`${e}.${g.update.column}`,{textEncoding:i}),operation:g.prepared.operation})}return s}async function bd(e,t={}){if(!h)throw new Error("No database initialized");t=Ks(t,1e3);let{columns:n=null,offset:r,limit:o,orderBy:i=null,orderDir:a="ASC",filters:s=[],globalFilter:l="",globalFilterColumns:u=null}=t,c=n,d=i,f=null,m,E,y=!1;if(n?.[0]?.toLowerCase()==="rowid")if(E=await Fa(e),E?.kind==="primaryKey"){let v=E,q=n.slice(1),ce=v.columns.map(Re=>Re.identifier).filter(Re=>!q.includes(Re));c=[...q,...ce],m={identity:v,visibleColumns:q},kr({...t,columns:n})&&(d=null,f=v.columns.map(Re=>Re.identifier))}else E?.kind==="rowid"&&(y=(h.exec(ft,[e,e])[0]?.values.length??0)>0);let g=E?.kind==="primaryKey"||y?E:void 0,S=Dr(t,g),w=S?Pr(e,t):void 0,R=S?Ws(e,t,g):void 0,I=y&&c?.[0]?.toLowerCase()==="rowid"&&c.length>An,T=I?c.slice(1):c,_;T&&T.length>0?_=T.map((v,q)=>y&&q===0&&v.toLowerCase()==="rowid"?`${C(v)} AS ${C("rowid")}`:C(v)).join(", "):_="*";let $=[],O=[];if(s&&s.length>0)for(let v of s){let q=Ae(v.value);v.column&&q!==void 0&&($.push(`${C(v.column)} LIKE ? ESCAPE '\\'`),O.push(`%${lt(q)}%`))}let D=Ae(l);if(D!==void 0){let v=La(n,u);if(v.length>0){let q=v.map(ce=>`${C(ce)} LIKE ? ESCAPE '\\'`);$.push(`(${q.join(" OR ")})`);for(let ce=0;ce{if(R)return js({selectListSql:v,escapedTable:L(e),whereClauses:$,filterParams:p,plan:R});let q=`SELECT ${v} FROM ${L(e)}`;$.length>0&&(q+=` WHERE ${$.join(" AND ")}`);let ce=Fs(S,R),Re=ce?ce.orderByColumns:f??(d?[d]:[]);if(Re.length>0){let il=ce?ce.orderDir:a==="DESC"?"DESC":"ASC";q+=` ORDER BY ${Re.map(sl=>`${C(sl)} ${il}`).join(", ")}`}return q+=` LIMIT ${parseInt(o,10)} OFFSET ${parseInt(r,10)}`,{sql:q,params:p}},{sql:N,params:k}=b(_);O=k;let U=I?b(C("rowid")):void 0,j=h.prepare(N,O),F=j.getColumnNames(),re=I?["rowid",...F]:F;j.free();let Lt=Number.isSafeInteger(t.maxInlineCellBytes)&&t.maxInlineCellBytes>0?t.maxInlineCellBytes:rn,Za=Number.isSafeInteger(t.maxPageResponseBytes)&&t.maxPageResponseBytes>0?t.maxPageResponseBytes:be,yo={limit:parseInt(o,10),maxInlineCellBytes:Math.min(rn,Lt),maxPageResponseBytes:Math.min(be,Za)},el=m?m.identity.columns.map(v=>{let q=re.indexOf(v.identifier);if(q<0)throw new Error(`Primary-key column missing from table fetch: ${v.identifier}`);return q}):[],ho=S?S.keyColumns.map(v=>re.indexOf(v)).filter(v=>v>=0):[],Eo=[...new Set([...el,...ho])],tl=I?Eo.filter(v=>v>0).map(v=>v-1):Eo,wo=F.length*2+1<=An?F.map((v,q)=>q):tl,me=on(N,F.length,yo,wo),kn=mt(me.sql,me.primaryTransportColumnCount),nl=h.exec(kn.sql,O,{useBigInt:!0}),$t=rs(nl[0]?.values??[],void 0,me),Me=(U?h.exec(U.sql,U.params,{useBigInt:!0}):void 0)?.[0]?.values;if(Me&&Me.length!==$t.length)throw new Error("Synthetic rowid companion row count does not match the value page");let Ce=Me?Me.map((v,q)=>{if(v.length!==1)throw new Error(`Synthetic rowid companion row ${q} is not one value`);return[v[0],...$t[q]]}):$t,So=[],Pn=re[0]?.toLowerCase()==="rowid",Dn=Pn&&Bi(Ce,0),bo=kn.valueColumnCount===void 0&&Pn;if(!y&&(bo||Dn)&&Ce.length>0&&(y=(h.exec(ft,[e,e])[0]?.values.length??0)>0),y&&bo)for(let v of Mi(e,re,Ce.map(q=>q[0]))){let q=h.exec(v.sql,v.params,{useBigInt:!0});So.push({query:v,rows:q[0]?.values??[]})}let To=Ui(Ce,So),Bn=Qe($t,kn.valueColumnCount,I?void 0:To,!I&&y&&Dn?0:void 0),Co=dn(Bn.rows,F.length,Bn.exactIntegerTexts,yo.maxPageResponseBytes),Ro=Me?os(Qe(Me,void 0,void 0,Dn?0:void 0).rows.map(v=>v[0]),Co,To):Co,Mn=is(Bn.rows,me),Ue=wo.length>0?ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]):void 0,Un=I?me.rawTextColumnIndices.map(v=>v+1):me.rawTextColumnIndices,rl=Ue?as({sourceRows:Ce,rawTextRows:Mn,rawTextColumnIndices:Un,textEncoding:Ue,contained:Ro}):Ro,{rows:qn,oversizedCells:it,exactIntegerTexts:Vn}=rl,pe=E?.kind==="rowid"&&Pn&&!y?us({rows:qn,oversizedCells:it,exactIntegerTexts:Vn,rowOffset:parseInt(r,10)}):void 0,Ne=m&&Ue?ms({identity:m.identity,sourceColumns:re,visibleColumnCount:m.visibleColumns.length,identityRows:Ce,rawTextBytes:Mn,rawTextColumnIndices:Un,rawTextValidationUnavailable:me.rawTextValidationUnavailable,textEncoding:Ue,rows:qn,oversizedCells:it,exactIntegerTexts:Vn,effectiveInlineCellBytes:me.effectiveInlineCellBytes,rowOffset:parseInt(r,10)}):void 0,ol=S&&Ue?ss({sourceRows:Ce,sourceColumnIndices:ho,rawTextRows:Mn,rawTextColumnIndices:Un,textEncoding:Ue,rawTextValidationUnavailable:me.rawTextValidationUnavailable}):void 0,vt=S&&w!==void 0?Hs({tag:w,key:S,projectionColumns:re,rows:Ce,oversizedCells:it,excludedRowIndices:ol}):void 0;return m&&Ne?{headers:["rowid",...m.visibleColumns],rows:Ne.rows,exactIntegerTexts:Ne.exactIntegerTexts,...Ne.oversizedCells?{oversizedCells:Ne.oversizedCells}:{},...Ne.readOnlyRowReasons?{readOnlyRowReasons:Ne.readOnlyRowReasons}:{},...vt?{keysetAnchors:vt}:{}}:{headers:re,rows:pe?.rows??qn,exactIntegerTexts:pe?pe.exactIntegerTexts:Vn,...(pe?pe.oversizedCells:it)?{oversizedCells:pe?pe.oversizedCells:it}:{},...pe?.readOnlyRowReasons?{readOnlyRowReasons:pe.readOnlyRowReasons}:{},...vt?{keysetAnchors:vt}:{}}}async function Td(e,t={}){if(!h)throw new Error("No database initialized");let{columns:n=[],filters:r=[],globalFilter:o="",globalFilterColumns:i=null}=t,a=`SELECT COUNT(*) FROM ${L(e)}`,s=[],l=[];if(r&&r.length>0)for(let f of r){let m=Ae(f.value);f.column&&m!==void 0&&(s.push(`${C(f.column)} LIKE ? ESCAPE '\\'`),l.push(`%${lt(m)}%`))}let u=Ae(o);if(u!==void 0){let f=La(n,i);if(f.length>0){let m=f.map(E=>`${C(E)} LIKE ? ESCAPE '\\'`);s.push(`(${m.join(" OR ")})`);for(let E=0;E0&&(a+=` WHERE ${s.join(" AND ")}`);let c={storage:Nt,filtered:s.length>0,authorityConfirmedRowIdTable:!0,pagedFileSizeBytes:_t,exactCountMaxFileBytes:_a};if(Hr(c)){let f=!1;try{if(f=(h.exec(ft,[e,e])[0]?.values.length??0)>0,Hr({...c,authorityConfirmedRowIdTable:f})){let E=h.exec(la(e)),y=da(E[0]?.values?.[0]);if(y!==void 0)return{count:y,isExact:!1}}}catch{}if(!f){let m=!1;try{m=(h.exec(aa,[e])[0]?.values.length??0)>0}catch{}if(m){try{let E=h.exec(ca(e),[Ze+1]),y=ua(E[0]?.values?.[0]?.[0],_t);if(y)return y}catch{}return{count:Qr(_t),isExact:!1}}}}let d=h.exec(a,l);return d.length===0||d[0].values.length===0?{count:0,isExact:!0}:{count:d[0].values[0][0],isExact:!0}}async function Cd(){if(!h)throw new Error("No database initialized");let e=h.exec(` SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name - `),t=h.exec(qi),n=Xi(t[0]?.values||[]),r=(e[0]?.values||[]).map(l=>{let u=l[0],c=n.get(u);if(!c)throw new Error(`Table not found: ${u}`);return{identifier:u,identity:c}}),i=(h.exec(` + `),t=h.exec(Vi),n=Gi(t[0]?.values||[]),r=(e[0]?.values||[]).map(l=>{let u=l[0],c=n.get(u);if(!c)throw new Error(`Table not found: ${u}`);return{identifier:u,identity:c}}),i=(h.exec(` SELECT name FROM sqlite_master WHERE type = 'view' ORDER BY name @@ -65,6 +65,6 @@ ${t}`);if(!n.getSQL().trimEnd().endsWith(t))throw n.free(),new Error("Exactly on SELECT name, tbl_name FROM sqlite_master WHERE type = 'index' AND name NOT LIKE 'sqlite_%' ORDER BY name - `)[0]?.values||[]).map(l=>({identifier:l[0],parentTable:l[1]}));return{tables:r,views:i,indexes:s}}async function mo(e){if(!h)throw new Error("No database initialized");let t=h.exec(ki,[e]);return t.length===0?[]:t[0].values.filter(n=>Number(n[6]??0)!==1).map(n=>({ordinal:n[0],identifier:n[1],declaredType:n[2],isRequired:n[3],defaultExpression:n[4],primaryKeyPosition:n[5],isGenerated:Number(n[6]??0)===2||Number(n[6]??0)===3,isRowidAlias:Number(n[7]??0)===1}))}function Wa(){let e=n=>{let r=h.prepare(n),o=[];try{for(;r.step();)o.push(r.get());return o}finally{r.free()}},t=e("PRAGMA main.schema_version")[0]?.[0];if(!Number.isSafeInteger(t))throw new Error("Unable to read the destination database schema version.");return JSON.stringify([t,e("SELECT type, name, tbl_name, sql FROM temp.sqlite_schema ORDER BY type, name")])}async function Rd(e){if(!h)throw new Error("No database initialized");z(e,"Table name");let t=V("sp_import_preview");x(`SAVEPOINT ${t}`);try{let n=await mo(e);if(!n.length)throw new Error(`Table not found: ${e}`);let r=Wa();return x(`RELEASE SAVEPOINT ${t}`),{columns:n,schemaVersion:r}}catch(n){throw W(t,"getImportTarget"),n}}function _n(e){return(h.exec("SELECT name FROM pragma.pragma_table_xinfo(?) WHERE hidden = 0 ORDER BY cid",[e])[0]?.values??[]).map(n=>{if(typeof n[0]!="string")throw new Error(`SQLite returned invalid column metadata for ${e}`);return n[0]})}function xd(e,t,n,r){let o=Be(),i=Q(n,t),a=r.map(se),l=h.exec(`SELECT ${a.join(", ")||"1"} FROM ${L(e)} WHERE ${i.sql} LIMIT 2`,P(i.params),{useBigInt:!0})[0]?.values??[];if(l.length!==1)throw new _e(e);let u=r.map((c,d)=>K(l[0][d*2],l[0][d*2+1],`${e}.${c}`,{textEncoding:o}));return{rowId:n,row:Object.fromEntries(r.map((c,d)=>[c,u[d].rawTextBytes??u[d].value])),storageClasses:r.map((c,d)=>({column:c,storageClass:u[d].storageClass}))}}function Id(e,t,n,r,o){if(o===void 0)return;let i=Q(n,t),a=Bs(r,t.kind==="rowid"),s=Ms(e,a,i),l=h.exec(s.sql,P(s.params),{useBigInt:!0})[0]?.values?.[0],u=Us(l);qs({table:e,insertableColumns:r,includeSyntheticRowId:t.kind==="rowid",rowIds:[n],rowCount:u.rowCount,valueBytes:u.valueBytes,maxSnapshotBytes:o,operation:"Insert"})}function Ca(e,t,n,r){let o=_n(e),i=Q(n,t);return ro(e,[n],o,[i]),Id(e,t,n,o,r),xd(e,t,n,o)}async function Ad(){if(!h)throw new Error("No database initialized");let e={},t=["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","encoding","auto_vacuum"];for(let n of t)try{let r=h.exec(`PRAGMA ${n}`);r.length>0&&r[0].values.length>0&&(e[n]=r[0].values[0][0])}catch{}return e}async function _d(e,t){if(!h)throw new Error("No database initialized");if(te("Pragma updates"),!["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","auto_vacuum"].includes(e))throw new Error(`Invalid or disallowed PRAGMA: ${e}`);let r;if(typeof t=="string"){if(!/^[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid PRAGMA string value: contains disallowed characters");r=`PRAGMA ${e} = '${t}'`}else if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Invalid PRAGMA numeric value: must be finite");r=`PRAGMA ${e} = ${t}`}else if(typeof t=="boolean")r=`PRAGMA ${e} = ${t?"ON":"OFF"}`;else throw new Error(`Invalid PRAGMA value type: ${typeof t}`);x(r)}async function Nd(e,t,n,r,o,i,a){let s=a===ao,l=!s&&i!==void 0,u=s?0:Je([r],i);if(ve(t),!h)throw new Error("No database initialized");if(te("Cell updates"),ie(t))return(await Ya(e,[{rowId:t,column:n,value:r,operation:"set"}],void 0,i,a))[0]?.newRowId??t;let c=H(t);if((await le(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let f=V("sp_update_rowid_cell");x(`SAVEPOINT ${f}`);try{let m=uo(e);Ot(e,[n]);let E=C(n);if(h.run(`UPDATE ${L(e)} SET ${E} = ${ne(r)} WHERE rowid = ?`+(l?` AND NOT (typeof(${E}) IN ('text', 'blob') AND length(CAST(${E} AS BLOB)) > ?)`:""),P(l?[r,c,u]:[r,c])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1){if(l){let S=await An({table:e,rowId:c,column:n});if((S.storageClass==="text"||S.storageClass==="blob")&&S.byteLength>u)throw new Ge(e,n,S.storageClass,S.byteLength,u)}throw new Error(`Cannot update ${e}.${n}: row ${t} no longer exists`)}let g=fo(e,m,c,n,r);return x(`RELEASE ${f}`),g}catch(m){throw W(f,"updateCell"),m}}async function Od(e,t,n,r,o,i){let a=Je([r],i);if(ra(o,a),ve(t),!h)throw new Error("No database initialized");te("Oversized cell replacement");let s=await le(e),l=Q(t,s),u=C(n),c=()=>{if(h.run(`UPDATE ${L(e)} SET ${u} = ${ne(r)} WHERE ${l.sql} AND typeof(${u}) = ? AND length(CAST(${u} AS BLOB)) = ?`,P([r,...l.params,o.storageClass,o.byteLength])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(ea);if(s.kind==="rowid")return fo(e,uo(e),H(t),n,r);let m=s.columns.findIndex(y=>y.identifier===n),E=wr(t,s,m>=0?[{column:n,value:r}]:[]);return Ln(e,s,Q(E,s),eo(e))},d=V("sp_replace_oversized_cell");x(`SAVEPOINT ${d}`);try{Ot(e,[n],s.kind==="rowid");let f=c();return x(`RELEASE ${d}`),f}catch(f){throw W(d,"replaceOversizedCell"),f}}async function ja(e,t,n,r,o,i){if(!h)throw new Error("No database initialized");te("Row insertion"),r!==ao&&Je(Object.values(t),n);let a=Object.keys(t),s=Object.values(t),l=await le(e),u;if(a.length===0)u=`INSERT INTO ${L(e)} DEFAULT VALUES`;else{let d=a.map(C).join(", "),f=s.map(ne).join(", ");u=`INSERT INTO ${L(e)} (${d}) VALUES (${f})`}if(l.kind==="primaryKey"){let d=V("sp_insert_pk_row");x(`SAVEPOINT ${d}`);try{De("INSERT",e,a);let f=h.prepare(`${u} RETURNING `+bt(l),P(s)),m;try{if(!f.step())throw new Error(`Insert into ${e} did not return a primary-key identity`);if(m=f.get(null,{useBigInt:!0}),!m||f.step())throw new Error(`Insert into ${e} did not return exactly one primary-key identity`)}finally{f.free()}let E=Tt(l,m,ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot insert into ${e}`),y=Ln(e,l,Q(E,l)),g=o?Ca(e,l,y,i):y;return x(`RELEASE ${d}`),g}catch(f){throw W(d,"insertPrimaryKeyRow"),f}}let c=V("sp_insert_rowid_row");x(`SAVEPOINT ${c}`);try{De("INSERT",e,a),h.run(u,P(s));let d=h.exec("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")[0]?.values?.[0];if(!d||Number(d[0])!==1)throw new Error(`Insert into ${e} did not create exactly one row`);let f=H(d[1]),m=Q(f,l);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE ${m.sql} LIMIT 2`,P(m.params))[0]?.values.length??0)!==1)throw new Error(`Insert into ${e} did not leave one addressable row; the insert was rolled back`);let y=o?Ca(e,l,f,i):f;return x(`RELEASE ${c}`),y}catch(d){throw W(c,"insertRowIdRow"),d}}async function Ld(e,t,n,r){return ja(e,t,n,r,!1)}async function $d(e,t,n,r){return ja(e,t,n,void 0,!0,r)}function vd(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Import options must be an object");if(e.expectedSchemaVersion!==void 0&&typeof e.expectedSchemaVersion!="string")throw new Error("Import expectedSchemaVersion must be a string");let t=n=>{let r=e[n];if(r!==void 0){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Import ${n} must be a non-negative safe integer`);return r}};return{maxEditValueBytes:e.maxEditValueBytes,maxUndoSnapshotBytes:t("maxUndoSnapshotBytes"),maxSnapshotTransportBytes:t("maxSnapshotTransportBytes")}}function kd(e,t){if(!Array.isArray(e))throw new Error("Import rows must be an array");if(e.length===0)throw new Error("Import requires at least one row");if(e.length>Qr)throw new Error(`Import supports at most ${Qr.toLocaleString("en-US")} rows`);let n=Je([],t),r=new Array(e.length),o=0;for(let i=0;iKr)throw new Error(`Import supports at most ${Kr} columns`);if(o+=s.length,o>zr)throw new Error(`Import supports at most ${zr.toLocaleString("en-US")} cells; split the file into smaller imports`);for(let l of s)z(l,"Column name"),Ye(a[l],n);r[i]=s}return r}function Pd(e,t,n,r){let o=L(e),i=t.length===0?`INSERT INTO ${o} DEFAULT VALUES`:`INSERT INTO ${o} (${t.map(C).join(", ")}) VALUES (${n.join(", ")})`;return r.kind!=="primaryKey"?i:`${i} RETURNING ${bt(r)}`}function Dd(e,t,n,r){let o=_n(e),i=ze(n,t),a=t.kind==="rowid"?"CAST(rowid AS TEXT)":bt(t),s=t.kind==="rowid"?1:t.columns.length*2,l=o.map(se),u=new Map(n.map((E,y)=>[String(E),y])),c=[],d=new Map,f=new Array(n.length),m=0;for(let E of i){let y=h.exec(`SELECT ${a}${l.length>0?", ":""}${l.join(", ")} FROM ${L(e)} WHERE ${E.sql}`,P(E.params),{useBigInt:!0})[0];for(let g of y?.values??[]){let S=t.kind==="rowid"?H(g[0]):Tt(t,g.slice(0,s),r,`Cannot import into ${e}`),w=u.get(String(S));if(w===void 0||f[w]!==void 0)throw new Error(`Import into ${e} could not re-read an inserted row by its identity`);let R=o.map(($,O)=>K(g[s+O*2],g[s+O*2+1],`${e}.${$}`,{textEncoding:r})),I=R.map($=>$.storageClass),T=I.join(","),A=d.get(T);A===void 0&&(A=c.length,c.push(I),d.set(T,A)),f[w]={rowId:S,values:R.map($=>$.rawTextBytes??$.value),pattern:A},m+=1}}if(m!==n.length)throw new Error(`Import into ${e} inserted ${n.length} rows but could re-read only ${m}`);return{columns:o,storageClassPatterns:c,rows:f}}function no(e){if(e==null)return 4;switch(typeof e){case"string":{let t=Jr(e)+2;for(let n=0;nr.maxUndoSnapshotBytes)throw new Error(`Import undo history for ${t} rows into ${e} needs ${a} bytes, over the ${r.maxUndoSnapshotBytes}-byte undo memory budget; import fewer rows at a time or increase maxUndoMemory. No rows were imported.`)}let o=Math.min(r.maxSnapshotTransportBytes??Number.MAX_SAFE_INTEGER,bn),i=no({rowCount:t,snapshots:n});if(i>o)throw new Error(`Import undo history for ${t} rows into ${e} is about ${i} bytes encoded, over the ${o}-byte limit this engine can return in one edit; import fewer rows at a time. No rows were imported.`)}async function Md(e,t,n={}){if(!h)throw new Error("No database initialized");te("Row import"),z(e,"Table name");let r=vd(n??{}),o=kd(t,r.maxEditValueBytes),i=V("sp_import_rows");x(`SAVEPOINT ${i}`);try{if(n?.expectedSchemaVersion!==void 0&&Wa()!==n.expectedSchemaVersion)throw new Error("The destination database schema changed after the preview was prepared. Start the import again.");let a=await le(e),s=Be(),l=new Array(t.length),u=new Map,c=null;try{for(let f=0;fm[I]),g=y.map(ne),S=`${JSON.stringify(E)}|${g.join(",")}`,w=u.get(S);if(w||(De("INSERT",e,E),w=h.prepare(Pd(e,E,g,a)),u.set(S,w)),w.bind(P(y)),a.kind==="primaryKey"){if(!w.step())throw new Error(`Import into ${e} did not return a primary-key identity`);let I=w.get(null,{useBigInt:!0});if(!I||w.step())throw new Error(`Import into ${e} did not return exactly one primary-key identity`);w.reset();let T=Tt(a,I,s,`Cannot import into ${e}`);l[f]=Ln(e,a,Q(T,a));continue}w.step(),w.reset(),c??=h.prepare("SELECT changes(), CAST(last_insert_rowid() AS TEXT)"),c.step();let R=c.get(null,{useBigInt:!0});if(c.reset(),!R||Number(R[0])!==1)throw new Error(`Import into ${e} did not create exactly one row for row ${f+1}`);l[f]=H(R[1])}}finally{for(let f of u.values())f.free();c?.free()}let d=Dd(e,a,l,s);return Bd(e,t.length,d,r),x(`RELEASE ${i}`),{rowCount:t.length,snapshots:d}}catch(a){throw W(i,"importRows"),a}}function Ha(e){if(e===null||typeof e!="object"||!Array.isArray(e.columns)||!Array.isArray(e.storageClassPatterns)||!Array.isArray(e.rows)||e.rows.length===0||e.columns.some(r=>typeof r!="string"))throw new J;let t=e.columns.length,n=e.storageClassPatterns.map(r=>{if(!Array.isArray(r)||r.length!==t)throw new J;return e.columns.map((o,i)=>({column:o,storageClass:r[i]}))});return e.rows.map(r=>{if(r===null||typeof r!="object"||!Array.isArray(r.values)||r.values.length!==t||!Number.isInteger(r.pattern)||r.pattern<0||r.pattern>=n.length)throw new J;return{rowId:r.rowId,row:Object.fromEntries(e.columns.map((o,i)=>[o,r.values[i]])),storageClasses:n[r.pattern]}})}function Gr(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||n<0)throw new Error(`Demo delete snapshot ${t} exceeds the web transport safety bound`);return n}function Ud(e){let t=C(e);return`CASE typeof(${t}) WHEN 'text' THEN 6 * octet_length(${t}) WHEN 'blob' THEN 4 * ((octet_length(${t}) + 2) / 3) + 40 WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 4 END`}function qd(e){let t=C(e);return`COALESCE(MAX(CASE WHEN typeof(${t}) = 'blob' THEN octet_length(${t}) ELSE 0 END), 0)`}function ro(e,t,n,r){let o=1024;for(let s of t)o+=64+6*String(s).length;let i=128+n.reduce((s,l)=>s+48+6*l.length,0),a=0;for(let s of r)for(let l=0;l0?", ":""}`+u.map(qd).join(", ")+` FROM ${L(e)} WHERE ${s.sql}`,P(s.params),{useBigInt:!0})[0]?.values?.[0];if(!c)throw new Error("Demo delete snapshot preflight returned no metadata");let d=Gr(c[0],"row count");l===0&&(a+=d,o+=d*i),o+=Gr(c[1],"encoded size");for(let f of c.slice(2))if(Gr(f,"BLOB size")>Xe)throw new Error(`Demo delete snapshot exceeds the ${Xe}-byte web transport binary limit; the row was not deleted`);if(!Number.isSafeInteger(o))throw new Error("Demo delete snapshot exceeds the web transport safety bound")}if(a!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);if(o>bn)throw new Error(`Demo delete snapshot exceeds the ${bn}-byte web transport response limit; no rows were deleted`)}async function Vd(e,t){if(t.forEach(ve),!h)throw new Error("No database initialized");if(te("Row deletion"),t.length===0)return[];let n=await le(e),r=Be();if(t.some(ie)){if(!t.every(ie))throw new Error("Cannot mix rowid and primary-key row identities");if(n.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let a=ze(t,n),s=V("sp_delete_pk_rows");x(`SAVEPOINT ${s}`);try{De("DELETE",e);let l=_n(e);ro(e,t,l,a);let u=[];for(let c of a){let f=h.exec(`SELECT ${l.map(se).join(", ")||"1"} FROM ${L(e)} WHERE ${c.sql}`,P(c.params),{useBigInt:!0})[0]?.values??[],m=n.columns.map(E=>{let y=l.indexOf(E.identifier);if(y<0)throw new Error(`Primary-key column missing from ${e}: ${E.identifier}`);return y});u.push(...f.map(E=>{let y=l.map((g,S)=>K(E[S*2],E[S*2+1],`${e}.${g}`,{textEncoding:r}));return{rowId:Ke(n.columns,m.map(g=>y[g].value)),row:Object.fromEntries(l.map((g,S)=>[g,y[S].rawTextBytes??y[S].value])),storageClasses:l.map((g,S)=>({column:g,storageClass:y[S].storageClass}))}}))}if(u.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let c of a)h.run(`DELETE FROM ${L(e)} WHERE ${c.sql}`,P(c.params));return x(`RELEASE ${s}`),u}catch(l){throw W(s,"deletePrimaryKeyRows"),l}}if(n.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let o=ze(t,n),i=V("sp_delete_rowid_rows");x(`SAVEPOINT ${i}`);try{De("DELETE",e);let a=_n(e);ro(e,t,a,o);let s=[];for(let l of o){let u=h.exec(`SELECT CAST(rowid AS TEXT)${a.length>0?", ":""}${a.map(se).join(", ")} FROM ${L(e)} WHERE ${l.sql}`,P(l.params),{useBigInt:!0})[0];s.push(...(u?.values??[]).map(c=>{let d=H(c[0]),f=a.map((m,E)=>K(c[E*2+1],c[E*2+2],`${e}.${m}`,{textEncoding:r}));return{rowId:d,row:Object.fromEntries(a.map((m,E)=>[m,f[E].rawTextBytes??f[E].value])),storageClasses:a.map((m,E)=>({column:m,storageClass:f[E].storageClass}))}}))}if(s.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let l of o)h.run(`DELETE FROM ${L(e)} WHERE ${l.sql}`,P(l.params));return x(`RELEASE ${i}`),s}catch(a){throw W(i,"deleteRowidRows"),a}}async function Qa(e,t){if(!h)throw new Error("No database initialized");if(!Array.isArray(t))throw new Error("Column names must be an array");z(e,"Table name"),t.forEach(d=>z(d,"Column name"));let r=(h.exec("SELECT name, sql FROM main.sqlite_schema WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL ORDER BY name",[e])[0]?.values??[]).map(d=>({identifier:d[0],sql:d[1]}));if(r.length===0||t.length===0)return[];let i=(h.exec(`PRAGMA main.table_xinfo(${C(e)})`)[0]?.values??[]).map(d=>d[1]),a=Ci(i,t);if(a.length===0)return[];let s=crypto.randomUUID().replace(/-/g,""),l=`__sqlite_explorer_index_probe_${s}`,u=`__sqlite_explorer_index_candidate_${s}`,c=V("sp_index_dependencies");x(`SAVEPOINT ${c}`);try{x(Ti(l,i));let d=V("sp_index_baseline");x(`SAVEPOINT ${d}`);try{for(let m of a)x(`ALTER TABLE temp.${C(l)} DROP COLUMN ${C(m)}`);x(`ROLLBACK TO ${d}`),x(`RELEASE ${d}`)}catch(m){throw W(d,"findDependentIndexBaseline"),new Error("Cannot establish the index dependency probe baseline",{cause:m})}let f=[];for(let m of r){let E=V("sp_index_candidate");x(`SAVEPOINT ${E}`);try{x(Ri(l,u,m.sql));let y=!1;for(let g of a)try{x(`ALTER TABLE temp.${C(l)} DROP COLUMN ${C(g)}`)}catch{y=!0;break}x(`ROLLBACK TO ${E}`),x(`RELEASE ${E}`),y&&f.push(m)}catch(y){throw W(E,"findDependentIndex"),new Error(`Cannot inspect dependency for index ${C(m.identifier)}`,{cause:y})}}return x(`ROLLBACK TO ${c}`),x(`RELEASE ${c}`),f}catch(d){throw W(c,"findDependentIndexes"),d}}function Fd(e){if(e!==void 0){if(!Array.isArray(e))throw new Error("Dependent-index confirmation must be an array");return e.map(t=>{if(!t||typeof t!="object"||Array.isArray(t)||typeof t.identifier!="string"||typeof t.sql!="string")throw new Error("Dependent-index confirmation contains an invalid definition");return z(t.identifier,"Index name"),{identifier:t.identifier,sql:t.sql}})}}function Wd(e,t,n){if(t.length===0&&(n?.length??0)===0)return;if(!n)throw new Error("Column deletion requires confirmation for dependent indexes: "+t.map(i=>i.identifier).join(", "));let r=new Map(n.map(i=>[i.identifier,i.sql]));if(!(r.size===n.length&&n.length===t.length&&t.every(i=>r.get(i.identifier)===i.sql)))throw new Error(`Cannot delete columns from ${e}: dependent indexes changed while the confirmation was open`)}async function jd(e,t,n){if(!h)throw new Error("No database initialized");if(te("Column deletion"),t.length===0)return;let r=V("sp_delete_columns");x(`SAVEPOINT ${r}`);try{let o=Fd(n),i=await Qa(e,t);Wd(e,i,o),await Rs(e,t,i.map(a=>a.identifier),a=>x(a)),x(`RELEASE ${r}`)}catch(o){throw W(r,"deleteColumns"),Hd(o,t)}}function Hd(e,t){let n;try{n=Qd(t)}catch{return e}if(n.length===0)return e;let r=e instanceof Error?e.message:String(e),o=n.map(i=>`${i.type} ${i.identifier}`).join(", ");return new Error(`${r} \u2014 these schema objects mention ${t.join(", ")} and may be blocking the drop: ${o}. Drop or edit them first.`,{cause:e})}function Qd(e){return(h.exec(Ts)[0]?.values??[]).filter(n=>typeof n[1]=="string"&&typeof n[2]=="string"&&e.some(r=>Cs(n[2],r))).map(n=>({type:n[0],identifier:n[1]}))}async function Kd(e,t,n){if(!h)throw new Error("No database initialized");te("Table creation");let r=xi(e,t,n),o=V("sp_create_table");x(`SAVEPOINT ${o}`);try{let i=await G();x(r),we(i,await G()),x(`RELEASE ${o}`)}catch(i){throw W(o,"createTable"),i}}async function Ka(e,t=!1){if(!h)throw new Error("No database initialized");let r=h.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0]?.[0];if(typeof r!="string")return null;let o=Wt.map(c=>h.exec(c.sql,c.params(e))[0]?.values||[]),{triggers:i,ambiguousTemporaryTriggerNames:a,unqualifiedTemporaryTriggers:s}=ui(e,o);if(s.length>0){let d=(h.exec("SELECT name FROM pragma.pragma_table_xinfo(?, 'main') ORDER BY cid",[e])[0]?.values??[]).map(f=>{if(typeof f[0]!="string")throw new Error(`SQLite returned invalid view column metadata for ${e}`);return f[0]});for(let f of s){if(i.some(m=>!m.temporary&&He(m.identifier,f.identifier))){a.push(f.identifier);continue}try{let m=Ht(f.sql,"main",e,d);if(m===void 0){a.push(f.identifier);continue}let E=h.exec(m);ci(E[0]?.values??[],f.identifier)&&i.push({...f,sql:ar(f.sql,f.identifier)})}catch{a.push(f.identifier)}}}let l,u;try{l=fi(r),u=sr(r)}catch(c){if(!t)throw c;l=""}return{identifier:e,sql:r,selectSql:l,columnListSql:u,triggers:i,...a.length>0?{ambiguousTemporaryTriggerNames:a}:{}}}async function za(e,t=!1){let n=await Ka(e,t);if(!n)throw new Error(`View not found: ${e}`);return n}async function Nn(e){return za(e,!1)}function G(){return Ei({queryRows:async(e,t)=>h.exec(e,P(t))[0]?.values??[],compileStatements:async e=>e.map(t=>{try{ot(t);return}catch(n){return Te(n)}})})}function Xa(e,t){let r=h.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0];pi(e,r!==void 0,t);let o=r?.[0];return{storedSql:o,columnListSql:typeof o=="string"?sr(o):void 0}}function te(e){if(ae)throw new Error(`${e} is unavailable because the database is read-only`)}async function zd(e,t,n="edit"){if(z(e,"View name"),!h)throw new Error("No database initialized");if(ae)throw new Error("View validation is unavailable because the database is read-only");let r=Ee(t),{storedSql:o,columnListSql:i}=Xa(e,n),a=V("sp_validate_view");x(`SAVEPOINT ${a}`);try{let s=await G();typeof o=="string"&&x(`DROP VIEW ${oe(e)}`),x(ct(e,r,i)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),we(s,await G()),x(`ROLLBACK TO ${a}`),x(`RELEASE ${a}`)}catch(s){throw W(a,"validateViewDefinition"),s}}async function Xd(e,t,n=50,r="edit",o){if(z(e,"View name"),!h)throw new Error("No database initialized");let i=Ee(t),a=Math.max(1,Math.min(100,Math.trunc(n)||50)),{storedSql:s,columnListSql:l}=Xa(e,r);if(ae){let c=C(e);return Xr(l?`WITH ${c} ${l} AS (${i} + `)[0]?.values||[]).map(l=>({identifier:l[0],parentTable:l[1]}));return{tables:r,views:i,indexes:s}}async function po(e){if(!h)throw new Error("No database initialized");let t=h.exec(Pi,[e]);return t.length===0?[]:t[0].values.filter(n=>Number(n[6]??0)!==1).map(n=>({ordinal:n[0],identifier:n[1],declaredType:n[2],isRequired:n[3],defaultExpression:n[4],primaryKeyPosition:n[5],isGenerated:Number(n[6]??0)===2||Number(n[6]??0)===3,isRowidAlias:Number(n[7]??0)===1}))}function Wa(){let e=n=>{let r=h.prepare(n),o=[];try{for(;r.step();)o.push(r.get());return o}finally{r.free()}},t=e("PRAGMA main.schema_version")[0]?.[0];if(!Number.isSafeInteger(t))throw new Error("Unable to read the destination database schema version.");return JSON.stringify([t,e("SELECT type, name, tbl_name, sql FROM temp.sqlite_schema ORDER BY type, name")])}async function Rd(e){if(!h)throw new Error("No database initialized");z(e,"Table name");let t=V("sp_import_preview");x(`SAVEPOINT ${t}`);try{let n=await po(e);if(!n.length)throw new Error(`Table not found: ${e}`);let r=Wa();return x(`RELEASE SAVEPOINT ${t}`),{columns:n,schemaVersion:r}}catch(n){throw W(t,"getImportTarget"),n}}function Nn(e){return(h.exec("SELECT name FROM pragma.pragma_table_xinfo(?) WHERE hidden = 0 ORDER BY cid",[e])[0]?.values??[]).map(n=>{if(typeof n[0]!="string")throw new Error(`SQLite returned invalid column metadata for ${e}`);return n[0]})}function xd(e,t,n,r){let o=Be(),i=Q(n,t),a=r.map(se),l=h.exec(`SELECT ${a.join(", ")||"1"} FROM ${L(e)} WHERE ${i.sql} LIMIT 2`,P(i.params),{useBigInt:!0})[0]?.values??[];if(l.length!==1)throw new _e(e);let u=r.map((c,d)=>K(l[0][d*2],l[0][d*2+1],`${e}.${c}`,{textEncoding:o}));return{rowId:n,row:Object.fromEntries(r.map((c,d)=>[c,u[d].rawTextBytes??u[d].value])),storageClasses:r.map((c,d)=>({column:c,storageClass:u[d].storageClass}))}}function Id(e,t,n,r,o){if(o===void 0)return;let i=Q(n,t),a=Bs(r,t.kind==="rowid"),s=Ms(e,a,i),l=h.exec(s.sql,P(s.params),{useBigInt:!0})[0]?.values?.[0],u=Us(l);qs({table:e,insertableColumns:r,includeSyntheticRowId:t.kind==="rowid",rowIds:[n],rowCount:u.rowCount,valueBytes:u.valueBytes,maxSnapshotBytes:o,operation:"Insert"})}function Ca(e,t,n,r){let o=Nn(e),i=Q(n,t);return oo(e,[n],o,[i]),Id(e,t,n,o,r),xd(e,t,n,o)}async function Ad(){if(!h)throw new Error("No database initialized");let e={},t=["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","encoding","auto_vacuum"];for(let n of t)try{let r=h.exec(`PRAGMA ${n}`);r.length>0&&r[0].values.length>0&&(e[n]=r[0].values[0][0])}catch{}return e}async function _d(e,t){if(!h)throw new Error("No database initialized");if(te("Pragma updates"),!["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","auto_vacuum"].includes(e))throw new Error(`Invalid or disallowed PRAGMA: ${e}`);let r;if(typeof t=="string"){if(!/^[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid PRAGMA string value: contains disallowed characters");r=`PRAGMA ${e} = '${t}'`}else if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Invalid PRAGMA numeric value: must be finite");r=`PRAGMA ${e} = ${t}`}else if(typeof t=="boolean")r=`PRAGMA ${e} = ${t?"ON":"OFF"}`;else throw new Error(`Invalid PRAGMA value type: ${typeof t}`);x(r)}async function Nd(e,t,n,r,o,i,a){let s=a===lo,l=!s&&i!==void 0,u=s?0:Je([r],i);if(ve(t),!h)throw new Error("No database initialized");if(te("Cell updates"),ie(t))return(await Ya(e,[{rowId:t,column:n,value:r,operation:"set"}],void 0,i,a))[0]?.newRowId??t;let c=H(t);if((await le(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let f=V("sp_update_rowid_cell");x(`SAVEPOINT ${f}`);try{let m=fo(e);Ot(e,[n]);let E=C(n);if(h.run(`UPDATE ${L(e)} SET ${E} = ${ne(r)} WHERE rowid = ?`+(l?` AND NOT (typeof(${E}) IN ('text', 'blob') AND length(CAST(${E} AS BLOB)) > ?)`:""),P(l?[r,c,u]:[r,c])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1){if(l){let S=await _n({table:e,rowId:c,column:n});if((S.storageClass==="text"||S.storageClass==="blob")&&S.byteLength>u)throw new Ge(e,n,S.storageClass,S.byteLength,u)}throw new Error(`Cannot update ${e}.${n}: row ${t} no longer exists`)}let g=mo(e,m,c,n,r);return x(`RELEASE ${f}`),g}catch(m){throw W(f,"updateCell"),m}}async function Od(e,t,n,r,o,i){let a=Je([r],i);if(ra(o,a),ve(t),!h)throw new Error("No database initialized");te("Oversized cell replacement");let s=await le(e),l=Q(t,s),u=C(n),c=()=>{if(h.run(`UPDATE ${L(e)} SET ${u} = ${ne(r)} WHERE ${l.sql} AND typeof(${u}) = ? AND length(CAST(${u} AS BLOB)) = ?`,P([r,...l.params,o.storageClass,o.byteLength])),h.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(ea);if(s.kind==="rowid")return mo(e,fo(e),H(t),n,r);let m=s.columns.findIndex(y=>y.identifier===n),E=Sr(t,s,m>=0?[{column:n,value:r}]:[]);return $n(e,s,Q(E,s),to(e))},d=V("sp_replace_oversized_cell");x(`SAVEPOINT ${d}`);try{Ot(e,[n],s.kind==="rowid");let f=c();return x(`RELEASE ${d}`),f}catch(f){throw W(d,"replaceOversizedCell"),f}}async function ja(e,t,n,r,o,i){if(!h)throw new Error("No database initialized");te("Row insertion"),r!==lo&&Je(Object.values(t),n);let a=Object.keys(t),s=Object.values(t),l=await le(e),u;if(a.length===0)u=`INSERT INTO ${L(e)} DEFAULT VALUES`;else{let d=a.map(C).join(", "),f=s.map(ne).join(", ");u=`INSERT INTO ${L(e)} (${d}) VALUES (${f})`}if(l.kind==="primaryKey"){let d=V("sp_insert_pk_row");x(`SAVEPOINT ${d}`);try{De("INSERT",e,a);let f=h.prepare(`${u} RETURNING `+bt(l),P(s)),m;try{if(!f.step())throw new Error(`Insert into ${e} did not return a primary-key identity`);if(m=f.get(null,{useBigInt:!0}),!m||f.step())throw new Error(`Insert into ${e} did not return exactly one primary-key identity`)}finally{f.free()}let E=Tt(l,m,ke(h.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot insert into ${e}`),y=$n(e,l,Q(E,l)),g=o?Ca(e,l,y,i):y;return x(`RELEASE ${d}`),g}catch(f){throw W(d,"insertPrimaryKeyRow"),f}}let c=V("sp_insert_rowid_row");x(`SAVEPOINT ${c}`);try{De("INSERT",e,a),h.run(u,P(s));let d=h.exec("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")[0]?.values?.[0];if(!d||Number(d[0])!==1)throw new Error(`Insert into ${e} did not create exactly one row`);let f=H(d[1]),m=Q(f,l);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE ${m.sql} LIMIT 2`,P(m.params))[0]?.values.length??0)!==1)throw new Error(`Insert into ${e} did not leave one addressable row; the insert was rolled back`);let y=o?Ca(e,l,f,i):f;return x(`RELEASE ${c}`),y}catch(d){throw W(c,"insertRowIdRow"),d}}async function Ld(e,t,n,r){return ja(e,t,n,r,!1)}async function $d(e,t,n,r){return ja(e,t,n,void 0,!0,r)}function vd(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Import options must be an object");if(e.expectedSchemaVersion!==void 0&&typeof e.expectedSchemaVersion!="string")throw new Error("Import expectedSchemaVersion must be a string");let t=n=>{let r=e[n];if(r!==void 0){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Import ${n} must be a non-negative safe integer`);return r}};return{maxEditValueBytes:e.maxEditValueBytes,maxUndoSnapshotBytes:t("maxUndoSnapshotBytes"),maxSnapshotTransportBytes:t("maxSnapshotTransportBytes")}}function kd(e,t){if(!Array.isArray(e))throw new Error("Import rows must be an array");if(e.length===0)throw new Error("Import requires at least one row");if(e.length>Kr)throw new Error(`Import supports at most ${Kr.toLocaleString("en-US")} rows`);let n=Je([],t),r=new Array(e.length),o=0;for(let i=0;izr)throw new Error(`Import supports at most ${zr} columns`);if(o+=s.length,o>Xr)throw new Error(`Import supports at most ${Xr.toLocaleString("en-US")} cells; split the file into smaller imports`);for(let l of s)z(l,"Column name"),Ye(a[l],n);r[i]=s}return r}function Pd(e,t,n,r){let o=L(e),i=t.length===0?`INSERT INTO ${o} DEFAULT VALUES`:`INSERT INTO ${o} (${t.map(C).join(", ")}) VALUES (${n.join(", ")})`;return r.kind!=="primaryKey"?i:`${i} RETURNING ${bt(r)}`}function Dd(e,t,n,r){let o=Nn(e),i=ze(n,t),a=t.kind==="rowid"?"CAST(rowid AS TEXT)":bt(t),s=t.kind==="rowid"?1:t.columns.length*2,l=o.map(se),u=new Map(n.map((E,y)=>[String(E),y])),c=[],d=new Map,f=new Array(n.length),m=0;for(let E of i){let y=h.exec(`SELECT ${a}${l.length>0?", ":""}${l.join(", ")} FROM ${L(e)} WHERE ${E.sql}`,P(E.params),{useBigInt:!0})[0];for(let g of y?.values??[]){let S=t.kind==="rowid"?H(g[0]):Tt(t,g.slice(0,s),r,`Cannot import into ${e}`),w=u.get(String(S));if(w===void 0||f[w]!==void 0)throw new Error(`Import into ${e} could not re-read an inserted row by its identity`);let R=o.map(($,O)=>K(g[s+O*2],g[s+O*2+1],`${e}.${$}`,{textEncoding:r})),I=R.map($=>$.storageClass),T=I.join(","),_=d.get(T);_===void 0&&(_=c.length,c.push(I),d.set(T,_)),f[w]={rowId:S,values:R.map($=>$.rawTextBytes??$.value),pattern:_},m+=1}}if(m!==n.length)throw new Error(`Import into ${e} inserted ${n.length} rows but could re-read only ${m}`);return{columns:o,storageClassPatterns:c,rows:f}}function ro(e){if(e==null)return 4;switch(typeof e){case"string":{let t=Zr(e)+2;for(let n=0;nr.maxUndoSnapshotBytes)throw new Error(`Import undo history for ${t} rows into ${e} needs ${a} bytes, over the ${r.maxUndoSnapshotBytes}-byte undo memory budget; import fewer rows at a time or increase maxUndoMemory. No rows were imported.`)}let o=Math.min(r.maxSnapshotTransportBytes??Number.MAX_SAFE_INTEGER,Tn),i=ro({rowCount:t,snapshots:n});if(i>o)throw new Error(`Import undo history for ${t} rows into ${e} is about ${i} bytes encoded, over the ${o}-byte limit this engine can return in one edit; import fewer rows at a time. No rows were imported.`)}async function Md(e,t,n={}){if(!h)throw new Error("No database initialized");te("Row import"),z(e,"Table name");let r=vd(n??{}),o=kd(t,r.maxEditValueBytes),i=V("sp_import_rows");x(`SAVEPOINT ${i}`);try{if(n?.expectedSchemaVersion!==void 0&&Wa()!==n.expectedSchemaVersion)throw new Error("The destination database schema changed after the preview was prepared. Start the import again.");let a=await le(e),s=Be(),l=new Array(t.length),u=new Map,c=null;try{for(let f=0;fm[I]),g=y.map(ne),S=`${JSON.stringify(E)}|${g.join(",")}`,w=u.get(S);if(w||(De("INSERT",e,E),w=h.prepare(Pd(e,E,g,a)),u.set(S,w)),w.bind(P(y)),a.kind==="primaryKey"){if(!w.step())throw new Error(`Import into ${e} did not return a primary-key identity`);let I=w.get(null,{useBigInt:!0});if(!I||w.step())throw new Error(`Import into ${e} did not return exactly one primary-key identity`);w.reset();let T=Tt(a,I,s,`Cannot import into ${e}`);l[f]=$n(e,a,Q(T,a));continue}w.step(),w.reset(),c??=h.prepare("SELECT changes(), CAST(last_insert_rowid() AS TEXT)"),c.step();let R=c.get(null,{useBigInt:!0});if(c.reset(),!R||Number(R[0])!==1)throw new Error(`Import into ${e} did not create exactly one row for row ${f+1}`);l[f]=H(R[1])}}finally{for(let f of u.values())f.free();c?.free()}let d=Dd(e,a,l,s);return Bd(e,t.length,d,r),x(`RELEASE ${i}`),{rowCount:t.length,snapshots:d}}catch(a){throw W(i,"importRows"),a}}function Ha(e){if(e===null||typeof e!="object"||!Array.isArray(e.columns)||!Array.isArray(e.storageClassPatterns)||!Array.isArray(e.rows)||e.rows.length===0||e.columns.some(r=>typeof r!="string"))throw new J;let t=e.columns.length,n=e.storageClassPatterns.map(r=>{if(!Array.isArray(r)||r.length!==t)throw new J;return e.columns.map((o,i)=>({column:o,storageClass:r[i]}))});return e.rows.map(r=>{if(r===null||typeof r!="object"||!Array.isArray(r.values)||r.values.length!==t||!Number.isInteger(r.pattern)||r.pattern<0||r.pattern>=n.length)throw new J;return{rowId:r.rowId,row:Object.fromEntries(e.columns.map((o,i)=>[o,r.values[i]])),storageClasses:n[r.pattern]}})}function Yr(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||n<0)throw new Error(`Demo delete snapshot ${t} exceeds the web transport safety bound`);return n}function Ud(e){let t=C(e);return`CASE typeof(${t}) WHEN 'text' THEN 6 * octet_length(${t}) WHEN 'blob' THEN 4 * ((octet_length(${t}) + 2) / 3) + 40 WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 4 END`}function qd(e){let t=C(e);return`COALESCE(MAX(CASE WHEN typeof(${t}) = 'blob' THEN octet_length(${t}) ELSE 0 END), 0)`}function oo(e,t,n,r){let o=1024;for(let s of t)o+=64+6*String(s).length;let i=128+n.reduce((s,l)=>s+48+6*l.length,0),a=0;for(let s of r)for(let l=0;l0?", ":""}`+u.map(qd).join(", ")+` FROM ${L(e)} WHERE ${s.sql}`,P(s.params),{useBigInt:!0})[0]?.values?.[0];if(!c)throw new Error("Demo delete snapshot preflight returned no metadata");let d=Yr(c[0],"row count");l===0&&(a+=d,o+=d*i),o+=Yr(c[1],"encoded size");for(let f of c.slice(2))if(Yr(f,"BLOB size")>Xe)throw new Error(`Demo delete snapshot exceeds the ${Xe}-byte web transport binary limit; the row was not deleted`);if(!Number.isSafeInteger(o))throw new Error("Demo delete snapshot exceeds the web transport safety bound")}if(a!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);if(o>Tn)throw new Error(`Demo delete snapshot exceeds the ${Tn}-byte web transport response limit; no rows were deleted`)}async function Vd(e,t){if(t.forEach(ve),!h)throw new Error("No database initialized");if(te("Row deletion"),t.length===0)return[];let n=await le(e),r=Be();if(t.some(ie)){if(!t.every(ie))throw new Error("Cannot mix rowid and primary-key row identities");if(n.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let a=ze(t,n),s=V("sp_delete_pk_rows");x(`SAVEPOINT ${s}`);try{De("DELETE",e);let l=Nn(e);oo(e,t,l,a);let u=[];for(let c of a){let f=h.exec(`SELECT ${l.map(se).join(", ")||"1"} FROM ${L(e)} WHERE ${c.sql}`,P(c.params),{useBigInt:!0})[0]?.values??[],m=n.columns.map(E=>{let y=l.indexOf(E.identifier);if(y<0)throw new Error(`Primary-key column missing from ${e}: ${E.identifier}`);return y});u.push(...f.map(E=>{let y=l.map((g,S)=>K(E[S*2],E[S*2+1],`${e}.${g}`,{textEncoding:r}));return{rowId:Ke(n.columns,m.map(g=>y[g].value)),row:Object.fromEntries(l.map((g,S)=>[g,y[S].rawTextBytes??y[S].value])),storageClasses:l.map((g,S)=>({column:g,storageClass:y[S].storageClass}))}}))}if(u.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let c of a)h.run(`DELETE FROM ${L(e)} WHERE ${c.sql}`,P(c.params));return x(`RELEASE ${s}`),u}catch(l){throw W(s,"deletePrimaryKeyRows"),l}}if(n.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let o=ze(t,n),i=V("sp_delete_rowid_rows");x(`SAVEPOINT ${i}`);try{De("DELETE",e);let a=Nn(e);oo(e,t,a,o);let s=[];for(let l of o){let u=h.exec(`SELECT CAST(rowid AS TEXT)${a.length>0?", ":""}${a.map(se).join(", ")} FROM ${L(e)} WHERE ${l.sql}`,P(l.params),{useBigInt:!0})[0];s.push(...(u?.values??[]).map(c=>{let d=H(c[0]),f=a.map((m,E)=>K(c[E*2+1],c[E*2+2],`${e}.${m}`,{textEncoding:r}));return{rowId:d,row:Object.fromEntries(a.map((m,E)=>[m,f[E].rawTextBytes??f[E].value])),storageClasses:a.map((m,E)=>({column:m,storageClass:f[E].storageClass}))}}))}if(s.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let l of o)h.run(`DELETE FROM ${L(e)} WHERE ${l.sql}`,P(l.params));return x(`RELEASE ${i}`),s}catch(a){throw W(i,"deleteRowidRows"),a}}async function Qa(e,t){if(!h)throw new Error("No database initialized");if(!Array.isArray(t))throw new Error("Column names must be an array");z(e,"Table name"),t.forEach(d=>z(d,"Column name"));let r=(h.exec("SELECT name, sql FROM main.sqlite_schema WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL ORDER BY name",[e])[0]?.values??[]).map(d=>({identifier:d[0],sql:d[1]}));if(r.length===0||t.length===0)return[];let i=(h.exec(`PRAGMA main.table_xinfo(${C(e)})`)[0]?.values??[]).map(d=>d[1]),a=Ri(i,t);if(a.length===0)return[];let s=crypto.randomUUID().replace(/-/g,""),l=`__sqlite_explorer_index_probe_${s}`,u=`__sqlite_explorer_index_candidate_${s}`,c=V("sp_index_dependencies");x(`SAVEPOINT ${c}`);try{x(Ci(l,i));let d=V("sp_index_baseline");x(`SAVEPOINT ${d}`);try{for(let m of a)x(`ALTER TABLE temp.${C(l)} DROP COLUMN ${C(m)}`);x(`ROLLBACK TO ${d}`),x(`RELEASE ${d}`)}catch(m){throw W(d,"findDependentIndexBaseline"),new Error("Cannot establish the index dependency probe baseline",{cause:m})}let f=[];for(let m of r){let E=V("sp_index_candidate");x(`SAVEPOINT ${E}`);try{x(xi(l,u,m.sql));let y=!1;for(let g of a)try{x(`ALTER TABLE temp.${C(l)} DROP COLUMN ${C(g)}`)}catch{y=!0;break}x(`ROLLBACK TO ${E}`),x(`RELEASE ${E}`),y&&f.push(m)}catch(y){throw W(E,"findDependentIndex"),new Error(`Cannot inspect dependency for index ${C(m.identifier)}`,{cause:y})}}return x(`ROLLBACK TO ${c}`),x(`RELEASE ${c}`),f}catch(d){throw W(c,"findDependentIndexes"),d}}function Fd(e){if(e!==void 0){if(!Array.isArray(e))throw new Error("Dependent-index confirmation must be an array");return e.map(t=>{if(!t||typeof t!="object"||Array.isArray(t)||typeof t.identifier!="string"||typeof t.sql!="string")throw new Error("Dependent-index confirmation contains an invalid definition");return z(t.identifier,"Index name"),{identifier:t.identifier,sql:t.sql}})}}function Wd(e,t,n){if(t.length===0&&(n?.length??0)===0)return;if(!n)throw new Error("Column deletion requires confirmation for dependent indexes: "+t.map(i=>i.identifier).join(", "));let r=new Map(n.map(i=>[i.identifier,i.sql]));if(!(r.size===n.length&&n.length===t.length&&t.every(i=>r.get(i.identifier)===i.sql)))throw new Error(`Cannot delete columns from ${e}: dependent indexes changed while the confirmation was open`)}async function jd(e,t,n){if(!h)throw new Error("No database initialized");if(te("Column deletion"),t.length===0)return;let r=V("sp_delete_columns");x(`SAVEPOINT ${r}`);try{let o=Fd(n),i=await Qa(e,t);Wd(e,i,o),await Rs(e,t,i.map(a=>a.identifier),a=>x(a)),x(`RELEASE ${r}`)}catch(o){throw W(r,"deleteColumns"),Hd(o,t)}}function Hd(e,t){let n;try{n=Qd(t)}catch{return e}if(n.length===0)return e;let r=e instanceof Error?e.message:String(e),o=n.map(i=>`${i.type} ${i.identifier}`).join(", ");return new Error(`${r} \u2014 these schema objects mention ${t.join(", ")} and may be blocking the drop: ${o}. Drop or edit them first.`,{cause:e})}function Qd(e){return(h.exec(Ts)[0]?.values??[]).filter(n=>typeof n[1]=="string"&&typeof n[2]=="string"&&e.some(r=>Cs(n[2],r))).map(n=>({type:n[0],identifier:n[1]}))}async function Kd(e,t,n){if(!h)throw new Error("No database initialized");te("Table creation");let r=Ii(e,t,n),o=V("sp_create_table");x(`SAVEPOINT ${o}`);try{let i=await G();x(r),we(i,await G()),x(`RELEASE ${o}`)}catch(i){throw W(o,"createTable"),i}}async function Ka(e,t=!1){if(!h)throw new Error("No database initialized");let r=h.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0]?.[0];if(typeof r!="string")return null;let o=Wt.map(c=>h.exec(c.sql,c.params(e))[0]?.values||[]),{triggers:i,ambiguousTemporaryTriggerNames:a,unqualifiedTemporaryTriggers:s}=di(e,o);if(s.length>0){let d=(h.exec("SELECT name FROM pragma.pragma_table_xinfo(?, 'main') ORDER BY cid",[e])[0]?.values??[]).map(f=>{if(typeof f[0]!="string")throw new Error(`SQLite returned invalid view column metadata for ${e}`);return f[0]});for(let f of s){if(i.some(m=>!m.temporary&&He(m.identifier,f.identifier))){a.push(f.identifier);continue}try{let m=Ht(f.sql,"main",e,d);if(m===void 0){a.push(f.identifier);continue}let E=h.exec(m);ui(E[0]?.values??[],f.identifier)&&i.push({...f,sql:lr(f.sql,f.identifier)})}catch{a.push(f.identifier)}}}let l,u;try{l=mi(r),u=ar(r)}catch(c){if(!t)throw c;l=""}return{identifier:e,sql:r,selectSql:l,columnListSql:u,triggers:i,...a.length>0?{ambiguousTemporaryTriggerNames:a}:{}}}async function za(e,t=!1){let n=await Ka(e,t);if(!n)throw new Error(`View not found: ${e}`);return n}async function On(e){return za(e,!1)}function G(){return wi({queryRows:async(e,t)=>h.exec(e,P(t))[0]?.values??[],compileStatements:async e=>e.map(t=>{try{ot(t);return}catch(n){return Te(n)}})})}function Xa(e,t){let r=h.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0];gi(e,r!==void 0,t);let o=r?.[0];return{storedSql:o,columnListSql:typeof o=="string"?ar(o):void 0}}function te(e){if(ae)throw new Error(`${e} is unavailable because the database is read-only`)}async function zd(e,t,n="edit"){if(z(e,"View name"),!h)throw new Error("No database initialized");if(ae)throw new Error("View validation is unavailable because the database is read-only");let r=Ee(t),{storedSql:o,columnListSql:i}=Xa(e,n),a=V("sp_validate_view");x(`SAVEPOINT ${a}`);try{let s=await G();typeof o=="string"&&x(`DROP VIEW ${oe(e)}`),x(ct(e,r,i)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),we(s,await G()),x(`ROLLBACK TO ${a}`),x(`RELEASE ${a}`)}catch(s){throw W(a,"validateViewDefinition"),s}}async function Xd(e,t,n=50,r="edit",o){if(z(e,"View name"),!h)throw new Error("No database initialized");let i=Ee(t),a=Math.max(1,Math.min(100,Math.trunc(n)||50)),{storedSql:s,columnListSql:l}=Xa(e,r);if(ae){let c=C(e);return Gr(l?`WITH ${c} ${l} AS (${i} ) SELECT * FROM ${c} LIMIT ${a}`:`WITH ${c} AS (${i} -) SELECT * FROM ${c} LIMIT ${a}`,o)}let u=V("sp_preview_view");x(`SAVEPOINT ${u}`);try{let c=await G();typeof s=="string"&&x(`DROP VIEW ${oe(e)}`),x(ct(e,i,l)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),we(c,await G());let d=Xr(`SELECT * FROM ${oe(e)} LIMIT ${a}`,o);return x(`ROLLBACK TO ${u}`),x(`RELEASE ${u}`),d}catch(c){throw W(u,"previewViewDefinition"),c}}async function Gd(e,t){if(z(e,"View name"),!h)throw new Error("No database initialized");te("View creation");let n=Ee(t),r=V("sp_create_view");x(`SAVEPOINT ${r}`);try{let o=await G();x(ct(e,n)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`);let i=await Nn(e);return we(o,await G()),x(`RELEASE ${r}`),i}catch(o){throw W(r,"createView"),o}}async function Yd(e,t,n=!0,r,o){if(!h)throw new Error("No database initialized");te("View editing");let i=Ee(t),a=V("sp_edit_view");x(`SAVEPOINT ${a}`);try{let s=await Nn(e);Qt(s),Kt(r,s.sql,o,s.triggers);let l=await G();if(x(`DROP VIEW ${oe(e)}`),x(ct(e,i,s.columnListSql,s.columns)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),n){let d=(h.exec(`PRAGMA main.table_info(${C(e)})`)[0]?.values??[]).map(f=>{if(typeof f[1]!="string")throw new Error(`SQLite returned invalid column metadata for view ${e}`);return f[1]});mi(s.triggers,d);for(let f of s.triggers)x(lr(f))}let u=await Nn(e);return we(l,await G()),x(`RELEASE ${a}`),{before:s,after:u}}catch(s){throw W(a,"editView"),s}}async function Jd(e,t,n){if(!h)throw new Error("No database initialized");te("View deletion");let r=V("sp_drop_view");x(`SAVEPOINT ${r}`);try{let o=await za(e,!0);Qt(o),Kt(t,o.sql,n,o.triggers);let i=await G();return x(`DROP VIEW ${oe(e)}`),we(i,await G()),x(`RELEASE ${r}`),o}catch(o){throw W(r,"dropView"),o}}async function et(e,t,n){te("View history replay");let r=V("sp_restore_view");x(`SAVEPOINT ${r}`);try{let o=await Ka(e,!0);o&&Qt(o),yi(t,o);let i=await G();if(o&&x(`DROP VIEW ${oe(e)}`),n){x(n.sql),ot(`EXPLAIN SELECT * FROM ${oe(n.identifier)}`);for(let a of n.triggers)x(lr(a))}we(i,await G()),x(`RELEASE ${r}`)}catch(o){throw W(r,"restoreViewDefinition"),o}}function $n(){let e=h.exec("SELECT changes()",void 0,{useBigInt:!0})[0]?.values?.[0]?.[0],t=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(t)||t<0)throw new Error("SQLite returned an invalid changes() count");return t}async function oo(e,t){if(!Array.isArray(t)||t.length===0)throw new J;t.forEach(xt);let n=await le(e),r=V("sp_history_delete_rows");x(`SAVEPOINT ${r}`);try{De("DELETE",e);for(let o of t){let i=Q(o.rowId,n),a=Or(o,ne);if(h.run(`DELETE FROM ${L(e)} WHERE (${i.sql}) AND (${a.sql})`,P([...i.params,...a.params])),$n()!==1)throw new _e(e)}x(`RELEASE ${r}`)}catch(o){throw W(r,"deleteRowHistorySnapshots"),o}}async function io(e,t){if(!Array.isArray(t)||t.length===0)throw new J;let n=await le(e),r=t.map(i=>({snapshot:i,states:xt(i),writes:ks(i,ne)})),o=V("sp_history_restore_rows");x(`SAVEPOINT ${o}`);try{for(let i of r){De("INSERT",e,i.states.map(l=>l.column));let a=Q(i.snapshot.rowId,n);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE ${a.sql} LIMIT 1`,P(a.params))[0]?.values.length??0)!==0)throw new _e(e)}for(let i of r){let a=i.writes.map(f=>f.column),s=i.writes.map(f=>f.write.sql),l=i.writes.flatMap(f=>f.write.params);if(n.kind==="rowid"&&!a.some(f=>f.toLowerCase()==="rowid")&&(a.unshift("rowid"),s.unshift(ne(i.snapshot.rowId)),l.unshift(i.snapshot.rowId)),h.run(`INSERT INTO ${L(e)} (${a.map(C).join(", ")}) VALUES (${s.join(", ")})`,P(l)),$n()!==1)throw new _e(e);let u=Q(i.snapshot.rowId,n),c=Or(i.snapshot,ne);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE (${u.sql}) AND (${c.sql}) LIMIT 2`,P([...u.params,...c.params]))[0]?.values.length??0)!==1)throw new _e(e)}x(`RELEASE ${o}`)}catch(i){throw W(o,"restoreRowHistorySnapshots"),i}}function Zd(e){let t=e.affectedCells??(e.targetRowId!==void 0&&e.targetColumn?[{rowId:e.targetRowId,newRowId:e.newTargetRowId,columnName:e.targetColumn,newValue:e.newValue,operation:e.operation,priorState:e.priorState,postState:e.postState}]:[]);if(t.length===0)throw new Ct;return t.map(n=>(Rt(n.priorState),Rt(n.postState),n))}async function Ga(e,t,n){if(t.undoPolicy==="barrier")throw new Error("Forward-only cell history barriers cannot be replayed");let r=Zd(t),o=r.some(c=>ie(c.rowId));if(o&&!r.every(c=>ie(c.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let i=await le(e);if(o&&i.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);if(!o&&i.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let a=Be(),s=new Map;for(let c of r){let d=s.get(c.rowId)??[];if(d.some(f=>He(f.columnName,c.columnName)))throw new Error(`Cell history for ${e} contains the same column more than once`);d.push(c),s.set(c.rowId,d)}let l=[...s.entries()];n==="undo"&&r.some(c=>c.newRowId!==void 0&&c.newRowId!==c.rowId)&&l.reverse();let u=V("sp_replay_cell_history");x(`SAVEPOINT ${u}`);try{Ot(e,r.map(c=>c.columnName),i.kind==="rowid");for(let[c,d]of l){if(new Set(d.map(p=>p.newRowId??p.rowId)).size!==1)throw new Error(`Cell history for ${e} has inconsistent post-update identities`);let m=d[0].newRowId??c,E=n==="undo"?m:c,y=n==="undo"?c:m,g=Q(E,i),S=d.map(p=>se(p.columnName)),w=h.exec(`SELECT ${S.join(", ")} FROM ${L(e)} WHERE ${g.sql} LIMIT 2`,P(g.params),{useBigInt:!0})[0];if((w?.values.length??0)!==1)throw new fe(e,d.map(p=>p.columnName));let R=d.map((p,b)=>K(w.values[0][b*2],w.values[0][b*2+1],`${e}.${p.columnName}`,{textEncoding:a})),I=d.map((p,b)=>{let N=n==="undo"?p.postState:p.priorState,k=n==="undo"?p.priorState:p.postState,U=R[b];if(p.operation!=="json_patch"){if(!_r(U,N))throw new fe(e,[p.columnName]);return k}if(U.storageClass!==N.storageClass||p.newValue===void 0)throw new fe(e,[p.columnName]);let j=Ls(U.value,p.newValue,p.priorState.value,p.postState.value,n);if(j.kind==="conflict")throw new fe(e,[p.columnName]);return Object.is(j.value,k.value)?k:K("text",j.value,`${e}.${p.columnName} JSON replay`)}),T=I.map(p=>yn(p,ne)),A=R.map((p,b)=>hn(d[b].columnName,p,ne));if(h.run(`UPDATE ${L(e)} SET ${d.map((p,b)=>`${C(p.columnName)} = ${T[b].sql}`).join(", ")} WHERE ${g.sql} AND `+A.map(p=>`(${p.sql})`).join(" AND "),P([...T.flatMap(p=>p.params),...g.params,...A.flatMap(p=>p.params)])),$n()!==1)throw new fe(e,d.map(p=>p.columnName));let $=Q(y,i),O=h.exec(`SELECT ${S.join(", ")} FROM ${L(e)} WHERE ${$.sql} LIMIT 2`,P($.params),{useBigInt:!0})[0];if((O?.values.length??0)!==1)throw new fe(e,d.map(p=>p.columnName));if(!I.every((p,b)=>_r(p,K(O.values[0][b*2],O.values[0][b*2+1],`${e}.${d[b].columnName}`,{textEncoding:a}))))throw new fe(e,d.map(p=>p.columnName))}x(`RELEASE ${u}`)}catch(c){throw W(u,"replayCellHistory"),c}}async function ef(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,newTargetRowId:s,targetColumn:l,priorValue:u,newValue:c,operation:d,deletedRows:f,insertedRow:m}=e;if(n)switch(t){case"cell_update":await Ga(n,e,"undo");return;case"row_insert":if(e.importedRows){await oo(n,Ha(e.importedRows).reverse());return}if(!m||a===void 0)throw new J;if(typeof m.rowId!=typeof a||String(m.rowId)!==String(a))throw new J;await oo(n,[m]);return;case"row_delete":{if(!f||f.length===0)throw new J;await io(n,f);return}case"view_create":if(o)await et(n,o,null);else throw new Error("Cannot undo view_create: missing view definition");return;case"view_edit":if(r&&o)await et(n,o,r);else throw new Error("Cannot undo view_edit: missing view definition");return;case"view_drop":if(r)await et(n,null,r);else throw new Error("Cannot undo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be undone: this operation is recorded as a history barrier, not a replayable change`)}}async function tf(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,targetColumn:s,newValue:l,operation:u,rowData:c,affectedRowIds:d,insertedRow:f,deletedRows:m}=e;if(n)switch(t){case"cell_update":await Ga(n,e,"redo");return;case"row_insert":{if(e.importedRows){await io(n,Ha(e.importedRows));return}if(!f)throw new J;await io(n,[f]);return}case"row_delete":if(!m||m.length===0)throw new J;await oo(n,m);return;case"view_create":if(o)await et(n,null,o);else throw new Error("Cannot redo view_create: missing view definition");return;case"view_edit":if(r&&o)await et(n,r,o);else throw new Error("Cannot redo view_edit: missing view definition");return;case"view_drop":if(r)await et(n,r,null);else throw new Error("Cannot redo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be redone: this operation is recorded as a history barrier, not a replayable change`)}}function nf(e,t){let n=new Map;for(let r of t){z(r.column,"Column name");let o;ie(r.rowId)?(zi(r.rowId),o=`primary-key:${r.rowId}`):o=`rowid:${String(H(r.rowId))}`;let i=n.get(o)??[];if(i.some(a=>He(a,r.column)))throw new Error(`Batch update for ${e} contains a duplicate row identity/column target: ${String(r.rowId)} / ${r.column}`);i.push(r.column),n.set(o,i)}}async function Ya(e,t,n,r,o){if(t.forEach(c=>ve(c.rowId)),!h)throw new Error("No database initialized");if(te("Batch cell updates"),t.length===0)return[];nf(e,t);let i=o===ao,a=i?0:Je(t.map(c=>c.value),r),s=Be();if(t.some(c=>ie(c.rowId))){if(!t.every(f=>ie(f.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let c=await le(e);if(c.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let d=V("sp_update_pk_batch");x(`SAVEPOINT ${d}`);try{if(Ot(e,t.map(E=>E.column),!1),!i&&r!==void 0)for(let E of t){let y=await An({table:e,rowId:E.rowId,column:E.column});if((y.storageClass==="text"||y.storageClass==="blob")&&y.byteLength>a)throw new Ge(e,E.column,y.storageClass,y.byteLength,a)}let f=new Map;for(let E of t){let y=f.get(E.rowId)??[];y.push(E),f.set(E.rowId,y)}let m=[];for(let[E,y]of f){let g=Q(E,c),S=[...new Set(y.map(p=>p.column))];if(S.length!==y.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let w=h.exec(`SELECT ${S.map(se).join(", ")} FROM ${L(e)} WHERE ${g.sql} LIMIT 2`,P(g.params),{useBigInt:!0})[0];if((w?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let R=y.map((p,b)=>{let N=K(w.values[0][b*2],w.values[0][b*2+1],`${e}.${p.column}`,{textEncoding:s}),k=N.value,U=gn(p.value,k,p.operation??"set"),j=U.operation==="json_patch"?to(k,U.value):U.value;return!i&&U.operation==="json_patch"&&Ye(j,a),{update:p,priorValue:k,priorState:N,prepared:U,storedValue:j}}),I=R.map(({update:p,storedValue:b})=>`${C(p.column)} = ${ne(b)}`).join(", ");if(h.run(`UPDATE ${L(e)} SET ${I} WHERE ${g.sql}`,P([...R.map(p=>p.storedValue),...g.params])),$n()!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let T=[];for(let p of R)c.columns.findIndex(N=>N.identifier===p.update.column)>=0&&T.push({column:p.update.column,value:p.storedValue});let A=wr(E,c,T),$=Ln(e,c,Q(A,c),eo(e)),O=Q($,c),D=h.exec(`SELECT ${S.map(se).join(", ")} FROM ${L(e)} WHERE ${O.sql} LIMIT 2`,P(O.params),{useBigInt:!0})[0];if((D?.values.length??0)!==1)throw eo(e);for(let[p,b]of R.entries())m.push({rowId:E,newRowId:$,columnName:b.update.column,priorValue:b.priorValue,newValue:b.prepared.value,priorState:b.priorState,postState:K(D.values[0][p*2],D.values[0][p*2+1],`${e}.${b.update.column}`,{textEncoding:s}),operation:b.prepared.operation})}return x(`RELEASE ${d}`),m}catch(f){throw W(d,"updatePrimaryKeyCellBatch"),f}}if((await le(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let u=V("sp_update_cell_batch");x(`SAVEPOINT ${u}`);try{if(!i&&r!==void 0)for(let T of t){let A=await An({table:e,rowId:T.rowId,column:T.column});if((A.storageClass==="text"||A.storageClass==="blob")&&A.byteLength>a)throw new Ge(e,T.column,A.storageClass,A.byteLength,a)}let c=uo(e);if(Ot(e,t.map(T=>T.column)),c!==void 0&&t.some(T=>He(T.column,c))){let T=Sd(e,c,t,a,i);return x(`RELEASE ${u}`),T}let d=[...new Set(t.map(T=>H(T.rowId)))],f=[...new Set(t.map(T=>T.column))],m=L(e),E=new Map,y=ze(d,{kind:"rowid"});for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT), ${f.map(se).join(", ")} FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[]){let O=new Map;f.forEach((D,p)=>O.set(D,K($[p*2+1],$[p*2+2],`${e}.${D}`,{textEncoding:s}))),E.set(String(H($[0])),O)}}let g=[],S=t.map(T=>{let A=H(T.rowId),$=E.get(String(A));if(!$)throw new Error(`Cannot update ${e}.${T.column}: row ${T.rowId} no longer exists`);let O=$.get(T.column);if(!O)throw new Error(`Cannot update ${e}.${T.column}: cell state is unavailable`);let D=O.value,p=gn(T.value,D,T.operation??"set");if(!i&&p.operation==="json_patch"){let b=to(D,p.value);Ye(b,a)}return g.push({rowId:A,columnName:T.column,priorValue:D,newValue:p.value,priorState:O,operation:p.operation}),{...T,rowId:A,value:p.value,operation:p.operation}});for(let T of S){let A=C(T.column),O=T.operation==="json_patch"?`UPDATE ${m} SET ${A} = json_patch(COALESCE(${A}, '{}'), ?) WHERE rowid = ?`:`UPDATE ${m} SET ${A} = ${ne(T.value)} WHERE rowid = ?`;h.run(O,P([T.value,T.rowId]))}let w=new Set;for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT) FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[])w.add(String(H($[0])))}if(d.some(T=>!w.has(String(T))))throw yt(e);let R=new Map;for(let T of y){let A=h.exec(`SELECT CAST(rowid AS TEXT), ${f.map(se).join(", ")} FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of A?.values??[]){let O=new Map;f.forEach((D,p)=>O.set(D,K($[p*2+1],$[p*2+2],`${e}.${D}`,{textEncoding:s}))),R.set(String(H($[0])),O)}}let I=g.map(T=>{let A=R.get(String(T.rowId))?.get(T.columnName);if(!A)throw yt(e);return{...T,postState:A}});return x(`RELEASE ${u}`),I}catch(c){throw W(u,"updateCellBatch"),c}}async function rf(e,t,n,r){if(z(e,"Table name"),z(t,"Column name"),!h)throw new Error("No database initialized");te("Column creation"),Pu(n);let o=`ALTER TABLE ${L(e)} ADD COLUMN ${C(t)} ${n}`;r!=null&&r!==""&&(o+=` DEFAULT ${Du(r)}`);let i=V("sp_add_column");x(`SAVEPOINT ${i}`);try{let a=await G();x(o),we(a,await G()),x(`RELEASE ${i}`)}catch(a){throw W(i,"addColumn"),a}}async function of(){if(!h)return!1;try{return h.exec("SELECT 1"),!0}catch{return!1}}async function sf(){throw new Error("Reload must be handled by the demo host so it can reinitialize from the original database source")}var Ia,ya,$u,so,ha,vu,ku,In,ao,h,Ea,Aa,Yr,ae,Cn,Nt,_t,xn,_a,lo,Na,tt,Pe,wa,Ku,ba,ed,td,Ba,Ma,nd,qa,Zr,Rn,Ra,xa,Ja=M(()=>{"use strict";_();Ft();ut();wi();fr();Y();yr();bs();xs();xr();vs();Nr();Ps();Vs();Et();pt();dn();Qs();zs();Zs();Fr();ia();Tn();fa();ma();ga();En();Ia=3e4,ya=8192,$u=1e3,so=16*1024*1024,ha=64*1024,vu="16 MiB (16,777,216 bytes)",ku=1024*1024*1024,In=2e3,ao=Symbol("history-replay-edit"),h=null,Ea=null,Aa=!1,Yr=Ia,ae=!1,Cn=null,Nt="memory",_t=0,xn=At,_a=Wr(void 0),lo=Dr,Na=Br,tt=null,Pe=new Set;wa=0;Ku=8;ba=100;ed=4*65536,td=65536,Ba=Object.freeze(["id","parent","notused","detail"]),Ma="SQLite returned an unsupported query plan.",nd=/^pragma\b/i;qa=/--[^\r\n]*|\/\*[\s\S]*?\*\/|'(?:[^']|'')*'|"(?:[^"]|"")*"|`(?:[^`]|``)*`|\[[^\]]*\]|[A-Za-z_\u0080-\uffff][A-Za-z_0-9$\u0080-\uffff]*|[^\s]/g;Zr=class{constructor(t=so){this.chunks=[],this.pending="",this.outputBytes=0,this.capBytes=t}append(t){if(this.outputBytes+=Jr(t),!Number.isSafeInteger(this.outputBytes)||this.outputBytes>this.capBytes)throw co(this.capBytes);let n=0;for(;n0&&t.charCodeAt(o-1)>=55296&&t.charCodeAt(o-1)<=56319&&t.charCodeAt(o)>=56320&&t.charCodeAt(o)<=57343&&r--,r===0){this.flush();continue}this.pending+=t.slice(n,n+r),n+=r,this.pending.length>=ha&&this.flush()}}flush(){this.pending.length>0&&(this.chunks.push(this.pending),this.pending="")}finish(){return this.flush(),this.chunks}};Rn=40;Ra=64;xa={initializeDatabase:Qu,runQuery:Xu,runConsole:ad,executeReadQuery:Gu,getCellMetadata:An,openCellReadSession:Vu,readCellChunk:Fu,closeCellReadSession:Wu,exportDatabase:ld,exportTable:cd,fetchTableData:bd,fetchTableCount:Td,fetchSchema:Cd,getTableInfo:mo,getImportTarget:Rd,getPragmas:Ad,setPragma:_d,updateCell:Nd,replaceOversizedCell:Od,insertRow:Ld,insertRowWithHistory:$d,importRows:Md,deleteRows:Vd,findDependentIndexes:Qa,deleteColumns:jd,createTable:Kd,getViewDefinition:Nn,validateViewDefinition:zd,previewViewDefinition:Xd,createView:Gd,editView:Yd,dropView:Jd,undoModification:ef,redoModification:tf,updateCellBatch:Ya,addColumn:rf,ping:of,refreshFile:sf};self.onmessage=async e=>{let t=e.data;if(!t||t.channel!=="rpc"||!t.content){console.warn("[Worker] Invalid message format",{valueType:t===null?"null":Array.isArray(t)?"array":typeof t,hasRpcChannel:t?.channel==="rpc",hasContent:!!t?.content});return}let{kind:n,messageId:r,targetMethod:o,payload:i}=t.content;if(n!=="invoke")return;if(typeof r!="string"||r.length===0||r.length>256){console.warn("[Worker] Invalid RPC correlation ID");return}let s=typeof o=="string"&&Object.prototype.hasOwnProperty.call(xa,o)?xa[o]:void 0;if(typeof s!="function"){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:`Unknown method: ${typeof o=="string"?o.slice(0,256):""}`}});return}if(!Array.isArray(i)){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:"Worker RPC payload must be an array"}});return}try{ju(o);let l=await s(...i),u={channel:"rpc",content:{kind:"response",messageId:r,success:!0,data:l}};if(o==="exportDatabase"&&l instanceof Uint8Array){let c=l.byteOffset===0&&l.byteLength===l.buffer.byteLength&&l.buffer instanceof ArrayBuffer?l:l.slice();u.content.data=c,self.postMessage(u,[c.buffer])}else self.postMessage(u)}catch(l){let u=Te(l);console.error("[Worker] Method error:",o,u);let c;try{c=oa(l)}catch{}self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:u,...c?{error:c}:{}}})}}});_();nr();await Promise.resolve().then(()=>(Ja(),af));await Fe.start();await Fe.flush();var po=ni();po.kind==="eof"&&tjs.exit(Jo);console.error(`[native-worker] shutting down: ${po.kind} -- ${po.error?.message??""}`);tjs.exit(Zo); +) SELECT * FROM ${c} LIMIT ${a}`,o)}let u=V("sp_preview_view");x(`SAVEPOINT ${u}`);try{let c=await G();typeof s=="string"&&x(`DROP VIEW ${oe(e)}`),x(ct(e,i,l)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),we(c,await G());let d=Gr(`SELECT * FROM ${oe(e)} LIMIT ${a}`,o);return x(`ROLLBACK TO ${u}`),x(`RELEASE ${u}`),d}catch(c){throw W(u,"previewViewDefinition"),c}}async function Gd(e,t){if(z(e,"View name"),!h)throw new Error("No database initialized");te("View creation");let n=Ee(t),r=V("sp_create_view");x(`SAVEPOINT ${r}`);try{let o=await G();x(ct(e,n)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`);let i=await On(e);return we(o,await G()),x(`RELEASE ${r}`),i}catch(o){throw W(r,"createView"),o}}async function Yd(e,t,n=!0,r,o){if(!h)throw new Error("No database initialized");te("View editing");let i=Ee(t),a=V("sp_edit_view");x(`SAVEPOINT ${a}`);try{let s=await On(e);Qt(s),Kt(r,s.sql,o,s.triggers);let l=await G();if(x(`DROP VIEW ${oe(e)}`),x(ct(e,i,s.columnListSql,s.columns)),ot(`EXPLAIN SELECT * FROM ${oe(e)}`),n){let d=(h.exec(`PRAGMA main.table_info(${C(e)})`)[0]?.values??[]).map(f=>{if(typeof f[1]!="string")throw new Error(`SQLite returned invalid column metadata for view ${e}`);return f[1]});pi(s.triggers,d);for(let f of s.triggers)x(cr(f))}let u=await On(e);return we(l,await G()),x(`RELEASE ${a}`),{before:s,after:u}}catch(s){throw W(a,"editView"),s}}async function Jd(e,t,n){if(!h)throw new Error("No database initialized");te("View deletion");let r=V("sp_drop_view");x(`SAVEPOINT ${r}`);try{let o=await za(e,!0);Qt(o),Kt(t,o.sql,n,o.triggers);let i=await G();return x(`DROP VIEW ${oe(e)}`),we(i,await G()),x(`RELEASE ${r}`),o}catch(o){throw W(r,"dropView"),o}}async function et(e,t,n){te("View history replay");let r=V("sp_restore_view");x(`SAVEPOINT ${r}`);try{let o=await Ka(e,!0);o&&Qt(o),hi(t,o);let i=await G();if(o&&x(`DROP VIEW ${oe(e)}`),n){x(n.sql),ot(`EXPLAIN SELECT * FROM ${oe(n.identifier)}`);for(let a of n.triggers)x(cr(a))}we(i,await G()),x(`RELEASE ${r}`)}catch(o){throw W(r,"restoreViewDefinition"),o}}function vn(){let e=h.exec("SELECT changes()",void 0,{useBigInt:!0})[0]?.values?.[0]?.[0],t=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(t)||t<0)throw new Error("SQLite returned an invalid changes() count");return t}async function io(e,t){if(!Array.isArray(t)||t.length===0)throw new J;t.forEach(xt);let n=await le(e),r=V("sp_history_delete_rows");x(`SAVEPOINT ${r}`);try{De("DELETE",e);for(let o of t){let i=Q(o.rowId,n),a=Lr(o,ne);if(h.run(`DELETE FROM ${L(e)} WHERE (${i.sql}) AND (${a.sql})`,P([...i.params,...a.params])),vn()!==1)throw new _e(e)}x(`RELEASE ${r}`)}catch(o){throw W(r,"deleteRowHistorySnapshots"),o}}async function so(e,t){if(!Array.isArray(t)||t.length===0)throw new J;let n=await le(e),r=t.map(i=>({snapshot:i,states:xt(i),writes:ks(i,ne)})),o=V("sp_history_restore_rows");x(`SAVEPOINT ${o}`);try{for(let i of r){De("INSERT",e,i.states.map(l=>l.column));let a=Q(i.snapshot.rowId,n);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE ${a.sql} LIMIT 1`,P(a.params))[0]?.values.length??0)!==0)throw new _e(e)}for(let i of r){let a=i.writes.map(f=>f.column),s=i.writes.map(f=>f.write.sql),l=i.writes.flatMap(f=>f.write.params);if(n.kind==="rowid"&&!a.some(f=>f.toLowerCase()==="rowid")&&(a.unshift("rowid"),s.unshift(ne(i.snapshot.rowId)),l.unshift(i.snapshot.rowId)),h.run(`INSERT INTO ${L(e)} (${a.map(C).join(", ")}) VALUES (${s.join(", ")})`,P(l)),vn()!==1)throw new _e(e);let u=Q(i.snapshot.rowId,n),c=Lr(i.snapshot,ne);if((h.exec(`SELECT 1 FROM ${L(e)} WHERE (${u.sql}) AND (${c.sql}) LIMIT 2`,P([...u.params,...c.params]))[0]?.values.length??0)!==1)throw new _e(e)}x(`RELEASE ${o}`)}catch(i){throw W(o,"restoreRowHistorySnapshots"),i}}function Zd(e){let t=e.affectedCells??(e.targetRowId!==void 0&&e.targetColumn?[{rowId:e.targetRowId,newRowId:e.newTargetRowId,columnName:e.targetColumn,newValue:e.newValue,operation:e.operation,priorState:e.priorState,postState:e.postState}]:[]);if(t.length===0)throw new Ct;return t.map(n=>(Rt(n.priorState),Rt(n.postState),n))}async function Ga(e,t,n){if(t.undoPolicy==="barrier")throw new Error("Forward-only cell history barriers cannot be replayed");let r=Zd(t),o=r.some(c=>ie(c.rowId));if(o&&!r.every(c=>ie(c.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let i=await le(e);if(o&&i.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);if(!o&&i.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let a=Be(),s=new Map;for(let c of r){let d=s.get(c.rowId)??[];if(d.some(f=>He(f.columnName,c.columnName)))throw new Error(`Cell history for ${e} contains the same column more than once`);d.push(c),s.set(c.rowId,d)}let l=[...s.entries()];n==="undo"&&r.some(c=>c.newRowId!==void 0&&c.newRowId!==c.rowId)&&l.reverse();let u=V("sp_replay_cell_history");x(`SAVEPOINT ${u}`);try{Ot(e,r.map(c=>c.columnName),i.kind==="rowid");for(let[c,d]of l){if(new Set(d.map(p=>p.newRowId??p.rowId)).size!==1)throw new Error(`Cell history for ${e} has inconsistent post-update identities`);let m=d[0].newRowId??c,E=n==="undo"?m:c,y=n==="undo"?c:m,g=Q(E,i),S=d.map(p=>se(p.columnName)),w=h.exec(`SELECT ${S.join(", ")} FROM ${L(e)} WHERE ${g.sql} LIMIT 2`,P(g.params),{useBigInt:!0})[0];if((w?.values.length??0)!==1)throw new fe(e,d.map(p=>p.columnName));let R=d.map((p,b)=>K(w.values[0][b*2],w.values[0][b*2+1],`${e}.${p.columnName}`,{textEncoding:a})),I=d.map((p,b)=>{let N=n==="undo"?p.postState:p.priorState,k=n==="undo"?p.priorState:p.postState,U=R[b];if(p.operation!=="json_patch"){if(!Nr(U,N))throw new fe(e,[p.columnName]);return k}if(U.storageClass!==N.storageClass||p.newValue===void 0)throw new fe(e,[p.columnName]);let j=Ls(U.value,p.newValue,p.priorState.value,p.postState.value,n);if(j.kind==="conflict")throw new fe(e,[p.columnName]);return Object.is(j.value,k.value)?k:K("text",j.value,`${e}.${p.columnName} JSON replay`)}),T=I.map(p=>hn(p,ne)),_=R.map((p,b)=>En(d[b].columnName,p,ne));if(h.run(`UPDATE ${L(e)} SET ${d.map((p,b)=>`${C(p.columnName)} = ${T[b].sql}`).join(", ")} WHERE ${g.sql} AND `+_.map(p=>`(${p.sql})`).join(" AND "),P([...T.flatMap(p=>p.params),...g.params,..._.flatMap(p=>p.params)])),vn()!==1)throw new fe(e,d.map(p=>p.columnName));let $=Q(y,i),O=h.exec(`SELECT ${S.join(", ")} FROM ${L(e)} WHERE ${$.sql} LIMIT 2`,P($.params),{useBigInt:!0})[0];if((O?.values.length??0)!==1)throw new fe(e,d.map(p=>p.columnName));if(!I.every((p,b)=>Nr(p,K(O.values[0][b*2],O.values[0][b*2+1],`${e}.${d[b].columnName}`,{textEncoding:a}))))throw new fe(e,d.map(p=>p.columnName))}x(`RELEASE ${u}`)}catch(c){throw W(u,"replayCellHistory"),c}}async function ef(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,newTargetRowId:s,targetColumn:l,priorValue:u,newValue:c,operation:d,deletedRows:f,insertedRow:m}=e;if(n)switch(t){case"cell_update":await Ga(n,e,"undo");return;case"row_insert":if(e.importedRows){await io(n,Ha(e.importedRows).reverse());return}if(!m||a===void 0)throw new J;if(typeof m.rowId!=typeof a||String(m.rowId)!==String(a))throw new J;await io(n,[m]);return;case"row_delete":{if(!f||f.length===0)throw new J;await so(n,f);return}case"view_create":if(o)await et(n,o,null);else throw new Error("Cannot undo view_create: missing view definition");return;case"view_edit":if(r&&o)await et(n,o,r);else throw new Error("Cannot undo view_edit: missing view definition");return;case"view_drop":if(r)await et(n,null,r);else throw new Error("Cannot undo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be undone: this operation is recorded as a history barrier, not a replayable change`)}}async function tf(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,targetColumn:s,newValue:l,operation:u,rowData:c,affectedRowIds:d,insertedRow:f,deletedRows:m}=e;if(n)switch(t){case"cell_update":await Ga(n,e,"redo");return;case"row_insert":{if(e.importedRows){await so(n,Ha(e.importedRows));return}if(!f)throw new J;await so(n,[f]);return}case"row_delete":if(!m||m.length===0)throw new J;await io(n,m);return;case"view_create":if(o)await et(n,null,o);else throw new Error("Cannot redo view_create: missing view definition");return;case"view_edit":if(r&&o)await et(n,r,o);else throw new Error("Cannot redo view_edit: missing view definition");return;case"view_drop":if(r)await et(n,r,null);else throw new Error("Cannot redo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be redone: this operation is recorded as a history barrier, not a replayable change`)}}function nf(e,t){let n=new Map;for(let r of t){z(r.column,"Column name");let o;ie(r.rowId)?(Xi(r.rowId),o=`primary-key:${r.rowId}`):o=`rowid:${String(H(r.rowId))}`;let i=n.get(o)??[];if(i.some(a=>He(a,r.column)))throw new Error(`Batch update for ${e} contains a duplicate row identity/column target: ${String(r.rowId)} / ${r.column}`);i.push(r.column),n.set(o,i)}}async function Ya(e,t,n,r,o){if(t.forEach(c=>ve(c.rowId)),!h)throw new Error("No database initialized");if(te("Batch cell updates"),t.length===0)return[];nf(e,t);let i=o===lo,a=i?0:Je(t.map(c=>c.value),r),s=Be();if(t.some(c=>ie(c.rowId))){if(!t.every(f=>ie(f.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let c=await le(e);if(c.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let d=V("sp_update_pk_batch");x(`SAVEPOINT ${d}`);try{if(Ot(e,t.map(E=>E.column),!1),!i&&r!==void 0)for(let E of t){let y=await _n({table:e,rowId:E.rowId,column:E.column});if((y.storageClass==="text"||y.storageClass==="blob")&&y.byteLength>a)throw new Ge(e,E.column,y.storageClass,y.byteLength,a)}let f=new Map;for(let E of t){let y=f.get(E.rowId)??[];y.push(E),f.set(E.rowId,y)}let m=[];for(let[E,y]of f){let g=Q(E,c),S=[...new Set(y.map(p=>p.column))];if(S.length!==y.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let w=h.exec(`SELECT ${S.map(se).join(", ")} FROM ${L(e)} WHERE ${g.sql} LIMIT 2`,P(g.params),{useBigInt:!0})[0];if((w?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let R=y.map((p,b)=>{let N=K(w.values[0][b*2],w.values[0][b*2+1],`${e}.${p.column}`,{textEncoding:s}),k=N.value,U=yn(p.value,k,p.operation??"set"),j=U.operation==="json_patch"?no(k,U.value):U.value;return!i&&U.operation==="json_patch"&&Ye(j,a),{update:p,priorValue:k,priorState:N,prepared:U,storedValue:j}}),I=R.map(({update:p,storedValue:b})=>`${C(p.column)} = ${ne(b)}`).join(", ");if(h.run(`UPDATE ${L(e)} SET ${I} WHERE ${g.sql}`,P([...R.map(p=>p.storedValue),...g.params])),vn()!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let T=[];for(let p of R)c.columns.findIndex(N=>N.identifier===p.update.column)>=0&&T.push({column:p.update.column,value:p.storedValue});let _=Sr(E,c,T),$=$n(e,c,Q(_,c),to(e)),O=Q($,c),D=h.exec(`SELECT ${S.map(se).join(", ")} FROM ${L(e)} WHERE ${O.sql} LIMIT 2`,P(O.params),{useBigInt:!0})[0];if((D?.values.length??0)!==1)throw to(e);for(let[p,b]of R.entries())m.push({rowId:E,newRowId:$,columnName:b.update.column,priorValue:b.priorValue,newValue:b.prepared.value,priorState:b.priorState,postState:K(D.values[0][p*2],D.values[0][p*2+1],`${e}.${b.update.column}`,{textEncoding:s}),operation:b.prepared.operation})}return x(`RELEASE ${d}`),m}catch(f){throw W(d,"updatePrimaryKeyCellBatch"),f}}if((await le(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let u=V("sp_update_cell_batch");x(`SAVEPOINT ${u}`);try{if(!i&&r!==void 0)for(let T of t){let _=await _n({table:e,rowId:T.rowId,column:T.column});if((_.storageClass==="text"||_.storageClass==="blob")&&_.byteLength>a)throw new Ge(e,T.column,_.storageClass,_.byteLength,a)}let c=fo(e);if(Ot(e,t.map(T=>T.column)),c!==void 0&&t.some(T=>He(T.column,c))){let T=Sd(e,c,t,a,i);return x(`RELEASE ${u}`),T}let d=[...new Set(t.map(T=>H(T.rowId)))],f=[...new Set(t.map(T=>T.column))],m=L(e),E=new Map,y=ze(d,{kind:"rowid"});for(let T of y){let _=h.exec(`SELECT CAST(rowid AS TEXT), ${f.map(se).join(", ")} FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of _?.values??[]){let O=new Map;f.forEach((D,p)=>O.set(D,K($[p*2+1],$[p*2+2],`${e}.${D}`,{textEncoding:s}))),E.set(String(H($[0])),O)}}let g=[],S=t.map(T=>{let _=H(T.rowId),$=E.get(String(_));if(!$)throw new Error(`Cannot update ${e}.${T.column}: row ${T.rowId} no longer exists`);let O=$.get(T.column);if(!O)throw new Error(`Cannot update ${e}.${T.column}: cell state is unavailable`);let D=O.value,p=yn(T.value,D,T.operation??"set");if(!i&&p.operation==="json_patch"){let b=no(D,p.value);Ye(b,a)}return g.push({rowId:_,columnName:T.column,priorValue:D,newValue:p.value,priorState:O,operation:p.operation}),{...T,rowId:_,value:p.value,operation:p.operation}});for(let T of S){let _=C(T.column),O=T.operation==="json_patch"?`UPDATE ${m} SET ${_} = json_patch(COALESCE(${_}, '{}'), ?) WHERE rowid = ?`:`UPDATE ${m} SET ${_} = ${ne(T.value)} WHERE rowid = ?`;h.run(O,P([T.value,T.rowId]))}let w=new Set;for(let T of y){let _=h.exec(`SELECT CAST(rowid AS TEXT) FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of _?.values??[])w.add(String(H($[0])))}if(d.some(T=>!w.has(String(T))))throw yt(e);let R=new Map;for(let T of y){let _=h.exec(`SELECT CAST(rowid AS TEXT), ${f.map(se).join(", ")} FROM ${m} WHERE ${T.sql}`,P(T.params),{useBigInt:!0})[0];for(let $ of _?.values??[]){let O=new Map;f.forEach((D,p)=>O.set(D,K($[p*2+1],$[p*2+2],`${e}.${D}`,{textEncoding:s}))),R.set(String(H($[0])),O)}}let I=g.map(T=>{let _=R.get(String(T.rowId))?.get(T.columnName);if(!_)throw yt(e);return{...T,postState:_}});return x(`RELEASE ${u}`),I}catch(c){throw W(u,"updateCellBatch"),c}}async function rf(e,t,n,r){if(z(e,"Table name"),z(t,"Column name"),!h)throw new Error("No database initialized");te("Column creation"),Pu(n);let o=`ALTER TABLE ${L(e)} ADD COLUMN ${C(t)} ${n}`;r!=null&&r!==""&&(o+=` DEFAULT ${Du(r)}`);let i=V("sp_add_column");x(`SAVEPOINT ${i}`);try{let a=await G();x(o),we(a,await G()),x(`RELEASE ${i}`)}catch(a){throw W(i,"addColumn"),a}}async function of(){if(!h)return!1;try{return h.exec("SELECT 1"),!0}catch{return!1}}async function sf(){throw new Error("Reload must be handled by the demo host so it can reinitialize from the original database source")}var Ia,ya,$u,ao,ha,vu,ku,An,lo,h,Ea,Aa,Jr,ae,Rn,Nt,_t,In,_a,co,Na,tt,Pe,wa,Ku,ba,ed,td,Ba,Ma,nd,qa,eo,xn,Ra,xa,Ja=M(()=>{"use strict";A();Ft();ut();Si();mr();Y();hr();bs();xs();Ir();vs();Or();Ps();Vs();Et();pt();fn();Qs();zs();Zs();Wr();ia();Cn();fa();ma();ga();wn();Ia=3e4,ya=8192,$u=1e3,ao=16*1024*1024,ha=64*1024,vu="16 MiB (16,777,216 bytes)",ku=1024*1024*1024,An=2e3,lo=Symbol("history-replay-edit"),h=null,Ea=null,Aa=!1,Jr=Ia,ae=!1,Rn=null,Nt="memory",_t=0,In=At,_a=jr(void 0),co=Br,Na=Mr,tt=null,Pe=new Set;wa=0;Ku=8;ba=100;ed=4*65536,td=65536,Ba=Object.freeze(["id","parent","notused","detail"]),Ma="SQLite returned an unsupported query plan.",nd=/^pragma\b/i;qa=/--[^\r\n]*|\/\*[\s\S]*?\*\/|'(?:[^']|'')*'|"(?:[^"]|"")*"|`(?:[^`]|``)*`|\[[^\]]*\]|[A-Za-z_\u0080-\uffff][A-Za-z_0-9$\u0080-\uffff]*|[^\s]/g;eo=class{constructor(t=ao){this.chunks=[],this.pending="",this.outputBytes=0,this.capBytes=t}append(t){if(this.outputBytes+=Zr(t),!Number.isSafeInteger(this.outputBytes)||this.outputBytes>this.capBytes)throw uo(this.capBytes);let n=0;for(;n0&&t.charCodeAt(o-1)>=55296&&t.charCodeAt(o-1)<=56319&&t.charCodeAt(o)>=56320&&t.charCodeAt(o)<=57343&&r--,r===0){this.flush();continue}this.pending+=t.slice(n,n+r),n+=r,this.pending.length>=ha&&this.flush()}}flush(){this.pending.length>0&&(this.chunks.push(this.pending),this.pending="")}finish(){return this.flush(),this.chunks}};xn=40;Ra=64;xa={initializeDatabase:Qu,runQuery:Xu,runConsole:ad,executeReadQuery:Gu,getCellMetadata:_n,openCellReadSession:Vu,readCellChunk:Fu,closeCellReadSession:Wu,exportDatabase:ld,exportTable:cd,fetchTableData:bd,fetchTableCount:Td,fetchSchema:Cd,getTableInfo:po,getImportTarget:Rd,getPragmas:Ad,setPragma:_d,updateCell:Nd,replaceOversizedCell:Od,insertRow:Ld,insertRowWithHistory:$d,importRows:Md,deleteRows:Vd,findDependentIndexes:Qa,deleteColumns:jd,createTable:Kd,getViewDefinition:On,validateViewDefinition:zd,previewViewDefinition:Xd,createView:Gd,editView:Yd,dropView:Jd,undoModification:ef,redoModification:tf,updateCellBatch:Ya,addColumn:rf,ping:of,refreshFile:sf};self.onmessage=async e=>{let t=e.data;if(!t||t.channel!=="rpc"||!t.content){console.warn("[Worker] Invalid message format",{valueType:t===null?"null":Array.isArray(t)?"array":typeof t,hasRpcChannel:t?.channel==="rpc",hasContent:!!t?.content});return}let{kind:n,messageId:r,targetMethod:o,payload:i}=t.content;if(n!=="invoke")return;if(typeof r!="string"||r.length===0||r.length>256){console.warn("[Worker] Invalid RPC correlation ID");return}let s=typeof o=="string"&&Object.prototype.hasOwnProperty.call(xa,o)?xa[o]:void 0;if(typeof s!="function"){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:`Unknown method: ${typeof o=="string"?o.slice(0,256):""}`}});return}if(!Array.isArray(i)){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:"Worker RPC payload must be an array"}});return}try{ju(o);let l=await s(...i),u={channel:"rpc",content:{kind:"response",messageId:r,success:!0,data:l}};if(o==="exportDatabase"&&l instanceof Uint8Array){let c=l.byteOffset===0&&l.byteLength===l.buffer.byteLength&&l.buffer instanceof ArrayBuffer?l:l.slice();u.content.data=c,self.postMessage(u,[c.buffer])}else self.postMessage(u)}catch(l){let u=Te(l);console.error("[Worker] Method error:",o,u);let c;try{c=oa(l)}catch{}self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:u,...c?{error:c}:{}}})}}});A();rr();await Promise.resolve().then(()=>(Ja(),af));await Fe.start();await Fe.flush();var go=ri();go.kind==="eof"&&tjs.exit(Zo);console.error(`[native-worker] shutting down: ${go.kind} -- ${go.error?.message??""}`);tjs.exit(ei); diff --git a/viewer-dist/sql-wasm.js b/viewer-dist/sql-wasm.js index 63714f0..7b99b37 100644 --- a/viewer-dist/sql-wasm.js +++ b/viewer-dist/sql-wasm.js @@ -70,110 +70,111 @@ var initSqlJs = function (moduleConfig) { // The emcc-generated code and shell-post.js code goes below, // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort var l;l||=typeof Module != 'undefined' ? Module : {};var da=!!globalThis.window,ea=!!globalThis.WorkerGlobalScope,fa=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type; -l.onRuntimeInitialized=function(){function a(e,g){Fb(e,g instanceof Error?g.message:String(g),-1)}function b(e,g){switch(typeof g){case "boolean":Ec(e,g?1:0);break;case "number":Fc(e,g);break;case "string":Gc(e,g,p(g),-1);break;case "object":if(null===g)Gb(e);else if(null!=g.length){var k=ha(g.length);w.set(g,k);Hc(e,k,g.length,-1);ja(k)}else Fb(e,"Wrong API use : tried to return a value of an unknown type ("+g+").",-1);break;default:Gb(e)}}function c(e,g){for(var k=[],n=0;n>>0);if(null!=e){var g=this.filename,k="/",n=g;k&&(k="string"==typeof k?k:la(k),n=g?ma(k+"/"+g):k);g=na(!0,!0);n=oa(n,g);if(e){if("string"==typeof e){k=Array(e.length);for(var q=0,r=e.length;qn||!Number.isSafeInteger(n))return-1;try{if(e){a:{var r=e.chunkSize,y=e.cb-n;var t=0;var F=n;var D,I;for(y>k&&(y=k);ty-t&&(M=y-t);if(D=e.mb.get(Q))G.set(D.subarray(O,O+M),g+t);else{var J=e.nb-F;J>M&&(J=M);if(0J&&(I=I.subarray(0,J),ia=J);0J&&G.fill(0,g+t+J,g+t+M)}t+=M;F+=M}ra=t}return ra}t=q.read(n,k);if(null==t)return 0;F=t.length;F>k&&(t=t.subarray(0,k),F=k);G.set(t,g);return F}catch(La){return-1}}function A(e){var g=aa[e];e=ba[e];if(!g)return-1;if(e)return e.cb;try{var k=g.size()}catch(n){return-1}return"number"!==typeof k||0>k||!Number.isSafeInteger(k)?-1:k}function N(e,g){var k=e.chunkSize,n=[];g=g?n.push(r):y+k>g&&q.fill(0,g-y)}),n.forEach(function(q){e.mb.delete(q)}), -gn||!Number.isSafeInteger(n)||0>k)return-1;try{for(var r=e.chunkSize,y=n,t=0,F,D,I,Q,O;tk-t&&(Q=k-t);O=e.mb.get(F);if(!O){O=new Uint8Array(r);if(Q=ca)){ca>ra.length&&(ca=ra.length);M=(J=ia.read(La,ca))?J.length:0;M>ca&&(J=J.subarray(0,ca),M=ca);if(Me.cb&&(e.cb=n+k);return 0}catch(Gd){return-1}}function Pc(e,g){e=ba[e];if(!e)return-1;g=Number(g);if(0>g||!Number.isSafeInteger(g))return-1;try{return N(e,g),0}catch(k){return-1}}function Mb(){throw Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");}function Nb(){var e,g,k;if(null===this.db)throw Error("Database closed");if(0===Ob(this.db))throw Error("cannot export a paged database while a transaction is open; COMMIT or ROLLBACK first"); -var n=ba[this.tb];var q=aa[this.tb];var r=n.chunkSize;var y=new Uint8Array(n.cb);for(e=0;en.cb-e&&(t=n.cb-e);if(g=n.mb.get(e/r))y.set(g.subarray(0,t),e);else if(g=n.nb-e,g>t&&(g=t),0g&&(k=k.subarray(0,g));if(!k||k.lengthNumber.MAX_SAFE_INTEGER)throw"rowId too big to fit inside a Number";e(g,n,q,Number(r))},"viiiij");Ub(this.db,this.ib,0);return this};var aa={},ba={},Na=1,sa=null,Oa=null,ib=null,Xb=null;m.openPaged=function(e){if(!e||"function"!==typeof e.read||"function"!==typeof e.size)throw Error("openPaged requires a hostIo object with read(offset, length) and size() functions"); -null===sa&&(sa=H(x,"iiiij"),Oa=H(A,"di"));var g=Vb(sa,Oa);if(0!==g)throw Error("could not register the sqljs_host VFS (error code "+g+")");var k=Na;Na+=1;aa[k]=e;try{g=hd(k,L);var n=B(L,"i32");if(0!==g){var q=0!==n?hb(n):"SQLite error "+g;0!==n&&xa(n);throw Error(q);}}catch(r){throw delete aa[k],r;}e=Object.create(m.prototype);e.db=n;e.filename=null;e.tb=k;e.lb={};e.$a=new Map;Ka(e.db);e.Eb=Mb;e["export"]=Mb;e.close=Ma;e.close=Ma;return e};m.openPagedWritable=function(e){if(!e||"function"!==typeof e.read|| -"function"!==typeof e.size)throw Error("openPagedWritable requires a hostIo object with read(offset, length) and size() functions");var g=e.size();if("number"!==typeof g||0>g||!Number.isSafeInteger(g))throw Error("hostIo.size() must return a non-negative byte count");null===sa&&(sa=H(x,"iiiij"),Oa=H(A,"di"));null===ib&&(ib=H(Lb,"iiiij"),Xb=H(Pc,"iij"));var k=Vb(sa,Oa);0===k&&(k=jd(ib,Xb));if(0!==k)throw Error("could not register the sqljs_host VFS (error code "+k+")");var n=Na;Na+=1;aa[n]=e;a:{try{var q= -e.read(16,2)}catch(t){e=4096;break a}!q||2>q.length?e=4096:(e=256*q[0]+q[1],e=1===e?65536:512<=e&&32768>=e&&0===(e&e-1)?e:4096)}ba[n]={chunkSize:e,mb:new Map,cb:g,nb:g};try{k=kd(n,L);var r=B(L,"i32");if(0!==k){var y=0!==r?hb(r):"SQLite error "+k;0!==r&&xa(r);throw Error(y);}}catch(t){throw delete aa[n],delete ba[n],t;}k=Object.create(m.prototype);k.db=r;k.filename=null;k.tb=n;k.lb={};k.$a=new Map;Ka(k.db);k.Eb=Nb;k["export"]=Nb;k.xc=Pb;k.exportPagedWritableOverlay=Pb;k.close=Ma;k.close=Ma;return k}; -d.prototype.bind=d.prototype.bind;d.prototype.step=d.prototype.step;d.prototype.get=d.prototype.get;d.prototype.getColumnNames=d.prototype.Pb;d.prototype.getAsObject=d.prototype.Ob;d.prototype.getSQL=d.prototype.ic;d.prototype.getNormalizedSQL=d.prototype.ec;d.prototype.run=d.prototype.run;d.prototype.reset=d.prototype.reset;d.prototype.freemem=d.prototype.freemem;d.prototype.free=d.prototype.fb;h.prototype.next=h.prototype.next;h.prototype.getRemainingSQL=h.prototype.fc;m.prototype.run=m.prototype.run; -m.prototype.exec=m.prototype.exec;m.prototype.each=m.prototype.cc;m.prototype.prepare=m.prototype.Ib;m.prototype.iterateStatements=m.prototype.kc;m.prototype["export"]=m.prototype.Eb;m.prototype.close=m.prototype.close;m.prototype.handleError=m.prototype.handleError;m.prototype.getRowsModified=m.prototype.hc;m.prototype.progress_handler=m.prototype.nc;m.prototype.interrupt=m.prototype.jc;m.prototype.create_function=m.prototype.ac;m.prototype.create_aggregate=m.prototype.$b;m.prototype.updateHook= -m.prototype.qc;l.Database=m};var Da="./this.program",Ea=(a,b)=>{throw b;},Fa=globalThis.document?.currentScript?.src;"undefined"!=typeof __filename?Fa=__filename:ea&&(Fa=self.location.href);var Ga="",Ha,Ia; -if(fa){var fs=require("node:fs");Ga=__dirname+"/";Ia=a=>{a=Ja(a)?new URL(a):a;return fs.readFileSync(a)};Ha=async a=>{a=Ja(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1{process.exitCode=a;throw b;}}else if(da||ea){try{Ga=(new URL(".",Fa)).href}catch{}ea&&(Ia=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}); -Ha=async a=>{if(Ja(a))return new Promise((c,d)=>{var f=new XMLHttpRequest;f.open("GET",a,!0);f.responseType="arraybuffer";f.onload=()=>{200==f.status||0==f.status&&f.response?c(f.response):d(f.status)};f.onerror=d;f.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}var Pa=console.log.bind(console),Qa=console.error.bind(console),Ra,Sa=!1,Ta,Ja=a=>a.startsWith("file://"),w,G,Ua,K,P,Va,Wa,R; -function Xa(){var a=Ya.buffer;w=new Int8Array(a);Ua=new Int16Array(a);G=new Uint8Array(a);new Uint16Array(a);K=new Int32Array(a);P=new Uint32Array(a);Va=new Float32Array(a);Wa=new Float64Array(a);R=new BigInt64Array(a);new BigUint64Array(a)}function Za(a){l.onAbort?.(a);a="Aborted("+a+")";Qa(a);Sa=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}var $a; -async function ab(a){if(!Ra)try{var b=await Ha(a);return new Uint8Array(b)}catch{}if(a==$a&&Ra)a=new Uint8Array(Ra);else if(Ia)a=Ia(a);else throw"both async and sync fetching of the wasm failed";return a}async function bb(a,b){try{var c=await ab(a);return await WebAssembly.instantiate(c,b)}catch(d){Qa(`failed to asynchronously prepare wasm: ${d}`),Za(d)}} -async function cb(a){var b=$a;if(!Ra&&!Ja(b)&&!fa)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){Qa(`wasm streaming compile failed: ${d}`),Qa("falling back to ArrayBuffer instantiation")}return bb(b,a)}class db{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var eb=a=>{for(;0{var a=l.preRun.shift();jb.push(a)},lb=0,mb=null; -function B(a,b="i8"){b.endsWith("*")&&(b="*");switch(b){case "i1":return w[a];case "i8":return w[a];case "i16":return Ua[a>>1];case "i32":return K[a>>2];case "i64":return R[a>>3];case "float":return Va[a>>2];case "double":return Wa[a>>3];case "*":return P[a>>2];default:Za(`invalid type for getValue: ${b}`)}}var nb=!0; -function za(a){var b="i32";b.endsWith("*")&&(b="*");switch(b){case "i1":w[a]=0;break;case "i8":w[a]=0;break;case "i16":Ua[a>>1]=0;break;case "i32":K[a>>2]=0;break;case "i64":R[a>>3]=BigInt(0);break;case "float":Va[a>>2]=0;break;case "double":Wa[a>>3]=0;break;case "*":P[a>>2]=0;break;default:Za(`invalid type for setValue: ${b}`)}} -var ob=new TextDecoder,pb=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},C=(a,b,c)=>a?ob.decode(G.subarray(a,pb(G,a,b,c))):"",qb=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},ma=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=qb(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},rb=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1); -a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},sb=a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],tb=()=>{if(fa){var a=require("node:crypto");return b=>a.randomFillSync(b)}return b=>crypto.getRandomValues(b)},ub=a=>{(ub=tb())(a)},vb=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=qb(b.split("/").filter(f=>!!f),!c).join("/");return(c?"/": -"")+b||"."},wb=a=>{var b=pb(a,0);return ob.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},xb=[],p=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},S=(a,b,c,d)=>{if(!(0=m){if(c>=d)break;b[c++]=m}else if(2047>=m){if(c+1>=d)break;b[c++]=192|m>>6;b[c++]=128|m&63}else if(65535>=m){if(c+2>=d)break;b[c++]=224|m>>12;b[c++]=128| -m>>6&63;b[c++]=128|m&63}else{if(c+3>=d)break;b[c++]=240|m>>18;b[c++]=128|m>>12&63;b[c++]=128|m>>6&63;b[c++]=128|m&63;h++}}b[c]=0;return c-f},yb=[];function zb(a,b){yb[a]={input:[],output:[],sb:b};Ab(a,Bb)} -var Bb={open(a){var b=yb[a.node.rdev];if(!b)throw new T(43);a.tty=b;a.seekable=!1},close(a){a.tty.sb.fsync(a.tty)},fsync(a){a.tty.sb.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.sb.Sb)throw new T(60);for(var f=0,h=0;h=a.node.Za)return 0;a=Math.min(a.node.Za-f,d);if(8=h||(h=Math.max(h,m*(1048576>m?2:1.125)>>>0),0!=m&&(h=Math.max(h,256)),m=a.Va,a.Va=new Uint8Array(h),0b)throw new T(28); -return b},zb(a,b,c,d,f){if(32768!==(a.node.mode&61440))throw new T(43);a=a.node.Va;if(f&2||!a||a.buffer!==w.buffer){f=!0;d=65536*Math.ceil(b/65536);var h=Yb(65536,d);h&&G.fill(0,h,h+d);d=h;if(!d)throw new T(48);if(a){if(0{var c=0;a&&(c|=365);b&&(c|=146);return c},Zb=null,$b={},ac=[],bc=1,cc=null,dc= -!1,ec=!0,fc={},T=class{name="ErrnoError";constructor(a){this.Xa=a}},gc=class{wb={};node=null;get flags(){return this.wb.flags}set flags(a){this.wb.flags=a}get position(){return this.wb.position}set position(a){this.wb.position=a}},hc=class{Ta={};Ua={};qb=null;constructor(a,b,c,d){a||=this;this.parent=a;this.kb=a.kb;this.id=bc++;this.name=b;this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146=== +l.onRuntimeInitialized=function(){function a(e,g){Fb(e,g instanceof Error?g.message:String(g),-1)}function b(e,g){switch(typeof g){case "boolean":Ec(e,g?1:0);break;case "number":Fc(e,g);break;case "string":g=d(g);Gc(e,g.ub,g.size,-1);q(g.ub);break;case "object":if(null===g)Gb(e);else if(null!=g.length){var h=ia(g.length);x.set(g,h);Hc(e,h,g.length,-1);q(h)}else Fb(e,"Wrong API use : tried to return a value of an unknown type ("+g+").",-1);break;default:Gb(e)}}function c(e,g){for(var h=[],m=0;m=m?g+=1:2047>=m?g+=2:65535>=m?g+=3:(g+=4,h+=1)}h=ia(g+1);if(!h)throw Error("Out of memory while copying a string");e=E(e,F,h,g+1);if(e!==g)throw q(h),Error("UTF-8 length mismatch: counted "+g+" bytes, wrote "+ +e);return{ub:h,size:g}}function f(e,g){this.Ya=e;this.db=g;this.Wa=1;this.Db=[];this.ob=null;this.vb=!1}function k(e){if(null===e.ob){e.ob=[];for(var g=Mc(e.Ya),h=0;h>>0);if(null!=e){var g=this.filename,h="/",m=g;h&&(h="string"==typeof h?h: +ka(h),m=g?la(h+"/"+g):h);g=ma(!0,!0);m=na(m,g);if(e){if("string"==typeof e){h=Array(e.length);for(var r=0,t=e.length;rm||!Number.isSafeInteger(m))return-1; +try{if(e){a:{var t=e.chunkSize,y=e.cb-m;var u=0;var G=m;var D,I;for(y>h&&(y=h);uy-u&&(M=y-u);if(D=e.mb.get(Q))F.set(D.subarray(O,O+M),g+u);else{var J=e.nb-G;J>M&&(J=M);if(0J&&(I=I.subarray(0,J),ha=J);0J&&F.fill(0,g+u+J,g+u+M)}u+=M;G+=M}pa=u}return pa}u=r.read(m,h);if(null==u)return 0;G=u.length;G>h&&(u=u.subarray(0,h),G=h);F.set(u,g);return G}catch(La){return-1}} +function N(e){var g=aa[e];e=ba[e];if(!g)return-1;if(e)return e.cb;try{var h=g.size()}catch(m){return-1}return"number"!==typeof h||0>h||!Number.isSafeInteger(h)?-1:h}function Lb(e,g){var h=e.chunkSize,m=[];g=g?m.push(t):y+h>g&&r.fill(0,g-y)}),m.forEach(function(r){e.mb.delete(r)}),gm||!Number.isSafeInteger(m)||0>h)return-1;try{for(var t=e.chunkSize,y=m, +u=0,G,D,I,Q,O;uh-u&&(Q=h-u);O=e.mb.get(G);if(!O){O=new Uint8Array(t);if(Q=ca)){ca>pa.length&&(ca=pa.length);M=(J=ha.read(La,ca))?J.length:0;M>ca&&(J=J.subarray(0,ca),M=ca);if(Me.cb&&(e.cb=m+h);return 0}catch(Hd){return-1}}function Qc(e,g){e=ba[e];if(!e)return-1; +g=Number(g);if(0>g||!Number.isSafeInteger(g))return-1;try{return Lb(e,g),0}catch(h){return-1}}function Mb(){throw Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");}function Nb(){var e,g,h;if(null===this.db)throw Error("Database closed");if(0===Ob(this.db))throw Error("cannot export a paged database while a transaction is open; COMMIT or ROLLBACK first");var m=ba[this.tb];var r=aa[this.tb];var t=m.chunkSize;var y=new Uint8Array(m.cb);for(e= +0;em.cb-e&&(u=m.cb-e);if(g=m.mb.get(e/t))y.set(g.subarray(0,u),e);else if(g=m.nb-e,g>u&&(g=u),0g&&(h=h.subarray(0,g));if(!h||h.lengthNumber.MAX_SAFE_INTEGER)throw"rowId too big to fit inside a Number";e(g,m,r,Number(t))},"viiiij");Ub(this.db,this.ib,0);return this};var aa={},ba={},Na=1,qa=null,Oa=null,ib=null,Xb=null;n.openPaged=function(e){if(!e||"function"!==typeof e.read||"function"!==typeof e.size)throw Error("openPaged requires a hostIo object with read(offset, length) and size() functions");null===qa&&(qa=K(A,"iiiij"),Oa=K(N,"di"));var g=Vb(qa,Oa);if(0!==g)throw Error("could not register the sqljs_host VFS (error code "+ +g+")");var h=Na;Na+=1;aa[h]=e;try{g=jd(h,L);var m=B(L,"i32");if(0!==g){var r=0!==m?hb(m):"SQLite error "+g;0!==m&&ya(m);throw Error(r);}}catch(t){throw delete aa[h],t;}e=Object.create(n.prototype);e.db=m;e.filename=null;e.tb=h;e.lb={};e.$a=new Map;Ka(e.db);e.Fb=Mb;e["export"]=Mb;e.close=Ma;e.close=Ma;return e};n.openPagedWritable=function(e){if(!e||"function"!==typeof e.read||"function"!==typeof e.size)throw Error("openPagedWritable requires a hostIo object with read(offset, length) and size() functions"); +var g=e.size();if("number"!==typeof g||0>g||!Number.isSafeInteger(g))throw Error("hostIo.size() must return a non-negative byte count");null===qa&&(qa=K(A,"iiiij"),Oa=K(N,"di"));null===ib&&(ib=K(Pc,"iiiij"),Xb=K(Qc,"iij"));var h=Vb(qa,Oa);0===h&&(h=kd(ib,Xb));if(0!==h)throw Error("could not register the sqljs_host VFS (error code "+h+")");var m=Na;Na+=1;aa[m]=e;a:{try{var r=e.read(16,2)}catch(u){e=4096;break a}!r||2>r.length?e=4096:(e=256*r[0]+r[1],e=1===e?65536:512<=e&&32768>=e&&0===(e&e-1)?e:4096)}ba[m]= +{chunkSize:e,mb:new Map,cb:g,nb:g};try{h=ld(m,L);var t=B(L,"i32");if(0!==h){var y=0!==t?hb(t):"SQLite error "+h;0!==t&&ya(t);throw Error(y);}}catch(u){throw delete aa[m],delete ba[m],u;}h=Object.create(n.prototype);h.db=t;h.filename=null;h.tb=m;h.lb={};h.$a=new Map;Ka(h.db);h.Fb=Nb;h["export"]=Nb;h.xc=Pb;h.exportPagedWritableOverlay=Pb;h.close=Ma;h.close=Ma;return h};f.prototype.bind=f.prototype.bind;f.prototype.step=f.prototype.step;f.prototype.get=f.prototype.get;f.prototype.getColumnNames=f.prototype.Qb; +f.prototype.getAsObject=f.prototype.Pb;f.prototype.getSQL=f.prototype.jc;f.prototype.getNormalizedSQL=f.prototype.fc;f.prototype.run=f.prototype.run;f.prototype.reset=f.prototype.reset;f.prototype.freemem=f.prototype.freemem;f.prototype.free=f.prototype.fb;p.prototype.next=p.prototype.next;p.prototype.getRemainingSQL=p.prototype.hc;n.prototype.run=n.prototype.run;n.prototype.exec=n.prototype.exec;n.prototype.each=n.prototype.dc;n.prototype.prepare=n.prototype.Jb;n.prototype.iterateStatements=n.prototype.lc; +n.prototype["export"]=n.prototype.Fb;n.prototype.close=n.prototype.close;n.prototype.handleError=n.prototype.handleError;n.prototype.getRowsModified=n.prototype.ic;n.prototype.progress_handler=n.prototype.oc;n.prototype.interrupt=n.prototype.kc;n.prototype.create_function=n.prototype.bc;n.prototype.create_aggregate=n.prototype.ac;n.prototype.updateHook=n.prototype.qc;l.Database=n};var Ca="./this.program",Da=(a,b)=>{throw b;},Ea=globalThis.document?.currentScript?.src; +"undefined"!=typeof __filename?Ea=__filename:ea&&(Ea=self.location.href);var Fa="",Ga,Ha; +if(fa){var fs=require("node:fs");Fa=__dirname+"/";Ha=a=>{a=Ia(a)?new URL(a):a;return fs.readFileSync(a)};Ga=async a=>{a=Ia(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1{process.exitCode=a;throw b;}}else if(da||ea){try{Fa=(new URL(".",Ea)).href}catch{}ea&&(Ha=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}); +Ga=async a=>{if(Ia(a))return new Promise((c,d)=>{var f=new XMLHttpRequest;f.open("GET",a,!0);f.responseType="arraybuffer";f.onload=()=>{200==f.status||0==f.status&&f.response?c(f.response):d(f.status)};f.onerror=d;f.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}var Ja=console.log.bind(console),Pa=console.error.bind(console),Qa,Ra=!1,Sa,Ia=a=>a.startsWith("file://"),x,F,Ta,P,R,Ua,Va,S; +function Wa(){var a=Xa.buffer;x=new Int8Array(a);Ta=new Int16Array(a);F=new Uint8Array(a);new Uint16Array(a);P=new Int32Array(a);R=new Uint32Array(a);Ua=new Float32Array(a);Va=new Float64Array(a);S=new BigInt64Array(a);new BigUint64Array(a)}function Ya(a){l.onAbort?.(a);a="Aborted("+a+")";Pa(a);Ra=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}var Za; +async function $a(a){if(!Qa)try{var b=await Ga(a);return new Uint8Array(b)}catch{}if(a==Za&&Qa)a=new Uint8Array(Qa);else if(Ha)a=Ha(a);else throw"both async and sync fetching of the wasm failed";return a}async function ab(a,b){try{var c=await $a(a);return await WebAssembly.instantiate(c,b)}catch(d){Pa(`failed to asynchronously prepare wasm: ${d}`),Ya(d)}} +async function bb(a){var b=Za;if(!Qa&&!Ia(b)&&!fa)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){Pa(`wasm streaming compile failed: ${d}`),Pa("falling back to ArrayBuffer instantiation")}return ab(b,a)}class cb{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var db=a=>{for(;0{var a=l.preRun.shift();fb.push(a)},kb=0,lb=null; +function B(a,b="i8"){b.endsWith("*")&&(b="*");switch(b){case "i1":return x[a];case "i8":return x[a];case "i16":return Ta[a>>1];case "i32":return P[a>>2];case "i64":return S[a>>3];case "float":return Ua[a>>2];case "double":return Va[a>>3];case "*":return R[a>>2];default:Ya(`invalid type for getValue: ${b}`)}}var mb=!0; +function wa(a){var b="i32";b.endsWith("*")&&(b="*");switch(b){case "i1":x[a]=0;break;case "i8":x[a]=0;break;case "i16":Ta[a>>1]=0;break;case "i32":P[a>>2]=0;break;case "i64":S[a>>3]=BigInt(0);break;case "float":Ua[a>>2]=0;break;case "double":Va[a>>3]=0;break;case "*":R[a>>2]=0;break;default:Ya(`invalid type for setValue: ${b}`)}} +var nb=new TextDecoder,ob=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},C=(a,b,c)=>a?nb.decode(F.subarray(a,ob(F,a,b,c))):"",pb=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},la=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=pb(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},qb=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1); +a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},rb=a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],sb=()=>{if(fa){var a=require("node:crypto");return b=>a.randomFillSync(b)}return b=>crypto.getRandomValues(b)},tb=a=>{(tb=sb())(a)},ub=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=pb(b.split("/").filter(f=>!!f),!c).join("/");return(c?"/": +"")+b||"."},vb=a=>{var b=ob(a,0);return nb.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},wb=[],xb=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},E=(a,b,c,d)=>{if(!(0=p){if(c>=d)break;b[c++]=p}else if(2047>=p){if(c+1>=d)break;b[c++]=192|p>>6;b[c++]=128|p&63}else if(65535>=p){if(c+2>=d)break;b[c++]=224|p>>12;b[c++]=128| +p>>6&63;b[c++]=128|p&63}else{if(c+3>=d)break;b[c++]=240|p>>18;b[c++]=128|p>>12&63;b[c++]=128|p>>6&63;b[c++]=128|p&63;k++}}b[c]=0;return c-f},yb=[];function zb(a,b){yb[a]={input:[],output:[],sb:b};Ab(a,Bb)} +var Bb={open(a){var b=yb[a.node.rdev];if(!b)throw new T(43);a.tty=b;a.seekable=!1},close(a){a.tty.sb.fsync(a.tty)},fsync(a){a.tty.sb.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.sb.Tb)throw new T(60);for(var f=0,k=0;k=a.node.Za)return 0;a=Math.min(a.node.Za-f,d);if(8=k||(k=Math.max(k,p*(1048576>p?2:1.125)>>>0),0!=p&&(k=Math.max(k,256)),p=a.Va,a.Va=new Uint8Array(k),0b)throw new T(28); +return b},Ab(a,b,c,d,f){if(32768!==(a.node.mode&61440))throw new T(43);a=a.node.Va;if(f&2||!a||a.buffer!==x.buffer){f=!0;d=65536*Math.ceil(b/65536);var k=Yb(65536,d);k&&F.fill(0,k,k+d);d=k;if(!d)throw new T(48);if(a){if(0{var c=0;a&&(c|=365);b&&(c|=146);return c},Zb=null,$b={},ac=[],bc=1,cc=null,dc= +!1,ec=!0,fc={},T=class{name="ErrnoError";constructor(a){this.Xa=a}},gc=class{xb={};node=null;get flags(){return this.xb.flags}set flags(a){this.xb.flags=a}get position(){return this.xb.position}set position(a){this.xb.position=a}},hc=class{Ta={};Ua={};qb=null;constructor(a,b,c,d){a||=this;this.parent=a;this.kb=a.kb;this.id=bc++;this.name=b;this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146=== (this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}}; -function W(a,b={}){if(!a)throw new T(44);b.Fb??(b.Fb=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(v=>!!v);for(var d=Zb,f="/",h=0;h>>0)%cc.length} +function W(a,b={}){if(!a)throw new T(44);b.Gb??(b.Gb=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(n=>!!n);for(var d=Zb,f="/",k=0;k>>0)%cc.length} function Wb(a){var b=ic(a.parent.id,a.name);if(cc[b]===a)cc[b]=a.rb;else for(b=cc[b];b;){if(b.rb===a){b.rb=a.rb;break}b=b.rb}}function Jb(a,b){var c=V(a.mode)?(c=jc(a,"x"))?c:a.Ta.lookup?0:2:54;if(c)throw new T(c);for(c=cc[ic(a.id,b)];c;c=c.rb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Ta.lookup(a,b)}function Ib(a,b,c,d){a=new hc(a,b,c,d);b=ic(a.parent.id,a.name);a.rb=cc[b];return cc[b]=a}function V(a){return 16384===(a&61440)} function kc(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b}function jc(a,b){if(ec)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0}function lc(a,b){if(!V(a.mode))return 54;try{return Jb(a,b),20}catch(c){}return jc(a,"wx")} -function mc(a,b,c){try{var d=Jb(a,b)}catch(f){return f.Xa}if(a=jc(a,"wx"))return a;if(c){if(!V(d.mode))return 54;if(d===d.parent||"/"===la(d))return 10}else if(V(d.mode))return 31;return 0}function nc(a){if(!a)throw new T(63);return a}function X(a){a=ac[a];if(!a)throw new T(8);return a}function oc(a,b=-1){a=Object.assign(new gc,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!ac[b])break a;throw new T(33);}a.fd=b;return ac[b]=a}function pc(a,b=-1){a=oc(a,b);a.Ua?.wc?.(a);return a} -function qc(a,b,c){var d=a?.Ua.eb;a=d?a:b;d??=b.Ta.eb;nc(d);d(a,c)}var Eb={open(a){a.Ua=$b[a.node.rdev].Ua;a.Ua.open?.(a)},gb(){throw new T(70);}};function Ab(a,b){$b[a]={Ua:b}}function rc(a,b){var c="/"===b;if(c&&Zb)throw new T(10);if(!c&&b){var d=W(b,{Fb:!1});b=d.path;d=d.node;if(d.qb)throw new T(10);if(!V(d.mode))throw new T(54);}b={type:a,Cc:{},Ub:b,lc:[]};a=a.kb(b);a.kb=b;b.root=a;c?Zb=a:d&&(d.qb=b,d.kb&&d.kb.lc.push(b))} -function sc(a,b,c){var d=W(a,{parent:!0}).node;a=sb(a);if(!a)throw new T(28);if("."===a||".."===a)throw new T(20);var f=lc(d,a);if(f)throw new T(f);if(!d.Ta.yb)throw new T(63);return d.Ta.yb(d,a,b,c)}function oa(a,b=438){return sc(a,b&4095|32768,0)}function Y(a,b=511){return sc(a,b&1023|16384,0)}function tc(a,b,c){"undefined"==typeof c&&(c=b,b=438);sc(a,b|8192,c)} -function uc(a,b){if(!vb(a))throw new T(44);var c=W(b,{parent:!0}).node;if(!c)throw new T(44);b=sb(b);var d=lc(c,b);if(d)throw new T(d);if(!c.Ta.symlink)throw new T(63);c.Ta.symlink(c,b,a)}function vc(a){var b=W(a,{parent:!0}).node;a=sb(a);var c=Jb(b,a),d=mc(b,a,!0);if(d)throw new T(d);if(!b.Ta.rmdir)throw new T(63);if(c.qb)throw new T(10);b.Ta.rmdir(b,a);Wb(c)} -function Ca(a){var b=W(a,{parent:!0}).node;if(!b)throw new T(44);a=sb(a);var c=Jb(b,a),d=mc(b,a,!1);if(d)throw new T(d);if(!b.Ta.unlink)throw new T(63);if(c.qb)throw new T(10);b.Ta.unlink(b,a);Wb(c)}function wc(a,b){a=W(a,{pb:!b}).node;return nc(a.Ta.bb)(a)}function xc(a,b,c,d){qc(a,b,{mode:c&4095|b.mode&-4096,ctime:Date.now(),bc:d})}function pa(a,b){a="string"==typeof a?W(a,{pb:!0}).node:a;xc(null,a,b)} +function mc(a,b,c){try{var d=Jb(a,b)}catch(f){return f.Xa}if(a=jc(a,"wx"))return a;if(c){if(!V(d.mode))return 54;if(d===d.parent||"/"===ka(d))return 10}else if(V(d.mode))return 31;return 0}function nc(a){if(!a)throw new T(63);return a}function X(a){a=ac[a];if(!a)throw new T(8);return a}function oc(a,b=-1){a=Object.assign(new gc,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!ac[b])break a;throw new T(33);}a.fd=b;return ac[b]=a}function pc(a,b=-1){a=oc(a,b);a.Ua?.wc?.(a);return a} +function qc(a,b,c){var d=a?.Ua.eb;a=d?a:b;d??=b.Ta.eb;nc(d);d(a,c)}var Eb={open(a){a.Ua=$b[a.node.rdev].Ua;a.Ua.open?.(a)},gb(){throw new T(70);}};function Ab(a,b){$b[a]={Ua:b}}function rc(a,b){var c="/"===b;if(c&&Zb)throw new T(10);if(!c&&b){var d=W(b,{Gb:!1});b=d.path;d=d.node;if(d.qb)throw new T(10);if(!V(d.mode))throw new T(54);}b={type:a,Cc:{},Vb:b,mc:[]};a=a.kb(b);a.kb=b;b.root=a;c?Zb=a:d&&(d.qb=b,d.kb&&d.kb.mc.push(b))} +function sc(a,b,c){var d=W(a,{parent:!0}).node;a=rb(a);if(!a)throw new T(28);if("."===a||".."===a)throw new T(20);var f=lc(d,a);if(f)throw new T(f);if(!d.Ta.zb)throw new T(63);return d.Ta.zb(d,a,b,c)}function na(a,b=438){return sc(a,b&4095|32768,0)}function Y(a,b=511){return sc(a,b&1023|16384,0)}function tc(a,b,c){"undefined"==typeof c&&(c=b,b=438);sc(a,b|8192,c)} +function uc(a,b){if(!ub(a))throw new T(44);var c=W(b,{parent:!0}).node;if(!c)throw new T(44);b=rb(b);var d=lc(c,b);if(d)throw new T(d);if(!c.Ta.symlink)throw new T(63);c.Ta.symlink(c,b,a)}function vc(a){var b=W(a,{parent:!0}).node;a=rb(a);var c=Jb(b,a),d=mc(b,a,!0);if(d)throw new T(d);if(!b.Ta.rmdir)throw new T(63);if(c.qb)throw new T(10);b.Ta.rmdir(b,a);Wb(c)} +function Ba(a){var b=W(a,{parent:!0}).node;if(!b)throw new T(44);a=rb(a);var c=Jb(b,a),d=mc(b,a,!1);if(d)throw new T(d);if(!b.Ta.unlink)throw new T(63);if(c.qb)throw new T(10);b.Ta.unlink(b,a);Wb(c)}function wc(a,b){a=W(a,{pb:!b}).node;return nc(a.Ta.bb)(a)}function xc(a,b,c,d){qc(a,b,{mode:c&4095|b.mode&-4096,ctime:Date.now(),cc:d})}function oa(a,b){a="string"==typeof a?W(a,{pb:!0}).node:a;xc(null,a,b)} function yc(a,b,c){if(V(b.mode))throw new T(31);if(32768!==(b.mode&61440))throw new T(28);var d=jc(b,"w");if(d)throw new T(d);qc(a,b,{size:c,timestamp:Date.now()})} -function qa(a,b,c=438){if(""===a)throw new T(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?c&4095|32768:0;if("object"==typeof a)d=a;else{var f=a.endsWith("/");a=W(a,{pb:!(b&131072),mc:!0});d=a.node;a=a.path}var h=!1;if(b&64)if(d){if(b&128)throw new T(20);}else{if(f)throw new T(31);d=sc(a,c|511,0);h=!0}if(!d)throw new T(44);8192===(d.mode&61440)&&(b&=-513);if(b&65536&&!V(d.mode))throw new T(54); -if(!h&&(f=d?40960===(d.mode&61440)?32:V(d.mode)&&("r"!==kc(b)||b&576)?31:jc(d,kc(b)):44))throw new T(f);b&512&&!h&&(f=d,f="string"==typeof f?W(f,{pb:!0}).node:f,yc(null,f,0));b&=-131713;f=oc({node:d,path:la(d),flags:b,seekable:!0,position:0,Ua:d.Ua,pc:[],error:!1});f.Ua.open&&f.Ua.open(f);h&&pa(d,c&511);!l.logReadFiles||b&1||a in fc||(fc[a]=1);return f}function ua(a){if(null===a.fd)throw new T(8);a.Gb&&(a.Gb=null);try{a.Ua.close&&a.Ua.close(a)}catch(b){throw b;}finally{ac[a.fd]=null}a.fd=null} -function zc(a,b,c){if(null===a.fd)throw new T(8);if(!a.seekable||!a.Ua.gb)throw new T(70);if(0!=c&&1!=c&&2!=c)throw new T(28);a.position=a.Ua.gb(a,b,c);a.pc=[]}function Ac(a,b,c,d,f){if(0>d||0>f)throw new T(28);if(null===a.fd)throw new T(8);if(1===(a.flags&2097155))throw new T(8);if(V(a.node.mode))throw new T(31);if(!a.Ua.read)throw new T(28);var h="undefined"!=typeof f;if(!h)f=a.position;else if(!a.seekable)throw new T(70);b=a.Ua.read(a,b,c,d,f);h||(a.position+=b);return b} -function ta(a,b,c,d,f){if(0>d||0>f)throw new T(28);if(null===a.fd)throw new T(8);if(0===(a.flags&2097155))throw new T(8);if(V(a.node.mode))throw new T(31);if(!a.Ua.write)throw new T(28);a.seekable&&a.flags&1024&&zc(a,0,2);var h="undefined"!=typeof f;if(!h)f=a.position;else if(!a.seekable)throw new T(70);b=a.Ua.write(a,b,c,d,f,void 0);h||(a.position+=b);return b} -function Ba(a){var b=b||0;var c="binary";"utf8"!==c&&"binary"!==c&&Za(`Invalid encoding type "${c}"`);b=qa(a,b);a=wc(a).size;var d=new Uint8Array(a);Ac(b,d,0,a,0);"utf8"===c&&(d=wb(d));ua(b);return d} -function Bc(a,b,c){a=ma("/dev/"+a);var d=na(!!b,!!c);Bc.Tb??(Bc.Tb=64);var f=Bc.Tb++<<8|0;Ab(f,{open(h){h.seekable=!1},close(){c?.buffer?.length&&c(10)},read(h,m,v,z){for(var x=0,A=0;Ad||0>f)throw new T(28);if(null===a.fd)throw new T(8);if(1===(a.flags&2097155))throw new T(8);if(V(a.node.mode))throw new T(31);if(!a.Ua.read)throw new T(28);var k="undefined"!=typeof f;if(!k)f=a.position;else if(!a.seekable)throw new T(70);b=a.Ua.read(a,b,c,d,f);k||(a.position+=b);return b} +function sa(a,b,c,d,f){if(0>d||0>f)throw new T(28);if(null===a.fd)throw new T(8);if(0===(a.flags&2097155))throw new T(8);if(V(a.node.mode))throw new T(31);if(!a.Ua.write)throw new T(28);a.seekable&&a.flags&1024&&zc(a,0,2);var k="undefined"!=typeof f;if(!k)f=a.position;else if(!a.seekable)throw new T(70);b=a.Ua.write(a,b,c,d,f,void 0);k||(a.position+=b);return b} +function Aa(a){var b=b||0;var c="binary";"utf8"!==c&&"binary"!==c&&Ya(`Invalid encoding type "${c}"`);b=ra(a,b);a=wc(a).size;var d=new Uint8Array(a);Ac(b,d,0,a,0);"utf8"===c&&(d=vb(d));ta(b);return d} +function Bc(a,b,c){a=la("/dev/"+a);var d=ma(!!b,!!c);Bc.Ub??(Bc.Ub=64);var f=Bc.Ub++<<8|0;Ab(f,{open(k){k.seekable=!1},close(){c?.buffer?.length&&c(10)},read(k,p,n,z){for(var w=0,A=0;A>2]=b.dev;P[a+4>>2]=b.mode;P[a+8>>2]=b.nlink;P[a+12>>2]=b.uid;P[a+16>>2]=b.gid;P[a+20>>2]=b.rdev;R[a+24>>3]=BigInt(b.size);K[a+32>>2]=4096;K[a+36>>2]=b.blocks;var c=b.atime.getTime(),d=b.mtime.getTime(),f=b.ctime.getTime();R[a+40>>3]=BigInt(Math.floor(c/1E3));P[a+48>>2]=c%1E3*1E6;R[a+56>>3]=BigInt(Math.floor(d/1E3));P[a+64>>2]=d%1E3*1E6;R[a+72>>3]=BigInt(Math.floor(f/1E3));P[a+80>>2]=f%1E3*1E6;R[a+88>>3]=BigInt(b.ino);return 0} -var Oc=void 0,ld=()=>{var a=K[+Oc>>2];Oc+=4;return a},md=0,nd=[0,31,60,91,121,152,182,213,244,274,305,335],od=[0,31,59,90,120,151,181,212,243,273,304,334],pd={},qd=a=>{Ta=a;nb||0{if(!Sa)try{a()}catch(b){b instanceof db||"unwind"==b||Ea(1,b)}finally{if(!(nb||0{if(!td){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language?? -"C").replace("-","_")+".UTF-8",_:Da||"./this.program"},b;for(b in sd)void 0===sd[b]?delete a[b]:a[b]=sd[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);td=c}return td},td,vd=(a,b,c,d)=>{var f={string:x=>{var A=0;if(null!==x&&void 0!==x&&0!==x){A=p(x)+1;var N=va(A);S(x,G,N,A);A=N}return A},array:x=>{var A=va(x.length);w.set(x,A);return A}};a=l["_"+a];var h=[],m=0;if(d)for(var v=0;v{var b=p(a)+1,c=ha(b);c&&S(a,G,c,b);return c},wd,xd=[],E=a=>{wd.delete(yd.get(a));yd.set(a,null);xd.push(a)},zd=a=>{const b=a.length;return[b%128|128,b>>7,...a]},Ad={i:127,p:127,j:126,f:125,d:124,e:111},Bd=a=>zd(Array.from(a,b=>Ad[b])),H=(a,b)=>{if(!wd){wd=new WeakMap;var c=yd.length;if(wd)for(var d=0;d<0+c;d++){var f=yd.get(d);f&&wd.set(f,d)}}if(c=wd.get(a)||0)return c;c=xd.length?xd.pop():yd.grow(1);try{yd.set(c,a)}catch(h){if(!(h instanceof TypeError))throw h; -b=Uint8Array.of(0,97,115,109,1,0,0,0,1,...zd([1,96,...Bd(b.slice(1)),...Bd("v"===b[0]?"":b[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(b);b=(new WebAssembly.Instance(b,{e:{f:a}})).exports.f;yd.set(c,b)}wd.set(a,c);return c};cc=Array(4096);rc(U,"/");Y("/tmp");Y("/home");Y("/home/web_user"); -(function(){Y("/dev");Ab(259,{read:()=>0,write:(d,f,h,m)=>m,gb:()=>0});tc("/dev/null",259);zb(1280,Cb);zb(1536,Db);tc("/dev/tty",1280);tc("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(ub(a),b=a.byteLength);return a[--b]};Bc("random",c);Bc("urandom",c);Y("/dev/shm");Y("/dev/shm/tmp")})(); -(function(){Y("/proc");var a=Y("/proc/self");Y("/proc/self/fd");rc({kb(){var b=Ib(a,"fd",16895,73);b.Ua={gb:U.Ua.gb};b.Ta={lookup(c,d){c=+d;var f=X(c);c={parent:null,kb:{Ub:"fake"},Ta:{readlink:()=>f.path},id:c+1};return c.parent=c},readdir(){return Array.from(ac.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();l.noExitRuntime&&(nb=l.noExitRuntime);l.print&&(Pa=l.print);l.printErr&&(Qa=l.printErr);l.wasmBinary&&(Ra=l.wasmBinary);l.thisProgram&&(Da=l.thisProgram); -if(l.preInit)for("function"==typeof l.preInit&&(l.preInit=[l.preInit]);0ya();l.stackRestore=a=>Aa(a);l.stackAlloc=a=>va(a);l.cwrap=(a,b,c,d)=>{var f=!c||c.every(h=>"number"===h||"boolean"===h);return"string"!==b&&f&&!d?l["_"+a]:(...h)=>vd(a,b,c,h)};l.addFunction=H;l.removeFunction=E;l.UTF8ToString=C;l.lengthBytesUTF8=p;l.stringToNewUTF8=ka;l.writeArrayToMemory=(a,b)=>{w.set(a,b)}; -var ha,ja,Yb,Cd,Aa,va,ya,Ya,yd,Dd={a:(a,b,c,d)=>Za(`Assertion failed: ${C(a)}, at: `+[b?C(b):"unknown filename",c,d?C(d):"unknown function"]),i:function(a,b){try{return a=C(a),pa(a,b),0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},L:function(a,b,c){try{b=C(b);b=Cc(a,b);if(c&-8)return-28;var d=W(b,{pb:!0}).node;if(!d)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&jc(d,a)?-2:0}catch(f){if("undefined"==typeof Z||"ErrnoError"!==f.name)throw f;return-f.Xa}}, -j:function(a,b){try{var c=X(a);xc(c,c.node,b,!1);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d;return-d.Xa}},h:function(a){try{var b=X(a);qc(b,b.node,{timestamp:Date.now(),bc:!1});return 0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},b:function(a,b,c){Oc=c;try{var d=X(a);switch(b){case 0:var f=ld();if(0>f)break;for(;ac[f];)f++;return pc(d,f).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=ld(),d.flags|=f,0;case 12:return f= -ld(),Ua[f+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(h){if("undefined"==typeof Z||"ErrnoError"!==h.name)throw h;return-h.Xa}},g:function(a,b){try{var c=X(a),d=c.node,f=c.Ua.bb;a=f?c:d;f??=d.Ta.bb;nc(f);var h=f(a);return Dc(b,h)}catch(m){if("undefined"==typeof Z||"ErrnoError"!==m.name)throw m;return-m.Xa}},H:function(a,b){b=-9007199254740992>b||9007199254740992b||0===(c.flags&2097155))throw new T(28);yc(c,c.node,b);return 0}catch(d){if("undefined"== -typeof Z||"ErrnoError"!==d.name)throw d;return-d.Xa}},G:function(a,b){try{if(0===b)return-28;var c=p("/")+1;if(b=d)return-28;var f=W(b).node;if(!f)throw new T(44);if(!f.Ta.readlink)throw new T(28);var h=f.Ta.readlink(f);var m=Math.min(d,p(h)),v=w[c+m]; -S(h,G,c,d+1);w[c+m]=v;return m}catch(z){if("undefined"==typeof Z||"ErrnoError"!==z.name)throw z;return-z.Xa}},u:function(a){try{return a=C(a),vc(a),0}catch(b){if("undefined"==typeof Z||"ErrnoError"!==b.name)throw b;return-b.Xa}},f:function(a,b){try{return a=C(a),Dc(b,wc(a))}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},r:function(a,b,c){try{b=C(b);b=Cc(a,b);if(c)if(512===c)vc(b);else return-28;else Ca(b);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d; -return-d.Xa}},q:function(a,b,c){try{b=C(b);b=Cc(a,b,!0);var d=Date.now(),f,h;if(c){var m=P[c>>2]+4294967296*K[c+4>>2],v=K[c+8>>2];1073741823==v?f=d:1073741822==v?f=null:f=1E3*m+v/1E6;c+=16;m=P[c>>2]+4294967296*K[c+4>>2];v=K[c+8>>2];1073741823==v?h=d:1073741822==v?h=null:h=1E3*m+v/1E6}else h=f=d;if(null!==(h??f)){a=f;var z=W(b,{pb:!0}).node;nc(z.Ta.eb)(z,{atime:a,mtime:h})}return 0}catch(x){if("undefined"==typeof Z||"ErrnoError"!==x.name)throw x;return-x.Xa}},m:()=>Za(""),l:()=>{nb=!1;md=0},A:function(a, -b){a=-9007199254740992>a||9007199254740992>2]=a.getSeconds();K[b+4>>2]=a.getMinutes();K[b+8>>2]=a.getHours();K[b+12>>2]=a.getDate();K[b+16>>2]=a.getMonth();K[b+20>>2]=a.getFullYear()-1900;K[b+24>>2]=a.getDay();var c=a.getFullYear();K[b+28>>2]=(0!==c%4||0===c%100&&0!==c%400?od:nd)[a.getMonth()]+a.getDate()-1|0;K[b+36>>2]=-(60*a.getTimezoneOffset());c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset(); -K[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0},y:function(a,b,c,d,f,h,m){f=-9007199254740992>f||9007199254740992>2]=z.Vb;P[m>>2]=x;return 0}catch(A){if("undefined"==typeof Z||"ErrnoError"!==A.name)throw A;return-A.Xa}},z:function(a,b,c,d,f,h){h=-9007199254740992>h|| -9007199254740992{pd[a]&&(clearTimeout(pd[a].id),delete pd[a]);if(!b)return 0;var c=setTimeout(()=>{delete pd[a];rd(()=>Cd(a,performance.now()))},b);pd[a]={id:c,Dc:b};return 0},B:(a,b,c,d)=>{var f=(new Date).getFullYear(),h=(new Date(f,0,1)).getTimezoneOffset(); -f=(new Date(f,6,1)).getTimezoneOffset();P[a>>2]=60*Math.max(h,f);K[b>>2]=Number(h!=f);b=m=>{var v=Math.abs(m);return`UTC${0<=m?"-":"+"}${String(Math.floor(v/60)).padStart(2,"0")}${String(v%60).padStart(2,"0")}`};a=b(h);b=b(f);fDate.now(),s:()=>2147483648,c:()=>performance.now(),o:a=>{var b=G.length;a>>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a, -d)/65536))-Ya.buffer.byteLength+65535)/65536|0;try{Ya.grow(d);Xa();var f=1;break a}catch(h){}f=void 0}if(f)return!0}return!1},E:(a,b)=>{var c=0,d=0,f;for(f of ud()){var h=b+c;P[a+d>>2]=h;c+=S(f,G,h,Infinity)+1;d+=4}return 0},F:(a,b)=>{var c=ud();P[a>>2]=c.length;a=0;for(var d of c)a+=p(d)+1;P[b>>2]=a;return 0},e:function(a){try{var b=X(a);ua(b);return 0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return c.Xa}},p:function(a,b){try{var c=X(a);w[b]=c.tty?2:V(c.mode)?3:40960===(c.mode& -61440)?7:4;Ua[b+2>>1]=0;R[b+8>>3]=BigInt(0);R[b+16>>3]=BigInt(0);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d;return d.Xa}},w:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var h,m=b=0;m>2],z=P[a+4>>2];a+=8;var x=Ac(f,w,v,z,h);if(0>x){var A=-1;break a}b+=x;if(x>2]=A;return 0}catch(N){if("undefined"==typeof Z||"ErrnoError"!==N.name)throw N;return N.Xa}},D:function(a,b,c,d){b=-9007199254740992>b||9007199254740992< -b?NaN:Number(b);try{if(isNaN(b))return 61;var f=X(a);zc(f,b,c);R[d>>3]=BigInt(f.position);f.Gb&&0===b&&0===c&&(f.Gb=null);return 0}catch(h){if("undefined"==typeof Z||"ErrnoError"!==h.name)throw h;return h.Xa}},I:function(a){try{var b=X(a);return b.Ua?.fsync?.(b)}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return c.Xa}},t:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var h,m=b=0;m>2],z=P[a+4>>2];a+=8;var x=ta(f,w,v,z,h);if(0>x){var A=-1;break a}b+=x;if(x>2]=A;return 0}catch(N){if("undefined"==typeof Z||"ErrnoError"!==N.name)throw N;return N.Xa}},k:qd}; -function Ed(){function a(){l.calledRun=!0;if(!Sa){if(!l.noFSInit&&!dc){var b,c;dc=!0;b??=l.stdin;c??=l.stdout;d??=l.stderr;b?Bc("stdin",b):uc("/dev/tty","/dev/stdin");c?Bc("stdout",null,c):uc("/dev/tty","/dev/stdout");d?Bc("stderr",null,d):uc("/dev/tty1","/dev/stderr");qa("/dev/stdin",0);qa("/dev/stdout",1);qa("/dev/stderr",1)}Fd.N();ec=!1;l.onRuntimeInitialized?.();if(l.postRun)for("function"==typeof l.postRun&&(l.postRun=[l.postRun]);l.postRun.length;){var d=l.postRun.shift();fb.push(d)}eb(fb)}} -if(0{setTimeout(()=>l.setStatus(""),1);a()},1)):a()}}var Fd; -(async function(){function a(c){c=Fd=c.exports;l._sqlite3_free=c.P;l._sqlite3_value_text=c.Q;l._sqlite3_prepare_v2=c.R;l._sqlite3_step=c.S;l._sqlite3_reset=c.T;l._sqlite3_exec=c.U;l._sqlite3_finalize=c.V;l._sqlite3_column_name=c.W;l._sqlite3_column_text=c.X;l._sqlite3_column_type=c.Y;l._sqlite3_errmsg=c.Z;l._sqlite3_clear_bindings=c._;l._sqlite3_value_blob=c.$;l._sqlite3_value_bytes=c.aa;l._sqlite3_value_double=c.ba;l._sqlite3_value_int=c.ca;l._sqlite3_value_type=c.da;l._sqlite3_result_blob=c.ea; +function Dc(a,b){R[a>>2]=b.dev;R[a+4>>2]=b.mode;R[a+8>>2]=b.nlink;R[a+12>>2]=b.uid;R[a+16>>2]=b.gid;R[a+20>>2]=b.rdev;S[a+24>>3]=BigInt(b.size);P[a+32>>2]=4096;P[a+36>>2]=b.blocks;var c=b.atime.getTime(),d=b.mtime.getTime(),f=b.ctime.getTime();S[a+40>>3]=BigInt(Math.floor(c/1E3));R[a+48>>2]=c%1E3*1E6;S[a+56>>3]=BigInt(Math.floor(d/1E3));R[a+64>>2]=d%1E3*1E6;S[a+72>>3]=BigInt(Math.floor(f/1E3));R[a+80>>2]=f%1E3*1E6;S[a+88>>3]=BigInt(b.ino);return 0} +var Oc=void 0,md=()=>{var a=P[+Oc>>2];Oc+=4;return a},nd=0,od=[0,31,60,91,121,152,182,213,244,274,305,335],pd=[0,31,59,90,120,151,181,212,243,273,304,334],qd={},rd=a=>{Sa=a;mb||0{if(!Ra)try{a()}catch(b){b instanceof cb||"unwind"==b||Da(1,b)}finally{if(!(mb||0{if(!ud){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language?? +"C").replace("-","_")+".UTF-8",_:Ca||"./this.program"},b;for(b in td)void 0===td[b]?delete a[b]:a[b]=td[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);ud=c}return ud},ud,wd=(a,b,c,d)=>{var f={string:w=>{var A=0;if(null!==w&&void 0!==w&&0!==w){A=xb(w)+1;var N=ua(A);E(w,F,N,A);A=N}return A},array:w=>{var A=ua(w.length);x.set(w,A);return A}};a=l["_"+a];var k=[],p=0;if(d)for(var n=0;n{var b=xb(a)+1,c=ia(b);c&&E(a,F,c,b);return c},xd,yd=[],H=a=>{xd.delete(zd.get(a));zd.set(a,null);yd.push(a)},Ad=a=>{const b=a.length;return[b%128|128,b>>7,...a]},Bd={i:127,p:127,j:126,f:125,d:124,e:111},Cd=a=>Ad(Array.from(a,b=>Bd[b])),K=(a,b)=>{if(!xd){xd=new WeakMap;var c=zd.length;if(xd)for(var d=0;d<0+c;d++){var f=zd.get(d);f&&xd.set(f,d)}}if(c=xd.get(a)||0)return c;c=yd.length?yd.pop():zd.grow(1);try{zd.set(c,a)}catch(k){if(!(k instanceof TypeError))throw k; +b=Uint8Array.of(0,97,115,109,1,0,0,0,1,...Ad([1,96,...Cd(b.slice(1)),...Cd("v"===b[0]?"":b[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);b=new WebAssembly.Module(b);b=(new WebAssembly.Instance(b,{e:{f:a}})).exports.f;zd.set(c,b)}xd.set(a,c);return c};cc=Array(4096);rc(U,"/");Y("/tmp");Y("/home");Y("/home/web_user"); +(function(){Y("/dev");Ab(259,{read:()=>0,write:(d,f,k,p)=>p,gb:()=>0});tc("/dev/null",259);zb(1280,Cb);zb(1536,Db);tc("/dev/tty",1280);tc("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(tb(a),b=a.byteLength);return a[--b]};Bc("random",c);Bc("urandom",c);Y("/dev/shm");Y("/dev/shm/tmp")})(); +(function(){Y("/proc");var a=Y("/proc/self");Y("/proc/self/fd");rc({kb(){var b=Ib(a,"fd",16895,73);b.Ua={gb:U.Ua.gb};b.Ta={lookup(c,d){c=+d;var f=X(c);c={parent:null,kb:{Vb:"fake"},Ta:{readlink:()=>f.path},id:c+1};return c.parent=c},readdir(){return Array.from(ac.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();l.noExitRuntime&&(mb=l.noExitRuntime);l.print&&(Ja=l.print);l.printErr&&(Pa=l.printErr);l.wasmBinary&&(Qa=l.wasmBinary);l.thisProgram&&(Ca=l.thisProgram); +if(l.preInit)for("function"==typeof l.preInit&&(l.preInit=[l.preInit]);0va();l.stackRestore=a=>za(a);l.stackAlloc=a=>ua(a);l.cwrap=(a,b,c,d)=>{var f=!c||c.every(k=>"number"===k||"boolean"===k);return"string"!==b&&f&&!d?l["_"+a]:(...k)=>wd(a,b,c,k)};l.addFunction=K;l.removeFunction=H;l.UTF8ToString=C;l.stringToUTF8=(a,b,c)=>E(a,F,b,c);l.stringToNewUTF8=ja;l.writeArrayToMemory=(a,b)=>{x.set(a,b)}; +var ia,q,Yb,Dd,za,ua,va,Xa,zd,Ed={a:(a,b,c,d)=>Ya(`Assertion failed: ${C(a)}, at: `+[b?C(b):"unknown filename",c,d?C(d):"unknown function"]),i:function(a,b){try{return a=C(a),oa(a,b),0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},L:function(a,b,c){try{b=C(b);b=Cc(a,b);if(c&-8)return-28;var d=W(b,{pb:!0}).node;if(!d)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&jc(d,a)?-2:0}catch(f){if("undefined"==typeof Z||"ErrnoError"!==f.name)throw f;return-f.Xa}}, +j:function(a,b){try{var c=X(a);xc(c,c.node,b,!1);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d;return-d.Xa}},h:function(a){try{var b=X(a);qc(b,b.node,{timestamp:Date.now(),cc:!1});return 0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},b:function(a,b,c){Oc=c;try{var d=X(a);switch(b){case 0:var f=md();if(0>f)break;for(;ac[f];)f++;return pc(d,f).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=md(),d.flags|=f,0;case 12:return f= +md(),Ta[f+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(k){if("undefined"==typeof Z||"ErrnoError"!==k.name)throw k;return-k.Xa}},g:function(a,b){try{var c=X(a),d=c.node,f=c.Ua.bb;a=f?c:d;f??=d.Ta.bb;nc(f);var k=f(a);return Dc(b,k)}catch(p){if("undefined"==typeof Z||"ErrnoError"!==p.name)throw p;return-p.Xa}},H:function(a,b){b=-9007199254740992>b||9007199254740992b||0===(c.flags&2097155))throw new T(28);yc(c,c.node,b);return 0}catch(d){if("undefined"== +typeof Z||"ErrnoError"!==d.name)throw d;return-d.Xa}},G:function(a,b){try{if(0===b)return-28;var c=xb("/")+1;if(b=d)return-28;var f=W(b).node;if(!f)throw new T(44);if(!f.Ta.readlink)throw new T(28);var k=f.Ta.readlink(f);var p=Math.min(d,xb(k)),n=x[c+p]; +E(k,F,c,d+1);x[c+p]=n;return p}catch(z){if("undefined"==typeof Z||"ErrnoError"!==z.name)throw z;return-z.Xa}},u:function(a){try{return a=C(a),vc(a),0}catch(b){if("undefined"==typeof Z||"ErrnoError"!==b.name)throw b;return-b.Xa}},f:function(a,b){try{return a=C(a),Dc(b,wc(a))}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return-c.Xa}},r:function(a,b,c){try{b=C(b);b=Cc(a,b);if(c)if(512===c)vc(b);else return-28;else Ba(b);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d; +return-d.Xa}},q:function(a,b,c){try{b=C(b);b=Cc(a,b,!0);var d=Date.now(),f,k;if(c){var p=R[c>>2]+4294967296*P[c+4>>2],n=P[c+8>>2];1073741823==n?f=d:1073741822==n?f=null:f=1E3*p+n/1E6;c+=16;p=R[c>>2]+4294967296*P[c+4>>2];n=P[c+8>>2];1073741823==n?k=d:1073741822==n?k=null:k=1E3*p+n/1E6}else k=f=d;if(null!==(k??f)){a=f;var z=W(b,{pb:!0}).node;nc(z.Ta.eb)(z,{atime:a,mtime:k})}return 0}catch(w){if("undefined"==typeof Z||"ErrnoError"!==w.name)throw w;return-w.Xa}},m:()=>Ya(""),l:()=>{mb=!1;nd=0},A:function(a, +b){a=-9007199254740992>a||9007199254740992>2]=a.getSeconds();P[b+4>>2]=a.getMinutes();P[b+8>>2]=a.getHours();P[b+12>>2]=a.getDate();P[b+16>>2]=a.getMonth();P[b+20>>2]=a.getFullYear()-1900;P[b+24>>2]=a.getDay();var c=a.getFullYear();P[b+28>>2]=(0!==c%4||0===c%100&&0!==c%400?pd:od)[a.getMonth()]+a.getDate()-1|0;P[b+36>>2]=-(60*a.getTimezoneOffset());c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset(); +P[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0},y:function(a,b,c,d,f,k,p){f=-9007199254740992>f||9007199254740992>2]=z.Wb;R[p>>2]=w;return 0}catch(A){if("undefined"==typeof Z||"ErrnoError"!==A.name)throw A;return-A.Xa}},z:function(a,b,c,d,f,k){k=-9007199254740992>k|| +9007199254740992{qd[a]&&(clearTimeout(qd[a].id),delete qd[a]);if(!b)return 0;var c=setTimeout(()=>{delete qd[a];sd(()=>Dd(a,performance.now()))},b);qd[a]={id:c,Dc:b};return 0},B:(a,b,c,d)=>{var f=(new Date).getFullYear(),k=(new Date(f,0,1)).getTimezoneOffset(); +f=(new Date(f,6,1)).getTimezoneOffset();R[a>>2]=60*Math.max(k,f);P[b>>2]=Number(k!=f);b=p=>{var n=Math.abs(p);return`UTC${0<=p?"-":"+"}${String(Math.floor(n/60)).padStart(2,"0")}${String(n%60).padStart(2,"0")}`};a=b(k);b=b(f);fDate.now(),s:()=>2147483648,c:()=>performance.now(),o:a=>{var b=F.length;a>>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a, +d)/65536))-Xa.buffer.byteLength+65535)/65536|0;try{Xa.grow(d);Wa();var f=1;break a}catch(k){}f=void 0}if(f)return!0}return!1},E:(a,b)=>{var c=0,d=0,f;for(f of vd()){var k=b+c;R[a+d>>2]=k;c+=E(f,F,k,Infinity)+1;d+=4}return 0},F:(a,b)=>{var c=vd();R[a>>2]=c.length;a=0;for(var d of c)a+=xb(d)+1;R[b>>2]=a;return 0},e:function(a){try{var b=X(a);ta(b);return 0}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return c.Xa}},p:function(a,b){try{var c=X(a);x[b]=c.tty?2:V(c.mode)?3:40960===(c.mode& +61440)?7:4;Ta[b+2>>1]=0;S[b+8>>3]=BigInt(0);S[b+16>>3]=BigInt(0);return 0}catch(d){if("undefined"==typeof Z||"ErrnoError"!==d.name)throw d;return d.Xa}},w:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var k,p=b=0;p>2],z=R[a+4>>2];a+=8;var w=Ac(f,x,n,z,k);if(0>w){var A=-1;break a}b+=w;if(w>2]=A;return 0}catch(N){if("undefined"==typeof Z||"ErrnoError"!==N.name)throw N;return N.Xa}},D:function(a,b,c,d){b=-9007199254740992>b||9007199254740992< +b?NaN:Number(b);try{if(isNaN(b))return 61;var f=X(a);zc(f,b,c);S[d>>3]=BigInt(f.position);f.Hb&&0===b&&0===c&&(f.Hb=null);return 0}catch(k){if("undefined"==typeof Z||"ErrnoError"!==k.name)throw k;return k.Xa}},I:function(a){try{var b=X(a);return b.Ua?.fsync?.(b)}catch(c){if("undefined"==typeof Z||"ErrnoError"!==c.name)throw c;return c.Xa}},t:function(a,b,c,d){try{a:{var f=X(a);a=b;for(var k,p=b=0;p>2],z=R[a+4>>2];a+=8;var w=sa(f,x,n,z,k);if(0>w){var A=-1;break a}b+=w;if(w>2]=A;return 0}catch(N){if("undefined"==typeof Z||"ErrnoError"!==N.name)throw N;return N.Xa}},k:rd}; +function Fd(){function a(){l.calledRun=!0;if(!Ra){if(!l.noFSInit&&!dc){var b,c;dc=!0;b??=l.stdin;c??=l.stdout;d??=l.stderr;b?Bc("stdin",b):uc("/dev/tty","/dev/stdin");c?Bc("stdout",null,c):uc("/dev/tty","/dev/stdout");d?Bc("stderr",null,d):uc("/dev/tty1","/dev/stderr");ra("/dev/stdin",0);ra("/dev/stdout",1);ra("/dev/stderr",1)}Gd.N();ec=!1;l.onRuntimeInitialized?.();if(l.postRun)for("function"==typeof l.postRun&&(l.postRun=[l.postRun]);l.postRun.length;){var d=l.postRun.shift();eb.push(d)}db(eb)}} +if(0{setTimeout(()=>l.setStatus(""),1);a()},1)):a()}}var Gd; +(async function(){function a(c){c=Gd=c.exports;l._sqlite3_free=c.P;l._sqlite3_value_text=c.Q;l._sqlite3_prepare_v2=c.R;l._sqlite3_step=c.S;l._sqlite3_reset=c.T;l._sqlite3_exec=c.U;l._sqlite3_finalize=c.V;l._sqlite3_column_name=c.W;l._sqlite3_column_text=c.X;l._sqlite3_column_type=c.Y;l._sqlite3_errmsg=c.Z;l._sqlite3_clear_bindings=c._;l._sqlite3_value_blob=c.$;l._sqlite3_value_bytes=c.aa;l._sqlite3_value_double=c.ba;l._sqlite3_value_int=c.ca;l._sqlite3_value_type=c.da;l._sqlite3_result_blob=c.ea; l._sqlite3_result_double=c.fa;l._sqlite3_result_error=c.ga;l._sqlite3_result_int=c.ha;l._sqlite3_result_int64=c.ia;l._sqlite3_result_null=c.ja;l._sqlite3_result_text=c.ka;l._sqlite3_aggregate_context=c.la;l._sqlite3_column_count=c.ma;l._sqlite3_data_count=c.na;l._sqlite3_column_blob=c.oa;l._sqlite3_column_bytes=c.pa;l._sqlite3_column_double=c.qa;l._sqlite3_bind_blob=c.ra;l._sqlite3_bind_double=c.sa;l._sqlite3_bind_int=c.ta;l._sqlite3_bind_text=c.ua;l._sqlite3_bind_parameter_index=c.va;l._sqlite3_sql= -c.wa;l._sqlite3_normalized_sql=c.xa;l._sqlite3_changes=c.ya;l._sqlite3_close_v2=c.za;l._sqlite3_progress_handler=c.Aa;l._sqlite3_interrupt=c.Ba;l._sqlite3_create_function_v2=c.Ca;l._sqlite3_update_hook=c.Da;l._sqlite3_open=c.Ea;l._sqlite3_get_autocommit=c.Fa;ha=l._malloc=c.Ga;ja=l._free=c.Ha;l._RegisterExtensionFunctions=c.Ia;l._sqljs_vfs_register=c.Ja;l._sqljs_open_paged=c.Ka;l._sqljs_vfs_register_rw=c.La;l._sqljs_open_paged_rw=c.Ma;l._sqlite_explorer_register_query_plan=c.Na;Yb=c.Oa;Cd=c.Pa;Aa= -c.Qa;va=c.Ra;ya=c.Sa;Ya=c.M;yd=c.O;Xa();lb--;l.monitorRunDependencies?.(lb);0==lb&&mb&&(c=mb,mb=null,c());return Fd}lb++;l.monitorRunDependencies?.(lb);var b={a:Dd};if(l.instantiateWasm)return new Promise(c=>{l.instantiateWasm(b,(d,f)=>{c(a(d,f))})});$a??=l.locateFile?l.locateFile("sql-wasm.wasm",Ga):Ga+"sql-wasm.wasm";return a((await cb(b)).instance)})();Ed(); +c.wa;l._sqlite3_normalized_sql=c.xa;l._sqlite3_changes=c.ya;l._sqlite3_close_v2=c.za;l._sqlite3_progress_handler=c.Aa;l._sqlite3_interrupt=c.Ba;l._sqlite3_create_function_v2=c.Ca;l._sqlite3_update_hook=c.Da;l._sqlite3_open=c.Ea;l._sqlite3_get_autocommit=c.Fa;ia=l._malloc=c.Ga;q=l._free=c.Ha;l._RegisterExtensionFunctions=c.Ia;l._sqljs_vfs_register=c.Ja;l._sqljs_open_paged=c.Ka;l._sqljs_vfs_register_rw=c.La;l._sqljs_open_paged_rw=c.Ma;l._sqlite_explorer_register_query_plan=c.Na;Yb=c.Oa;Dd=c.Pa;za=c.Qa; +ua=c.Ra;va=c.Sa;Xa=c.M;zd=c.O;Wa();kb--;l.monitorRunDependencies?.(kb);0==kb&&lb&&(c=lb,lb=null,c());return Gd}kb++;l.monitorRunDependencies?.(kb);var b={a:Ed};if(l.instantiateWasm)return new Promise(c=>{l.instantiateWasm(b,(d,f)=>{c(a(d,f))})});Za??=l.locateFile?l.locateFile("sql-wasm.wasm",Fa):Fa+"sql-wasm.wasm";return a((await bb(b)).instance)})();Fd(); // The shell-pre.js and emcc-generated code goes above diff --git a/viewer-dist/worker.js b/viewer-dist/worker.js index b6d7fcc..fd6a3d6 100644 --- a/viewer-dist/worker.js +++ b/viewer-dist/worker.js @@ -1,14 +1,14 @@ -/*! sqlite-viewer-bundle-sha256:c754b94ee9e788f942af9aac4f41f6de5bd23fd493146e7200cedaad276f61db */ -"use strict";(()=>{var As=Object.defineProperty;var Ns=(e,t,n)=>t in e?As(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var D=(e,t,n)=>Ns(e,typeof t!="symbol"?t+"":t,n);function de(e){if(e==="utf-8")return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});let t=e==="utf-16le";return{decode(n){if(n.length%2!==0)throw new TypeError(`Invalid ${e}: odd byte length`);let r=a=>t?n[a]|n[a+1]<<8:n[a]<<8|n[a+1],o=[],i="";for(let a=0;a=55296&&s<=56319){let l=a+257343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s,l),a+=2}else{if(s>=56320&&s<=57343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s)}i.length>=8192&&(o.push(i),i="")}return o.push(i),o.join("")}}}function w(e){return`"${e.replace(/"/g,'""')}"`}function N(e){return`main.${w(e)}`}function W(e,t="Identifier"){if(typeof e!="string"||e.length===0)throw new Error(`${t} is required`);if(e.includes("\0"))throw new Error(`${t} cannot contain NUL characters`)}function pn(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function $r(e){if(e==null)return"NULL";if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();if(typeof e=="string"){if(e.includes("\0")){let n=new TextEncoder().encode(e);return`CAST(X'${Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}' AS TEXT)`}return`'${e.replace(/'/g,"''")}'`}return e instanceof Uint8Array?`X'${Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}'`:`'${String(e).replace(/'/g,"''")}'`}function et(e,t="\\"){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`[${n}%_]`,"g");return e.replace(r,o=>t+o)}var _s=-9223372036854775808n,$s=9223372036854775807n;function M(e){let t=typeof e;if(t!=="string"&&t!=="number"&&t!=="bigint")throw new Error(`Invalid rowid: ${e}`);if(typeof e=="number"){if(!Number.isSafeInteger(e))throw new Error(`Invalid rowid: ${e}`);return e}let n=typeof e=="string"?e.trim():e.toString();if(!/^[+-]?\d+$/.test(n))throw new Error(`Invalid rowid: ${e}`);let r=BigInt(n);if(r<_s||r>$s)throw new Error(`Invalid rowid: ${e}`);let o=Number(r);return Number.isSafeInteger(o)?o:r.toString()}var bt=[{sql:"SELECT name, sql FROM main.sqlite_schema WHERE type = 'trigger' AND tbl_name = ? COLLATE NOCASE ORDER BY rowid",params:e=>[e],temporary:!1},{sql:"SELECT temp_trigger.name, temp_trigger.sql, EXISTS (SELECT 1 FROM sqlite_temp_schema AS temp_view WHERE temp_view.type = 'view' AND temp_view.name = ? COLLATE NOCASE) FROM sqlite_temp_schema AS temp_trigger WHERE temp_trigger.type = 'trigger' AND temp_trigger.tbl_name = ? COLLATE NOCASE ORDER BY temp_trigger.rowid",params:e=>[e,e],temporary:!0}];function Or(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Pr(e){let t=[],n=0;for(;nt.toLowerCase())}function De(e,t){if(!fe(e[t]))throw new Error("Expected an SQL identifier");return t+1}function Os(e,t){return t=De(e,t),e[t]?.kind==="symbol"&&e[t].value==="."&&(t=De(e,t+1)),t}function Tt(e){let t=Pr(e),n=[],r,o=0,i=u=>{if(!F(t[o],u))throw new Error(`Expected ${u} in stored CREATE TRIGGER SQL`);o++};if(i("CREATE"),(F(t[o],"TEMP")||F(t[o],"TEMPORARY"))&&o++,i("TRIGGER"),F(t[o],"IF")&&(o++,i("NOT"),i("EXISTS")),o=Os(t,o),F(t[o],"BEFORE")||F(t[o],"AFTER")?o++:F(t[o],"INSTEAD")&&(o++,i("OF")),F(t[o],"INSERT"))r="insert",o++;else if(F(t[o],"DELETE"))r="delete",o++;else if(F(t[o],"UPDATE")){if(r="update",o++,F(t[o],"OF")){if(o++,!fe(t[o]))throw new Error("Expected an SQL identifier after UPDATE OF");for(n.push(t[o]),o=De(t,o);t[o]?.kind==="symbol"&&t[o].value===",";){if(o++,!fe(t[o]))throw new Error("Expected an SQL identifier in UPDATE OF column list");n.push(t[o]),o=De(t,o)}}}else throw new Error("Expected a trigger event in stored CREATE TRIGGER SQL");i("ON");let a=o,s=t[o];o=De(t,o);let l;t[o]?.kind==="symbol"&&t[o].value==="."&&(l=s.value,o=De(t,o+1));let d=o,c=t.findIndex((u,f)=>f>=o&&F(u,"BEGIN"));if(c<0)throw new Error("Expected BEGIN in stored CREATE TRIGGER SQL");return{tokens:t,event:r,targetSchema:l,targetStartIndex:a,updateOfColumns:n,referenceStartIndex:d,bodyStartIndex:c+1}}function yn(e){let t=Tt(e);return{event:t.event,targetSchema:t.targetSchema,updateOfColumns:t.updateOfColumns.map(n=>n.value)}}function Ct(e,t,n,r){let o=yn(e),i=`${w(t)}.${w(n)}`;if(o.event==="insert")return`EXPLAIN INSERT INTO ${i} DEFAULT VALUES`;if(o.event==="delete")return`EXPLAIN DELETE FROM ${i} WHERE 0`;let a=new Map(r.map(c=>[me(c),c])),s=o.updateOfColumns.map(c=>a.get(me(c))).find(c=>c!==void 0);if(o.updateOfColumns.length>0&&s===void 0)return;let l=s??r[0];if(l===void 0)throw new Error(`Trigger target ${t}.${n} has no writable column to probe`);let d=w(l);return`EXPLAIN UPDATE ${i} SET ${d} = ${d} WHERE 0`}function Ls(e){return Tt(e).targetSchema}function J(e){return`main.${w(e)}`}function kr(e,t){let n=`-- TRIGGER ${t}`;return e.some(r=>r.some(o=>o===n))}function Br(e,t){if(t.length!==bt.length)throw new Error(`View trigger definition fetch was incomplete for ${e}`);let n=[],r=[],o=[];return bt.forEach((i,a)=>{t[a].forEach(s=>{if(typeof s[0]!="string"||typeof s[1]!="string")throw new Error(`View trigger definition is unavailable for ${e}`);if(i.temporary){let l=s[2]===1||s[2]===1n;if(s[2]!==0&&s[2]!==0n&&!l)throw new Error(`Temporary view shadow state is unavailable for ${e}`);let d;try{d=Ls(s[1])}catch(c){let u=c instanceof Error?c.message:String(c);throw new Error(`Unable to determine the target of temporary trigger ${s[0]}: ${u}`)}if(d!==void 0&&me(d)!=="main")return;if(d===void 0){o.push({identifier:s[0],sql:s[1],temporary:!0});return}}n.push(i.temporary?{identifier:s[0],sql:s[1],temporary:!0}:{identifier:s[0],sql:s[1]})})}),{triggers:n,ambiguousTemporaryTriggerNames:r,unqualifiedTemporaryTriggers:o}}function Rt(e){let t=e.ambiguousTemporaryTriggerNames??[];if(t.length===0)return;let n=t.map(r=>`"${r}"`).join(", ");throw new Error(`Cannot modify main view "${e.identifier}" because temporary trigger target ownership is ambiguous for ${n}. Each named trigger uses an unqualified ON target whose historical schema cannot be proven. Drop the TEMP trigger, or recreate it with an explicitly schema-qualified target, before editing or dropping the main view.`)}function pe(e){let t=e.trim();if(!t)throw new Error("View SELECT definition is required");let n=-1,r,o=!1,i=!1;for(let a=0;a=0&&t[n]===";"?(t.slice(0,n).trimEnd()+t.slice(n+1)).trim():t}function Dr(e){let t=0,n=-1,r=-1;for(let o of Pr(e)){if(o.kind==="symbol"&&o.value==="("){t===0&&n===-1&&(n=o.start),t++;continue}if(o.kind==="symbol"&&o.value===")"){t===1&&n!==-1&&r===-1&&(r=o.end),t=Math.max(0,t-1);continue}if(t===0&&F(o,"AS"))return{selectStart:o.end,columnListSql:n!==-1&&r!==-1?e.slice(n,r):void 0}}throw new Error("Unable to locate the SELECT body in the stored view definition")}function Mr(e){let{selectStart:t}=Dr(e);return pe(e.slice(t))}function hn(e){return Dr(e).columnListSql}function tt(e,t,n,r){let o=n??(r?.length?`(${r.map(i=>w(i)).join(", ")})`:void 0);return`CREATE VIEW ${w(e)}${o?` ${o}`:""} AS ${t}`}function En(e,t){let n=Tt(e);if(n.targetSchema===void 0){let r=n.tokens[n.targetStartIndex];return`${e.slice(0,r.start)}main.${e.slice(r.start)}`}if(me(n.targetSchema)!=="main")throw new Error(`Unable to recreate temporary trigger ${t}: target is not in main`);return e}function wn(e){if(!e.temporary)return e.sql;let t=/^(\s*CREATE\s+)(?:(?:TEMP|TEMPORARY)\s+)?(TRIGGER\b)/i;if(!t.test(e.sql))throw new Error(`Unable to recreate temporary trigger ${e.identifier}: stored SQL is not a CREATE TRIGGER statement`);return En(e.sql,e.identifier).replace(t,"$1TEMP $2")}var vs=new Set(["AS","CROSS","END","EXCEPT","FULL","GROUP","HAVING","INDEXED","INNER","INTERSECT","JOIN","LEFT","LIMIT","NATURAL","NOT","OFFSET","ON","ORDER","OUTER","RETURNING","RIGHT","SET","UNION","USING","VALUES","WHERE","WINDOW"]),Ps=new Set(["END","EXCEPT","GROUP","HAVING","INTERSECT","LIMIT","OFFSET","ON","ORDER","RETURNING","SET","UNION","USING","VALUES","WHERE","WINDOW"]);function gn(e,t){return e.push({parent:t,aliases:new Set,hasAmbiguousSource:!1}),e.length-1}function ks(e){let{tokens:t,referenceStartIndex:n,bodyStartIndex:r}=e,o=[],i=new Array(t.length),a=new Map,s=[],l=[gn(o)],d=!1;for(let c=n;c1&&l.pop()}else u.kind==="symbol"&&u.value===";"&&l.length===1&&(d=!0)}return{scopes:o,tokenScopes:i,matchingParentheses:a}}function Bs(e,t){t&&/^(?:NEW|OLD)$/i.test(t)&&e.aliases.add(me(t))}function Lr(e,t,n,r){let o=r.scopes[n],i=t,a;if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}else if(fe(e[i])){if(a=e[i].value,i++,e[i]?.kind==="symbol"&&e[i].value==="."){if(!fe(e[i+1]))return o.hasAmbiguousSource=!0,i+1;a=e[i+1].value,i+=2}if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}}else return o.hasAmbiguousSource=!0,i+1;let s;if(F(e[i],"AS")){if(!fe(e[i+1]))return o.hasAmbiguousSource=!0,i+1;s=e[i+1].value,i+=2}else if(fe(e[i])){let l=e[i];l.kind==="word"&&vs.has(l.value.toUpperCase())||(s=l.value,i++)}return Bs(o,s??a),i}function Ds(e,t){let n=new Map;for(let r=e.referenceStartIndex;r{let o=t[r];return n.identifier===o.identifier&&n.sql===o.sql&&n.temporary===!0==(o.temporary===!0)})}var qr="The view changed outside this editor. Reload before saving; the view was not modified.";function It(e,t,n,r){if(e!==void 0&&!Us(e,t)||!Vs(n,r))throw new Error(qr)}function Wr(e,t){if(e===null||t===null){if(e!==t)throw new Error(qr);return}It(e.sql,t.sql,e.triggers,t.triggers)}var qs=32,xt=1024;function Tn(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function bn(e){return JSON.stringify(e.map(Tn))}function Sn(e,t,n,r,o){let i=[e,t,n];return bn(r===void 0||o===void 0?i:[...i,r,o])}function Fr(e){let t=e instanceof Error?e.message:String(e);return t.length>500?`${t.slice(0,500)}...`:t}function At(e,t,n){if(!(e<=t))throw new Error(`View dependency validation refused to inspect ${e} ${n}; the fail-closed limit is ${t}`)}async function Ws(e){let t=await e.queryRows("PRAGMA database_list"),n=[],r=new Set;for(let o of t){if(typeof o[1]!="string")throw new Error("SQLite returned invalid database-list metadata during view validation");let i=Tn(o[1]);r.has(i)||(r.add(i),n.push(o[1]))}return r.has("temp")||n.unshift("temp"),At(n.length,qs,"database schemas"),n}async function Fs(e,t){let n=[];for(let r of t){let o=xt-n.length;o<0&&At(n.length,xt,"schema objects");let i=await e.queryRows(`SELECT type, name, tbl_name, sql FROM ${w(r)}.sqlite_schema WHERE type IN ('view', 'trigger') ORDER BY type, name LIMIT ${o+1}`);for(let a of i){let[s,l,d,c]=a;if(s!=="view"&&s!=="trigger"||typeof l!="string"||typeof c!="string"||s==="trigger"&&typeof d!="string")throw new Error(`SQLite returned invalid ${r} schema metadata during view validation`);n.push({schema:r,kind:s,identifier:l,targetIdentifier:s==="trigger"?d:void 0,sql:c})}At(n.length,xt,"schema objects")}return n}async function Hs(e,t,n){return(await e.queryRows(`SELECT 1 FROM ${w(t)}.sqlite_schema WHERE type IN ('table', 'view') AND name = ? COLLATE NOCASE LIMIT 1`,[n])).length>0}async function js(e,t,n){let r=yn(n.sql);if(r.targetSchema!==void 0)return[r.targetSchema];if(Tn(n.schema)!=="temp")return[n.schema];let o=[];for(let i of t)await Hs(e,i,n.targetIdentifier)&&o.push(i);return o.length>0?o:["main"]}async function Ks(e,t,n){let r=await e.queryRows(`PRAGMA ${w(t)}.table_xinfo(${w(n)})`),o=[];for(let i of r){if(typeof i[1]!="string")throw new Error(`SQLite returned invalid column metadata for ${t}.${n}`);let a=i[6];a!==2&&a!==2n&&a!==3&&a!==3n&&o.push(i[1])}return o}async function Hr(e){let t=await Ws(e),n=await Fs(e,t),r=new Map,o=[],i=new Map;for(let s of n){if(s.kind==="view"){o.push({key:Sn("view",s.schema,s.identifier),kind:"view",schema:s.schema,identifier:s.identifier,sql:`EXPLAIN SELECT * FROM ${w(s.schema)}.${w(s.identifier)}`});continue}let l;try{l=await js(e,t,s)}catch(d){let c=Sn("trigger",s.schema,s.identifier);r.set(c,{key:c,kind:"trigger",schema:s.schema,identifier:s.identifier,valid:!1,error:Fr(d)});continue}for(let d of l){let c=s.targetIdentifier,u=Sn("trigger",s.schema,s.identifier,d,c);try{let f=bn([d,c]),m=i.get(f);m||(m=Ks(e,d,c),i.set(f,m));let y=Ct(s.sql,d,c,await m);if(y===void 0){r.set(u,{key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,valid:!0});continue}o.push({key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,sql:y})}catch(f){r.set(u,{key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,valid:!1,error:Fr(f)})}}}At(o.length+r.size,xt,"view and trigger probes");let a=await e.compileStatements(o.map(s=>s.sql));if(a.length!==o.length)throw new Error("View dependency validation returned an incomplete probe result set");return o.forEach((s,l)=>{let d=a[l];r.set(s.key,{key:s.key,kind:s.kind,schema:s.schema,identifier:s.identifier,targetSchema:s.targetSchema,targetIdentifier:s.targetIdentifier,valid:d===void 0,...d===void 0?{}:{error:d}})}),r}function ge(e,t){for(let n of e.values()){if(!n.valid)continue;let r=t.get(n.key);if(!r||r.valid)continue;let o=r.targetSchema&&r.targetIdentifier?` on ${r.targetSchema}.${r.targetIdentifier}`:"";throw new Error(`Schema change would break existing ${r.kind} "${r.schema}.${r.identifier}"${o}: ${r.error??"SQLite rejected it"}`)}}var jr=1024*1024,Kr=2e5;function nt(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function zs(e){return/[A-Za-z_\u0080-\uFFFF]/.test(e)}function Qs(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Xs(e,t,n){let r=t+1,o="";for(;rjr)throw new Error(`Cannot inspect index dependency: definition exceeds ${jr} characters`);let t=[],n=o=>{if(t.push(o),t.length>Kr)throw new Error(`Cannot inspect index dependency: definition exceeds ${Kr} tokens`)},r=0;for(;rs.kind==="word"&&s.value.toUpperCase()==="INDEX"),r=t.findIndex((s,l)=>l>n&&s.kind==="word"&&s.value.toUpperCase()==="ON"),o=t.findIndex((s,l)=>l>r&&s.kind==="symbol"&&s.value==="(");if(n<0||r<0||o<0)throw new Error("Cannot inspect index dependency: unsupported CREATE INDEX definition");let i=t.filter((s,l)=>l>=o&&s.kind==="symbol"&&s.value===";");if(i.length>1||i.length===1&&t.at(-1)!==i[0])throw new Error("Cannot inspect index dependency: multiple statements are not allowed");let a=i[0]?.start??e.length;return e.slice(t[o].start,a).trim()}function zr(e,t){let n=[...t],r=`${e}_dummy`,o=new Set(t.map(nt));for(;o.has(nt(r));)r+="_";return n.push(r),`CREATE TEMP TABLE ${w(e)} (${n.map(w).join(", ")})`}function Qr(e,t){let n=new Set(t.map(nt));return e.filter(r=>n.has(nt(r)))}function Xr(e,t,n){let r=Ys(n);return`CREATE INDEX temp.${w(t)} ON ${w(e)} ${r}`}function Gr(e,t,n={}){if(W(e,"Table name"),t.length===0)throw new Error("At least one column is required");if(!n||typeof n!="object"||Array.isArray(n)||n.withoutRowid!==void 0&&typeof n.withoutRowid!="boolean")throw new Error("Invalid Create Table options");let r=t.filter(s=>s.primaryKey);if(n.withoutRowid&&r.length===0)throw new Error("WITHOUT ROWID requires a primary key");let o=r.length>1,i=new Set,a=t.map(s=>{if(typeof s=="string")throw new Error("Legacy string column definitions not supported for security");W(s.name,"Column name"),pn(s.type);let l=nt(s.name);if(i.has(l))throw new Error(`Column ${JSON.stringify(s.name)} is defined more than once`);i.add(l);let d=`${w(s.name)} ${s.type}`;return s.primaryKey&&!o&&(d+=" PRIMARY KEY"),s.notNull&&(d+=" NOT NULL"),d+=Js(s.defaultValue),d});return o&&a.push(`PRIMARY KEY (${r.map(s=>w(s.name)).join(", ")})`),`CREATE TABLE ${N(e)} (${a.join(", ")})${n.withoutRowid?" WITHOUT ROWID":""}`}function Js(e){return e==null||e===""?"":e.toLowerCase()==="null"?" DEFAULT NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e)?` DEFAULT ${e}`:` DEFAULT '${e.replace(/'/g,"''")}'`}var Zs=new Set(["=","+","-","@","\uFF1D","\uFF0B","\uFF0D","\uFF20"]),ea=/^(?:\p{White_Space}|\p{Cc}|\p{Cf})$/u;function Yr(){return{dangerousPrefix:!1,prefixOpen:!0,needsQuotes:!1}}function Jr(e,t){if((t.includes(",")||t.includes('"')||t.includes(` -`)||t.includes("\r"))&&(e.needsQuotes=!0),!!e.prefixOpen)for(let n of t){if(Zs.has(n)){e.dangerousPrefix=!0,e.needsQuotes=!0,e.prefixOpen=!1;return}if(!ea.test(n)){e.prefixOpen=!1;return}}}function ta(e){let t=Yr();Jr(t,e);let n=t.dangerousPrefix?`'${e}`:e;return t.needsQuotes?`"${n.replace(/"/g,'""')}"`:n}function na(e,t){return e==="sql"?{prefix:"CAST(X'",suffix:"' AS TEXT)",byteEncoding:"hex"}:e==="json"?{prefix:`{"$sqliteExplorerTextBytes":{"encoding":${JSON.stringify(t)},"base64":"`,suffix:'"}}',byteEncoding:"base64"}:{prefix:`[SQLite TEXT bytes; encoding=${t}; base64=`,suffix:"]",byteEncoding:"base64"}}var ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Zr(e){let t="",n=0;for(;n+2>>18&63]+ye[o>>>12&63]+ye[o>>>6&63]+ye[o&63]}let r=e.length-n;if(r===1){let o=e[n]<<16;t+=ye[o>>>18&63]+ye[o>>>12&63]+"=="}else if(r===2){let o=e[n]<<16|e[n+1]<<8;t+=ye[o>>>18&63]+ye[o>>>12&63]+ye[o>>>6&63]+"="}return t}function Cn(e){let t=typeof e=="bigint"?e.toString():typeof e=="string"?e:void 0;if(t===void 0)throw new Error("SQLite returned invalid exact INTEGER text for export");try{if(BigInt(t).toString()!==t)throw new Error}catch{throw new Error("SQLite returned non-canonical INTEGER text for export")}return t}function ra(e){if(!(e instanceof Uint8Array))throw new Error("SQLite returned invalid BLOB data for export");return e}function Rn(e,t){let n=e.unrepresentableTextBytes;if(n===void 0)return;if(e.storageClass!=="text"||!(n instanceof Uint8Array)||!e.textEncoding)throw new Error("SQLite returned invalid unrepresentable TEXT export metadata");let r=na(t,e.textEncoding),o=r.byteEncoding==="hex"?Array.from(n,i=>i.toString(16).padStart(2,"0")).join(""):Zr(n);return r.prefix+o+r.suffix}function In(e){let t=Rn(e,"csv");return t!==void 0?t:e.storageClass==="null"?"":e.storageClass==="blob"?"[BLOB]":e.storageClass==="integer"?Cn(e.value):e.storageClass==="text"?ta(String(e.value)):String(e.value)}function eo(e){let t=Rn(e,"json");return t!==void 0?t:e.storageClass==="integer"?Cn(e.value):e.storageClass==="blob"?JSON.stringify(Zr(ra(e.value))):JSON.stringify(e.value)??"null"}function to(e){let t=Rn(e,"sql");return t!==void 0?t:e.storageClass==="integer"?Cn(e.value):$r(e.value)}var oa="__sqlite_explorer_numeric_source",ia="__sqlite_explorer_numeric_value_",sa="__sqlite_explorer_numeric_text_",no="__sqlite_explorer_numeric_rowid",aa="__sqlite_explorer_numeric_rowid_text_",la=2e3,ro=999,Nt=32766,rt=`SELECT 1 FROM pragma.pragma_table_list AS target WHERE "schema" = 'main' AND "name" = ? AND (("type" IN ('table', 'shadow') AND "wr" = 0) OR "type" = 'virtual') AND (NOT EXISTS (SELECT 1 FROM pragma.pragma_table_info(?, 'main') WHERE lower("name") = 'rowid') OR ("type" = 'table' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND EXISTS (SELECT 1 FROM pragma.pragma_table_info(target."name", 'main') WHERE lower("name") = 'rowid' AND lower(trim("type")) = 'integer' AND "pk" = 1) AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk'))) LIMIT 1`,oo=`SELECT info."name" FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_info(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? AND target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') LIMIT 2`,io=`SELECT info."cid", info."name", info."type", info."notnull", info."dflt_value", info."pk", info."hidden", CASE WHEN target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') THEN 1 ELSE 0 END AS is_rowid_alias FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_xinfo(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? ORDER BY info."cid"`;function so(e,t){if(e.length!==0){if(e.length!==1||e[0].length<1||typeof e[0][0]!="string")throw new Error(`SQLite returned invalid rowid-alias metadata for ${t}`);return e[0][0]}}function _t(e){return e.replace(/[A-Z]/g,t=>String.fromCharCode(t.charCodeAt(0)+32))}function Me(e,t){return _t(e)===_t(t)}function ao(e,t){let n=BigInt(Number.MAX_SAFE_INTEGER),r=BigInt(Number.MIN_SAFE_INTEGER);return e.some(o=>{let i=o[t];return typeof i=="bigint"&&(i>n||i`${ia}${f}`),r=Array.from({length:t},(u,f)=>`${sa}${f}`),o=w(oa),i=n.map(w),a=t*2<=la,s=i.map((u,f)=>`CASE WHEN typeof(${u}) = 'real' THEN CAST(${u} AS TEXT) END AS ${w(r[f])}`),l=a?[...i,...s]:i,d=a?[...n,...r]:n,c={sql:`WITH ${o} (${i.join(", ")}) AS ( +/*! sqlite-viewer-bundle-sha256:6db5b813ec6dab7ffce8ce541c6c45a4a9a7fcf2bc765e5818d38ea17a1c9de6 */ +"use strict";(()=>{var As=Object.defineProperty;var Ns=(e,t,n)=>t in e?As(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var D=(e,t,n)=>Ns(e,typeof t!="symbol"?t+"":t,n);function de(e){if(e==="utf-8")return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});let t=e==="utf-16le";return{decode(n){if(n.length%2!==0)throw new TypeError(`Invalid ${e}: odd byte length`);let r=a=>t?n[a]|n[a+1]<<8:n[a]<<8|n[a+1],o=[],i="";for(let a=0;a=55296&&s<=56319){let l=a+257343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s,l),a+=2}else{if(s>=56320&&s<=57343)throw new TypeError(`Invalid ${e}: unpaired surrogate`);i+=String.fromCharCode(s)}i.length>=8192&&(o.push(i),i="")}return o.push(i),o.join("")}}}function w(e){return`"${e.replace(/"/g,'""')}"`}function N(e){return`main.${w(e)}`}function W(e,t="Identifier"){if(typeof e!="string"||e.length===0)throw new Error(`${t} is required`);if(e.includes("\0"))throw new Error(`${t} cannot contain NUL characters`)}function gn(e){if(!e||typeof e!="string")throw new Error("Invalid SQL type: Type must be a non-empty string");if(/['";\-\/\*]/.test(e))throw new Error(`Invalid SQL type: "${e}" contains potentially unsafe characters`);if(!/^[a-zA-Z0-9_\s]+(?:\([0-9\s,]+\)[a-zA-Z0-9_\s]*)?$/.test(e.trim()))throw new Error(`Invalid SQL type: "${e}" does not match allowed format`)}function Or(e){if(e==null)return"NULL";if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();if(typeof e=="string"){if(e.includes("\0")){let n=new TextEncoder().encode(e);return`CAST(X'${Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}' AS TEXT)`}return`'${e.replace(/'/g,"''")}'`}return e instanceof Uint8Array?`X'${Array.from(e).map(n=>n.toString(16).padStart(2,"0")).join("")}'`:`'${String(e).replace(/'/g,"''")}'`}function et(e,t="\\"){let n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`[${n}%_]`,"g");return e.replace(r,o=>t+o)}var _s=-9223372036854775808n,$s=9223372036854775807n;function M(e){let t=typeof e;if(t!=="string"&&t!=="number"&&t!=="bigint")throw new Error(`Invalid rowid: ${e}`);if(typeof e=="number"){if(!Number.isSafeInteger(e))throw new Error(`Invalid rowid: ${e}`);return e}let n=typeof e=="string"?e.trim():e.toString();if(!/^[+-]?\d+$/.test(n))throw new Error(`Invalid rowid: ${e}`);let r=BigInt(n);if(r<_s||r>$s)throw new Error(`Invalid rowid: ${e}`);let o=Number(r);return Number.isSafeInteger(o)?o:r.toString()}var bt=[{sql:"SELECT name, sql FROM main.sqlite_schema WHERE type = 'trigger' AND tbl_name = ? COLLATE NOCASE ORDER BY rowid",params:e=>[e],temporary:!1},{sql:"SELECT temp_trigger.name, temp_trigger.sql, EXISTS (SELECT 1 FROM sqlite_temp_schema AS temp_view WHERE temp_view.type = 'view' AND temp_view.name = ? COLLATE NOCASE) FROM sqlite_temp_schema AS temp_trigger WHERE temp_trigger.type = 'trigger' AND temp_trigger.tbl_name = ? COLLATE NOCASE ORDER BY temp_trigger.rowid",params:e=>[e,e],temporary:!0}];function Lr(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function kr(e){let t=[],n=0;for(;nt.toLowerCase())}function De(e,t){if(!fe(e[t]))throw new Error("Expected an SQL identifier");return t+1}function Os(e,t){return t=De(e,t),e[t]?.kind==="symbol"&&e[t].value==="."&&(t=De(e,t+1)),t}function Tt(e){let t=kr(e),n=[],r,o=0,i=u=>{if(!F(t[o],u))throw new Error(`Expected ${u} in stored CREATE TRIGGER SQL`);o++};if(i("CREATE"),(F(t[o],"TEMP")||F(t[o],"TEMPORARY"))&&o++,i("TRIGGER"),F(t[o],"IF")&&(o++,i("NOT"),i("EXISTS")),o=Os(t,o),F(t[o],"BEFORE")||F(t[o],"AFTER")?o++:F(t[o],"INSTEAD")&&(o++,i("OF")),F(t[o],"INSERT"))r="insert",o++;else if(F(t[o],"DELETE"))r="delete",o++;else if(F(t[o],"UPDATE")){if(r="update",o++,F(t[o],"OF")){if(o++,!fe(t[o]))throw new Error("Expected an SQL identifier after UPDATE OF");for(n.push(t[o]),o=De(t,o);t[o]?.kind==="symbol"&&t[o].value===",";){if(o++,!fe(t[o]))throw new Error("Expected an SQL identifier in UPDATE OF column list");n.push(t[o]),o=De(t,o)}}}else throw new Error("Expected a trigger event in stored CREATE TRIGGER SQL");i("ON");let a=o,s=t[o];o=De(t,o);let l;t[o]?.kind==="symbol"&&t[o].value==="."&&(l=s.value,o=De(t,o+1));let d=o,c=t.findIndex((u,f)=>f>=o&&F(u,"BEGIN"));if(c<0)throw new Error("Expected BEGIN in stored CREATE TRIGGER SQL");return{tokens:t,event:r,targetSchema:l,targetStartIndex:a,updateOfColumns:n,referenceStartIndex:d,bodyStartIndex:c+1}}function hn(e){let t=Tt(e);return{event:t.event,targetSchema:t.targetSchema,updateOfColumns:t.updateOfColumns.map(n=>n.value)}}function Ct(e,t,n,r){let o=hn(e),i=`${w(t)}.${w(n)}`;if(o.event==="insert")return`EXPLAIN INSERT INTO ${i} DEFAULT VALUES`;if(o.event==="delete")return`EXPLAIN DELETE FROM ${i} WHERE 0`;let a=new Map(r.map(c=>[me(c),c])),s=o.updateOfColumns.map(c=>a.get(me(c))).find(c=>c!==void 0);if(o.updateOfColumns.length>0&&s===void 0)return;let l=s??r[0];if(l===void 0)throw new Error(`Trigger target ${t}.${n} has no writable column to probe`);let d=w(l);return`EXPLAIN UPDATE ${i} SET ${d} = ${d} WHERE 0`}function Ls(e){return Tt(e).targetSchema}function J(e){return`main.${w(e)}`}function Br(e,t){let n=`-- TRIGGER ${t}`;return e.some(r=>r.some(o=>o===n))}function Dr(e,t){if(t.length!==bt.length)throw new Error(`View trigger definition fetch was incomplete for ${e}`);let n=[],r=[],o=[];return bt.forEach((i,a)=>{t[a].forEach(s=>{if(typeof s[0]!="string"||typeof s[1]!="string")throw new Error(`View trigger definition is unavailable for ${e}`);if(i.temporary){let l=s[2]===1||s[2]===1n;if(s[2]!==0&&s[2]!==0n&&!l)throw new Error(`Temporary view shadow state is unavailable for ${e}`);let d;try{d=Ls(s[1])}catch(c){let u=c instanceof Error?c.message:String(c);throw new Error(`Unable to determine the target of temporary trigger ${s[0]}: ${u}`)}if(d!==void 0&&me(d)!=="main")return;if(d===void 0){o.push({identifier:s[0],sql:s[1],temporary:!0});return}}n.push(i.temporary?{identifier:s[0],sql:s[1],temporary:!0}:{identifier:s[0],sql:s[1]})})}),{triggers:n,ambiguousTemporaryTriggerNames:r,unqualifiedTemporaryTriggers:o}}function Rt(e){let t=e.ambiguousTemporaryTriggerNames??[];if(t.length===0)return;let n=t.map(r=>`"${r}"`).join(", ");throw new Error(`Cannot modify main view "${e.identifier}" because temporary trigger target ownership is ambiguous for ${n}. Each named trigger uses an unqualified ON target whose historical schema cannot be proven. Drop the TEMP trigger, or recreate it with an explicitly schema-qualified target, before editing or dropping the main view.`)}function pe(e){let t=e.trim();if(!t)throw new Error("View SELECT definition is required");let n=-1,r,o=!1,i=!1;for(let a=0;a=0&&t[n]===";"?(t.slice(0,n).trimEnd()+t.slice(n+1)).trim():t}function Mr(e){let t=0,n=-1,r=-1;for(let o of kr(e)){if(o.kind==="symbol"&&o.value==="("){t===0&&n===-1&&(n=o.start),t++;continue}if(o.kind==="symbol"&&o.value===")"){t===1&&n!==-1&&r===-1&&(r=o.end),t=Math.max(0,t-1);continue}if(t===0&&F(o,"AS"))return{selectStart:o.end,columnListSql:n!==-1&&r!==-1?e.slice(n,r):void 0}}throw new Error("Unable to locate the SELECT body in the stored view definition")}function Ur(e){let{selectStart:t}=Mr(e);return pe(e.slice(t))}function En(e){return Mr(e).columnListSql}function tt(e,t,n,r){let o=n??(r?.length?`(${r.map(i=>w(i)).join(", ")})`:void 0);return`CREATE VIEW ${w(e)}${o?` ${o}`:""} AS ${t}`}function wn(e,t){let n=Tt(e);if(n.targetSchema===void 0){let r=n.tokens[n.targetStartIndex];return`${e.slice(0,r.start)}main.${e.slice(r.start)}`}if(me(n.targetSchema)!=="main")throw new Error(`Unable to recreate temporary trigger ${t}: target is not in main`);return e}function Sn(e){if(!e.temporary)return e.sql;let t=/^(\s*CREATE\s+)(?:(?:TEMP|TEMPORARY)\s+)?(TRIGGER\b)/i;if(!t.test(e.sql))throw new Error(`Unable to recreate temporary trigger ${e.identifier}: stored SQL is not a CREATE TRIGGER statement`);return wn(e.sql,e.identifier).replace(t,"$1TEMP $2")}var vs=new Set(["AS","CROSS","END","EXCEPT","FULL","GROUP","HAVING","INDEXED","INNER","INTERSECT","JOIN","LEFT","LIMIT","NATURAL","NOT","OFFSET","ON","ORDER","OUTER","RETURNING","RIGHT","SET","UNION","USING","VALUES","WHERE","WINDOW"]),Ps=new Set(["END","EXCEPT","GROUP","HAVING","INTERSECT","LIMIT","OFFSET","ON","ORDER","RETURNING","SET","UNION","USING","VALUES","WHERE","WINDOW"]);function yn(e,t){return e.push({parent:t,aliases:new Set,hasAmbiguousSource:!1}),e.length-1}function ks(e){let{tokens:t,referenceStartIndex:n,bodyStartIndex:r}=e,o=[],i=new Array(t.length),a=new Map,s=[],l=[yn(o)],d=!1;for(let c=n;c1&&l.pop()}else u.kind==="symbol"&&u.value===";"&&l.length===1&&(d=!0)}return{scopes:o,tokenScopes:i,matchingParentheses:a}}function Bs(e,t){t&&/^(?:NEW|OLD)$/i.test(t)&&e.aliases.add(me(t))}function vr(e,t,n,r){let o=r.scopes[n],i=t,a;if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}else if(fe(e[i])){if(a=e[i].value,i++,e[i]?.kind==="symbol"&&e[i].value==="."){if(!fe(e[i+1]))return o.hasAmbiguousSource=!0,i+1;a=e[i+1].value,i+=2}if(e[i]?.kind==="symbol"&&e[i].value==="("){let l=r.matchingParentheses.get(i);if(l===void 0)return o.hasAmbiguousSource=!0,i+1;i=l+1}}else return o.hasAmbiguousSource=!0,i+1;let s;if(F(e[i],"AS")){if(!fe(e[i+1]))return o.hasAmbiguousSource=!0,i+1;s=e[i+1].value,i+=2}else if(fe(e[i])){let l=e[i];l.kind==="word"&&vs.has(l.value.toUpperCase())||(s=l.value,i++)}return Bs(o,s??a),i}function Ds(e,t){let n=new Map;for(let r=e.referenceStartIndex;r{let o=t[r];return n.identifier===o.identifier&&n.sql===o.sql&&n.temporary===!0==(o.temporary===!0)})}var Wr="The view changed outside this editor. Reload before saving; the view was not modified.";function It(e,t,n,r){if(e!==void 0&&!Us(e,t)||!Vs(n,r))throw new Error(Wr)}function Fr(e,t){if(e===null||t===null){if(e!==t)throw new Error(Wr);return}It(e.sql,t.sql,e.triggers,t.triggers)}var qs=32,xt=1024;function Cn(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function Tn(e){return JSON.stringify(e.map(Cn))}function bn(e,t,n,r,o){let i=[e,t,n];return Tn(r===void 0||o===void 0?i:[...i,r,o])}function Hr(e){let t=e instanceof Error?e.message:String(e);return t.length>500?`${t.slice(0,500)}...`:t}function At(e,t,n){if(!(e<=t))throw new Error(`View dependency validation refused to inspect ${e} ${n}; the fail-closed limit is ${t}`)}async function Ws(e){let t=await e.queryRows("PRAGMA database_list"),n=[],r=new Set;for(let o of t){if(typeof o[1]!="string")throw new Error("SQLite returned invalid database-list metadata during view validation");let i=Cn(o[1]);r.has(i)||(r.add(i),n.push(o[1]))}return r.has("temp")||n.unshift("temp"),At(n.length,qs,"database schemas"),n}async function Fs(e,t){let n=[];for(let r of t){let o=xt-n.length;o<0&&At(n.length,xt,"schema objects");let i=await e.queryRows(`SELECT type, name, tbl_name, sql FROM ${w(r)}.sqlite_schema WHERE type IN ('view', 'trigger') ORDER BY type, name LIMIT ${o+1}`);for(let a of i){let[s,l,d,c]=a;if(s!=="view"&&s!=="trigger"||typeof l!="string"||typeof c!="string"||s==="trigger"&&typeof d!="string")throw new Error(`SQLite returned invalid ${r} schema metadata during view validation`);n.push({schema:r,kind:s,identifier:l,targetIdentifier:s==="trigger"?d:void 0,sql:c})}At(n.length,xt,"schema objects")}return n}async function Hs(e,t,n){return(await e.queryRows(`SELECT 1 FROM ${w(t)}.sqlite_schema WHERE type IN ('table', 'view') AND name = ? COLLATE NOCASE LIMIT 1`,[n])).length>0}async function js(e,t,n){let r=hn(n.sql);if(r.targetSchema!==void 0)return[r.targetSchema];if(Cn(n.schema)!=="temp")return[n.schema];let o=[];for(let i of t)await Hs(e,i,n.targetIdentifier)&&o.push(i);return o.length>0?o:["main"]}async function Ks(e,t,n){let r=await e.queryRows(`PRAGMA ${w(t)}.table_xinfo(${w(n)})`),o=[];for(let i of r){if(typeof i[1]!="string")throw new Error(`SQLite returned invalid column metadata for ${t}.${n}`);let a=i[6];a!==2&&a!==2n&&a!==3&&a!==3n&&o.push(i[1])}return o}async function jr(e){let t=await Ws(e),n=await Fs(e,t),r=new Map,o=[],i=new Map;for(let s of n){if(s.kind==="view"){o.push({key:bn("view",s.schema,s.identifier),kind:"view",schema:s.schema,identifier:s.identifier,sql:`EXPLAIN SELECT * FROM ${w(s.schema)}.${w(s.identifier)}`});continue}let l;try{l=await js(e,t,s)}catch(d){let c=bn("trigger",s.schema,s.identifier);r.set(c,{key:c,kind:"trigger",schema:s.schema,identifier:s.identifier,valid:!1,error:Hr(d)});continue}for(let d of l){let c=s.targetIdentifier,u=bn("trigger",s.schema,s.identifier,d,c);try{let f=Tn([d,c]),m=i.get(f);m||(m=Ks(e,d,c),i.set(f,m));let y=Ct(s.sql,d,c,await m);if(y===void 0){r.set(u,{key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,valid:!0});continue}o.push({key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,sql:y})}catch(f){r.set(u,{key:u,kind:"trigger",schema:s.schema,identifier:s.identifier,targetSchema:d,targetIdentifier:c,valid:!1,error:Hr(f)})}}}At(o.length+r.size,xt,"view and trigger probes");let a=await e.compileStatements(o.map(s=>s.sql));if(a.length!==o.length)throw new Error("View dependency validation returned an incomplete probe result set");return o.forEach((s,l)=>{let d=a[l];r.set(s.key,{key:s.key,kind:s.kind,schema:s.schema,identifier:s.identifier,targetSchema:s.targetSchema,targetIdentifier:s.targetIdentifier,valid:d===void 0,...d===void 0?{}:{error:d}})}),r}function ge(e,t){for(let n of e.values()){if(!n.valid)continue;let r=t.get(n.key);if(!r||r.valid)continue;let o=r.targetSchema&&r.targetIdentifier?` on ${r.targetSchema}.${r.targetIdentifier}`:"";throw new Error(`Schema change would break existing ${r.kind} "${r.schema}.${r.identifier}"${o}: ${r.error??"SQLite rejected it"}`)}}var Kr=1024*1024,zr=2e5;function nt(e){return e.replace(/[A-Z]/g,t=>t.toLowerCase())}function zs(e){return/[A-Za-z_\u0080-\uFFFF]/.test(e)}function Qs(e){return/[A-Za-z0-9_$\u0080-\uFFFF]/.test(e)}function Xs(e,t,n){let r=t+1,o="";for(;rKr)throw new Error(`Cannot inspect index dependency: definition exceeds ${Kr} characters`);let t=[],n=o=>{if(t.push(o),t.length>zr)throw new Error(`Cannot inspect index dependency: definition exceeds ${zr} tokens`)},r=0;for(;rs.kind==="word"&&s.value.toUpperCase()==="INDEX"),r=t.findIndex((s,l)=>l>n&&s.kind==="word"&&s.value.toUpperCase()==="ON"),o=t.findIndex((s,l)=>l>r&&s.kind==="symbol"&&s.value==="(");if(n<0||r<0||o<0)throw new Error("Cannot inspect index dependency: unsupported CREATE INDEX definition");let i=t.filter((s,l)=>l>=o&&s.kind==="symbol"&&s.value===";");if(i.length>1||i.length===1&&t.at(-1)!==i[0])throw new Error("Cannot inspect index dependency: multiple statements are not allowed");let a=i[0]?.start??e.length;return e.slice(t[o].start,a).trim()}function Qr(e,t){let n=[...t],r=`${e}_dummy`,o=new Set(t.map(nt));for(;o.has(nt(r));)r+="_";return n.push(r),`CREATE TEMP TABLE ${w(e)} (${n.map(w).join(", ")})`}function Xr(e,t){let n=new Set(t.map(nt));return e.filter(r=>n.has(nt(r)))}function Gr(e,t,n){let r=Ys(n);return`CREATE INDEX temp.${w(t)} ON ${w(e)} ${r}`}function Yr(e,t,n={}){if(W(e,"Table name"),t.length===0)throw new Error("At least one column is required");if(!n||typeof n!="object"||Array.isArray(n)||n.withoutRowid!==void 0&&typeof n.withoutRowid!="boolean")throw new Error("Invalid Create Table options");let r=t.filter(s=>s.primaryKey);if(n.withoutRowid&&r.length===0)throw new Error("WITHOUT ROWID requires a primary key");let o=r.length>1,i=new Set,a=t.map(s=>{if(typeof s=="string")throw new Error("Legacy string column definitions not supported for security");W(s.name,"Column name"),gn(s.type);let l=nt(s.name);if(i.has(l))throw new Error(`Column ${JSON.stringify(s.name)} is defined more than once`);i.add(l);let d=`${w(s.name)} ${s.type}`;return s.primaryKey&&!o&&(d+=" PRIMARY KEY"),s.notNull&&(d+=" NOT NULL"),d+=Js(s.defaultValue),d});return o&&a.push(`PRIMARY KEY (${r.map(s=>w(s.name)).join(", ")})`),`CREATE TABLE ${N(e)} (${a.join(", ")})${n.withoutRowid?" WITHOUT ROWID":""}`}function Js(e){return e==null||e===""?"":e.toLowerCase()==="null"?" DEFAULT NULL":/^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(e)?` DEFAULT ${e}`:` DEFAULT '${e.replace(/'/g,"''")}'`}var Zs=new Set(["=","+","-","@","\uFF1D","\uFF0B","\uFF0D","\uFF20"]),ea=/^(?:\p{White_Space}|\p{Cc}|\p{Cf})$/u;function Jr(){return{dangerousPrefix:!1,prefixOpen:!0,needsQuotes:!1}}function Zr(e,t){if((t.includes(",")||t.includes('"')||t.includes(` +`)||t.includes("\r"))&&(e.needsQuotes=!0),!!e.prefixOpen)for(let n of t){if(Zs.has(n)){e.dangerousPrefix=!0,e.needsQuotes=!0,e.prefixOpen=!1;return}if(!ea.test(n)){e.prefixOpen=!1;return}}}function ta(e){let t=Jr();Zr(t,e);let n=t.dangerousPrefix?`'${e}`:e;return t.needsQuotes?`"${n.replace(/"/g,'""')}"`:n}function na(e,t){return e==="sql"?{prefix:"CAST(X'",suffix:"' AS TEXT)",byteEncoding:"hex"}:e==="json"?{prefix:`{"$sqliteExplorerTextBytes":{"encoding":${JSON.stringify(t)},"base64":"`,suffix:'"}}',byteEncoding:"base64"}:{prefix:`[SQLite TEXT bytes; encoding=${t}; base64=`,suffix:"]",byteEncoding:"base64"}}var ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function eo(e){let t="",n=0;for(;n+2>>18&63]+ye[o>>>12&63]+ye[o>>>6&63]+ye[o&63]}let r=e.length-n;if(r===1){let o=e[n]<<16;t+=ye[o>>>18&63]+ye[o>>>12&63]+"=="}else if(r===2){let o=e[n]<<16|e[n+1]<<8;t+=ye[o>>>18&63]+ye[o>>>12&63]+ye[o>>>6&63]+"="}return t}function Rn(e){let t=typeof e=="bigint"?e.toString():typeof e=="string"?e:void 0;if(t===void 0)throw new Error("SQLite returned invalid exact INTEGER text for export");try{if(BigInt(t).toString()!==t)throw new Error}catch{throw new Error("SQLite returned non-canonical INTEGER text for export")}return t}function ra(e){if(!(e instanceof Uint8Array))throw new Error("SQLite returned invalid BLOB data for export");return e}function In(e,t){let n=e.unrepresentableTextBytes;if(n===void 0)return;if(e.storageClass!=="text"||!(n instanceof Uint8Array)||!e.textEncoding)throw new Error("SQLite returned invalid unrepresentable TEXT export metadata");let r=na(t,e.textEncoding),o=r.byteEncoding==="hex"?Array.from(n,i=>i.toString(16).padStart(2,"0")).join(""):eo(n);return r.prefix+o+r.suffix}function xn(e){let t=In(e,"csv");return t!==void 0?t:e.storageClass==="null"?"":e.storageClass==="blob"?"[BLOB]":e.storageClass==="integer"?Rn(e.value):e.storageClass==="text"?ta(String(e.value)):String(e.value)}function to(e){let t=In(e,"json");return t!==void 0?t:e.storageClass==="integer"?Rn(e.value):e.storageClass==="blob"?JSON.stringify(eo(ra(e.value))):JSON.stringify(e.value)??"null"}function no(e){let t=In(e,"sql");return t!==void 0?t:e.storageClass==="integer"?Rn(e.value):Or(e.value)}var oa="__sqlite_explorer_numeric_source",ia="__sqlite_explorer_numeric_value_",sa="__sqlite_explorer_numeric_text_",ro="__sqlite_explorer_numeric_rowid",aa="__sqlite_explorer_numeric_rowid_text_",la=2e3,oo=999,Nt=32766,rt=`SELECT 1 FROM pragma.pragma_table_list AS target WHERE "schema" = 'main' AND "name" = ? AND (("type" IN ('table', 'shadow') AND "wr" = 0) OR "type" = 'virtual') AND (NOT EXISTS (SELECT 1 FROM pragma.pragma_table_info(?, 'main') WHERE lower("name") = 'rowid') OR ("type" = 'table' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND EXISTS (SELECT 1 FROM pragma.pragma_table_info(target."name", 'main') WHERE lower("name") = 'rowid' AND lower(trim("type")) = 'integer' AND "pk" = 1) AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk'))) LIMIT 1`,io=`SELECT info."name" FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_info(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? AND target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') LIMIT 2`,so=`SELECT info."cid", info."name", info."type", info."notnull", info."dflt_value", info."pk", info."hidden", CASE WHEN target."type" = 'table' AND target."wr" = 0 AND info."pk" = 1 AND lower(trim(info."type")) = 'integer' AND (SELECT count(*) FROM pragma.pragma_table_info(target."name", 'main') WHERE "pk" > 0) = 1 AND NOT EXISTS (SELECT 1 FROM pragma.pragma_index_list(target."name", 'main') WHERE "origin" = 'pk') THEN 1 ELSE 0 END AS is_rowid_alias FROM pragma.pragma_table_list AS target JOIN pragma.pragma_table_xinfo(target."name", 'main') AS info WHERE target."schema" = 'main' AND target."name" = ? ORDER BY info."cid"`;function ao(e,t){if(e.length!==0){if(e.length!==1||e[0].length<1||typeof e[0][0]!="string")throw new Error(`SQLite returned invalid rowid-alias metadata for ${t}`);return e[0][0]}}function _t(e){return e.replace(/[A-Z]/g,t=>String.fromCharCode(t.charCodeAt(0)+32))}function Me(e,t){return _t(e)===_t(t)}function lo(e,t){let n=BigInt(Number.MAX_SAFE_INTEGER),r=BigInt(Number.MIN_SAFE_INTEGER);return e.some(o=>{let i=o[t];return typeof i=="bigint"&&(i>n||i`${ia}${f}`),r=Array.from({length:t},(u,f)=>`${sa}${f}`),o=w(oa),i=n.map(w),a=t*2<=la,s=i.map((u,f)=>`CASE WHEN typeof(${u}) = 'real' THEN CAST(${u} AS TEXT) END AS ${w(r[f])}`),l=a?[...i,...s]:i,d=a?[...n,...r]:n,c={sql:`WITH ${o} (${i.join(", ")}) AS ( SELECT * FROM ( ${e} ) LIMIT -1 OFFSET 0 ) -SELECT ${l.join(", ")} FROM ${o}`,transportColumns:d};return a&&(c.valueColumnCount=t),c}function lo(e,t,n){if(t.length<2||t[0].toLowerCase()!=="rowid"||n.length===0)return[];let r=t.slice(1),o=[];for(let i=0;ii+u+1),l=s.map(c=>`${aa}${c}`),d=a.map((c,u)=>{let f=w(c);return`CASE WHEN typeof(${f}) = 'real' THEN CAST(${f} AS TEXT) END AS ${w(l[u])}`});for(let c=0;ctypeof m=="bigint"?m.toString():m);o.push({sql:`SELECT rowid AS ${w(no)}, ${d.join(", ")} FROM ${N(e)} WHERE rowid IN (${u.map(()=>"?").join(", ")})`,params:f,transportColumns:[no,...l],columnIndices:s})}}return o}function co(e,t){if(t.length===0)return;let n=new Map;e.forEach((o,i)=>{let a=o[0];if(!["bigint","number","string"].includes(typeof a))throw new Error(`Invalid rowid identity at source row ${i}`);let s=String(a);if(n.has(s))throw new Error(`Duplicate rowid identity at source row ${i}`);n.set(s,i)});let r;for(let{query:o,rows:i}of t)for(let a of i){if(a.length{let c=a[d+1];if(c==null)return;if(typeof c!="string")throw new Error(`Rowid exact REAL text at row ${s}, column ${l} is not text`);let u=e[s]?.[l];if(u===void 0)throw new Error(`Rowid exact REAL text is outside row ${s}, column ${l}`);c!==String(u)&&(r??(r={}),r[s]??(r[s]={}),r[s][l]=c)})}return r}function Ue(e,t,n,r){let o,i=(s,l,d)=>{o??(o={}),o[s]??(o[s]={}),o[s][l]=d},a=e.map((s,l)=>{let d=t??s.length;if(t!==void 0&&s.length{let f=c;if(typeof c=="bigint"){let m=Number(c);if(Number.isSafeInteger(m))f=m;else{let y=c.toString();u===r?f=y:(i(l,u,y),f=m)}}if(t!==void 0){let m=s[t+u];if(m!=null){if(typeof m!="string")throw new Error(`Exact numeric text at row ${l}, column ${u} is not text`);m!==String(f)&&i(l,u,m)}}return f})});if(n)for(let[s,l]of Object.entries(n)){let d=Number(s);if(!Number.isInteger(d)||d<0||l===null||typeof l!="object")throw new Error(`Invalid exact numeric text row index: ${s}`);for(let[c,u]of Object.entries(l)){let f=Number(c);if(!Number.isInteger(f)||f<0||typeof u!="string")throw new Error(`Invalid exact numeric text entry at row ${s}, column ${c}`);let m=a[d]?.[f];if(m===void 0)throw new Error(`Exact numeric text entry is outside row ${s}, column ${c}`);u!==String(m)&&i(d,f,u)}}return o?{rows:a,exactIntegerTexts:o}:{rows:a}}var it="pk:",An=1,$t="readonly-pk:",uo=1,fo=` +SELECT ${l.join(", ")} FROM ${o}`,transportColumns:d};return a&&(c.valueColumnCount=t),c}function co(e,t,n){if(t.length<2||t[0].toLowerCase()!=="rowid"||n.length===0)return[];let r=t.slice(1),o=[];for(let i=0;ii+u+1),l=s.map(c=>`${aa}${c}`),d=a.map((c,u)=>{let f=w(c);return`CASE WHEN typeof(${f}) = 'real' THEN CAST(${f} AS TEXT) END AS ${w(l[u])}`});for(let c=0;ctypeof m=="bigint"?m.toString():m);o.push({sql:`SELECT rowid AS ${w(ro)}, ${d.join(", ")} FROM ${N(e)} WHERE rowid IN (${u.map(()=>"?").join(", ")})`,params:f,transportColumns:[ro,...l],columnIndices:s})}}return o}function uo(e,t){if(t.length===0)return;let n=new Map;e.forEach((o,i)=>{let a=o[0];if(!["bigint","number","string"].includes(typeof a))throw new Error(`Invalid rowid identity at source row ${i}`);let s=String(a);if(n.has(s))throw new Error(`Duplicate rowid identity at source row ${i}`);n.set(s,i)});let r;for(let{query:o,rows:i}of t)for(let a of i){if(a.length{let c=a[d+1];if(c==null)return;if(typeof c!="string")throw new Error(`Rowid exact REAL text at row ${s}, column ${l} is not text`);let u=e[s]?.[l];if(u===void 0)throw new Error(`Rowid exact REAL text is outside row ${s}, column ${l}`);c!==String(u)&&(r??(r={}),r[s]??(r[s]={}),r[s][l]=c)})}return r}function Ue(e,t,n,r){let o,i=(s,l,d)=>{o??(o={}),o[s]??(o[s]={}),o[s][l]=d},a=e.map((s,l)=>{let d=t??s.length;if(t!==void 0&&s.length{let f=c;if(typeof c=="bigint"){let m=Number(c);if(Number.isSafeInteger(m))f=m;else{let y=c.toString();u===r?f=y:(i(l,u,y),f=m)}}if(t!==void 0){let m=s[t+u];if(m!=null){if(typeof m!="string")throw new Error(`Exact numeric text at row ${l}, column ${u} is not text`);m!==String(f)&&i(l,u,m)}}return f})});if(n)for(let[s,l]of Object.entries(n)){let d=Number(s);if(!Number.isInteger(d)||d<0||l===null||typeof l!="object")throw new Error(`Invalid exact numeric text row index: ${s}`);for(let[c,u]of Object.entries(l)){let f=Number(c);if(!Number.isInteger(f)||f<0||typeof u!="string")throw new Error(`Invalid exact numeric text entry at row ${s}, column ${c}`);let m=a[d]?.[f];if(m===void 0)throw new Error(`Exact numeric text entry is outside row ${s}, column ${c}`);u!==String(m)&&i(d,f,u)}}return o?{rows:a,exactIntegerTexts:o}:{rows:a}}var it="pk:",Nn=1,$t="readonly-pk:",fo=1,mo=` SELECT tl."name" AS table_name, tl."type" AS object_type, @@ -21,41 +21,41 @@ FROM pragma.pragma_table_list AS tl LEFT JOIN pragma.pragma_table_info(tl."name", tl."schema") AS ti ON tl."type" IN ('table', 'shadow') AND tl."wr" = 1 WHERE tl."schema" = 'main' AND tl."name" NOT LIKE 'sqlite_%' -ORDER BY tl."name", ti."cid"`;function st(e){return new Error(`An UPDATE trigger changed or removed the rowid identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}var mo=`SELECT "rootpage" FROM main.sqlite_schema WHERE "type" = 'table' AND "name" = ? LIMIT 2`;function po(e,t){if(e.length!==1||e[0].length<1)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);let n=e[0][0],r=typeof n=="bigint"?Number(n):n;if(!Number.isSafeInteger(r)||Number(r)<0)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);return Number(r)}function xe(e){let t=typeof e=="bigint"?Number(e):e;return Number.isSafeInteger(t)?Number(t):void 0}function go(e,t,n,r="rowid"){if(!Number.isSafeInteger(t)||t<0)throw new Error(`SQLite returned invalid table root-page metadata for ${e}`);let o=!1,i=-1,a=0,s=!1,l,d=()=>{if(!l||l.isUserTrigger||!l.hasWrite)return;let c=l.prologueParameters,u=l.parametersAfterWrite,f=c.filter((y,g)=>g%2===1);c.length>0&&c.length%2===0&&f.every(y=>u.has(y))||(s=!0)};for(let c=0;c1?{isUserTrigger:m,hasWrite:!1,prologueParameters:[],parametersAfterWrite:new Set,prologueComplete:!1}:void 0;continue}if(l){if(u[1]==="Param"){let m=xe(u[2]);if(m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);l.hasWrite?l.parametersAfterWrite.add(m):l.prologueComplete||l.prologueParameters.push(m);continue}u[1]==="OpenWrite"||u[1]==="Clear"?(l.prologueComplete=!0,l.hasWrite=!0):u[1].startsWith("Open")&&(l.prologueComplete=!0)}}if(d(),o)throw i<0?new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`):n.slice(i).some(u=>{if(u[1]==="OpenWrite"){let f=xe(u[3]),m=xe(u[4]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}if(u[1]==="Clear"){let f=xe(u[2]),m=xe(u[3]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}return!1})?new Error(`SQLite Explorer cannot prove whether an applicable UPDATE trigger changed or removed the ${r} identity in ${e}; the trigger can write the target table, so the edit was rolled back because SQLite cannot expose a trustworthy post-trigger ${r} identity.`):new Error(`Cannot update ${e} while an applicable UPDATE trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);if(s)throw new Error(`Cannot update ${e} while a mutating foreign-key UPDATE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function yo(e,t,n){let r=0,o=!1;for(let i of n){if(i.length<6||typeof i[1]!="string")throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);let a=xe(i[0]);if(a===void 0)throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);if(i[1]==="Init"&&a===0){if(r+=1,typeof i[5]=="string"&&i[5].startsWith("-- TRIGGER "))throw new Error(`Cannot ${e.toLowerCase()} ${t} while an applicable ${e} trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);continue}e==="DELETE"&&r>1&&(i[1]==="OpenWrite"||i[1]==="Clear")&&(o=!0)}if(o)throw new Error(`Cannot delete from ${t} while a mutating foreign-key DELETE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function ca(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function ua(e){let t=new Uint8Array(e.length/2);for(let n=0;n4096)throw new Error("Read-only primary-key reason must contain 1 through 4096 characters");if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid read-only primary-key row ordinal: ${t}`);return $t+encodeURIComponent(JSON.stringify({v:uo,r:t,m:e}))}function fa(e){let t;try{t=JSON.parse(decodeURIComponent(e.slice($t.length)))}catch{throw new Error("Invalid read-only primary-key identity encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==uo||!Number.isSafeInteger(t.r)||Number(t.r)<0||typeof t.m!="string"||String(t.m).length<1||String(t.m).length>4096)throw new Error("Invalid read-only primary-key identity payload");let n=t;if($t+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Read-only primary-key identity is not canonical");return n}function Ae(e){if(da(e))throw new Error(fa(e).m)}function Ve(e,t){if(e.length===0||e.length!==t.length)throw new Error("Primary-key identity column/value count mismatch");let n={v:An,c:e.map((r,o)=>[r.identifier,Ot(t[o])])};return it+encodeURIComponent(JSON.stringify(n))}function wo(e){if(!Z(e))throw new Error(`Invalid primary-key identity: ${String(e)}`);let t,n;try{t=decodeURIComponent(e.slice(it.length)),n=JSON.parse(t)}catch{throw new Error("Invalid primary-key identity encoding")}if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||n.v!==An||!Array.isArray(n.c))throw new Error("Invalid primary-key identity payload");let r=n.c;if(r.length===0)throw new Error("Primary-key identity has no columns");let o=new Set,i=[],a=[],s=[],l=[];for(let c of r){if(!Array.isArray(c)||c.length!==2||typeof c[0]!="string")throw new Error("Invalid primary-key identity member");if(o.has(c[0]))throw new Error(`Duplicate primary-key identity column: ${c[0]}`);o.add(c[0]),i.push(c[0]);let u=ho(c[1]);a.push(u.value),s.push(u.storageClass),l.push(c[1])}if(it+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Primary-key identity is not canonical");return{columns:i,values:a,storageClasses:s,encodedValues:l}}function So(e){let{columns:t,values:n}=wo(e);return{columns:t,values:n}}function Lt(e,t){Ae(e);let n=wo(e),r=t.columns.map(o=>o.identifier);if(n.columns.length!==r.length||n.columns.some((o,i)=>o!==r[i]))throw new Error(`Primary-key identity columns do not match the declared key (${r.join(", ")})`);return n}function Nn(e,t,n){let r=Lt(e,t),o=new Map,i=new Set(t.columns.map(s=>s.identifier));for(let s of n){if(!i.has(s.column))throw new Error(`Primary-key replacement column is not declared: ${s.column}`);if(o.has(s.column))throw new Error(`Duplicate primary-key replacement column: ${s.column}`);o.set(s.column,s.value)}let a={v:An,c:t.columns.map((s,l)=>[s.identifier,o.has(s.identifier)?Ot(o.get(s.identifier)):r.encodedValues[l]])};return it+encodeURIComponent(JSON.stringify(a))}function xn(e){return e==="integer"?"CAST(? AS INTEGER)":"?"}function U(e,t){if(Ae(e),t.kind==="rowid")return{sql:"rowid = ?",params:[M(e)]};let n=Lt(e,t),r=t.columns.map(i=>i.identifier),o=r.map((i,a)=>xn(n.storageClasses[a]));return{sql:r.map((i,a)=>`${w(i)} = ${o[a]}`).join(" AND "),params:n.values,primaryKey:{columns:n.columns,values:n.values},primaryKeyIntegerCasts:o.map(i=>i!=="?")}}function ma(e,t){if(e.length===0)throw new Error("At least one row identity is required");if(t.kind==="rowid"){let a=e.map(s=>U(s,t));return{sql:`rowid IN (${a.map(()=>"?").join(", ")})`,params:a.flatMap(s=>s.params)}}let n=e.map(a=>Lt(a,t)),r=t.columns.map(a=>w(a.identifier)),o=n.flatMap(a=>a.values);if(r.length===1)return{sql:`${r[0]} IN (${n.map(a=>xn(a.storageClasses[0])).join(", ")})`,params:o};let i=n.map(a=>`(${a.storageClasses.map(s=>xn(s)).join(", ")})`);return{sql:`(${r.join(", ")}) IN (VALUES ${i.join(", ")})`,params:o}}function qe(e,t){if(e.length===0)throw new Error("At least one row identity is required");let n=new Set;for(let a of e){let s;if(t.kind==="rowid"?s=`rowid:${String(M(a))}`:(Lt(a,t),s=`primaryKey:${String(a)}`),n.has(s))throw new Error("Duplicate row identities are not allowed");n.add(s)}let r=t.kind==="rowid"?1:t.columns.length,o=Math.max(1,Math.floor((Nt-1)/r)),i=[];for(let a=0;at.primaryKeyPosition>0).map(t=>({identifier:t.identifier,declaredType:t.declaredType,position:t.primaryKeyPosition})).sort((t,n)=>t.position-n.position)}var kt=1024*1024,he=16*1024*1024,pa=256,re=2*he,ga=64*1024,lt=40,ct=512*1024,Ln=45,ya=2,ha="__sqlite_explorer_cell_source",Ea="__sqlite_explorer_cell_value_",wa="__sqlite_explorer_cell_metadata",Ao="__sqlite_explorer_cell_raw_text_",To=64*1024,Co=400,Sa=4,On=2e3;function vt(e,t){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:t}function ba(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell containment requires a positive column count, got ${t}`);let n=vt(e.maxInlineCellBytes,kt),r=vt(e.maxPageResponseBytes,he),i=vt(e.limit,1)*t,a=Number.isSafeInteger(i)?Math.floor(r/i):0;if(!Number.isSafeInteger(i))return 0;let s=String(t-1).length+3,l=lt+Ln+s+ya,d=re-ct,c=Math.floor(d/i),u=Math.max(0,Math.floor((c-l)/4)*4),f=Math.floor(u/4)*3;return Math.min(n,a,Math.max(pa,f))}function Ta(e,t){return`typeof(${e}) IN ('text', 'blob') AND octet_length(${e}) > ${t}`}function Ca(e,t){return`CASE WHEN ${Ta(e,t)} THEN CASE typeof(${e}) WHEN 'text' THEN 't' ELSE 'b' END || CAST(octet_length(${e}) AS TEXT) ELSE '' END`}function Ra(e,t){let n=[];for(let r=0;rCa(a,t)).map((a,s)=>`${s===0?"SELECT":"UNION ALL SELECT"} ${a} AS "cell"`).join(` +ORDER BY tl."name", ti."cid"`;function st(e){return new Error(`An UPDATE trigger changed or removed the rowid identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}var po=`SELECT "rootpage" FROM main.sqlite_schema WHERE "type" = 'table' AND "name" = ? LIMIT 2`;function go(e,t){if(e.length!==1||e[0].length<1)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);let n=e[0][0],r=typeof n=="bigint"?Number(n):n;if(!Number.isSafeInteger(r)||Number(r)<0)throw new Error(`SQLite returned invalid table root-page metadata for ${t}`);return Number(r)}function xe(e){let t=typeof e=="bigint"?Number(e):e;return Number.isSafeInteger(t)?Number(t):void 0}function yo(e,t,n,r="rowid"){if(!Number.isSafeInteger(t)||t<0)throw new Error(`SQLite returned invalid table root-page metadata for ${e}`);let o=!1,i=-1,a=0,s=!1,l,d=()=>{if(!l||l.isUserTrigger||!l.hasWrite)return;let c=l.prologueParameters,u=l.parametersAfterWrite,f=c.filter((y,g)=>g%2===1);c.length>0&&c.length%2===0&&f.every(y=>u.has(y))||(s=!0)};for(let c=0;c1?{isUserTrigger:m,hasWrite:!1,prologueParameters:[],parametersAfterWrite:new Set,prologueComplete:!1}:void 0;continue}if(l){if(u[1]==="Param"){let m=xe(u[2]);if(m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);l.hasWrite?l.parametersAfterWrite.add(m):l.prologueComplete||l.prologueParameters.push(m);continue}u[1]==="OpenWrite"||u[1]==="Clear"?(l.prologueComplete=!0,l.hasWrite=!0):u[1].startsWith("Open")&&(l.prologueComplete=!0)}}if(d(),o)throw i<0?new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`):n.slice(i).some(u=>{if(u[1]==="OpenWrite"){let f=xe(u[3]),m=xe(u[4]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}if(u[1]==="Clear"){let f=xe(u[2]),m=xe(u[3]);if(f===void 0||m===void 0)throw new Error(`SQLite returned invalid UPDATE trigger metadata for ${e}`);return f===t&&m===0}return!1})?new Error(`SQLite Explorer cannot prove whether an applicable UPDATE trigger changed or removed the ${r} identity in ${e}; the trigger can write the target table, so the edit was rolled back because SQLite cannot expose a trustworthy post-trigger ${r} identity.`):new Error(`Cannot update ${e} while an applicable UPDATE trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);if(s)throw new Error(`Cannot update ${e} while a mutating foreign-key UPDATE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function ho(e,t,n){let r=0,o=!1;for(let i of n){if(i.length<6||typeof i[1]!="string")throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);let a=xe(i[0]);if(a===void 0)throw new Error(`SQLite returned invalid ${e} trigger metadata for ${t}`);if(i[1]==="Init"&&a===0){if(r+=1,typeof i[5]=="string"&&i[5].startsWith("-- TRIGGER "))throw new Error(`Cannot ${e.toLowerCase()} ${t} while an applicable ${e} trigger can run; the operation was rolled back because trigger side effects cannot be represented safely in undo history.`);continue}e==="DELETE"&&r>1&&(i[1]==="OpenWrite"||i[1]==="Clear")&&(o=!0)}if(o)throw new Error(`Cannot delete from ${t} while a mutating foreign-key DELETE action can run; the operation was rolled back because affected child rows are not represented in undo history.`)}function ca(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function ua(e){let t=new Uint8Array(e.length/2);for(let n=0;n4096)throw new Error("Read-only primary-key reason must contain 1 through 4096 characters");if(!Number.isSafeInteger(t)||t<0)throw new Error(`Invalid read-only primary-key row ordinal: ${t}`);return $t+encodeURIComponent(JSON.stringify({v:fo,r:t,m:e}))}function fa(e){let t;try{t=JSON.parse(decodeURIComponent(e.slice($t.length)))}catch{throw new Error("Invalid read-only primary-key identity encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==fo||!Number.isSafeInteger(t.r)||Number(t.r)<0||typeof t.m!="string"||String(t.m).length<1||String(t.m).length>4096)throw new Error("Invalid read-only primary-key identity payload");let n=t;if($t+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Read-only primary-key identity is not canonical");return n}function Ae(e){if(da(e))throw new Error(fa(e).m)}function Ve(e,t){if(e.length===0||e.length!==t.length)throw new Error("Primary-key identity column/value count mismatch");let n={v:Nn,c:e.map((r,o)=>[r.identifier,Ot(t[o])])};return it+encodeURIComponent(JSON.stringify(n))}function So(e){if(!Z(e))throw new Error(`Invalid primary-key identity: ${String(e)}`);let t,n;try{t=decodeURIComponent(e.slice(it.length)),n=JSON.parse(t)}catch{throw new Error("Invalid primary-key identity encoding")}if(!n||typeof n!="object"||Array.isArray(n)||Object.keys(n).length!==2||n.v!==Nn||!Array.isArray(n.c))throw new Error("Invalid primary-key identity payload");let r=n.c;if(r.length===0)throw new Error("Primary-key identity has no columns");let o=new Set,i=[],a=[],s=[],l=[];for(let c of r){if(!Array.isArray(c)||c.length!==2||typeof c[0]!="string")throw new Error("Invalid primary-key identity member");if(o.has(c[0]))throw new Error(`Duplicate primary-key identity column: ${c[0]}`);o.add(c[0]),i.push(c[0]);let u=Eo(c[1]);a.push(u.value),s.push(u.storageClass),l.push(c[1])}if(it+encodeURIComponent(JSON.stringify(n))!==e)throw new Error("Primary-key identity is not canonical");return{columns:i,values:a,storageClasses:s,encodedValues:l}}function bo(e){let{columns:t,values:n}=So(e);return{columns:t,values:n}}function Lt(e,t){Ae(e);let n=So(e),r=t.columns.map(o=>o.identifier);if(n.columns.length!==r.length||n.columns.some((o,i)=>o!==r[i]))throw new Error(`Primary-key identity columns do not match the declared key (${r.join(", ")})`);return n}function _n(e,t,n){let r=Lt(e,t),o=new Map,i=new Set(t.columns.map(s=>s.identifier));for(let s of n){if(!i.has(s.column))throw new Error(`Primary-key replacement column is not declared: ${s.column}`);if(o.has(s.column))throw new Error(`Duplicate primary-key replacement column: ${s.column}`);o.set(s.column,s.value)}let a={v:Nn,c:t.columns.map((s,l)=>[s.identifier,o.has(s.identifier)?Ot(o.get(s.identifier)):r.encodedValues[l]])};return it+encodeURIComponent(JSON.stringify(a))}function An(e){return e==="integer"?"CAST(? AS INTEGER)":"?"}function U(e,t){if(Ae(e),t.kind==="rowid")return{sql:"rowid = ?",params:[M(e)]};let n=Lt(e,t),r=t.columns.map(i=>i.identifier),o=r.map((i,a)=>An(n.storageClasses[a]));return{sql:r.map((i,a)=>`${w(i)} = ${o[a]}`).join(" AND "),params:n.values,primaryKey:{columns:n.columns,values:n.values},primaryKeyIntegerCasts:o.map(i=>i!=="?")}}function ma(e,t){if(e.length===0)throw new Error("At least one row identity is required");if(t.kind==="rowid"){let a=e.map(s=>U(s,t));return{sql:`rowid IN (${a.map(()=>"?").join(", ")})`,params:a.flatMap(s=>s.params)}}let n=e.map(a=>Lt(a,t)),r=t.columns.map(a=>w(a.identifier)),o=n.flatMap(a=>a.values);if(r.length===1)return{sql:`${r[0]} IN (${n.map(a=>An(a.storageClasses[0])).join(", ")})`,params:o};let i=n.map(a=>`(${a.storageClasses.map(s=>An(s)).join(", ")})`);return{sql:`(${r.join(", ")}) IN (VALUES ${i.join(", ")})`,params:o}}function qe(e,t){if(e.length===0)throw new Error("At least one row identity is required");let n=new Set;for(let a of e){let s;if(t.kind==="rowid"?s=`rowid:${String(M(a))}`:(Lt(a,t),s=`primaryKey:${String(a)}`),n.has(s))throw new Error("Duplicate row identities are not allowed");n.add(s)}let r=t.kind==="rowid"?1:t.columns.length,o=Math.max(1,Math.floor((Nt-1)/r)),i=[];for(let a=0;at.primaryKeyPosition>0).map(t=>({identifier:t.identifier,declaredType:t.declaredType,position:t.primaryKeyPosition})).sort((t,n)=>t.position-n.position)}var kt=1024*1024,he=16*1024*1024,pa=256,re=2*he,ga=64*1024,lt=40,ct=512*1024,vn=45,ya=2,ha="__sqlite_explorer_cell_source",Ea="__sqlite_explorer_cell_value_",wa="__sqlite_explorer_cell_metadata",No="__sqlite_explorer_cell_raw_text_",Co=64*1024,Ro=400,Sa=4,Ln=2e3;function vt(e,t){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:t}function ba(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell containment requires a positive column count, got ${t}`);let n=vt(e.maxInlineCellBytes,kt),r=vt(e.maxPageResponseBytes,he),i=vt(e.limit,1)*t,a=Number.isSafeInteger(i)?Math.floor(r/i):0;if(!Number.isSafeInteger(i))return 0;let s=String(t-1).length+3,l=lt+vn+s+ya,d=re-ct,c=Math.floor(d/i),u=Math.max(0,Math.floor((c-l)/4)*4),f=Math.floor(u/4)*3;return Math.min(n,a,Math.max(pa,f))}function Ta(e,t){return`typeof(${e}) IN ('text', 'blob') AND octet_length(${e}) > ${t}`}function Ca(e,t){return`CASE WHEN ${Ta(e,t)} THEN CASE typeof(${e}) WHEN 'text' THEN 't' ELSE 'b' END || CAST(octet_length(${e}) AS TEXT) ELSE '' END`}function Ra(e,t){let n=[];for(let r=0;rCa(a,t)).map((a,s)=>`${s===0?"SELECT":"UNION ALL SELECT"} ${a} AS "cell"`).join(` `);n.push(`(SELECT group_concat("cell", '|') FROM ( ${i} -))`)}return n.join(" || '|' || ")}function Bt(e,t,n,r=[],o="blob"){let i=ba(n,t),a=Math.floor(i/Sa),s=Array.from({length:t},(x,S)=>`${Ea}${S}`),l=s.map(w);if(new Set(r).size!==r.length||r.some(x=>!Number.isInteger(x)||x<0||x>=t))throw new Error("Cell containment raw-TEXT columns must be unique in-range indices");let d=r.length>0&&t+1+r.length>On,c=d?[]:r,u=l.map((x,S)=>`CASE WHEN typeof(${x}) = 'text' AND octet_length(${x}) > ${i} THEN substr(${x}, 1, ${a}) WHEN typeof(${x}) = 'blob' AND octet_length(${x}) > ${i} THEN substr(${x}, 1, ${i}) ELSE ${x} END AS ${w(s[S])}`),f=w(ha),m=Ra(l,i),y=c.map((x,S)=>{let R=l[x];return`CASE WHEN typeof(${R}) = 'text' AND octet_length(${R}) <= ${i} THEN ${o==="hex"?`hex(CAST(${R} AS BLOB))`:`CAST(${R} AS BLOB)`} END AS ${w(`${Ao}${S}`)}`}),g=y.length>0?`, ${y.join(", ")}`:"",h=t+1>On,C=`WITH ${f} (${l.join(", ")}) AS${h?" MATERIALIZED":""} ( +))`)}return n.join(" || '|' || ")}function Bt(e,t,n,r=[],o="blob"){let i=ba(n,t),a=Math.floor(i/Sa),s=Array.from({length:t},(x,S)=>`${Ea}${S}`),l=s.map(w);if(new Set(r).size!==r.length||r.some(x=>!Number.isInteger(x)||x<0||x>=t))throw new Error("Cell containment raw-TEXT columns must be unique in-range indices");let d=r.length>0&&t+1+r.length>Ln,c=d?[]:r,u=l.map((x,S)=>`CASE WHEN typeof(${x}) = 'text' AND octet_length(${x}) > ${i} THEN substr(${x}, 1, ${a}) WHEN typeof(${x}) = 'blob' AND octet_length(${x}) > ${i} THEN substr(${x}, 1, ${i}) ELSE ${x} END AS ${w(s[S])}`),f=w(ha),m=Ra(l,i),y=c.map((x,S)=>{let R=l[x];return`CASE WHEN typeof(${R}) = 'text' AND octet_length(${R}) <= ${i} THEN ${o==="hex"?`hex(CAST(${R} AS BLOB))`:`CAST(${R} AS BLOB)`} END AS ${w(`${No}${S}`)}`}),g=y.length>0?`, ${y.join(", ")}`:"",h=t+1>Ln,C=`WITH ${f} (${l.join(", ")}) AS${h?" MATERIALIZED":""} ( SELECT * FROM ( ${e} ) LIMIT -1 OFFSET 0 ) `,T=h?"":`, ${m} AS ${w(wa)}`,I=h?` UNION ALL -SELECT (SELECT COALESCE(group_concat(${m}, char(10)), '') FROM ${f})${t>1?`, ${Array(t-1).fill("NULL").join(", ")}`:""}`:"";return{sql:C+`SELECT ${u.join(", ")}${T}${g} FROM ${f}`+I,metadataTrailer:h,primaryTransportColumnCount:t+(h?0:1)+c.length,valueColumnCount:t,metadataColumnIndex:t,transportColumnCount:t+1+c.length,rawTextColumnStart:t+1,rawTextColumnCount:c.length,rawTextTransport:o,rawTextColumnIndices:c,rawTextValidationUnavailable:d,effectiveInlineCellBytes:i}}function No(e,t,n){if(!n.metadataTrailer){if(t!==void 0)throw new Error("Cell containment received unexpected separate metadata rows");return e}if(t!==void 0)throw new Error("Cell containment metadata must come from the value statement");let r=e.at(-1);if(!r||r.length!==n.primaryTransportColumnCount)throw new Error("Cell containment metadata trailer is missing or malformed");if(typeof r[0]!="string"||r.slice(1).some(a=>a!==null))throw new Error("Cell containment metadata trailer is not one packed text value");let o=e.slice(0,-1),i=r[0]===""?[]:r[0].split(` -`);if(i.length!==o.length)throw new Error("Cell containment metadata row count does not match the value page");return o.map((a,s)=>{if(a.length{if(!s)return;let l={};for(let[d,c]of Object.entries(s)){let u=Number(d);l[u]={};for(let[f,m]of Object.entries(c))l[u][Number(f)+1]=m}return l},o=r(t.exactIntegerTexts),i;for(let s of[n,o])if(s){i??(i={});for(let[l,d]of Object.entries(s)){let c=Number(l);i[c]??(i[c]={}),Object.assign(i[c],d)}}let a=r(t.oversizedCells);return{rows:t.rows.map((s,l)=>[e[l],...s]),...a?{oversizedCells:a}:{},...i?{exactIntegerTexts:i}:{}}}function $o(e,t){let n,r=0,o,i=s=>{if(s>=48&&s<=57)return s-48;let l=s|32;return l>=97&&l<=102?l-87:-1},a=(s,l,d)=>{let c=typeof s=="string"?s.length/2:NaN;if(typeof s!="string"||!Number.isSafeInteger(c)||!Number.isSafeInteger(t.effectiveInlineCellBytes)||t.effectiveInlineCellBytes<0||c>t.effectiveInlineCellBytes)throw new Error(`Raw TEXT value at row ${l}, key ${d} is not bounded hexadecimal text`);if(c===0)return o??(o=new Uint8Array(0));let u;c>To?u=new Uint8Array(c):((!n||n.byteLength-r{if(s.length{let u=s[t.rawTextColumnStart+c];if(u!==null&&t.rawTextTransport==="hex")return a(u,l,c);if(u!==null&&!(u instanceof Uint8Array))throw new Error(`Raw TEXT value at row ${l}, key ${c} is not a BLOB`);return u})})}function Oo(e,t,n){if(n.includes("\0"))return!1;try{return e.decode(t)===n}catch{return!1}}function Lo(e){if(e.sourceRows.length===0||e.sourceColumnIndices.length===0)return;if(e.rawTextValidationUnavailable)return new Set(e.sourceRows.map((o,i)=>i));if(e.rawTextRows.length!==e.sourceRows.length)throw new Error("Raw TEXT validation row count does not match the source page");let t=e.sourceColumnIndices.map(o=>{let i=e.rawTextColumnIndices.indexOf(o);if(i<0)throw new Error(`Raw TEXT validation column ${o} was not projected`);return i}),n=de(e.textEncoding),r;return e.sourceRows.forEach((o,i)=>{let a=e.rawTextRows[i];if(!a||a.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT validation row ${i} has the wrong width`);for(let s=0;sArray.from(s)),n;if(e.contained.oversizedCells){n={};for(let[s,l]of Object.entries(e.contained.oversizedCells))n[Number(s)]={...l}}let r;if(e.contained.exactIntegerTexts){r={};for(let[s,l]of Object.entries(e.contained.exactIntegerTexts))r[Number(s)]={...l}}let o=re-ct,i=Mt(t)+Ut(n)+Vt(r),a=de(e.textEncoding);if(e.sourceRows.forEach((s,l)=>{let d=e.rawTextRows[l];if(!d||d.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT containment row ${l} has the wrong width`);e.rawTextColumnIndices.forEach((c,u)=>{let f=s[c];if(typeof f!="string"||n?.[l]?.[c])return;let m=d[u];if(!(m instanceof Uint8Array))throw new Error(`Raw TEXT containment bytes are missing at row ${l}, column ${c}`);if(Oo(a,m,f))return;let y=t[l][c],g=Po(n,l,c);n??(n={}),n[l]??(n[l]={}),n[l][c]={storageClass:"text",byteLength:m.byteLength};let h=Math.max(0,o-i-g+ie(y)),C=h>lt?Math.floor((h-lt)/4)*3:0,T=Math.min(m.byteLength,ga,C);if(T===0)throw new Error(`Raw TEXT containment cannot retain an authoritative byte prefix for row ${l}, column ${c} within the webview transport limit`);let I=m.slice(0,T);t[l][c]=I,i+=ie(I)-ie(y)+g,r?.[l]&&(delete r[l][c],Object.keys(r[l]).length===0&&delete r[l])})}),i>o)throw new Error(`Raw TEXT containment cannot fit this page within the ${re}-byte transport limit`);return{rows:t,...n?{oversizedCells:n}:{},...r&&Object.keys(r).length>0?{exactIntegerTexts:r}:{}}}function Ia(e,t,n){if(e==="")return;let r=/^([tb])([1-9]\d*)$/.exec(e);if(!r)throw new Error(`Invalid oversized-cell metadata at row ${t}, column ${n}`);let o=Number(r[2]);if(!Number.isSafeInteger(o))throw new Error(`Oversized-cell byte length is unsafe at row ${t}, column ${n}`);return{storageClass:r[1]==="t"?"text":"blob",byteLength:o}}function Dt(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function xa(e){if(typeof e=="string")return Dt(e);if(e instanceof Uint8Array)return e.byteLength}function Ro(e){return e==="text"?"":new Uint8Array(0)}function Aa(e){return 4*Math.ceil(e/3)}function ie(e){return e instanceof Uint8Array?Aa(e.byteLength)+lt:typeof e=="string"?Dt(e)+2:8}function Se(e){return Dt(e)+3}function Mt(e){let t=2+Math.max(0,e.length-1);for(let n of e){t+=2+Math.max(0,n.length-1);for(let r of n)t+=ie(r)}return t}function Ut(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=Se(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a]of i)n+=Se(a)+Ln}return n}function Po(e,t,n){if(e?.[t]?.[n])return 0;let r=Se(String(n))+Ln;if(e?.[t])return 1+r;let i=Se(String(t))+2+r;return e?1+i:2+i}function Vt(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=Se(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a,s]of i)n+=Se(a)+Dt(s)+2}return n}function ko(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t)n+=Se(r)+ie(o);return n}function qt(e,t,n,r=he){var y;let o=vt(r,he),i,a=0,s=!1,l=[],d=(g,h,C)=>{var T;i??(i={}),i[g]??(i[g]={}),(T=i[g])[h]??(T[h]=C)},c=e.map((g,h)=>{if(g.length{let R=Ia(x,h,S);R&&d(h,S,R);let _=I[S],A=xa(_);if(A===void 0||A===0)return;let L=R??{storageClass:typeof _=="string"?"text":"blob",byteLength:A};if(s||A>o-a){s=!0,d(h,S,L),I[S]=Ro(L.storageClass);return}a+=A,l.push({rowIndex:h,columnIndex:S,metadata:L})}),I}),u;if(n)for(let[g,h]of Object.entries(n))for(let[C,T]of Object.entries(h)){let I=Number(C);I>=t||(u??(u={}),u[y=Number(g)]??(u[y]={}),u[Number(g)][I]=T)}let f=re-ct,m=Mt(c)+Ut(i)+Vt(u);for(let g=l.length-1;g>=0&&m>f;g--){let h=l[g],C=c[h.rowIndex][h.columnIndex],T=Ro(h.metadata.storageClass),I=ie(T)-ie(C)+Po(i,h.rowIndex,h.columnIndex);I>=0||(d(h.rowIndex,h.columnIndex,h.metadata),c[h.rowIndex][h.columnIndex]=T,m+=I)}if(m>f)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:c,...i?{oversizedCells:i}:{},...u?{exactIntegerTexts:u}:{}}}function Io(e,t){var r;if(!e)return;let n;for(let[o,i]of Object.entries(e))for(let[a,s]of Object.entries(i)){let l=Number(a);l>=t||(n??(n={}),n[r=Number(o)]??(n[r]={}),n[Number(o)][l+1]=s)}return n}function xo(e,t){var r;if(!e)return;let n;for(let[o,i]of Object.entries(e))for(let[a,s]of Object.entries(i)){let l=Number(a);l!==t&&(n??(n={}),n[r=Number(o)]??(n[r]={}),n[Number(o)][l]=s)}return n}function Bo(e){let t=`Row is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity.`,n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o=e.rows.map((d,c)=>{if(d.length===0)throw new Error(`Shadowed rowid result row ${c} has no identity slot`);let u=n+c;if(!Number.isSafeInteger(u))throw new Error("Shadowed rowid result ordinal exceeds the safe integer range");return r??(r={}),r[c]=t,[at(t,u),...d.slice(1)]}),i=xo(e.oversizedCells,0),a=xo(e.exactIntegerTexts,0),s=re-ct;if(Mt(o)+Ut(i)+Vt(a)+ko(r)>s)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:o,...i?{oversizedCells:i}:{},...a?{exactIntegerTexts:a}:{},...r?{readOnlyRowReasons:r}:{}}}function Pt(e){return`"${e.length<=128?e:`${e.slice(0,125)}...`}"`}function Do(e){let t=e.slice(0,8).map(Pt);return e.length>t.length?`${t.join(", ")}, and ${e.length-t.length} more`:t.join(", ")}function Na(e,t){if(e.length===1){let r=e[0];return`Row is read-only because WITHOUT ROWID primary-key column ${Pt(r.identifier)} is ${r.byteLength} bytes and exceeds the ${t}-byte inline limit; its identity was not transported.`}let n=e.slice(0,8).map(r=>`${Pt(r.identifier)} (${r.byteLength} bytes)`);return e.length>n.length&&n.push(`and ${e.length-n.length} more`),`Row is read-only because WITHOUT ROWID primary-key columns ${n.join(", ")} exceed the ${t}-byte inline limit; their identity was not transported.`}function Mo(e){return e==="utf-8"?"UTF-8":e==="utf-16le"?"UTF-16LE":"UTF-16BE"}function ut(e){if(e.columns.length*2>On)throw new Error(`Cannot mint a byte-faithful WITHOUT ROWID identity with ${e.columns.length} primary-key columns within SQLite's result-column limit`);let t=e.columns.map(r=>w(r.identifier)),n=t.map((r,o)=>`CASE WHEN typeof(${r}) = 'text' THEN CAST(${r} AS BLOB) END AS `+w(`${Ao}${o}`));return[...t,...n].join(", ")}function dt(e,t,n,r){let o=e.columns.length;if(t.length!==o*2)throw new Error(`${r}: SQLite returned an invalid primary-key validation row`);let i=t.slice(0,o),a=de(n);for(let s=0;s{let h=e.sourceColumns.indexOf(g.identifier);if(h<0)throw new Error(`Primary-key column missing from table fetch: ${g.identifier}`);return h}),n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o,i=[],a=de(e.textEncoding),s=e.rawTextValidationUnavailable?[]:t.map(g=>{let h=e.rawTextColumnIndices.indexOf(g);if(h<0)throw new Error(`Primary-key raw TEXT column ${g} was not projected`);return h}),l=e.rows.map((g,h)=>{let C=e.identity.columns.flatMap((R,_)=>{let A=e.oversizedCells?.[h]?.[t[_]];return A?[{identifier:R.identifier,byteLength:A.byteLength}]:[]}),T=e.identityRows[h];if(!T)throw new Error(`Primary-key identity row missing at index ${h}`);let I=e.rawTextBytes[h];if(!e.rawTextValidationUnavailable&&(!I||I.length!==e.rawTextColumnIndices.length))throw new Error(`Primary-key raw TEXT row missing at index ${h}`);let x=e.rawTextValidationUnavailable?e.identity.columns.map(R=>R.identifier):e.identity.columns.flatMap((R,_)=>{let A=T[t[_]];if(typeof A!="string")return[];let L=e.oversizedCells?.[h]?.[t[_]];if(L&&L.byteLength>e.effectiveInlineCellBytes)return[];let E=I[s[_]];if(!(E instanceof Uint8Array))return[R.identifier];try{return a.decode(E)===A?[]:[R.identifier]}catch{return[R.identifier]}}),S;if(e.rawTextValidationUnavailable&&(o??(o=new Set),o.add(h)),x.length>0){let R=e.rawTextValidationUnavailable?$a(x):_a(x,e.textEncoding);r??(r={}),r[h]=R,o??(o=new Set),o.add(h),S=at(R,n+h)}else if(C.length>0){let R=Na(C,e.effectiveInlineCellBytes);r??(r={}),r[h]=R,S=at(R,n+h)}else S=Ve(e.identity.columns,t.map(R=>T[R])),i.push(h);return[S,...g.slice(0,e.visibleColumnCount)]}),d=Io(e.oversizedCells,e.visibleColumnCount),c=Io(e.exactIntegerTexts,e.visibleColumnCount),u=re-ct,f=Mt(l)+Ut(d)+Vt(c)+ko(r),m="Row is read-only because its encoded WITHOUT ROWID primary-key identity exceeds the page transport budget.",y=g=>{if(r?.[g]!==void 0)return 0;let h=Se(String(g))+ie(m);return r?1+h:2+h};for(let g=i.length-1;g>=0&&f>u;g--){let h=i[g],C=l[h][0],T=at(m,n+h),I=ie(T)-ie(C)+y(h);I>=0||(l[h][0]=T,r??(r={}),r[h]=m,f+=I)}if(f>u)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:l,...d?{oversizedCells:d}:{},...c?{exactIntegerTexts:c}:{},...r?{readOnlyRowReasons:r}:{},...o?{unrepresentableTextKeyRows:o}:{}}}var be=1e3,vn=4*1024*1024,Vo=64*1024,Wt=128;function qo(e){if(e.length>Vo)throw new Error("Query text exceeds 65,536 characters.");let t=pe(e),n="",r=0,o=0;for(let i=0;i1?`, ${Array(t-1).fill("NULL").join(", ")}`:""}`:"";return{sql:C+`SELECT ${u.join(", ")}${T}${g} FROM ${f}`+I,metadataTrailer:h,primaryTransportColumnCount:t+(h?0:1)+c.length,valueColumnCount:t,metadataColumnIndex:t,transportColumnCount:t+1+c.length,rawTextColumnStart:t+1,rawTextColumnCount:c.length,rawTextTransport:o,rawTextColumnIndices:c,rawTextValidationUnavailable:d,effectiveInlineCellBytes:i}}function _o(e,t,n){if(!n.metadataTrailer){if(t!==void 0)throw new Error("Cell containment received unexpected separate metadata rows");return e}if(t!==void 0)throw new Error("Cell containment metadata must come from the value statement");let r=e.at(-1);if(!r||r.length!==n.primaryTransportColumnCount)throw new Error("Cell containment metadata trailer is missing or malformed");if(typeof r[0]!="string"||r.slice(1).some(a=>a!==null))throw new Error("Cell containment metadata trailer is not one packed text value");let o=e.slice(0,-1),i=r[0]===""?[]:r[0].split(` +`);if(i.length!==o.length)throw new Error("Cell containment metadata row count does not match the value page");return o.map((a,s)=>{if(a.length{if(!s)return;let l={};for(let[d,c]of Object.entries(s)){let u=Number(d);l[u]={};for(let[f,m]of Object.entries(c))l[u][Number(f)+1]=m}return l},o=r(t.exactIntegerTexts),i;for(let s of[n,o])if(s){i??(i={});for(let[l,d]of Object.entries(s)){let c=Number(l);i[c]??(i[c]={}),Object.assign(i[c],d)}}let a=r(t.oversizedCells);return{rows:t.rows.map((s,l)=>[e[l],...s]),...a?{oversizedCells:a}:{},...i?{exactIntegerTexts:i}:{}}}function Oo(e,t){let n,r=0,o,i=s=>{if(s>=48&&s<=57)return s-48;let l=s|32;return l>=97&&l<=102?l-87:-1},a=(s,l,d)=>{let c=typeof s=="string"?s.length/2:NaN;if(typeof s!="string"||!Number.isSafeInteger(c)||!Number.isSafeInteger(t.effectiveInlineCellBytes)||t.effectiveInlineCellBytes<0||c>t.effectiveInlineCellBytes)throw new Error(`Raw TEXT value at row ${l}, key ${d} is not bounded hexadecimal text`);if(c===0)return o??(o=new Uint8Array(0));let u;c>Co?u=new Uint8Array(c):((!n||n.byteLength-r{if(s.length{let u=s[t.rawTextColumnStart+c];if(u!==null&&t.rawTextTransport==="hex")return a(u,l,c);if(u!==null&&!(u instanceof Uint8Array))throw new Error(`Raw TEXT value at row ${l}, key ${c} is not a BLOB`);return u})})}function Dt(e,t,n){if(n.includes("\0"))return!1;try{return e.decode(t)===n}catch{return!1}}function Lo(e){if(e.sourceRows.length===0||e.sourceColumnIndices.length===0)return;if(e.rawTextValidationUnavailable)return new Set(e.sourceRows.map((o,i)=>i));if(e.rawTextRows.length!==e.sourceRows.length)throw new Error("Raw TEXT validation row count does not match the source page");let t=e.sourceColumnIndices.map(o=>{let i=e.rawTextColumnIndices.indexOf(o);if(i<0)throw new Error(`Raw TEXT validation column ${o} was not projected`);return i}),n=de(e.textEncoding),r;return e.sourceRows.forEach((o,i)=>{let a=e.rawTextRows[i];if(!a||a.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT validation row ${i} has the wrong width`);for(let s=0;sArray.from(s)),n;if(e.contained.oversizedCells){n={};for(let[s,l]of Object.entries(e.contained.oversizedCells))n[Number(s)]={...l}}let r;if(e.contained.exactIntegerTexts){r={};for(let[s,l]of Object.entries(e.contained.exactIntegerTexts))r[Number(s)]={...l}}let o=re-ct,i=Ut(t)+Vt(n)+qt(r),a=de(e.textEncoding);if(e.sourceRows.forEach((s,l)=>{let d=e.rawTextRows[l];if(!d||d.length!==e.rawTextColumnIndices.length)throw new Error(`Raw TEXT containment row ${l} has the wrong width`);e.rawTextColumnIndices.forEach((c,u)=>{let f=s[c];if(typeof f!="string"||n?.[l]?.[c])return;let m=d[u];if(!(m instanceof Uint8Array))throw new Error(`Raw TEXT containment bytes are missing at row ${l}, column ${c}`);if(Dt(a,m,f))return;let y=t[l][c],g=Po(n,l,c);n??(n={}),n[l]??(n[l]={}),n[l][c]={storageClass:"text",byteLength:m.byteLength};let h=Math.max(0,o-i-g+ie(y)),C=h>lt?Math.floor((h-lt)/4)*3:0,T=Math.min(m.byteLength,ga,C);if(T===0)throw new Error(`Raw TEXT containment cannot retain an authoritative byte prefix for row ${l}, column ${c} within the webview transport limit`);let I=m.slice(0,T);t[l][c]=I,i+=ie(I)-ie(y)+g,r?.[l]&&(delete r[l][c],Object.keys(r[l]).length===0&&delete r[l])})}),i>o)throw new Error(`Raw TEXT containment cannot fit this page within the ${re}-byte transport limit`);return{rows:t,...n?{oversizedCells:n}:{},...r&&Object.keys(r).length>0?{exactIntegerTexts:r}:{}}}function Ia(e,t,n){if(e==="")return;let r=/^([tb])([1-9]\d*)$/.exec(e);if(!r)throw new Error(`Invalid oversized-cell metadata at row ${t}, column ${n}`);let o=Number(r[2]);if(!Number.isSafeInteger(o))throw new Error(`Oversized-cell byte length is unsafe at row ${t}, column ${n}`);return{storageClass:r[1]==="t"?"text":"blob",byteLength:o}}function Mt(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function xa(e){if(typeof e=="string")return Mt(e);if(e instanceof Uint8Array)return e.byteLength}function Io(e){return e==="text"?"":new Uint8Array(0)}function Aa(e){return 4*Math.ceil(e/3)}function ie(e){return e instanceof Uint8Array?Aa(e.byteLength)+lt:typeof e=="string"?Mt(e)+2:8}function Se(e){return Mt(e)+3}function Ut(e){let t=2+Math.max(0,e.length-1);for(let n of e){t+=2+Math.max(0,n.length-1);for(let r of n)t+=ie(r)}return t}function Vt(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=Se(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a]of i)n+=Se(a)+vn}return n}function Po(e,t,n){if(e?.[t]?.[n])return 0;let r=Se(String(n))+vn;if(e?.[t])return 1+r;let i=Se(String(t))+2+r;return e?1+i:2+i}function qt(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t){n+=Se(r);let i=Object.entries(o);n+=2+Math.max(0,i.length-1);for(let[a,s]of i)n+=Se(a)+Mt(s)+2}return n}function ko(e){if(!e)return 0;let t=Object.entries(e),n=2+Math.max(0,t.length-1);for(let[r,o]of t)n+=Se(r)+ie(o);return n}function Wt(e,t,n,r=he){var y;let o=vt(r,he),i,a=0,s=!1,l=[],d=(g,h,C)=>{var T;i??(i={}),i[g]??(i[g]={}),(T=i[g])[h]??(T[h]=C)},c=e.map((g,h)=>{if(g.length{let R=Ia(x,h,S);R&&d(h,S,R);let _=I[S],A=xa(_);if(A===void 0||A===0)return;let L=R??{storageClass:typeof _=="string"?"text":"blob",byteLength:A};if(s||A>o-a){s=!0,d(h,S,L),I[S]=Io(L.storageClass);return}a+=A,l.push({rowIndex:h,columnIndex:S,metadata:L})}),I}),u;if(n)for(let[g,h]of Object.entries(n))for(let[C,T]of Object.entries(h)){let I=Number(C);I>=t||(u??(u={}),u[y=Number(g)]??(u[y]={}),u[Number(g)][I]=T)}let f=re-ct,m=Ut(c)+Vt(i)+qt(u);for(let g=l.length-1;g>=0&&m>f;g--){let h=l[g],C=c[h.rowIndex][h.columnIndex],T=Io(h.metadata.storageClass),I=ie(T)-ie(C)+Po(i,h.rowIndex,h.columnIndex);I>=0||(d(h.rowIndex,h.columnIndex,h.metadata),c[h.rowIndex][h.columnIndex]=T,m+=I)}if(m>f)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:c,...i?{oversizedCells:i}:{},...u?{exactIntegerTexts:u}:{}}}function xo(e,t){var r;if(!e)return;let n;for(let[o,i]of Object.entries(e))for(let[a,s]of Object.entries(i)){let l=Number(a);l>=t||(n??(n={}),n[r=Number(o)]??(n[r]={}),n[Number(o)][l+1]=s)}return n}function Ao(e,t){var r;if(!e)return;let n;for(let[o,i]of Object.entries(e))for(let[a,s]of Object.entries(i)){let l=Number(a);l!==t&&(n??(n={}),n[r=Number(o)]??(n[r]={}),n[Number(o)][l]=s)}return n}function Bo(e){let t=`Row is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity.`,n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o=e.rows.map((d,c)=>{if(d.length===0)throw new Error(`Shadowed rowid result row ${c} has no identity slot`);let u=n+c;if(!Number.isSafeInteger(u))throw new Error("Shadowed rowid result ordinal exceeds the safe integer range");return r??(r={}),r[c]=t,[at(t,u),...d.slice(1)]}),i=Ao(e.oversizedCells,0),a=Ao(e.exactIntegerTexts,0),s=re-ct;if(Ut(o)+Vt(i)+qt(a)+ko(r)>s)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:o,...i?{oversizedCells:i}:{},...a?{exactIntegerTexts:a}:{},...r?{readOnlyRowReasons:r}:{}}}function Pt(e){return`"${e.length<=128?e:`${e.slice(0,125)}...`}"`}function Do(e){let t=e.slice(0,8).map(Pt);return e.length>t.length?`${t.join(", ")}, and ${e.length-t.length} more`:t.join(", ")}function Na(e,t){if(e.length===1){let r=e[0];return`Row is read-only because WITHOUT ROWID primary-key column ${Pt(r.identifier)} is ${r.byteLength} bytes and exceeds the ${t}-byte inline limit; its identity was not transported.`}let n=e.slice(0,8).map(r=>`${Pt(r.identifier)} (${r.byteLength} bytes)`);return e.length>n.length&&n.push(`and ${e.length-n.length} more`),`Row is read-only because WITHOUT ROWID primary-key columns ${n.join(", ")} exceed the ${t}-byte inline limit; their identity was not transported.`}function Mo(e){return e==="utf-8"?"UTF-8":e==="utf-16le"?"UTF-16LE":"UTF-16BE"}function ut(e){if(e.columns.length*2>Ln)throw new Error(`Cannot mint a byte-faithful WITHOUT ROWID identity with ${e.columns.length} primary-key columns within SQLite's result-column limit`);let t=e.columns.map(r=>w(r.identifier)),n=t.map((r,o)=>`CASE WHEN typeof(${r}) = 'text' THEN CAST(${r} AS BLOB) END AS `+w(`${No}${o}`));return[...t,...n].join(", ")}function dt(e,t,n,r){let o=e.columns.length;if(t.length!==o*2)throw new Error(`${r}: SQLite returned an invalid primary-key validation row`);let i=t.slice(0,o),a=de(n);for(let s=0;s{let h=e.sourceColumns.indexOf(g.identifier);if(h<0)throw new Error(`Primary-key column missing from table fetch: ${g.identifier}`);return h}),n=Number.isSafeInteger(e.rowOffset)&&(e.rowOffset??0)>=0?e.rowOffset:0,r,o,i=[],a=de(e.textEncoding),s=e.rawTextValidationUnavailable?[]:t.map(g=>{let h=e.rawTextColumnIndices.indexOf(g);if(h<0)throw new Error(`Primary-key raw TEXT column ${g} was not projected`);return h}),l=e.rows.map((g,h)=>{let C=e.identity.columns.flatMap((R,_)=>{let A=e.oversizedCells?.[h]?.[t[_]];return A?[{identifier:R.identifier,byteLength:A.byteLength}]:[]}),T=e.identityRows[h];if(!T)throw new Error(`Primary-key identity row missing at index ${h}`);let I=e.rawTextBytes[h];if(!e.rawTextValidationUnavailable&&(!I||I.length!==e.rawTextColumnIndices.length))throw new Error(`Primary-key raw TEXT row missing at index ${h}`);let x=e.rawTextValidationUnavailable?e.identity.columns.map(R=>R.identifier):e.identity.columns.flatMap((R,_)=>{let A=T[t[_]];if(typeof A!="string")return[];let L=e.oversizedCells?.[h]?.[t[_]];if(L&&L.byteLength>e.effectiveInlineCellBytes)return[];let E=I[s[_]];return E instanceof Uint8Array?Dt(a,E,A)?[]:[R.identifier]:[R.identifier]}),S;if(e.rawTextValidationUnavailable&&(o??(o=new Set),o.add(h)),x.length>0){let R=e.rawTextValidationUnavailable?$a(x):_a(x,e.textEncoding);r??(r={}),r[h]=R,o??(o=new Set),o.add(h),S=at(R,n+h)}else if(C.length>0){let R=Na(C,e.effectiveInlineCellBytes);r??(r={}),r[h]=R,S=at(R,n+h)}else S=Ve(e.identity.columns,t.map(R=>T[R])),i.push(h);return[S,...g.slice(0,e.visibleColumnCount)]}),d=xo(e.oversizedCells,e.visibleColumnCount),c=xo(e.exactIntegerTexts,e.visibleColumnCount),u=re-ct,f=Ut(l)+Vt(d)+qt(c)+ko(r),m="Row is read-only because its encoded WITHOUT ROWID primary-key identity exceeds the page transport budget.",y=g=>{if(r?.[g]!==void 0)return 0;let h=Se(String(g))+ie(m);return r?1+h:2+h};for(let g=i.length-1;g>=0&&f>u;g--){let h=i[g],C=l[h][0],T=at(m,n+h),I=ie(T)-ie(C)+y(h);I>=0||(l[h][0]=T,r??(r={}),r[h]=m,f+=I)}if(f>u)throw new Error(`Cell containment cannot fit this page within the ${re}-byte transport limit`);return{rows:l,...d?{oversizedCells:d}:{},...c?{exactIntegerTexts:c}:{},...r?{readOnlyRowReasons:r}:{},...o?{unrepresentableTextKeyRows:o}:{}}}var be=1e3,Pn=4*1024*1024,Vo=64*1024,Ft=128;function qo(e){if(e.length>Vo)throw new Error("Query text exceeds 65,536 characters.");let t=pe(e),n="",r=0,o=0;for(let i=0;ia+1?Number(t.slice(a+1,i)):r+1;if(!Number.isInteger(l)||l<1||l>100)throw new Error("Use at most 100 positional parameters.");r=Math.max(r,l),n+="NULL";continue}else{if(s==="("&&o++,s===")"&&--o<0)throw new Error("Unbalanced query parentheses.");if(s===";")throw new Error("Exactly one read query is required.");if(s===":"||s==="@"||s==="$")throw new Error("Use positional ? or ?NNN parameters. Named parameters are not supported.");i++}n+=t.slice(a,i)}if(o!==0)throw new Error("Unbalanced query parentheses.");return{sourceSql:t,sql:`SELECT * FROM ( ${t} ) LIMIT ${be+1}`,metadataSql:`SELECT * FROM ( ${n} -) LIMIT 0`,parameterCount:r}}function Wo(e,t){return{sql:`SELECT sqlite_explorer_query_plan(${Array(t.length+1).fill("?").join(", ")}) AS plan`,params:[e,...t]}}function Fo(e){if(typeof e!="string"||e.length>vn)throw new Error("SQLite returned an invalid query plan.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>be+1||t.some(n=>!Array.isArray(n)||n.length!==4||n.slice(0,3).some(r=>!Number.isSafeInteger(r))||typeof n[3]!="string"))throw new Error("SQLite returned an invalid query plan.");return{headers:["id","parent","notused","detail"],rows:t}}function Ho(e){if(e.length>Vo)throw new Error("Parameters exceed 65,536 characters.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>100)throw new Error("Enter a JSON array of at most 100 values.");for(let n of t){if(n!==null&&typeof n!="string"&&typeof n!="number")throw new Error("Parameters must be null, string, or number.");if(typeof n=="number"&&(!Number.isFinite(n)||Number.isInteger(n)&&!Number.isSafeInteger(n)))throw new Error("Numbers must be finite and integer values must be safe integers. Supply an exact integer as a quoted string and use CAST(? AS INTEGER).")}return t}function jo(e,t){if(t<1||t>Wt)throw new Error("Queries support 1 to 128 result columns.");let n=Bt(e,t,{limit:be+1,maxInlineCellBytes:64*1024,maxPageResponseBytes:vn});return ot(n.sql,n.primaryTransportColumnCount)}function Ko(e,t,n){let r=Ue(t,n);return{headers:e,...qt(r.rows,e.length,r.exactIntegerTexts,vn)}}var zo=` +) LIMIT 0`,parameterCount:r}}function Wo(e,t){return{sql:`SELECT sqlite_explorer_query_plan(${Array(t.length+1).fill("?").join(", ")}) AS plan`,params:[e,...t]}}function Fo(e){if(typeof e!="string"||e.length>Pn)throw new Error("SQLite returned an invalid query plan.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>be+1||t.some(n=>!Array.isArray(n)||n.length!==4||n.slice(0,3).some(r=>!Number.isSafeInteger(r))||typeof n[3]!="string"))throw new Error("SQLite returned an invalid query plan.");return{headers:["id","parent","notused","detail"],rows:t}}function Ho(e){if(e.length>Vo)throw new Error("Parameters exceed 65,536 characters.");let t=JSON.parse(e);if(!Array.isArray(t)||t.length>100)throw new Error("Enter a JSON array of at most 100 values.");for(let n of t){if(n!==null&&typeof n!="string"&&typeof n!="number")throw new Error("Parameters must be null, string, or number.");if(typeof n=="number"&&(!Number.isFinite(n)||Number.isInteger(n)&&!Number.isSafeInteger(n)))throw new Error("Numbers must be finite and integer values must be safe integers. Supply an exact integer as a quoted string and use CAST(? AS INTEGER).")}return t}function jo(e,t){if(t<1||t>Ft)throw new Error("Queries support 1 to 128 result columns.");let n=Bt(e,t,{limit:be+1,maxInlineCellBytes:64*1024,maxPageResponseBytes:Pn});return ot(n.sql,n.primaryTransportColumnCount)}function Ko(e,t,n){let r=Ue(t,n);return{headers:e,...Wt(r.rows,e.length,r.exactIntegerTexts,Pn)}}var zo=` SELECT type, name, sql FROM main.sqlite_schema WHERE type IN ('view', 'trigger') AND sql IS NOT NULL -ORDER BY type, name`;function Oa(e){return e.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Qo(e,t){let n=Oa(t);return new RegExp(`(^|[^A-Za-z0-9_$])${n}($|[^A-Za-z0-9_$])`,"i").test(e)}var wu=2*1024*1024,Su=64*1024;async function Xo(e,t,n,r){let o=`main.${w(e)}`;for(let i of n??[])await r(`DROP INDEX IF EXISTS main.${w(i)}`);for(let i of t)await r(`ALTER TABLE ${o} DROP COLUMN ${w(i)}`)}function Te(e){let t=e==null?"":String(e);return t.trim()?t:void 0}function jt(e,t,n="set"){if(n==="json_patch")return{value:e,operation:"json_patch"};if(typeof e!="string"||typeof t!="string"||!(e.startsWith("{")||e.startsWith("["))||!(t.startsWith("{")||t.startsWith("[")))return{value:e,operation:"set"};try{let r=JSON.parse(t),o=JSON.parse(e);if(!r||typeof r!="object"||Array.isArray(r)||!o||typeof o!="object"||Array.isArray(o))return{value:e,operation:"set"};let i=Zo(r,o);return i===void 0||Jo(i)?{value:e,operation:"set"}:{value:JSON.stringify(i),operation:"json_patch"}}catch{return{value:e,operation:"set"}}}function Jo(e){return e===null?!0:z(e)?Object.values(e).some(Jo):!1}function Zo(e,t,n=0){if(n>1e3)throw new Error("JSON merge patch depth limit exceeded");if(e===t)return;if(!z(e)||!z(t)||Array.isArray(e)||Array.isArray(t))return t;let r=Object.create(null),o=!1;for(let i of Object.keys(t)){let a=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0,s=t[i];if(a===void 0)r[i]=s,o=!0;else if(a!==s){let l=Zo(a,s,n+1);l!==void 0&&(r[i]=l,o=!0)}}for(let i of Object.keys(e))Object.prototype.hasOwnProperty.call(t,i)||(r[i]=null,o=!0);return o?r:void 0}function ei(e,t,n=0){if(n>1e3)throw new Error("JSON apply merge patch depth limit exceeded");if(t===null)return null;if(typeof t!="object"||Array.isArray(t))return t;let r;typeof e!="object"||e===null||Array.isArray(e)?r=Object.create(null):r=Object.assign(Object.create(null),e);let o=t;for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=o[i];a===null?delete r[i]:r[i]=ei(r[i],a,n+1)}return r}function Ft(e){if(typeof e=="string")try{let t=JSON.parse(e);return z(t)?t:void 0}catch{return}}function ti(e,t,n,r,o){let i=o==="undo"?r:n,a=o==="undo"?n:r,s=()=>Yo(e,i)?{kind:"write",value:a}:{kind:"conflict"};if(Ht(e)||Ht(t)||Ht(n)||Ht(r))return s();let l=Ft(e),d=Ft(t),c=Ft(n),u=Ft(r);if(!l||!d||!c||!u)return s();if(!ni(l,o==="undo"?u:c,d,c,0))return{kind:"conflict"};if(Yo(e,i))return{kind:"write",value:a};let m=o==="undo"?kn(l,d,c,0):ei(l,d,0);return{kind:"write",value:JSON.stringify(m)}}function ni(e,t,n,r,o){if(o>1e3)throw new Error("JSON history replay depth limit exceeded");for(let i of Object.keys(n)){let a=n[i],s=Object.prototype.hasOwnProperty.call(e,i),l=Object.prototype.hasOwnProperty.call(t,i),d=Object.prototype.hasOwnProperty.call(r,i),c=s?e[i]:void 0,u=l?t[i]:void 0,f=d?r[i]:void 0;if(z(a)){if(!d||!z(f)){if(!Go(s,c,l,u,o+1))return!1;continue}if(!s||!z(c)||!l||!z(u)||!ni(c,u,a,f,o+1))return!1;continue}if(!Go(s,c,l,u,o+1))return!1}return!0}function Go(e,t,n,r,o){return e===n&&(!e||Pn(t,r,o))}function Pn(e,t,n){if(n>1e3)throw new Error("JSON history replay depth limit exceeded");if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((i,a)=>Pn(i,t[a],n+1));if(!z(e)||!z(t))return!1;let r=Object.keys(e),o=Object.keys(t);return r.length!==o.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&Pn(e[i],t[i],n+1))}function Yo(e,t){return e instanceof Uint8Array||t instanceof Uint8Array?!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:e.length===t.length&&e.every((n,r)=>n===t[r]):Object.is(e,t)}function kn(e,t,n,r){if(r>1e3)throw new Error("JSON undo restore depth limit exceeded");let o=Object.assign(Object.create(null),e);for(let i of Object.keys(t)){let a=t[i],s=Object.prototype.hasOwnProperty.call(n,i),l=s?n[i]:void 0;if(z(a))if(s&&z(l))if(Object.prototype.hasOwnProperty.call(o,i)&&z(o[i])){let d=o[i];o[i]=kn(d,a,l,r+1)}else o[i]=l;else if(s)o[i]=l;else{let d=Object.prototype.hasOwnProperty.call(o,i)&&z(o[i])?o[i]:Object.create(null),c=kn(d,a,Object.create(null),r+1);Object.keys(c).length===0?delete o[i]:o[i]=c}else s?o[i]=l:delete o[i]}return o}function Ht(e){if(typeof e!="string")return!1;let n=e.replace(/"(?:\\.|[^"\\])*"/g,'""').match(/-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g);return n?n.some(r=>{let o=Number(r);return!Number.isFinite(o)||JSON.stringify(o)!==r}):!1}function z(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var La=new Set(["null","integer","real","text","blob"]),va="Cell changed outside SQLite Explorer history; undo/redo was not applied.",Pa="This edit predates guarded cell history and cannot be replayed safely. Save or reload the database.",se=class extends Error{constructor(n,r){let o=r.length===1?`${n}.${r[0]}`:`${r.length} cells in ${n}`;super(`${o}: ${va}`);D(this,"code","SQLITE_EXPLORER_CELL_HISTORY_CONFLICT");this.name="CellHistoryConflictError"}},ft=class extends Error{constructor(){super(Pa);D(this,"code","SQLITE_EXPLORER_LEGACY_CELL_HISTORY");this.name="LegacyCellHistoryError"}};function ee(e){let t=w(e);return`typeof(${t}), CASE WHEN typeof(${t}) = 'text' THEN CAST(${t} AS BLOB) ELSE ${t} END`}function ka(e,t,n){if(!t)throw new Error(`SQLite text encoding is required for ${n}`);try{return{value:de(t).decode(e)}}catch{return{value:"",rawTextBytes:e}}}function V(e,t,n,r={}){if(typeof e!="string"||!La.has(e))throw new Error(`SQLite returned an invalid storage class for ${n}`);let o=e;if(o!=="text"&&r.rawTextBytes!==void 0)throw new Error(`SQLite returned raw TEXT bytes for non-TEXT ${n}`);if(o==="text"){if(t instanceof Uint8Array)return{storageClass:o,...ka(t,r.textEncoding,n)};if(typeof t!="string")throw new Error(`SQLite returned an invalid text value for ${n}`);if(r.rawTextBytes!==void 0&&!(r.rawTextBytes instanceof Uint8Array))throw new Error(`SQLite returned invalid raw TEXT bytes for ${n}`);return{storageClass:o,value:t,...r.rawTextBytes instanceof Uint8Array?{rawTextBytes:r.rawTextBytes}:{}}}if(!(o==="null"?t===null:o==="integer"?typeof t=="bigint"||typeof t=="number"&&Number.isInteger(t):o==="real"?typeof t=="number":t instanceof Uint8Array))throw new Error(`SQLite returned an invalid ${o} value for ${n}`);return{storageClass:o,value:t}}function mt(e){if(!e||typeof e!="object")throw new ft;V(e.storageClass,e.value,"cell history",{rawTextBytes:e.rawTextBytes})}function Bn(e,t){if(e.storageClass!==t.storageClass)return!1;if(e.storageClass==="text"){let o=e.rawTextBytes,i=t.rawTextBytes;if(o||i)return!o||!i?!1:o.length===i.length&&o.every((a,s)=>a===i[s])}let n=e.value,r=t.value;return e.storageClass==="integer"&&typeof n!=typeof r?typeof n=="number"&&Number.isSafeInteger(n)&&typeof r=="bigint"?BigInt(n)===r:typeof r=="number"&&Number.isSafeInteger(r)&&typeof n=="bigint"?n===BigInt(r):!1:n instanceof Uint8Array||r instanceof Uint8Array?!(n instanceof Uint8Array)||!(r instanceof Uint8Array)?!1:n.length===r.length&&n.every((o,i)=>o===r[i]):Object.is(n,r)}function Kt(e,t=()=>"?"){switch(mt(e),e.storageClass){case"null":return{sql:"NULL",params:[]};case"integer":return{sql:t(e.value),params:[e.value]};case"real":return{sql:"CAST(? AS REAL)",params:[e.value]};case"text":return{sql:e.rawTextBytes?"CAST(substr(?, 1) AS TEXT)":"CAST(? AS TEXT)",params:[e.rawTextBytes??e.value]};case"blob":return{sql:"?",params:[e.value]}}}function zt(e,t,n=()=>"?"){mt(t);let r=w(e);switch(t.storageClass){case"null":return{sql:`typeof(${r}) = 'null'`,params:[]};case"integer":{let o=n(t.value);return{sql:`typeof(${r}) = 'integer' AND ${r} IS ${o}`,params:[t.value]}}case"real":return{sql:`typeof(${r}) = 'real' AND ${r} IS CAST(? AS REAL)`,params:[t.value]};case"text":return{sql:`typeof(${r}) = 'text' AND CAST(${r} AS BLOB) = CAST(? AS BLOB)`,params:[t.rawTextBytes??t.value]};case"blob":return{sql:`typeof(${r}) = 'blob' AND ${r} IS ?`,params:[t.value]}}}var Ba="Row changed outside SQLite Explorer history; undo/redo was not applied.",Da="This row edit predates guarded row history and cannot be replayed safely. Save or reload the database.",Ce=class extends Error{constructor(n){super(`${n}: ${Ba}`);D(this,"code","SQLITE_EXPLORER_ROW_HISTORY_CONFLICT");this.name="RowHistoryConflictError"}},K=class extends Error{constructor(){super(Da);D(this,"code","SQLITE_EXPLORER_LEGACY_ROW_HISTORY");this.name="LegacyRowHistoryError"}};function pt(e){if(!Array.isArray(e.storageClasses))throw new K;let t=new Set;return e.storageClasses.map(n=>{let r=typeof n?.column=="string"?_t(n.column):void 0;if(!n||typeof n.column!="string"||r===void 0||t.has(r)||!Object.prototype.hasOwnProperty.call(e.row,n.column))throw new K;t.add(r);let o=e.row[n.column],i=n.storageClass==="text"&&o instanceof Uint8Array?o:void 0;return{column:n.column,state:V(n.storageClass,i?"":o,`row history column ${n.column}`,{rawTextBytes:i})}})}function Dn(e,t=()=>"?"){let n=pt(e).map(({column:r,state:o})=>zt(r,o,t));return{sql:n.length>0?n.map(r=>`(${r.sql})`).join(" AND "):"1",params:n.flatMap(r=>r.params)}}function ri(e,t=()=>"?"){return pt(e).map(({column:n,state:r})=>({column:n,write:Kt(r,t)}))}var Mn="~sqlite-explorer-non-finite:",Lu=`${Mn}Infinity`,Ma=`${Mn}-Infinity`,vu=`${Mn}NaN`,Ua=Ma.length+2;function gt(e){let t=new Set,n=[e],r=0;for(;n.length>0;){let o=n.pop();if(o!=null){if(typeof o=="boolean")r+=4;else if(typeof o=="number"||typeof o=="bigint")r+=8;else if(typeof o=="string")r+=o.length*2;else if(o instanceof Uint8Array)r+=o.byteLength;else if(typeof o=="object"){if(t.has(o))continue;if(t.add(o),r+=8,Array.isArray(o))for(let i of o)n.push(i);else for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r+=i.length*2,n.push(o[i]))}}}return r}var Va=32,qa=48;function oi(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error(`SQLite returned an unsafe ${t} during delete undo preflight`);return Number(n)}function ii(e,t){return[...e]}function si(e,t,n){return{sql:`SELECT COUNT(*), COALESCE(SUM(${t.map(o=>{let i=w(o);return`CASE typeof(${i}) WHEN 'text' THEN 2 * octet_length(${i}) WHEN 'blob' THEN octet_length(${i}) WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 0 END`}).join(" + ")||"0"}), 0) FROM ${N(e)} WHERE ${n.sql}`,params:n.params}}function ai(e){if(!e||e.length<2)throw new Error("SQLite omitted delete undo preflight metadata");return{rowCount:oi(e[0],"row count"),valueBytes:oi(e[1],"value byte count")}}function li(e){if(!Number.isSafeInteger(e.maxSnapshotBytes)||e.maxSnapshotBytes<0)throw new Error("Delete undo snapshot budget must be a non-negative safe integer");if(e.rowCount!==e.rowIds.length)throw new Error(`Cannot delete from ${e.table}: one or more row identities no longer exist`);let n=[...new Set(e.insertableColumns)].reduce((a,s)=>a+s.length*2,0),r=e.rowIds.reduce((a,s)=>a+gt(s),0),o=e.rowCount*e.insertableColumns.reduce((a,s)=>a+s.length*2+qa,0),i=e.valueBytes+r+e.rowCount*(Va+n)+o;if(!Number.isSafeInteger(i)||i>e.maxSnapshotBytes){let a=e.operation??"Delete";throw new Error(`${a} undo snapshot exceeds the ${e.maxSnapshotBytes}-byte memory budget; ${a.toLowerCase()} fewer rows or increase sqliteExplorer.maxUndoMemory.`)}}var Qt="ksa:",Xt=1,Vn=128*1024,Wa=["first","after","atOrAfter","before","last"];function qn(e){return e.orderBy?.toLowerCase()==="rowid"&&e.columns?.[0]?.toLowerCase()==="rowid"&&!e.columns.slice(1).some(t=>t.toLowerCase()==="rowid")}function Wn(e,t){let n=(t.filters??[]).flatMap(l=>{let d=Te(l.value);return d===void 0?[]:[[l.column,d]]}),r=Te(t.globalFilter)??null,o=r===null?null:t.globalFilterColumns??t.columns??null,i=typeof t.orderBy=="string"&&t.orderBy!==""?t.orderBy:null,a=i!==null&&t.orderDir==="DESC"?"DESC":"ASC",s=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)?t.limit:null;return JSON.stringify([Xt,e,i,a,s,n,r,o])}function Fn(e,t){if(!t||e.orderByColumns?.length)return;let n=t.kind==="rowid"?["rowid"]:t.columns.map(i=>i.identifier);if(n.length===0)return;let r=typeof e.orderBy=="string"&&e.orderBy!==""?e.orderBy:void 0;if(r===void 0)return{keyColumns:n,nullableSortKey:!1,direction:"ASC"};let o=e.orderDir==="DESC"?"DESC":"ASC";return qn(e)?{keyColumns:n,nullableSortKey:!1,direction:o}:n.includes(r)?{keyColumns:[r,...n.filter(i=>i!==r)],nullableSortKey:!1,direction:o}:{keyColumns:[r,...n],nullableSortKey:!0,direction:o}}function ci(e,t){if(!(!e||t))return{orderByColumns:e.keyColumns,orderDir:e.direction}}function Fa(e){return e===null?["null"]:Ot(e)}function Ha(e){return Array.isArray(e)&&e.length===1&&e[0]==="null"?{value:null,storageClass:"null"}:{value:Eo(e),storageClass:e[0]}}function ja(e,t){if(t.length===0)throw new Error("Keyset anchor requires at least one key value");let n={v:Xt,t:e,k:t.map(Fa)};return Qt+encodeURIComponent(JSON.stringify(n))}function Ka(e){if(e.length>Vn)throw new Error(`Keyset anchor exceeds the ${Vn}-byte limit`)}function za(e){if(typeof e!="string"||!e.startsWith(Qt))throw new Error("Invalid keyset anchor");Ka(e);let t;try{t=JSON.parse(decodeURIComponent(e.slice(Qt.length)))}catch{throw new Error("Invalid keyset anchor encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Xt||typeof t.t!="string"||!Array.isArray(t.k))throw new Error("Invalid keyset anchor payload");let n=t.k;if(n.length===0)throw new Error("Keyset anchor has no key values");let r,o;try{let a=n.map(Ha);r=a.map(s=>s.value),o=a.map(s=>s.storageClass)}catch(a){throw new Error(`Invalid keyset anchor value: ${a instanceof Error?a.message:String(a)}`)}if(Qt+encodeURIComponent(JSON.stringify({v:Xt,t:t.t,k:n}))!==e)throw new Error("Keyset anchor is not canonical");return{tag:t.t,values:r,valueClasses:o}}function ui(e,t,n){let r=t.keyset;if(!r||typeof r!="object"||Array.isArray(r)||!Wa.includes(r.mode))return;let o=Fn(t,n);if(!o)return;let i=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)&&t.limit>0?t.limit:void 0;if(i===void 0)return;if(r.mode==="first")return{...o,mode:"first",limit:i};if(r.mode==="last"){let l=r.lastPageRowCount??i;return typeof l!="number"||!Number.isSafeInteger(l)||l<1||l>i?void 0:{...o,mode:"last",limit:l}}if(r.anchor===void 0)return;let a=za(r.anchor);if(a.tag!==Wn(e,t)||a.values.length!==o.keyColumns.length)return;let s=o.nullableSortKey?1:0;if(a.values.some((l,d)=>l===null&&d>=s))throw new Error("Keyset anchor has NULL in an identity slot");return{...o,mode:r.mode,values:a.values,valueClasses:a.valueClasses,limit:i}}function Un(e,t,n){return e.length===1?`${e[0]} ${t} ${n[0]}`:`(${e.join(", ")}) ${t} (${n.join(", ")})`}function Qa(e){let t=e.values,r=e.mode==="before"?e.direction==="ASC"?"DESC":"ASC":e.direction,o=(r==="ASC"?">":"<")+(e.mode==="atOrAfter"?"=":""),i=e.keyColumns.map(w),a=e.keyColumns.map((f,m)=>e.valueClasses?.[m]==="integer"?"CAST(? AS INTEGER)":"?");if(!e.nullableSortKey)return{sql:Un(i,o,a),params:t};let s=i[0],l=i.slice(1),d=t[0],c=t.slice(1);if(d===null){let f=Un(l,o,a.slice(1));return r==="ASC"?{sql:`((${s} IS NULL AND ${f}) OR ${s} IS NOT NULL)`,params:c}:{sql:`(${s} IS NULL AND ${f})`,params:c}}let u=Un(i,o,a);return r==="ASC"?{sql:u,params:t}:{sql:`(${u} OR ${s} IS NULL)`,params:t}}function di(e){let{plan:t}=e,n=t.mode==="before"||t.mode==="last",r=n?t.direction==="ASC"?"DESC":"ASC":t.direction,o=[...e.whereClauses],i=[...e.filterParams];if(t.mode!=="first"&&t.mode!=="last"){let d=Qa(t);o.push(d.sql),i.push(...d.params)}let a=t.keyColumns.map(w),s=d=>a.map(c=>`${c} ${d}`).join(", "),l=`SELECT ${e.selectListSql} FROM ${e.escapedTable}`;return o.length>0&&(l+=` WHERE ${o.join(" AND ")}`),l+=` ORDER BY ${s(r)} LIMIT ${t.limit}`,n&&(l=`SELECT * FROM (${l}) ORDER BY ${s(t.direction)}`),{sql:l,params:i}}function fi(e){if(e.rows.length===0)return;let t=e.key.keyColumns.map(i=>e.projectionColumns.indexOf(i));if(t.some(i=>i<0))return;let n=i=>{if(e.excludedRowIndices?.has(i))return;let a=e.rows[i],s=[];for(let d=0;dpi)throw new Error(`Cell read chunk size must be an integer from 1 through ${pi}`)}function Ne(e){let t=String(e).toLowerCase().replace(/[_\s-]/g,"");if(t==="utf8")return"utf-8";if(t==="utf16le")return"utf-16le";if(t==="utf16be")return"utf-16be";throw new Error(`Unsupported SQLite text encoding: ${String(e)}`)}function hi(e,t,n){if(e.length!==1)throw new Error(e.length===0?`Cell ${n.table}.${n.column} no longer exists`:`Cell ${n.table}.${n.column} matched more than one row`);let r=e[0][0];if(typeof r!="string"||!Ya.has(r))throw new Error(`SQLite returned an invalid storage class for ${n.table}.${n.column}`);let o=e[0][1],i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i)||Number(i)<0)throw new Error(`SQLite returned an unsafe byte length for ${n.table}.${n.column}`);return{storageClass:r,byteLength:Number(i),...r==="text"?{textEncoding:t}:{}}}function Kn(e,t){return Number.isFinite(e)&&Number(e)>=1?Math.floor(Number(e)):t}var We=he,Gt=re;var zn="SQLITE_EXPLORER_CELL_EDIT_VALUE_TOO_LARGE",Qn="SQLITE_EXPLORER_OVERSIZED_CELL_REPLACEMENT_REQUIRED",Ei="Oversized cell metadata changed before the confirmed replacement was applied";var wi=We,Xn=class extends Error{constructor(n,r,o,i=`New ${n.toUpperCase()} cell value is ${r} bytes and exceeds the ${o}-byte edit limit.`){super(i);D(this,"storageClass",n);D(this,"actualBytes",r);D(this,"limitBytes",o);D(this,"name","CellEditPolicyError");D(this,"code",zn)}},Fe=class extends Error{constructor(n,r,o,i,a,s=`Existing ${o.toUpperCase()} cell ${n}.${r} is ${i} bytes. Use the explicitly confirmed oversized-cell replacement path.`){super(s);D(this,"table",n);D(this,"column",r);D(this,"storageClass",o);D(this,"actualBytes",i);D(this,"limitBytes",a);D(this,"name","OversizedCellReplacementRequiredError");D(this,"code",Qn)}};function Ja(e){let t=0;for(let n=0;n=55296&&r<=56319){let o=e.charCodeAt(n+1);o>=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function He(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);let n=typeof e=="string"?"text":e instanceof Uint8Array?"blob":void 0;if(!n)return;let r=typeof e=="string"?Ja(e):e instanceof Uint8Array?e.byteLength:0;if(r>t)throw new Xn(n,r,t)}function Si(e){let t=e??wi;if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);return t}function je(e,t){let n=Si(t);for(let r of e)He(r,n);return n}function bi(e,t){let n=Si(t);if(!e||e.storageClass!=="text"&&e.storageClass!=="blob"||!Number.isSafeInteger(e.byteLength)||e.byteLength<=n)throw new Error("Guarded oversized-cell replacement requires exact TEXT/BLOB metadata above the edit limit");return n}function Za(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="CellEditPolicyError"||t.code!==zn||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"CellEditPolicyError",code:zn,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function el(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="OversizedCellReplacementRequiredError"||t.code!==Qn||typeof t.table!="string"||typeof t.column!="string"||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"OversizedCellReplacementRequiredError",code:Qn,table:t.table,column:t.column,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function Ti(e){return Za(e)??el(e)}var Ai=100,tl=18,Ci=19,Ri=2;var nl=1024*1024*1024,_e=2145386496,rl="WAL database too large for in-memory mode; checkpoint it first";function Ni(e){return e.length>Ci&&e[tl]===Ri&&e[Ci]===Ri}function Ii(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<1)throw new Error(`${n} must be a positive safe integer`);return e}function xi(e){return`${(e/(1024*1024*1024)).toFixed(1)} GiB`}function Gn(e,t={}){let n=Ii(t.pagedThresholdBytes,nl,"Paged-open threshold"),r=Ii(t.bufferCeilingBytes,_e,"Buffer-open ceiling");if(n>r)throw new Error("Paged-open threshold must not exceed the buffer-open ceiling");if(!Number.isSafeInteger(e.sizeBytes)||e.sizeBytes<0)throw new Error("Database size must be a non-negative safe integer");return e.walMarked?e.sizeBytes>=r?{mode:"reject",message:rl}:{mode:"buffer",readOnly:e.sizeBytes>n}:e.sizeBytes>n&&e.pagedAvailable?{mode:"paged"}:e.sizeBytes>=r?{mode:"reject",message:`Database is too large to load into memory in this browser (${xi(e.sizeBytes)}; limit ${xi(r)}) and page-on-demand mode is unavailable`}:{mode:"buffer",readOnly:!1}}var ol=64*1024*1024,Ke=1e4,$i=`SELECT 1 FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? AND "type" IN ('table', 'shadow') AND "wr" = 1 LIMIT 1`;function Yn(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:ol}function Jn(e){return e.storage==="paged"&&!e.filtered&&e.authorityConfirmedRowIdTable&&e.pagedFileSizeBytes>e.exactCountMaxFileBytes}function Oi(e){let t=N(e);return`SELECT (SELECT CAST(min(rowid) AS TEXT) FROM ${t}), (SELECT CAST(max(rowid) AS TEXT) FROM ${t})`}function Li(e){return`SELECT COUNT(*) FROM (SELECT 1 FROM ${N(e)} LIMIT ?)`}function vi(e,t){if(!(typeof e!="number"||!Number.isSafeInteger(e)||e<0||e>Ke+1))return e<=Ke?{count:e,isExact:!0}:{count:Zn(t,e),isExact:!1}}function Zn(e,t=Ke+1){return(!Number.isSafeInteger(t)||t<0)&&(t=Ke+1),!Number.isSafeInteger(e)||eBigInt(Number.MAX_SAFE_INTEGER)))return Number(i)}function ki(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<1)throw new Error(`${n} must be a positive safe integer`);return e}function Bi(e,t={}){let n=ki(t.chunkSizeBytes,65536,"Chunk size"),r=ki(t.maxCacheBytes,8388608,"Cache budget"),o=Math.max(1,Math.floor(r/n)),i=new Map;function a(s){let l=i.get(s);if(l!==void 0)return i.delete(s),i.set(s,l),l;let d=e(s*n,n),c=d.length>n?d.subarray(0,n):d;if(i.set(s,c),i.size>o){let u=i.keys().next().value;i.delete(u)}return c}return(s,l)=>{if(!Number.isSafeInteger(s)||s<0)throw new Error("Read offset must be a non-negative safe integer");if(!Number.isSafeInteger(l)||l<0)throw new Error("Read length must be a non-negative safe integer");if(l===0)return new Uint8Array(0);let d=Math.floor(s/n),c=Math.floor((s+l-1)/n);if(d===c){let m=a(d),y=s-d*n;return y>=m.length?new Uint8Array(0):m.subarray(y,Math.min(y+l,m.length))}let u=new Uint8Array(l),f=0;for(let m=d;m<=c;m++){let y=a(m),g=m*n,h=Math.max(s,g)-g,C=Math.min(s+l,g+n)-g,T=Math.min(C,y.length);if(h>=T||(u.set(y.subarray(h,T),g+h-s),f=g+T-s,y.length{if(Gi(t))return fl(t);if(typeof t!="bigint")return t;let n=Number(t);return Number.isSafeInteger(n)?n:t.toString()})}function Gi(e){return typeof e=="string"&&e.includes("\0")}function G(e){return typeof e=="bigint"&&!Number.isSafeInteger(Number(e))?"CAST(? AS INTEGER)":Gi(e)?"CAST(? AS TEXT)":"?"}function fl(e){let t=Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]);if(t==="utf-8")return new TextEncoder().encode(e);let n=t==="utf-16le",r=new Uint8Array(e.length*2);for(let o=0;o>>8,r[o*2+1]=n?i>>>8:i&255}return r}function Je(e){Ge(e).free()}function Ye(e,t){if(t!==void 0&&!(typeof SharedArrayBuffer=="function"&&t instanceof Int32Array&&t.length>0&&t.buffer instanceof SharedArrayBuffer))throw new Error("Invalid query cancellation flag");let n=()=>t!==void 0&&Atomics.load(t,0)!==0,r=()=>{let a=new Error("Query execution cancelled");throw a.name="AbortError",a};n()&&r();let o=Date.now()+ir,i;p.progress_handler(al,()=>n()?(i="cancelled",!0):Date.now(){let n=Ge(e),r=n.getColumnNames();n.free();let o=ot(e,r.length),i=Ge(o.sql),a=[];try{for(;i.step();)a.push(i.get(null,{useBigInt:!0}));let{rows:s,exactIntegerTexts:l}=Ue(a,o.valueColumnCount);return{headers:r,rows:s,exactIntegerTexts:l}}finally{i.free()}},t)}function Yi(e,t){if(t!=null)return t;let n=e??[];return n[0]==="rowid"?n.slice(1):n}function B(e,t){try{b(`ROLLBACK TO ${e}`),b(`RELEASE ${e}`)}catch(n){console.warn(`Failed to rollback savepoint (${t}):`,oe(n))}}function ml(e){for($e.add(e);$e.size>64;)$e.delete($e.values().next().value)}function Ji(e){b(`ROLLBACK TO ${e}`),b(`RELEASE ${e}`)}function nn(e){let t=Xe;if(!t||e!==void 0&&t.sessionId!==e)return!1;Xe=null,ml(t.sessionId),t.expiryTimer!==void 0&&clearTimeout(t.expiryTimer);try{b(`RELEASE ${t.savepointName}`)}catch(n){try{Ji(t.savepointName)}catch(r){let o=[n,r];try{p?.close()}catch(i){o.push(i)}finally{p=null}throw new AggregateError(o,"Cell read snapshot cleanup failed; the owning web database was closed")}}return!0}function Zi(e){e.expiryTimer!==void 0&&clearTimeout(e.expiryTimer),e.expiresAt=Math.min(e.absoluteExpiresAt,e.lastAccessAt+yr),e.expiryTimer=setTimeout(()=>{try{nn(e.sessionId)}catch(t){console.error("[Worker] Failed to expire cell read session:",oe(t))}},Math.max(1,e.expiresAt-Date.now()))}async function es(e){gi(e);let t=await te(e.table),n=U(e.rowId,t);return{table:e.table,column:e.column,predicateSql:n.sql,predicateParams:n.params}}function pl(e){let t=w(e.column);return{sql:`SELECT typeof(${t}), CASE WHEN ${t} IS NULL THEN 0 ELSE length(CAST(${t} AS BLOB)) END FROM ${N(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function gl(e){return{sql:`SELECT substr(CAST(${w(e.column)} AS BLOB), ? + 1, ?) FROM ${N(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function ve(){return Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0])}function ts(e,t){let n=pl(t),r=p.exec(n.sql,v(n.params),{useBigInt:!0});return hi(r[0]?.values??[],ve(),e)}async function Zt(e){if(!p)throw new Error("No database initialized");let t=await es(e);return ts(e,t)}async function yl(e){if(!p)throw new Error("No database initialized");if(Xe)throw new Error("At most one web cell read session may be open");let t=await es(e),n=k("sp_cell_read");b(`SAVEPOINT ${n}`);try{let r=ts(e,t),o=Date.now(),i={sessionId:crypto.randomUUID(),target:e,sqlTarget:t,metadata:r,savepointName:n,lastAccessAt:o,absoluteExpiresAt:o+Xi,expiresAt:o+yr,expiryTimer:void 0};return Xe=i,Zi(i),{sessionId:i.sessionId,metadata:r,expiresAt:i.expiresAt}}catch(r){try{Ji(n)}catch(o){let i=[r,o];try{p?.close()}catch(a){i.push(a)}finally{p=null}throw new AggregateError(i,"Cell read session open failed; the owning web database was closed")}throw r}}async function hl(e,t,n){yi(t,n);let r=Xe;if(!r||r.sessionId!==e)throw new Error($e.has(e)?`Cell read session ${e} is closed or expired`:`Unknown cell read session: ${String(e)}`);if(Date.now()>=r.expiresAt)throw nn(e),new Error(`Cell read session ${e} is closed or expired`);let o=gl(r.sqlTarget),a=p.exec(o.sql,v([t,n,...o.params]))[0]?.values??[];if(a.length!==1)throw new Error(a.length===0?`Cell ${r.target.table}.${r.target.column} no longer exists in its snapshot`:`Cell ${r.target.table}.${r.target.column} matched more than one row`);let s=a[0][0],l=s===null?new Uint8Array(0):s;if(!(l instanceof Uint8Array))throw new Error(`SQLite returned a non-BLOB chunk for ${r.target.table}.${r.target.column}`);return r.lastAccessAt=Date.now(),Zi(r),{byteOffset:t,bytes:l.slice(),done:t+l.byteLength>=r.metadata.byteLength}}async function El(e){if(typeof e!="string"||e.length===0)throw new Error("Cell read session id is required");if(!nn(e)&&!$e.has(e))throw new Error(`Unknown cell read session: ${e}`)}function wl(e){if(Xe&&!["readCellChunk","closeCellReadSession","initializeDatabase"].includes(e))throw new Error("A cell read snapshot is active; close it before another database operation")}function Sl(e){return!!e&&typeof e=="object"&&typeof e.slice=="function"&&typeof e.size=="number"}function bl(e,t){let n=e.size,r=Bi((o,i)=>new Uint8Array(t.readAsArrayBuffer(e.slice(o,o+i))));return{size:()=>n,read:r}}function Tl(e){let t={};return e.pagedOpenThresholdBytes!==void 0&&(t.pagedThresholdBytes=e.pagedOpenThresholdBytes),e.bufferOpenCeilingBytes!==void 0&&(t.bufferCeilingBytes=e.bufferOpenCeilingBytes),t}function Cl(e){if(e===void 0)return _e;if(!Number.isSafeInteger(e)||e<1)throw new Error("pagedExportMaxBytes must be a positive safe integer");if(e>_e)throw new Error(`pagedExportMaxBytes must not exceed ${_e} bytes`);return e}function oe(e){let t="Unknown error";try{t=e&&typeof e=="object"&&typeof e.message=="string"&&e.message?e.message:String(e)}catch{}return t||(t="Unknown error"),t.length<=Di?t:t.slice(0,Di)+`... [truncated from ${t.length} characters]`}async function Rl(e,t){if(nn(),p&&(p.close(),p=null),ir=Number.isFinite(t.queryTimeout)&&t.queryTimeout>0?t.queryTimeout:Ki,H=t.readOnlyMode===!0,yt=null,ze="memory",Oe=0,ht=Cl(t.pagedExportMaxBytes),Qi=Yn(t.pagedExactCountMaxFileBytes),yr=Kn(t.cellReadSessionIdleTimeoutMs,Hn),Xi=Kn(t.cellReadSessionAbsoluteTimeoutMs,jn),$e.clear(),!ae){importScripts(il);let n={};t.wasmBinary?n.wasmBinary=t.wasmBinary:n.locateFile=()=>sl,ae=await self.initSqlJs(n),zi=Bl(ae)}if(Sl(t.file)?ze=Al(t.file,Tl(t)):t.content&&t.content.length>0?p=new ae.Database(t.content):p=new ae.Database,p.run("PRAGMA foreign_keys = ON"),!H){let n=xl();n&&(H=!0,yt=n)}return H&&(typeof p.enforceReadOnly=="function"?p.enforceReadOnly():p.run("PRAGMA query_only = ON")),{operations:{},isReadOnly:H,storage:ze,...yt?{readOnlyReason:yt}:{}}}var Il=8;function Vi(e){return e?.errno===Il||/read[\s-]?only/i.test(oe(e))?"This database cannot be written by this process, so it is open read-only (SQLite: attempt to write a readonly database).":null}function xl(){let e=Number(p.exec("PRAGMA user_version")[0]?.values?.[0]?.[0])|0;try{p.run("BEGIN")}catch(n){return Vi(n)}let t=null;try{p.run(`PRAGMA user_version = ${e}`)}catch(n){t=Vi(n)}finally{p.run("ROLLBACK")}return t}function Al(e,t){let n=new FileReaderSync,r=new Uint8Array(n.readAsArrayBuffer(e.slice(0,Ai))),o=!H&&typeof ae.Database.openPagedWritable=="function",i=typeof ae.Database.openPaged=="function",a={sizeBytes:e.size,walMarked:Ni(r),pagedAvailable:o||i},s=Gn(a,t),l=null;if(s.mode==="paged"){let d=Math.min(ht,t.bufferCeilingBytes??_e),c=e.size>d,u=!H&&c?`This database exceeds the ${d}-byte browser save limit and is open read-only so edits cannot be stranded. Use the desktop extension to edit and save it.`:null,f=bl(e,n),m=[];if(o&&!c)try{return p=ae.Database.openPagedWritable(f),Oe=e.size,"paged"}catch(y){let g=oe(y);m.push(`writable paged open failed: ${g}`),p=null}if(i)try{return p=ae.Database.openPaged(f),H=!0,yt=u,Oe=e.size,"paged"}catch(y){let g=oe(y);m.push(`read-only paged open failed: ${g}`),p=null}l=m.length>0?new Error(m.join("; ")):null,s=Gn({...a,pagedAvailable:!1},t)}if(s.mode==="reject")throw new Error(l?`${s.message} (paged open failed: ${l.message})`:s.message);return p=new ae.Database(new Uint8Array(n.readAsArrayBuffer(e))),s.readOnly&&(H=!0),"memory"}async function Nl(e,t=[],n){if(!p)throw new Error("No database initialized");if(H)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");try{return Ye(()=>p.exec(e,t),n).map(o=>({headers:o.columns,rows:o.values}))}catch(r){throw r}}async function _l(e,t="[]",n){if(!p)throw new Error("No database initialized");if(typeof e!="string"||typeof t!="string")throw new TypeError("SQL and parameter JSON must be strings");let r=qo(e),o=Ho(t);if(o.length!==r.parameterCount)throw new Error(`Expected ${r.parameterCount} positional parameters.`);let i=`query_columns_${crypto.randomUUID().replace(/-/g,"")}`,a=Number(p.exec("PRAGMA query_only")[0]?.values[0]?.[0])===1,s=!1,l;try{a&&b("PRAGMA query_only = OFF"),l=Ye(()=>{b(`CREATE TEMP VIEW "${i}" AS ${r.metadataSql}`),s=!0;let d=(p.exec("SELECT substr(name, 1, 4097) FROM pragma.pragma_table_info(?, 'temp') ORDER BY cid LIMIT ?",[i,Wt+1])[0]?.values??[]).map(c=>String(c[0]));if(!d.length||d.length>Wt)throw new Error("Queries support 1 to 128 result columns.");if(d.some(c=>c.length>4096))throw new Error("Result column labels must be at most 4096 characters.");return d},n)}finally{try{s&&(a&&b("PRAGMA query_only = OFF"),b(`DROP VIEW temp."${i}"`))}finally{if(a)try{b("PRAGMA query_only = ON")}catch(d){let c=p;throw p=null,c.close(),d}}}return Ye(()=>{let d=jo(r.sql,l.length),c=Ge(d.sql);try{c.bind(o);let u=[];for(;u.length<=be&&c.step();)u.push(c.get(null,{useBigInt:!0}));return Ko(l,u,d.valueColumnCount)}finally{c.free()}},n)}function $l(e){if(e==null)return 5e3;let t=Number(e);return Number.isFinite(t)?Math.min(5e4,Math.max(1,Math.trunc(t))):5e3}function Ol(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.trunc(t)):1/0}var qi=100;function Ll(e){if(e==null)return[];if(!Array.isArray(e))throw new Error("Console parameters must be a JSON array.");if(e.length>qi)throw new Error(`Use at most ${qi} positional parameters.`);for(let t of e)if(t!==null){if(typeof t=="string"){if(t.includes("\0"))throw new Error("Console parameters must not contain NUL bytes; SQLite would bind the text truncated at the first one.");continue}if(!(typeof t=="number"&&Number.isFinite(t)))throw new Error("Console parameters must be null, string, or finite number values.")}return e}function ns(e,t){try{e.bind(t)}catch(n){throw new Error(`cannot bind ${t.length} positional parameter${t.length===1?"":"s"}: `+oe(n))}}var vl=4*65536,Pl=65536,rs=Object.freeze(["id","parent","notused","detail"]),os="SQLite returned an unsupported query plan.",kl=/^pragma\b/i;function Bl(e){let t=e?._sqlite_explorer_register_query_plan;if(typeof t!="function")return!1;if(t()!==0)throw new Error("Unable to initialize the bounded query-plan reader.");return!0}function is(e){let t=0;for(;;){let n=t;for(;tbe}}function Ml(e,t){let n=Wo(e,t),r=p.prepare(n.sql);try{if(r.bind(n.params),!r.step())throw new Error(os);return as(Fo(r.get()[0]).rows)}finally{r.free()}}function Ul(e,t){if(kl.test(is(e)))throw new Error("PRAGMA statements have no query plan (and some pragmas take effect while being compiled, so they are not even prepared here). Use Run.");let n=Ge(`EXPLAIN QUERY PLAN ${e}`);try{t.length>0&&ns(n,t);let r=[];for(;r.length<=be&&n.step();){let o=n.get();if(o.length!==rs.length||typeof o[3]!="string")throw new Error(os);if(new TextEncoder().encode(o[3]).byteLength>Pl)throw new Error("Query plan detail exceeds the 65,536-byte limit.");r.push(o)}return as(r)}finally{n.free()}}function Vl(e,t){if(typeof e!="string"||e.trim()==="")throw new Error("Enter one SQL statement to explain.");if(new TextEncoder().encode(e).byteLength>vl)throw new Error("Query plan SQL exceeds 262,144 UTF-8 bytes.");let n=pe(e);for(let r of n.matchAll(ss))if(r[0]===";")throw new Error("Exactly one SQL statement is required");return zi&&Dl(n)?Ml(n,t):Ul(n,t)}async function ql(e,t={},n){if(!p)throw new Error("No database initialized");if(H)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");if(typeof e=="string"&&e.includes("\0"))throw new Error("SQL contains a NUL byte; SQLite stops compiling at the first NUL, so the rest of the script would be silently skipped");let r=Ll(t.params),o=$l(t.maxRows),i=Ol(t.maxStatements),a=Date.now(),s=p.exec("SELECT total_changes()")[0].values[0][0],l=p.exec("PRAGMA schema_version")[0].values[0][0],d=()=>{let y=p.exec("SELECT total_changes()")[0].values[0][0],g=p.exec("PRAGMA schema_version")[0].values[0][0];return{mutated:y-s>0||g!==l,changes:y-s,durationMs:Date.now()-a}},c=()=>{try{return d()}catch{return{mutated:!0,changes:0,durationMs:Date.now()-a}}};if(t.explain===!0)try{return{results:[Ye(()=>Vl(e,r),n)],explain:!0,statementsSkipped:!1,...d()}}catch(y){return{results:[],error:oe(y),explain:!0,multiStatement:!1,statementsSkipped:!1,...c()}}let u=0,f=!1,m;try{m=Ye(()=>{let y=[],g=p.iterateStatements(e),h=!1;for(;;){if(u>=i){h=!0;break}u++;let C=g.next();if(C.done)break;let T=C.value;try{r.length>0&&ns(T,r);let I=T.getColumnNames(),x=!1,S=!1;if(I.length===0&&(S=T.step(),x=!0,S&&(I=T.getColumnNames())),I.length===0){if(!x||S)for(;T.step(););}else{let R=[],_=!1;for(x||(S=T.step());S;)R.length1,statementsSkipped:f,...h}}return{results:m,statementsSkipped:f,...d()}}async function Wl(e){if(!p)throw new Error("No database initialized");let t=ze==="paged"&&!H;if(ze==="paged"&&H)throw new Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");let n=()=>new Error(`Cannot download this page-on-demand database: the merged image would exceed the ${ht}-byte browser memory limit. Saving materializes the complete database in memory; use the desktop extension or reduce the database size.`);if(t&&Oe>ht)throw n();let r;try{r=p.export()}catch(o){let i=oe(o);throw t&&/transaction is open|while a transaction/i.test(i)?new Error("Cannot save while a database transaction is open; retry after the edit completes.",{cause:o}):o}if(t&&r.byteLength>ht)throw n();return r}async function Fl(e,t,n,r,o={}){if(!p)throw new Error("No database initialized");let i=e?.table;if(!i)throw new Error("No table specified");let{format:a="csv",header:s=!0,includeTableName:l=!0,rowIds:d=null,maxExportBytes:c}=o;if(!["csv","json","sql","excel"].includes(a))throw new Error(`Unsupported export format: ${a}`);let u=Number.isSafeInteger(c)&&c>0?Math.min(c,cl):pr,f=[{sql:"",params:[]}];if(d&&d.length>0){let A=await te(i);if(d.some(Z)&&!d.every(Z))throw new Error("Cannot mix rowid and primary-key row identities");let L=new Set,E=[];for(let O of d){let q=A.kind==="rowid"?M(O):O,Y=String(q);L.has(Y)||(L.add(Y),E.push(q))}f=qe(E,A)}let m=t&&t.length>0?t:Hl(i);if(m.length>Jt)throw new Error(`Cannot export more than ${Jt} columns`);let y=a!=="csv"&&a!=="excel",g=m.map((A,L)=>{let E=w(A),O=`typeof(${E})`,q=`octet_length(${E})`;return`CASE ${O} WHEN 'null' THEN 'n:0:' WHEN 'integer' THEN 'i:0:' || CAST(${E} AS TEXT) WHEN 'real' THEN 'r:0:' || printf('%!.17g', ${E}) WHEN 'text' THEN 't:' || CAST(${q} AS TEXT) || ':' || hex(CAST(${E} AS BLOB)) WHEN 'blob' THEN 'b:' || CAST(${q} AS TEXT) || ':' || `+(y?`hex(${E}) `:"'' ")+`END AS ${w(`__export_cell_${L}`)}`}).join(", "),h=k("sp_export_rows");b(`SAVEPOINT ${h}`);let C=[];try{let A=1024;for(let L of f){let E=L.sql?` WHERE ${L.sql}`:"";if(A+=Ql(i,m,E,L.params,a,u),!Number.isSafeInteger(A)||A>u)throw hr(u)}for(let L of f){let E=L.sql?` WHERE ${L.sql}`:"",O=p.exec(`SELECT ${g} FROM ${N(i)}${E}`,L.params);O.length>0&&C.push(...O[0].values)}b(`RELEASE ${h}`)}catch(A){throw B(h,"exportTable"),A}let T=m,I=Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),x=C.map((A,L)=>{if(A.length!==m.length)throw new Error(`SQLite returned ${A.length} packed export cells for row ${L}; expected ${m.length}`);return m.map((E,O)=>Kl(i,E,A[O],y,I))}),S=new ar(u),R="text/plain",_=`${i}.${a}`;switch(a){case"csv":Wi(T,x,s,S),R="text/csv";break;case"json":Xl(T,x,S),R="application/json";break;case"sql":Gl(i,T,x,l,S),R="text/sql";break;case"excel":Wi(T,x,s,S),R="text/csv",_=`${i}.csv`;break}return{contentChunks:S.finish(),filename:_,mimeType:R}}function hr(e){if(e===pr)return new Error(`Web demo exports are limited to ${ll} because the worker RPC cannot stream downloads; use the desktop extension for larger exports.`);let t=e/(1024*1024);return new Error(`Export exceeds the ${t} MiB (${e} bytes) limit; the worker assembles the whole file in memory, so larger exports need the native engine.`)}function Hl(e){let t=p.prepare(`SELECT * FROM ${N(e)} LIMIT 0`);try{return t.getColumnNames()}finally{t.free()}}function jl(e,t,n){if(e.length!==t*2||/[^0-9a-f]/i.test(e))throw new Error(`SQLite returned invalid packed bytes for ${n}`);let r=new Uint8Array(t);for(let o=0;o1;){let n=[];for(let r=0;r{let f=w(u),m=`length(${f})`,y=o==="csv"||o==="excel"?"64":o==="json"?`((${m} + 2) / 3) * 4 + 64`:`${m} * 2 + 64`;return`CASE typeof(${f}) WHEN 'text' THEN length(CAST(${f} AS BLOB)) * 6 + 64 WHEN 'blob' THEN ${y} ELSE 64 END`})),l=p.exec(`SELECT COUNT(*), COALESCE(SUM(${a}), 0) FROM ${N(e)}${n}`,r)[0]?.values?.[0]??[0,0],d=Number(l[0]),c=Number(l[1])+d*128;if(!Number.isSafeInteger(c)||c<0)throw hr(i);return c}function sr(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}var ar=class{constructor(t=pr){this.chunks=[],this.pending="",this.outputBytes=0,this.capBytes=t}append(t){if(this.outputBytes+=sr(t),!Number.isSafeInteger(this.outputBytes)||this.outputBytes>this.capBytes)throw hr(this.capBytes);let n=0;for(;n0&&t.charCodeAt(o-1)>=55296&&t.charCodeAt(o-1)<=56319&&t.charCodeAt(o)>=56320&&t.charCodeAt(o)<=57343&&r--,r===0){this.flush();continue}this.pending+=t.slice(n,n+r),n+=r,this.pending.length>=Mi&&this.flush()}}flush(){this.pending.length>0&&(this.chunks.push(this.pending),this.pending="")}finish(){return this.flush(),this.chunks}};function Wi(e,t,n,r){let o=!1,i=a=>{o&&r.append(` -`),r.append(a.join(",")),o=!0};n&&i(e.map(a=>In({storageClass:"text",value:a})));for(let a of t)i(a.map(In))}function Xl(e,t,n){n.append("[");for(let r=0;r1e3)throw new Error("JSON merge patch depth limit exceeded");if(e===t)return;if(!z(e)||!z(t)||Array.isArray(e)||Array.isArray(t))return t;let r=Object.create(null),o=!1;for(let i of Object.keys(t)){let a=Object.prototype.hasOwnProperty.call(e,i)?e[i]:void 0,s=t[i];if(a===void 0)r[i]=s,o=!0;else if(a!==s){let l=Zo(a,s,n+1);l!==void 0&&(r[i]=l,o=!0)}}for(let i of Object.keys(e))Object.prototype.hasOwnProperty.call(t,i)||(r[i]=null,o=!0);return o?r:void 0}function ei(e,t,n=0){if(n>1e3)throw new Error("JSON apply merge patch depth limit exceeded");if(t===null)return null;if(typeof t!="object"||Array.isArray(t))return t;let r;typeof e!="object"||e===null||Array.isArray(e)?r=Object.create(null):r=Object.assign(Object.create(null),e);let o=t;for(let i in o)if(Object.prototype.hasOwnProperty.call(o,i)){let a=o[i];a===null?delete r[i]:r[i]=ei(r[i],a,n+1)}return r}function Ht(e){if(typeof e=="string")try{let t=JSON.parse(e);return z(t)?t:void 0}catch{return}}function ti(e,t,n,r,o){let i=o==="undo"?r:n,a=o==="undo"?n:r,s=()=>Yo(e,i)?{kind:"write",value:a}:{kind:"conflict"};if(jt(e)||jt(t)||jt(n)||jt(r))return s();let l=Ht(e),d=Ht(t),c=Ht(n),u=Ht(r);if(!l||!d||!c||!u)return s();if(!ni(l,o==="undo"?u:c,d,c,0))return{kind:"conflict"};if(Yo(e,i))return{kind:"write",value:a};let m=o==="undo"?Bn(l,d,c,0):ei(l,d,0);return{kind:"write",value:JSON.stringify(m)}}function ni(e,t,n,r,o){if(o>1e3)throw new Error("JSON history replay depth limit exceeded");for(let i of Object.keys(n)){let a=n[i],s=Object.prototype.hasOwnProperty.call(e,i),l=Object.prototype.hasOwnProperty.call(t,i),d=Object.prototype.hasOwnProperty.call(r,i),c=s?e[i]:void 0,u=l?t[i]:void 0,f=d?r[i]:void 0;if(z(a)){if(!d||!z(f)){if(!Go(s,c,l,u,o+1))return!1;continue}if(!s||!z(c)||!l||!z(u)||!ni(c,u,a,f,o+1))return!1;continue}if(!Go(s,c,l,u,o+1))return!1}return!0}function Go(e,t,n,r,o){return e===n&&(!e||kn(t,r,o))}function kn(e,t,n){if(n>1e3)throw new Error("JSON history replay depth limit exceeded");if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((i,a)=>kn(i,t[a],n+1));if(!z(e)||!z(t))return!1;let r=Object.keys(e),o=Object.keys(t);return r.length!==o.length?!1:r.every(i=>Object.prototype.hasOwnProperty.call(t,i)&&kn(e[i],t[i],n+1))}function Yo(e,t){return e instanceof Uint8Array||t instanceof Uint8Array?!(e instanceof Uint8Array)||!(t instanceof Uint8Array)?!1:e.length===t.length&&e.every((n,r)=>n===t[r]):Object.is(e,t)}function Bn(e,t,n,r){if(r>1e3)throw new Error("JSON undo restore depth limit exceeded");let o=Object.assign(Object.create(null),e);for(let i of Object.keys(t)){let a=t[i],s=Object.prototype.hasOwnProperty.call(n,i),l=s?n[i]:void 0;if(z(a))if(s&&z(l))if(Object.prototype.hasOwnProperty.call(o,i)&&z(o[i])){let d=o[i];o[i]=Bn(d,a,l,r+1)}else o[i]=l;else if(s)o[i]=l;else{let d=Object.prototype.hasOwnProperty.call(o,i)&&z(o[i])?o[i]:Object.create(null),c=Bn(d,a,Object.create(null),r+1);Object.keys(c).length===0?delete o[i]:o[i]=c}else s?o[i]=l:delete o[i]}return o}function jt(e){if(typeof e!="string")return!1;let n=e.replace(/"(?:\\.|[^"\\])*"/g,'""').match(/-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g);return n?n.some(r=>{let o=Number(r);return!Number.isFinite(o)||JSON.stringify(o)!==r}):!1}function z(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var La=new Set(["null","integer","real","text","blob"]),va="Cell changed outside SQLite Explorer history; undo/redo was not applied.",Pa="This edit predates guarded cell history and cannot be replayed safely. Save or reload the database.",se=class extends Error{constructor(n,r){let o=r.length===1?`${n}.${r[0]}`:`${r.length} cells in ${n}`;super(`${o}: ${va}`);D(this,"code","SQLITE_EXPLORER_CELL_HISTORY_CONFLICT");this.name="CellHistoryConflictError"}},ft=class extends Error{constructor(){super(Pa);D(this,"code","SQLITE_EXPLORER_LEGACY_CELL_HISTORY");this.name="LegacyCellHistoryError"}};function ee(e){let t=w(e);return`typeof(${t}), CASE WHEN typeof(${t}) = 'text' THEN CAST(${t} AS BLOB) ELSE ${t} END`}function ka(e,t,n){if(!t)throw new Error(`SQLite text encoding is required for ${n}`);try{return{value:de(t).decode(e)}}catch{return{value:"",rawTextBytes:e}}}function V(e,t,n,r={}){if(typeof e!="string"||!La.has(e))throw new Error(`SQLite returned an invalid storage class for ${n}`);let o=e;if(o!=="text"&&r.rawTextBytes!==void 0)throw new Error(`SQLite returned raw TEXT bytes for non-TEXT ${n}`);if(o==="text"){if(t instanceof Uint8Array)return{storageClass:o,...ka(t,r.textEncoding,n)};if(typeof t!="string")throw new Error(`SQLite returned an invalid text value for ${n}`);if(r.rawTextBytes!==void 0&&!(r.rawTextBytes instanceof Uint8Array))throw new Error(`SQLite returned invalid raw TEXT bytes for ${n}`);return{storageClass:o,value:t,...r.rawTextBytes instanceof Uint8Array?{rawTextBytes:r.rawTextBytes}:{}}}if(!(o==="null"?t===null:o==="integer"?typeof t=="bigint"||typeof t=="number"&&Number.isInteger(t):o==="real"?typeof t=="number":t instanceof Uint8Array))throw new Error(`SQLite returned an invalid ${o} value for ${n}`);return{storageClass:o,value:t}}function mt(e){if(!e||typeof e!="object")throw new ft;V(e.storageClass,e.value,"cell history",{rawTextBytes:e.rawTextBytes})}function Dn(e,t){if(e.storageClass!==t.storageClass)return!1;if(e.storageClass==="text"){let o=e.rawTextBytes,i=t.rawTextBytes;if(o||i)return!o||!i?!1:o.length===i.length&&o.every((a,s)=>a===i[s])}let n=e.value,r=t.value;return e.storageClass==="integer"&&typeof n!=typeof r?typeof n=="number"&&Number.isSafeInteger(n)&&typeof r=="bigint"?BigInt(n)===r:typeof r=="number"&&Number.isSafeInteger(r)&&typeof n=="bigint"?n===BigInt(r):!1:n instanceof Uint8Array||r instanceof Uint8Array?!(n instanceof Uint8Array)||!(r instanceof Uint8Array)?!1:n.length===r.length&&n.every((o,i)=>o===r[i]):Object.is(n,r)}function zt(e,t=()=>"?"){switch(mt(e),e.storageClass){case"null":return{sql:"NULL",params:[]};case"integer":return{sql:t(e.value),params:[e.value]};case"real":return{sql:"CAST(? AS REAL)",params:[e.value]};case"text":return{sql:e.rawTextBytes?"CAST(substr(?, 1) AS TEXT)":"CAST(? AS TEXT)",params:[e.rawTextBytes??e.value]};case"blob":return{sql:"?",params:[e.value]}}}function Qt(e,t,n=()=>"?"){mt(t);let r=w(e);switch(t.storageClass){case"null":return{sql:`typeof(${r}) = 'null'`,params:[]};case"integer":{let o=n(t.value);return{sql:`typeof(${r}) = 'integer' AND ${r} IS ${o}`,params:[t.value]}}case"real":return{sql:`typeof(${r}) = 'real' AND ${r} IS CAST(? AS REAL)`,params:[t.value]};case"text":return{sql:`typeof(${r}) = 'text' AND CAST(${r} AS BLOB) = CAST(? AS BLOB)`,params:[t.rawTextBytes??t.value]};case"blob":return{sql:`typeof(${r}) = 'blob' AND ${r} IS ?`,params:[t.value]}}}var Ba="Row changed outside SQLite Explorer history; undo/redo was not applied.",Da="This row edit predates guarded row history and cannot be replayed safely. Save or reload the database.",Ce=class extends Error{constructor(n){super(`${n}: ${Ba}`);D(this,"code","SQLITE_EXPLORER_ROW_HISTORY_CONFLICT");this.name="RowHistoryConflictError"}},K=class extends Error{constructor(){super(Da);D(this,"code","SQLITE_EXPLORER_LEGACY_ROW_HISTORY");this.name="LegacyRowHistoryError"}};function pt(e){if(!Array.isArray(e.storageClasses))throw new K;let t=new Set;return e.storageClasses.map(n=>{let r=typeof n?.column=="string"?_t(n.column):void 0;if(!n||typeof n.column!="string"||r===void 0||t.has(r)||!Object.prototype.hasOwnProperty.call(e.row,n.column))throw new K;t.add(r);let o=e.row[n.column],i=n.storageClass==="text"&&o instanceof Uint8Array?o:void 0;return{column:n.column,state:V(n.storageClass,i?"":o,`row history column ${n.column}`,{rawTextBytes:i})}})}function Mn(e,t=()=>"?"){let n=pt(e).map(({column:r,state:o})=>Qt(r,o,t));return{sql:n.length>0?n.map(r=>`(${r.sql})`).join(" AND "):"1",params:n.flatMap(r=>r.params)}}function ri(e,t=()=>"?"){return pt(e).map(({column:n,state:r})=>({column:n,write:zt(r,t)}))}var Un="~sqlite-explorer-non-finite:",Lu=`${Un}Infinity`,Ma=`${Un}-Infinity`,vu=`${Un}NaN`,Ua=Ma.length+2;function gt(e){let t=new Set,n=[e],r=0;for(;n.length>0;){let o=n.pop();if(o!=null){if(typeof o=="boolean")r+=4;else if(typeof o=="number"||typeof o=="bigint")r+=8;else if(typeof o=="string")r+=o.length*2;else if(o instanceof Uint8Array)r+=o.byteLength;else if(typeof o=="object"){if(t.has(o))continue;if(t.add(o),r+=8,Array.isArray(o))for(let i of o)n.push(i);else for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r+=i.length*2,n.push(o[i]))}}}return r}var Va=32,qa=48;function oi(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||Number(n)<0)throw new Error(`SQLite returned an unsafe ${t} during delete undo preflight`);return Number(n)}function ii(e,t){return[...e]}function si(e,t,n){return{sql:`SELECT COUNT(*), COALESCE(SUM(${t.map(o=>{let i=w(o);return`CASE typeof(${i}) WHEN 'text' THEN 2 * octet_length(${i}) WHEN 'blob' THEN octet_length(${i}) WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 0 END`}).join(" + ")||"0"}), 0) FROM ${N(e)} WHERE ${n.sql}`,params:n.params}}function ai(e){if(!e||e.length<2)throw new Error("SQLite omitted delete undo preflight metadata");return{rowCount:oi(e[0],"row count"),valueBytes:oi(e[1],"value byte count")}}function li(e){if(!Number.isSafeInteger(e.maxSnapshotBytes)||e.maxSnapshotBytes<0)throw new Error("Delete undo snapshot budget must be a non-negative safe integer");if(e.rowCount!==e.rowIds.length)throw new Error(`Cannot delete from ${e.table}: one or more row identities no longer exist`);let n=[...new Set(e.insertableColumns)].reduce((a,s)=>a+s.length*2,0),r=e.rowIds.reduce((a,s)=>a+gt(s),0),o=e.rowCount*e.insertableColumns.reduce((a,s)=>a+s.length*2+qa,0),i=e.valueBytes+r+e.rowCount*(Va+n)+o;if(!Number.isSafeInteger(i)||i>e.maxSnapshotBytes){let a=e.operation??"Delete";throw new Error(`${a} undo snapshot exceeds the ${e.maxSnapshotBytes}-byte memory budget; ${a.toLowerCase()} fewer rows or increase sqliteExplorer.maxUndoMemory.`)}}var Xt="ksa:",Gt=1,qn=128*1024,Wa=["first","after","atOrAfter","before","last"];function Wn(e){return e.orderBy?.toLowerCase()==="rowid"&&e.columns?.[0]?.toLowerCase()==="rowid"&&!e.columns.slice(1).some(t=>t.toLowerCase()==="rowid")}function Fn(e,t){let n=(t.filters??[]).flatMap(l=>{let d=Te(l.value);return d===void 0?[]:[[l.column,d]]}),r=Te(t.globalFilter)??null,o=r===null?null:t.globalFilterColumns??t.columns??null,i=typeof t.orderBy=="string"&&t.orderBy!==""?t.orderBy:null,a=i!==null&&t.orderDir==="DESC"?"DESC":"ASC",s=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)?t.limit:null;return JSON.stringify([Gt,e,i,a,s,n,r,o])}function Hn(e,t){if(!t||e.orderByColumns?.length)return;let n=t.kind==="rowid"?["rowid"]:t.columns.map(i=>i.identifier);if(n.length===0)return;let r=typeof e.orderBy=="string"&&e.orderBy!==""?e.orderBy:void 0;if(r===void 0)return{keyColumns:n,nullableSortKey:!1,direction:"ASC"};let o=e.orderDir==="DESC"?"DESC":"ASC";return Wn(e)?{keyColumns:n,nullableSortKey:!1,direction:o}:n.includes(r)?{keyColumns:[r,...n.filter(i=>i!==r)],nullableSortKey:!1,direction:o}:{keyColumns:[r,...n],nullableSortKey:!0,direction:o}}function ci(e,t){if(!(!e||t))return{orderByColumns:e.keyColumns,orderDir:e.direction}}function Fa(e){return e===null?["null"]:Ot(e)}function Ha(e){return Array.isArray(e)&&e.length===1&&e[0]==="null"?{value:null,storageClass:"null"}:{value:wo(e),storageClass:e[0]}}function ja(e,t){if(t.length===0)throw new Error("Keyset anchor requires at least one key value");let n={v:Gt,t:e,k:t.map(Fa)};return Xt+encodeURIComponent(JSON.stringify(n))}function Ka(e){if(e.length>qn)throw new Error(`Keyset anchor exceeds the ${qn}-byte limit`)}function za(e){if(typeof e!="string"||!e.startsWith(Xt))throw new Error("Invalid keyset anchor");Ka(e);let t;try{t=JSON.parse(decodeURIComponent(e.slice(Xt.length)))}catch{throw new Error("Invalid keyset anchor encoding")}if(!t||typeof t!="object"||Array.isArray(t)||Object.keys(t).length!==3||t.v!==Gt||typeof t.t!="string"||!Array.isArray(t.k))throw new Error("Invalid keyset anchor payload");let n=t.k;if(n.length===0)throw new Error("Keyset anchor has no key values");let r,o;try{let a=n.map(Ha);r=a.map(s=>s.value),o=a.map(s=>s.storageClass)}catch(a){throw new Error(`Invalid keyset anchor value: ${a instanceof Error?a.message:String(a)}`)}if(Xt+encodeURIComponent(JSON.stringify({v:Gt,t:t.t,k:n}))!==e)throw new Error("Keyset anchor is not canonical");return{tag:t.t,values:r,valueClasses:o}}function ui(e,t,n){let r=t.keyset;if(!r||typeof r!="object"||Array.isArray(r)||!Wa.includes(r.mode))return;let o=Hn(t,n);if(!o)return;let i=typeof t.limit=="number"&&Number.isSafeInteger(t.limit)&&t.limit>0?t.limit:void 0;if(i===void 0)return;if(r.mode==="first")return{...o,mode:"first",limit:i};if(r.mode==="last"){let l=r.lastPageRowCount??i;return typeof l!="number"||!Number.isSafeInteger(l)||l<1||l>i?void 0:{...o,mode:"last",limit:l}}if(r.anchor===void 0)return;let a=za(r.anchor);if(a.tag!==Fn(e,t)||a.values.length!==o.keyColumns.length)return;let s=o.nullableSortKey?1:0;if(a.values.some((l,d)=>l===null&&d>=s))throw new Error("Keyset anchor has NULL in an identity slot");return{...o,mode:r.mode,values:a.values,valueClasses:a.valueClasses,limit:i}}function Vn(e,t,n){return e.length===1?`${e[0]} ${t} ${n[0]}`:`(${e.join(", ")}) ${t} (${n.join(", ")})`}function Qa(e){let t=e.values,r=e.mode==="before"?e.direction==="ASC"?"DESC":"ASC":e.direction,o=(r==="ASC"?">":"<")+(e.mode==="atOrAfter"?"=":""),i=e.keyColumns.map(w),a=e.keyColumns.map((f,m)=>e.valueClasses?.[m]==="integer"?"CAST(? AS INTEGER)":"?");if(!e.nullableSortKey)return{sql:Vn(i,o,a),params:t};let s=i[0],l=i.slice(1),d=t[0],c=t.slice(1);if(d===null){let f=Vn(l,o,a.slice(1));return r==="ASC"?{sql:`((${s} IS NULL AND ${f}) OR ${s} IS NOT NULL)`,params:c}:{sql:`(${s} IS NULL AND ${f})`,params:c}}let u=Vn(i,o,a);return r==="ASC"?{sql:u,params:t}:{sql:`(${u} OR ${s} IS NULL)`,params:t}}function di(e){let{plan:t}=e,n=t.mode==="before"||t.mode==="last",r=n?t.direction==="ASC"?"DESC":"ASC":t.direction,o=[...e.whereClauses],i=[...e.filterParams];if(t.mode!=="first"&&t.mode!=="last"){let d=Qa(t);o.push(d.sql),i.push(...d.params)}let a=t.keyColumns.map(w),s=d=>a.map(c=>`${c} ${d}`).join(", "),l=`SELECT ${e.selectListSql} FROM ${e.escapedTable}`;return o.length>0&&(l+=` WHERE ${o.join(" AND ")}`),l+=` ORDER BY ${s(r)} LIMIT ${t.limit}`,n&&(l=`SELECT * FROM (${l}) ORDER BY ${s(t.direction)}`),{sql:l,params:i}}function fi(e){if(e.rows.length===0)return;let t=e.key.keyColumns.map(i=>e.projectionColumns.indexOf(i));if(t.some(i=>i<0))return;let n=i=>{if(e.excludedRowIndices?.has(i))return;let a=e.rows[i],s=[];for(let d=0;dpi)throw new Error(`Cell read chunk size must be an integer from 1 through ${pi}`)}function Ne(e){let t=String(e).toLowerCase().replace(/[_\s-]/g,"");if(t==="utf8")return"utf-8";if(t==="utf16le")return"utf-16le";if(t==="utf16be")return"utf-16be";throw new Error(`Unsupported SQLite text encoding: ${String(e)}`)}function hi(e,t,n){if(e.length!==1)throw new Error(e.length===0?`Cell ${n.table}.${n.column} no longer exists`:`Cell ${n.table}.${n.column} matched more than one row`);let r=e[0][0];if(typeof r!="string"||!Ya.has(r))throw new Error(`SQLite returned an invalid storage class for ${n.table}.${n.column}`);let o=e[0][1],i=typeof o=="bigint"?Number(o):o;if(!Number.isSafeInteger(i)||Number(i)<0)throw new Error(`SQLite returned an unsafe byte length for ${n.table}.${n.column}`);return{storageClass:r,byteLength:Number(i),...r==="text"?{textEncoding:t}:{}}}function zn(e,t){return Number.isFinite(e)&&Number(e)>=1?Math.floor(Number(e)):t}var We=he,Yt=re;var Qn="SQLITE_EXPLORER_CELL_EDIT_VALUE_TOO_LARGE",Xn="SQLITE_EXPLORER_OVERSIZED_CELL_REPLACEMENT_REQUIRED",Ei="Oversized cell metadata changed before the confirmed replacement was applied";var wi=We,Gn=class extends Error{constructor(n,r,o,i=`New ${n.toUpperCase()} cell value is ${r} bytes and exceeds the ${o}-byte edit limit.`){super(i);D(this,"storageClass",n);D(this,"actualBytes",r);D(this,"limitBytes",o);D(this,"name","CellEditPolicyError");D(this,"code",Qn)}},Fe=class extends Error{constructor(n,r,o,i,a,s=`Existing ${o.toUpperCase()} cell ${n}.${r} is ${i} bytes. Use the explicitly confirmed oversized-cell replacement path.`){super(s);D(this,"table",n);D(this,"column",r);D(this,"storageClass",o);D(this,"actualBytes",i);D(this,"limitBytes",a);D(this,"name","OversizedCellReplacementRequiredError");D(this,"code",Xn)}};function Ja(e){let t=0;for(let n=0;n=55296&&r<=56319){let o=e.charCodeAt(n+1);o>=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}function He(e,t){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);let n=typeof e=="string"?"text":e instanceof Uint8Array?"blob":void 0;if(!n)return;let r=typeof e=="string"?Ja(e):e instanceof Uint8Array?e.byteLength:0;if(r>t)throw new Gn(n,r,t)}function Si(e){let t=e??wi;if(!Number.isSafeInteger(t)||t<1)throw new Error(`Cell edit limit must be a positive safe integer, got ${t}`);return t}function je(e,t){let n=Si(t);for(let r of e)He(r,n);return n}function bi(e,t){let n=Si(t);if(!e||e.storageClass!=="text"&&e.storageClass!=="blob"||!Number.isSafeInteger(e.byteLength)||e.byteLength<=n)throw new Error("Guarded oversized-cell replacement requires exact TEXT/BLOB metadata above the edit limit");return n}function Za(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="CellEditPolicyError"||t.code!==Qn||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"CellEditPolicyError",code:Qn,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function el(e){if(!e||typeof e!="object")return;let t=e;if(!(t.name!=="OversizedCellReplacementRequiredError"||t.code!==Xn||typeof t.table!="string"||typeof t.column!="string"||t.storageClass!=="text"&&t.storageClass!=="blob"||!Number.isSafeInteger(t.actualBytes)||Number(t.actualBytes)<0||!Number.isSafeInteger(t.limitBytes)||Number(t.limitBytes)<1||typeof t.message!="string"))return{name:"OversizedCellReplacementRequiredError",code:Xn,table:t.table,column:t.column,storageClass:t.storageClass,actualBytes:Number(t.actualBytes),limitBytes:Number(t.limitBytes),message:t.message}}function Ti(e){return Za(e)??el(e)}var Ai=100,tl=18,Ci=19,Ri=2;var nl=1024*1024*1024,_e=2145386496,rl="WAL database too large for in-memory mode; checkpoint it first";function Ni(e){return e.length>Ci&&e[tl]===Ri&&e[Ci]===Ri}function Ii(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<1)throw new Error(`${n} must be a positive safe integer`);return e}function xi(e){return`${(e/(1024*1024*1024)).toFixed(1)} GiB`}function Yn(e,t={}){let n=Ii(t.pagedThresholdBytes,nl,"Paged-open threshold"),r=Ii(t.bufferCeilingBytes,_e,"Buffer-open ceiling");if(n>r)throw new Error("Paged-open threshold must not exceed the buffer-open ceiling");if(!Number.isSafeInteger(e.sizeBytes)||e.sizeBytes<0)throw new Error("Database size must be a non-negative safe integer");return e.walMarked?e.sizeBytes>=r?{mode:"reject",message:rl}:{mode:"buffer",readOnly:e.sizeBytes>n}:e.sizeBytes>n&&e.pagedAvailable?{mode:"paged"}:e.sizeBytes>=r?{mode:"reject",message:`Database is too large to load into memory in this browser (${xi(e.sizeBytes)}; limit ${xi(r)}) and page-on-demand mode is unavailable`}:{mode:"buffer",readOnly:!1}}var ol=64*1024*1024,Ke=1e4,$i=`SELECT 1 FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? AND "type" IN ('table', 'shadow') AND "wr" = 1 LIMIT 1`;function Jn(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:ol}function Zn(e){return e.storage==="paged"&&!e.filtered&&e.authorityConfirmedRowIdTable&&e.pagedFileSizeBytes>e.exactCountMaxFileBytes}function Oi(e){let t=N(e);return`SELECT (SELECT CAST(min(rowid) AS TEXT) FROM ${t}), (SELECT CAST(max(rowid) AS TEXT) FROM ${t})`}function Li(e){return`SELECT COUNT(*) FROM (SELECT 1 FROM ${N(e)} LIMIT ?)`}function vi(e,t){if(!(typeof e!="number"||!Number.isSafeInteger(e)||e<0||e>Ke+1))return e<=Ke?{count:e,isExact:!0}:{count:er(t,e),isExact:!1}}function er(e,t=Ke+1){return(!Number.isSafeInteger(t)||t<0)&&(t=Ke+1),!Number.isSafeInteger(e)||eBigInt(Number.MAX_SAFE_INTEGER)))return Number(i)}function ki(e,t,n){if(e===void 0)return t;if(!Number.isSafeInteger(e)||e<1)throw new Error(`${n} must be a positive safe integer`);return e}function Bi(e,t={}){let n=ki(t.chunkSizeBytes,65536,"Chunk size"),r=ki(t.maxCacheBytes,8388608,"Cache budget"),o=Math.max(1,Math.floor(r/n)),i=new Map;function a(s){let l=i.get(s);if(l!==void 0)return i.delete(s),i.set(s,l),l;let d=e(s*n,n),c=d.length>n?d.subarray(0,n):d;if(i.set(s,c),i.size>o){let u=i.keys().next().value;i.delete(u)}return c}return(s,l)=>{if(!Number.isSafeInteger(s)||s<0)throw new Error("Read offset must be a non-negative safe integer");if(!Number.isSafeInteger(l)||l<0)throw new Error("Read length must be a non-negative safe integer");if(l===0)return new Uint8Array(0);let d=Math.floor(s/n),c=Math.floor((s+l-1)/n);if(d===c){let m=a(d),y=s-d*n;return y>=m.length?new Uint8Array(0):m.subarray(y,Math.min(y+l,m.length))}let u=new Uint8Array(l),f=0;for(let m=d;m<=c;m++){let y=a(m),g=m*n,h=Math.max(s,g)-g,C=Math.min(s+l,g+n)-g,T=Math.min(C,y.length);if(h>=T||(u.set(y.subarray(h,T),g+h-s),f=g+T-s,y.length{if(Gi(t))return fl(t);if(typeof t!="bigint")return t;let n=Number(t);return Number.isSafeInteger(n)?n:t.toString()})}function Gi(e){return typeof e=="string"&&e.includes("\0")}function G(e){return typeof e=="bigint"&&!Number.isSafeInteger(Number(e))?"CAST(? AS INTEGER)":Gi(e)?"CAST(? AS TEXT)":"?"}function fl(e){let t=Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]);if(t==="utf-8")return new TextEncoder().encode(e);let n=t==="utf-16le",r=new Uint8Array(e.length*2);for(let o=0;o>>8,r[o*2+1]=n?i>>>8:i&255}return r}function Je(e){Ge(e).free()}function Ye(e,t){if(t!==void 0&&!(typeof SharedArrayBuffer=="function"&&t instanceof Int32Array&&t.length>0&&t.buffer instanceof SharedArrayBuffer))throw new Error("Invalid query cancellation flag");let n=()=>t!==void 0&&Atomics.load(t,0)!==0,r=()=>{let a=new Error("Query execution cancelled");throw a.name="AbortError",a};n()&&r();let o=Date.now()+sr,i;p.progress_handler(al,()=>n()?(i="cancelled",!0):Date.now(){let n=Ge(e),r=n.getColumnNames();n.free();let o=ot(e,r.length),i=Ge(o.sql),a=[];try{for(;i.step();)a.push(i.get(null,{useBigInt:!0}));let{rows:s,exactIntegerTexts:l}=Ue(a,o.valueColumnCount);return{headers:r,rows:s,exactIntegerTexts:l}}finally{i.free()}},t)}function Yi(e,t){if(t!=null)return t;let n=e??[];return n[0]==="rowid"?n.slice(1):n}function B(e,t){try{b(`ROLLBACK TO ${e}`),b(`RELEASE ${e}`)}catch(n){console.warn(`Failed to rollback savepoint (${t}):`,oe(n))}}function ml(e){for($e.add(e);$e.size>64;)$e.delete($e.values().next().value)}function Ji(e){b(`ROLLBACK TO ${e}`),b(`RELEASE ${e}`)}function rn(e){let t=Xe;if(!t||e!==void 0&&t.sessionId!==e)return!1;Xe=null,ml(t.sessionId),t.expiryTimer!==void 0&&clearTimeout(t.expiryTimer);try{b(`RELEASE ${t.savepointName}`)}catch(n){try{Ji(t.savepointName)}catch(r){let o=[n,r];try{p?.close()}catch(i){o.push(i)}finally{p=null}throw new AggregateError(o,"Cell read snapshot cleanup failed; the owning web database was closed")}}return!0}function Zi(e){e.expiryTimer!==void 0&&clearTimeout(e.expiryTimer),e.expiresAt=Math.min(e.absoluteExpiresAt,e.lastAccessAt+hr),e.expiryTimer=setTimeout(()=>{try{rn(e.sessionId)}catch(t){console.error("[Worker] Failed to expire cell read session:",oe(t))}},Math.max(1,e.expiresAt-Date.now()))}async function es(e){gi(e);let t=await te(e.table),n=U(e.rowId,t);return{table:e.table,column:e.column,predicateSql:n.sql,predicateParams:n.params}}function pl(e){let t=w(e.column);return{sql:`SELECT typeof(${t}), CASE WHEN ${t} IS NULL THEN 0 ELSE length(CAST(${t} AS BLOB)) END FROM ${N(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function gl(e){return{sql:`SELECT substr(CAST(${w(e.column)} AS BLOB), ? + 1, ?) FROM ${N(e.table)} WHERE ${e.predicateSql} LIMIT 2`,params:e.predicateParams}}function ve(){return Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0])}function ts(e,t){let n=pl(t),r=p.exec(n.sql,v(n.params),{useBigInt:!0});return hi(r[0]?.values??[],ve(),e)}async function en(e){if(!p)throw new Error("No database initialized");let t=await es(e);return ts(e,t)}async function yl(e){if(!p)throw new Error("No database initialized");if(Xe)throw new Error("At most one web cell read session may be open");let t=await es(e),n=k("sp_cell_read");b(`SAVEPOINT ${n}`);try{let r=ts(e,t),o=Date.now(),i={sessionId:crypto.randomUUID(),target:e,sqlTarget:t,metadata:r,savepointName:n,lastAccessAt:o,absoluteExpiresAt:o+Xi,expiresAt:o+hr,expiryTimer:void 0};return Xe=i,Zi(i),{sessionId:i.sessionId,metadata:r,expiresAt:i.expiresAt}}catch(r){try{Ji(n)}catch(o){let i=[r,o];try{p?.close()}catch(a){i.push(a)}finally{p=null}throw new AggregateError(i,"Cell read session open failed; the owning web database was closed")}throw r}}async function hl(e,t,n){yi(t,n);let r=Xe;if(!r||r.sessionId!==e)throw new Error($e.has(e)?`Cell read session ${e} is closed or expired`:`Unknown cell read session: ${String(e)}`);if(Date.now()>=r.expiresAt)throw rn(e),new Error(`Cell read session ${e} is closed or expired`);let o=gl(r.sqlTarget),a=p.exec(o.sql,v([t,n,...o.params]))[0]?.values??[];if(a.length!==1)throw new Error(a.length===0?`Cell ${r.target.table}.${r.target.column} no longer exists in its snapshot`:`Cell ${r.target.table}.${r.target.column} matched more than one row`);let s=a[0][0],l=s===null?new Uint8Array(0):s;if(!(l instanceof Uint8Array))throw new Error(`SQLite returned a non-BLOB chunk for ${r.target.table}.${r.target.column}`);return r.lastAccessAt=Date.now(),Zi(r),{byteOffset:t,bytes:l.slice(),done:t+l.byteLength>=r.metadata.byteLength}}async function El(e){if(typeof e!="string"||e.length===0)throw new Error("Cell read session id is required");if(!rn(e)&&!$e.has(e))throw new Error(`Unknown cell read session: ${e}`)}function wl(e){if(Xe&&!["readCellChunk","closeCellReadSession","initializeDatabase"].includes(e))throw new Error("A cell read snapshot is active; close it before another database operation")}function Sl(e){return!!e&&typeof e=="object"&&typeof e.slice=="function"&&typeof e.size=="number"}function bl(e,t){let n=e.size,r=Bi((o,i)=>new Uint8Array(t.readAsArrayBuffer(e.slice(o,o+i))));return{size:()=>n,read:r}}function Tl(e){let t={};return e.pagedOpenThresholdBytes!==void 0&&(t.pagedThresholdBytes=e.pagedOpenThresholdBytes),e.bufferOpenCeilingBytes!==void 0&&(t.bufferCeilingBytes=e.bufferOpenCeilingBytes),t}function Cl(e){if(e===void 0)return _e;if(!Number.isSafeInteger(e)||e<1)throw new Error("pagedExportMaxBytes must be a positive safe integer");if(e>_e)throw new Error(`pagedExportMaxBytes must not exceed ${_e} bytes`);return e}function oe(e){let t="Unknown error";try{t=e&&typeof e=="object"&&typeof e.message=="string"&&e.message?e.message:String(e)}catch{}return t||(t="Unknown error"),t.length<=Di?t:t.slice(0,Di)+`... [truncated from ${t.length} characters]`}async function Rl(e,t){if(rn(),p&&(p.close(),p=null),sr=Number.isFinite(t.queryTimeout)&&t.queryTimeout>0?t.queryTimeout:Ki,H=t.readOnlyMode===!0,yt=null,ze="memory",Oe=0,ht=Cl(t.pagedExportMaxBytes),Qi=Jn(t.pagedExactCountMaxFileBytes),hr=zn(t.cellReadSessionIdleTimeoutMs,jn),Xi=zn(t.cellReadSessionAbsoluteTimeoutMs,Kn),$e.clear(),!ae){importScripts(il);let n={};t.wasmBinary?n.wasmBinary=t.wasmBinary:n.locateFile=()=>sl,ae=await self.initSqlJs(n),zi=Bl(ae)}if(Sl(t.file)?ze=Al(t.file,Tl(t)):t.content&&t.content.length>0?p=new ae.Database(t.content):p=new ae.Database,p.run("PRAGMA foreign_keys = ON"),!H){let n=xl();n&&(H=!0,yt=n)}return H&&(typeof p.enforceReadOnly=="function"?p.enforceReadOnly():p.run("PRAGMA query_only = ON")),{operations:{},isReadOnly:H,storage:ze,...yt?{readOnlyReason:yt}:{}}}var Il=8;function Vi(e){return e?.errno===Il||/read[\s-]?only/i.test(oe(e))?"This database cannot be written by this process, so it is open read-only (SQLite: attempt to write a readonly database).":null}function xl(){let e=Number(p.exec("PRAGMA user_version")[0]?.values?.[0]?.[0])|0;try{p.run("BEGIN")}catch(n){return Vi(n)}let t=null;try{p.run(`PRAGMA user_version = ${e}`)}catch(n){t=Vi(n)}finally{p.run("ROLLBACK")}return t}function Al(e,t){let n=new FileReaderSync,r=new Uint8Array(n.readAsArrayBuffer(e.slice(0,Ai))),o=!H&&typeof ae.Database.openPagedWritable=="function",i=typeof ae.Database.openPaged=="function",a={sizeBytes:e.size,walMarked:Ni(r),pagedAvailable:o||i},s=Yn(a,t),l=null;if(s.mode==="paged"){let d=Math.min(ht,t.bufferCeilingBytes??_e),c=e.size>d,u=!H&&c?`This database exceeds the ${d}-byte browser save limit and is open read-only so edits cannot be stranded. Use the desktop extension to edit and save it.`:null,f=bl(e,n),m=[];if(o&&!c)try{return p=ae.Database.openPagedWritable(f),Oe=e.size,"paged"}catch(y){let g=oe(y);m.push(`writable paged open failed: ${g}`),p=null}if(i)try{return p=ae.Database.openPaged(f),H=!0,yt=u,Oe=e.size,"paged"}catch(y){let g=oe(y);m.push(`read-only paged open failed: ${g}`),p=null}l=m.length>0?new Error(m.join("; ")):null,s=Yn({...a,pagedAvailable:!1},t)}if(s.mode==="reject")throw new Error(l?`${s.message} (paged open failed: ${l.message})`:s.message);return p=new ae.Database(new Uint8Array(n.readAsArrayBuffer(e))),s.readOnly&&(H=!0),"memory"}async function Nl(e,t=[],n){if(!p)throw new Error("No database initialized");if(H)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");try{return Ye(()=>p.exec(e,t),n).map(o=>({headers:o.columns,rows:o.values}))}catch(r){throw r}}async function _l(e,t="[]",n){if(!p)throw new Error("No database initialized");if(typeof e!="string"||typeof t!="string")throw new TypeError("SQL and parameter JSON must be strings");let r=qo(e),o=Ho(t);if(o.length!==r.parameterCount)throw new Error(`Expected ${r.parameterCount} positional parameters.`);let i=`query_columns_${crypto.randomUUID().replace(/-/g,"")}`,a=Number(p.exec("PRAGMA query_only")[0]?.values[0]?.[0])===1,s=!1,l;try{a&&b("PRAGMA query_only = OFF"),l=Ye(()=>{b(`CREATE TEMP VIEW "${i}" AS ${r.metadataSql}`),s=!0;let d=(p.exec("SELECT substr(name, 1, 4097) FROM pragma.pragma_table_info(?, 'temp') ORDER BY cid LIMIT ?",[i,Ft+1])[0]?.values??[]).map(c=>String(c[0]));if(!d.length||d.length>Ft)throw new Error("Queries support 1 to 128 result columns.");if(d.some(c=>c.length>4096))throw new Error("Result column labels must be at most 4096 characters.");return d},n)}finally{try{s&&(a&&b("PRAGMA query_only = OFF"),b(`DROP VIEW temp."${i}"`))}finally{if(a)try{b("PRAGMA query_only = ON")}catch(d){let c=p;throw p=null,c.close(),d}}}return Ye(()=>{let d=jo(r.sql,l.length),c=Ge(d.sql);try{c.bind(o);let u=[];for(;u.length<=be&&c.step();)u.push(c.get(null,{useBigInt:!0}));return Ko(l,u,d.valueColumnCount)}finally{c.free()}},n)}function $l(e){if(e==null)return 5e3;let t=Number(e);return Number.isFinite(t)?Math.min(5e4,Math.max(1,Math.trunc(t))):5e3}function Ol(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.trunc(t)):1/0}var qi=100;function Ll(e){if(e==null)return[];if(!Array.isArray(e))throw new Error("Console parameters must be a JSON array.");if(e.length>qi)throw new Error(`Use at most ${qi} positional parameters.`);for(let t of e)if(t!==null){if(typeof t=="string"){if(t.includes("\0"))throw new Error("Console parameters must not contain NUL bytes; SQLite would bind the text truncated at the first one.");continue}if(!(typeof t=="number"&&Number.isFinite(t)))throw new Error("Console parameters must be null, string, or finite number values.")}return e}function ns(e,t){try{e.bind(t)}catch(n){throw new Error(`cannot bind ${t.length} positional parameter${t.length===1?"":"s"}: `+oe(n))}}var vl=4*65536,Pl=65536,rs=Object.freeze(["id","parent","notused","detail"]),os="SQLite returned an unsupported query plan.",kl=/^pragma\b/i;function Bl(e){let t=e?._sqlite_explorer_register_query_plan;if(typeof t!="function")return!1;if(t()!==0)throw new Error("Unable to initialize the bounded query-plan reader.");return!0}function is(e){let t=0;for(;;){let n=t;for(;tbe}}function Ml(e,t){let n=Wo(e,t),r=p.prepare(n.sql);try{if(r.bind(n.params),!r.step())throw new Error(os);return as(Fo(r.get()[0]).rows)}finally{r.free()}}function Ul(e,t){if(kl.test(is(e)))throw new Error("PRAGMA statements have no query plan (and some pragmas take effect while being compiled, so they are not even prepared here). Use Run.");let n=Ge(`EXPLAIN QUERY PLAN ${e}`);try{t.length>0&&ns(n,t);let r=[];for(;r.length<=be&&n.step();){let o=n.get();if(o.length!==rs.length||typeof o[3]!="string")throw new Error(os);if(new TextEncoder().encode(o[3]).byteLength>Pl)throw new Error("Query plan detail exceeds the 65,536-byte limit.");r.push(o)}return as(r)}finally{n.free()}}function Vl(e,t){if(typeof e!="string"||e.trim()==="")throw new Error("Enter one SQL statement to explain.");if(new TextEncoder().encode(e).byteLength>vl)throw new Error("Query plan SQL exceeds 262,144 UTF-8 bytes.");let n=pe(e);for(let r of n.matchAll(ss))if(r[0]===";")throw new Error("Exactly one SQL statement is required");return zi&&Dl(n)?Ml(n,t):Ul(n,t)}async function ql(e,t={},n){if(!p)throw new Error("No database initialized");if(H)throw new Error("Ad hoc SQL execution is unavailable because the database is read-only");if(typeof e=="string"&&e.includes("\0"))throw new Error("SQL contains a NUL byte; SQLite stops compiling at the first NUL, so the rest of the script would be silently skipped");let r=Ll(t.params),o=$l(t.maxRows),i=Ol(t.maxStatements),a=Date.now(),s=p.exec("SELECT total_changes()")[0].values[0][0],l=p.exec("PRAGMA schema_version")[0].values[0][0],d=()=>{let y=p.exec("SELECT total_changes()")[0].values[0][0],g=p.exec("PRAGMA schema_version")[0].values[0][0];return{mutated:y-s>0||g!==l,changes:y-s,durationMs:Date.now()-a}},c=()=>{try{return d()}catch{return{mutated:!0,changes:0,durationMs:Date.now()-a}}};if(t.explain===!0)try{return{results:[Ye(()=>Vl(e,r),n)],explain:!0,statementsSkipped:!1,...d()}}catch(y){return{results:[],error:oe(y),explain:!0,multiStatement:!1,statementsSkipped:!1,...c()}}let u=0,f=!1,m;try{m=Ye(()=>{let y=[],g=p.iterateStatements(e),h=!1;for(;;){if(u>=i){h=!0;break}u++;let C=g.next();if(C.done)break;let T=C.value;try{r.length>0&&ns(T,r);let I=T.getColumnNames(),x=!1,S=!1;if(I.length===0&&(S=T.step(),x=!0,S&&(I=T.getColumnNames())),I.length===0){if(!x||S)for(;T.step(););}else{let R=[],_=!1;for(x||(S=T.step());S;)R.length1,statementsSkipped:f,...h}}return{results:m,statementsSkipped:f,...d()}}async function Wl(e){if(!p)throw new Error("No database initialized");let t=ze==="paged"&&!H;if(ze==="paged"&&H)throw new Error("paged databases are read-only snapshots; export() is only available on openPagedWritable instances");let n=()=>new Error(`Cannot download this page-on-demand database: the merged image would exceed the ${ht}-byte browser memory limit. Saving materializes the complete database in memory; use the desktop extension or reduce the database size.`);if(t&&Oe>ht)throw n();let r;try{r=p.export()}catch(o){let i=oe(o);throw t&&/transaction is open|while a transaction/i.test(i)?new Error("Cannot save while a database transaction is open; retry after the edit completes.",{cause:o}):o}if(t&&r.byteLength>ht)throw n();return r}async function Fl(e,t,n,r,o={}){if(!p)throw new Error("No database initialized");let i=e?.table;if(!i)throw new Error("No table specified");let{format:a="csv",header:s=!0,includeTableName:l=!0,rowIds:d=null,maxExportBytes:c}=o;if(!["csv","json","sql","excel"].includes(a))throw new Error(`Unsupported export format: ${a}`);let u=Number.isSafeInteger(c)&&c>0?Math.min(c,cl):gr,f=[{sql:"",params:[]}];if(d&&d.length>0){let A=await te(i);if(d.some(Z)&&!d.every(Z))throw new Error("Cannot mix rowid and primary-key row identities");let L=new Set,E=[];for(let O of d){let q=A.kind==="rowid"?M(O):O,Y=String(q);L.has(Y)||(L.add(Y),E.push(q))}f=qe(E,A)}let m=t&&t.length>0?t:Hl(i);if(m.length>Zt)throw new Error(`Cannot export more than ${Zt} columns`);let y=a!=="csv"&&a!=="excel",g=m.map((A,L)=>{let E=w(A),O=`typeof(${E})`,q=`octet_length(${E})`;return`CASE ${O} WHEN 'null' THEN 'n:0:' WHEN 'integer' THEN 'i:0:' || CAST(${E} AS TEXT) WHEN 'real' THEN 'r:0:' || printf('%!.17g', ${E}) WHEN 'text' THEN 't:' || CAST(${q} AS TEXT) || ':' || hex(CAST(${E} AS BLOB)) WHEN 'blob' THEN 'b:' || CAST(${q} AS TEXT) || ':' || `+(y?`hex(${E}) `:"'' ")+`END AS ${w(`__export_cell_${L}`)}`}).join(", "),h=k("sp_export_rows");b(`SAVEPOINT ${h}`);let C=[];try{let A=1024;for(let L of f){let E=L.sql?` WHERE ${L.sql}`:"";if(A+=Ql(i,m,E,L.params,a,u),!Number.isSafeInteger(A)||A>u)throw Er(u)}for(let L of f){let E=L.sql?` WHERE ${L.sql}`:"",O=p.exec(`SELECT ${g} FROM ${N(i)}${E}`,L.params);O.length>0&&C.push(...O[0].values)}b(`RELEASE ${h}`)}catch(A){throw B(h,"exportTable"),A}let T=m,I=Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),x=C.map((A,L)=>{if(A.length!==m.length)throw new Error(`SQLite returned ${A.length} packed export cells for row ${L}; expected ${m.length}`);return m.map((E,O)=>Kl(i,E,A[O],y,I))}),S=new lr(u),R="text/plain",_=`${i}.${a}`;switch(a){case"csv":Wi(T,x,s,S),R="text/csv";break;case"json":Xl(T,x,S),R="application/json";break;case"sql":Gl(i,T,x,l,S),R="text/sql";break;case"excel":Wi(T,x,s,S),R="text/csv",_=`${i}.csv`;break}return{contentChunks:S.finish(),filename:_,mimeType:R}}function Er(e){if(e===gr)return new Error(`Web demo exports are limited to ${ll} because the worker RPC cannot stream downloads; use the desktop extension for larger exports.`);let t=e/(1024*1024);return new Error(`Export exceeds the ${t} MiB (${e} bytes) limit; the worker assembles the whole file in memory, so larger exports need the native engine.`)}function Hl(e){let t=p.prepare(`SELECT * FROM ${N(e)} LIMIT 0`);try{return t.getColumnNames()}finally{t.free()}}function jl(e,t,n){if(e.length!==t*2||/[^0-9a-f]/i.test(e))throw new Error(`SQLite returned invalid packed bytes for ${n}`);let r=new Uint8Array(t);for(let o=0;o1;){let n=[];for(let r=0;r{let f=w(u),m=`length(${f})`,y=o==="csv"||o==="excel"?"64":o==="json"?`((${m} + 2) / 3) * 4 + 64`:`${m} * 2 + 64`;return`CASE typeof(${f}) WHEN 'text' THEN length(CAST(${f} AS BLOB)) * 6 + 64 WHEN 'blob' THEN ${y} ELSE 64 END`})),l=p.exec(`SELECT COUNT(*), COALESCE(SUM(${a}), 0) FROM ${N(e)}${n}`,r)[0]?.values?.[0]??[0,0],d=Number(l[0]),c=Number(l[1])+d*128;if(!Number.isSafeInteger(c)||c<0)throw Er(i);return c}function ar(e){let t=0;for(let n=0;n=55296&&r<=56319&&n+1=56320&&o<=57343?(t+=4,n++):t+=3}else t+=3}return t}var lr=class{constructor(t=gr){this.chunks=[],this.pending="",this.outputBytes=0,this.capBytes=t}append(t){if(this.outputBytes+=ar(t),!Number.isSafeInteger(this.outputBytes)||this.outputBytes>this.capBytes)throw Er(this.capBytes);let n=0;for(;n0&&t.charCodeAt(o-1)>=55296&&t.charCodeAt(o-1)<=56319&&t.charCodeAt(o)>=56320&&t.charCodeAt(o)<=57343&&r--,r===0){this.flush();continue}this.pending+=t.slice(n,n+r),n+=r,this.pending.length>=Mi&&this.flush()}}flush(){this.pending.length>0&&(this.chunks.push(this.pending),this.pending="")}finish(){return this.flush(),this.chunks}};function Wi(e,t,n,r){let o=!1,i=a=>{o&&r.append(` +`),r.append(a.join(",")),o=!0};n&&i(e.map(a=>xn({storageClass:"text",value:a})));for(let a of t)i(a.map(xn))}function Xl(e,t,n){n.append("[");for(let r=0;r{l>0&&n.append(`, -`),n.append(` ${JSON.stringify(s)}: ${eo(i[s])}`)}),n.append(` +`),n.append(` ${JSON.stringify(s)}: ${to(i[s])}`)}),n.append(` }`)}n.append(t.length===0?"]":` -]`)}function Gl(e,t,n,r,o){let i=r?w(e):'"table_name"',a=t.map(w).join(", ");n.forEach((s,l)=>{let d=s.map(to).join(", ");l>0&&o.append(` -`),o.append(`INSERT INTO ${i} (${a}) VALUES (${d});`)})}async function ls(e){let t=p.exec(`SELECT "type", "wr" FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? LIMIT 1`,[e]);if((t[0]?.values.length??0)===0)return;let n=_n(t[0].values[0][0],t[0].values[0][1]);if(!n)return;if(n==="rowid")return{kind:"rowid"};let r=$n(await Sr(e));if(r.length===0)throw new Error(`WITHOUT ROWID table ${e} has no declared primary key`);return{kind:"primaryKey",columns:r}}async function te(e){let t=await ls(e);if(!t)throw new Error(`Table not found: ${e}`);if(t.kind==="rowid"&&(p.exec(rt,[e,e])[0]?.values.length??0)!==1)throw new Error(`Table ${e} is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity`);return t}function lr(e){return new Error(`An UPDATE trigger changed or removed the primary-key identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function rn(e,t,n,r){let i=p.exec(`SELECT ${ut(t)} FROM ${N(e)} WHERE ${n.sql} LIMIT 2`,v(n.params),{useBigInt:!0})[0]?.values??[];if(i.length===0)throw r??new Error(`Updated row in ${e} no longer exists`);if(i.length!==1)throw new Error(`Primary-key identity for ${e} matched more than one row`);return dt(t,i[0],Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot resolve updated identity in ${e}`)}function Er(e){let t=p.exec(oo,[e]);return so(t[0]?.values??[],e)}function Yl(e,t,n=!0){let r=[...new Set(t)];if(r.length===0)throw new Error("UPDATE trigger probe requires at least one column");let o=r.map(a=>{let s=w(a);return`${s} = ${s}`}),i=n?"rowid = ?":"0";return`EXPLAIN UPDATE ${N(e)} SET ${o.join(", ")} WHERE ${i}`}function Jl(e,t){return`EXPLAIN ${t.length===0?`INSERT INTO ${N(e)} DEFAULT VALUES`:`INSERT INTO ${N(e)} (${t.map(w).join(", ")}) VALUES (${t.map(()=>"NULL").join(", ")})`}`}function Zl(e){return`EXPLAIN DELETE FROM ${N(e)} WHERE 0`}function Et(e,t,n=!0){let r=p.exec(mo,v([e]),{useBigInt:!0}),o=po(r[0]?.values??[],e),i=p.exec(Yl(e,t,n),v(n?[0]:[]),{useBigInt:!0});go(e,o,i[0]?.values??[],n?"rowid":"primary-key")}function Le(e,t,n=[]){let r=e==="INSERT"?Jl(t,n):Zl(t),o=p.exec(r,[],{useBigInt:!0});yo(e,t,o[0]?.values??[])}function wr(e,t,n,r,o){let i=t!==void 0&&r!==void 0&&Me(t,r),a=i?w(t):"rowid",s=i?o:n,d=p.exec(`SELECT CAST(rowid AS TEXT) FROM ${N(e)} WHERE ${a} = ? LIMIT 2`,v([s??null]),{useBigInt:!0})[0]?.values??[];if(d.length===0)throw st(e);if(d.length!==1)throw new Error(`Rowid identity for ${e} matched more than one row`);return M(d[0][0])}function cr(e,t){let n=typeof t=="string"?t:JSON.stringify(t),r=p.exec("SELECT json_patch(COALESCE(?, '{}'), ?)",v([e,n]))[0]?.values?.[0]?.[0];if(typeof r!="string")throw new Error("SQLite returned an invalid json_patch result");return r}function ec(e,t,n,r,o){let i=ve(),a=new Map;for(let l of n){let d=M(l.rowId),c=a.get(d)??[];c.push({...l,rowId:d}),a.set(d,c)}let s=[];for(let[l,d]of a){let c=[...new Set(d.map(g=>g.column))];if(c.length!==d.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let u=p.exec(`SELECT ${c.map(ee).join(", ")} FROM ${N(e)} WHERE rowid = ? LIMIT 2`,v([l]),{useBigInt:!0})[0];if((u?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let f=d.map((g,h)=>{let C=V(u.values[0][h*2],u.values[0][h*2+1],`${e}.${g.column}`,{textEncoding:i}),T=C.value,I=jt(g.value,T,g.operation??"set"),x=I.operation==="json_patch"?cr(T,I.value):I.value;return!o&&I.operation==="json_patch"&&He(x,r),{update:g,priorValue:T,priorState:C,prepared:I,storedValue:x}}),m=l;for(let g of f){let h=w(g.update.column),C=g.prepared.operation==="json_patch",T=C?typeof g.prepared.value=="string"?g.prepared.value:JSON.stringify(g.prepared.value):g.storedValue,I=C?`json_patch(COALESCE(${h}, '{}'), ?)`:G(g.storedValue);if(p.run(`UPDATE ${N(e)} SET ${h} = ${I} WHERE rowid = ?`,v([T,m])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);m=wr(e,t,m,g.update.column,g.storedValue)}let y=p.exec(`SELECT ${c.map(ee).join(", ")} FROM ${N(e)} WHERE rowid = ? LIMIT 2`,v([m]),{useBigInt:!0})[0];if((y?.values.length??0)!==1)throw st(e);for(let[g,h]of f.entries())s.push({rowId:l,newRowId:m,columnName:h.update.column,priorValue:h.priorValue,newValue:h.prepared.value,priorState:h.priorState,postState:V(y.values[0][g*2],y.values[0][g*2+1],`${e}.${h.update.column}`,{textEncoding:i}),operation:h.prepared.operation})}return s}async function tc(e,t={}){if(!p)throw new Error("No database initialized");t=mi(t,1e3);let{columns:n=null,offset:r,limit:o,orderBy:i=null,orderDir:a="ASC",filters:s=[],globalFilter:l="",globalFilterColumns:d=null}=t,c=n,u=i,f=null,m,y,g=!1;if(n?.[0]?.toLowerCase()==="rowid")if(y=await ls(e),y?.kind==="primaryKey"){let $=y,P=n.slice(1),ne=$.columns.map(we=>we.identifier).filter(we=>!P.includes(we));c=[...P,...ne],m={identity:$,visibleColumns:P},qn({...t,columns:n})&&(u=null,f=$.columns.map(we=>we.identifier))}else y?.kind==="rowid"&&(g=(p.exec(rt,[e,e])[0]?.values.length??0)>0);let h=y?.kind==="primaryKey"||g?y:void 0,C=Fn(t,h),T=C?Wn(e,t):void 0,I=C?ui(e,t,h):void 0,x=g&&c?.[0]?.toLowerCase()==="rowid"&&c.length>Jt,S=x?c.slice(1):c,R;S&&S.length>0?R=S.map(($,P)=>g&&P===0&&$.toLowerCase()==="rowid"?`${w($)} AS ${w("rowid")}`:w($)).join(", "):R="*";let _=[],A=[];if(s&&s.length>0)for(let $ of s){let P=Te($.value);$.column&&P!==void 0&&(_.push(`${w($.column)} LIKE ? ESCAPE '\\'`),A.push(`%${et(P)}%`))}let L=Te(l);if(L!==void 0){let $=Yi(n,d);if($.length>0){let P=$.map(ne=>`${w(ne)} LIKE ? ESCAPE '\\'`);_.push(`(${P.join(" OR ")})`);for(let ne=0;ne<$.length;ne++)A.push(`%${et(L)}%`)}}let E=A,O=$=>{if(I)return di({selectListSql:$,escapedTable:N(e),whereClauses:_,filterParams:E,plan:I});let P=`SELECT ${$} FROM ${N(e)}`;_.length>0&&(P+=` WHERE ${_.join(" AND ")}`);let ne=ci(C,I),we=ne?ne.orderByColumns:f??(u?[u]:[]);if(we.length>0){let Is=ne?ne.orderDir:a==="DESC"?"DESC":"ASC";P+=` ORDER BY ${we.map(xs=>`${w(xs)} ${Is}`).join(", ")}`}return P+=` LIMIT ${parseInt(o,10)} OFFSET ${parseInt(r,10)}`,{sql:P,params:E}},{sql:q,params:Y}=O(R);A=Y;let X=x?O(w("rowid")):void 0,le=p.prepare(q,A),Pe=le.getColumnNames(),Re=x?["rowid",...Pe]:Pe;le.free();let Es=Number.isSafeInteger(t.maxInlineCellBytes)&&t.maxInlineCellBytes>0?t.maxInlineCellBytes:kt,ws=Number.isSafeInteger(t.maxPageResponseBytes)&&t.maxPageResponseBytes>0?t.maxPageResponseBytes:he,br={limit:parseInt(o,10),maxInlineCellBytes:Math.min(kt,Es),maxPageResponseBytes:Math.min(he,ws)},Ss=m?m.identity.columns.map($=>{let P=Re.indexOf($.identifier);if(P<0)throw new Error(`Primary-key column missing from table fetch: ${$.identifier}`);return P}):[],Tr=C?C.keyColumns.map($=>Re.indexOf($)).filter($=>$>=0):[],Cr=[...new Set([...Ss,...Tr])],bs=x?Cr.filter($=>$>0).map($=>$-1):Cr,Rr=Pe.length*2+1<=Jt?Pe.map(($,P)=>P):bs,ce=Bt(q,Pe.length,br,Rr),sn=ot(ce.sql,ce.primaryTransportColumnCount),Ts=p.exec(sn.sql,A,{useBigInt:!0}),wt=No(Ts[0]?.values??[],void 0,ce),ke=(X?p.exec(X.sql,X.params,{useBigInt:!0}):void 0)?.[0]?.values;if(ke&&ke.length!==wt.length)throw new Error("Synthetic rowid companion row count does not match the value page");let Ee=ke?ke.map(($,P)=>{if($.length!==1)throw new Error(`Synthetic rowid companion row ${P} is not one value`);return[$[0],...wt[P]]}):wt,Ir=[],an=Re[0]?.toLowerCase()==="rowid",ln=an&&ao(Ee,0),xr=sn.valueColumnCount===void 0&&an;if(!g&&(xr||ln)&&Ee.length>0&&(g=(p.exec(rt,[e,e])[0]?.values.length??0)>0),g&&xr)for(let $ of lo(e,Re,Ee.map(P=>P[0]))){let P=p.exec($.sql,$.params,{useBigInt:!0});Ir.push({query:$,rows:P[0]?.values??[]})}let Ar=co(Ee,Ir),cn=Ue(wt,sn.valueColumnCount,x?void 0:Ar,!x&&g&&ln?0:void 0),Nr=qt(cn.rows,Pe.length,cn.exactIntegerTexts,br.maxPageResponseBytes),_r=ke?_o(Ue(ke,void 0,void 0,ln?0:void 0).rows.map($=>$[0]),Nr,Ar):Nr,un=$o(cn.rows,ce),Be=Rr.length>0?Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]):void 0,dn=x?ce.rawTextColumnIndices.map($=>$+1):ce.rawTextColumnIndices,Cs=Be?vo({sourceRows:Ee,rawTextRows:un,rawTextColumnIndices:dn,textEncoding:Be,contained:_r}):_r,{rows:fn,oversizedCells:Ze,exactIntegerTexts:mn}=Cs,ue=y?.kind==="rowid"&&an&&!g?Bo({rows:fn,oversizedCells:Ze,exactIntegerTexts:mn,rowOffset:parseInt(r,10)}):void 0,Ie=m&&Be?Uo({identity:m.identity,sourceColumns:Re,visibleColumnCount:m.visibleColumns.length,identityRows:Ee,rawTextBytes:un,rawTextColumnIndices:dn,rawTextValidationUnavailable:ce.rawTextValidationUnavailable,textEncoding:Be,rows:fn,oversizedCells:Ze,exactIntegerTexts:mn,effectiveInlineCellBytes:ce.effectiveInlineCellBytes,rowOffset:parseInt(r,10)}):void 0,Rs=C&&Be?Lo({sourceRows:Ee,sourceColumnIndices:Tr,rawTextRows:un,rawTextColumnIndices:dn,textEncoding:Be,rawTextValidationUnavailable:ce.rawTextValidationUnavailable}):void 0,St=C&&T!==void 0?fi({tag:T,key:C,projectionColumns:Re,rows:Ee,oversizedCells:Ze,excludedRowIndices:Rs}):void 0;return m&&Ie?{headers:["rowid",...m.visibleColumns],rows:Ie.rows,exactIntegerTexts:Ie.exactIntegerTexts,...Ie.oversizedCells?{oversizedCells:Ie.oversizedCells}:{},...Ie.readOnlyRowReasons?{readOnlyRowReasons:Ie.readOnlyRowReasons}:{},...St?{keysetAnchors:St}:{}}:{headers:Re,rows:ue?.rows??fn,exactIntegerTexts:ue?ue.exactIntegerTexts:mn,...(ue?ue.oversizedCells:Ze)?{oversizedCells:ue?ue.oversizedCells:Ze}:{},...ue?.readOnlyRowReasons?{readOnlyRowReasons:ue.readOnlyRowReasons}:{},...St?{keysetAnchors:St}:{}}}async function nc(e,t={}){if(!p)throw new Error("No database initialized");let{columns:n=[],filters:r=[],globalFilter:o="",globalFilterColumns:i=null}=t,a=`SELECT COUNT(*) FROM ${N(e)}`,s=[],l=[];if(r&&r.length>0)for(let f of r){let m=Te(f.value);f.column&&m!==void 0&&(s.push(`${w(f.column)} LIKE ? ESCAPE '\\'`),l.push(`%${et(m)}%`))}let d=Te(o);if(d!==void 0){let f=Yi(n,i);if(f.length>0){let m=f.map(y=>`${w(y)} LIKE ? ESCAPE '\\'`);s.push(`(${m.join(" OR ")})`);for(let y=0;y0&&(a+=` WHERE ${s.join(" AND ")}`);let c={storage:ze,filtered:s.length>0,authorityConfirmedRowIdTable:!0,pagedFileSizeBytes:Oe,exactCountMaxFileBytes:Qi};if(Jn(c)){let f=!1;try{if(f=(p.exec(rt,[e,e])[0]?.values.length??0)>0,Jn({...c,authorityConfirmedRowIdTable:f})){let y=p.exec(Oi(e)),g=Pi(y[0]?.values?.[0]);if(g!==void 0)return{count:g,isExact:!1}}}catch{}if(!f){let m=!1;try{m=(p.exec($i,[e])[0]?.values.length??0)>0}catch{}if(m){try{let y=p.exec(Li(e),[Ke+1]),g=vi(y[0]?.values?.[0]?.[0],Oe);if(g)return g}catch{}return{count:Zn(Oe),isExact:!1}}}}let u=p.exec(a,l);return u.length===0||u[0].values.length===0?{count:0,isExact:!0}:{count:u[0].values[0][0],isExact:!0}}async function rc(){if(!p)throw new Error("No database initialized");let e=p.exec(` +]`)}function Gl(e,t,n,r,o){let i=r?w(e):'"table_name"',a=t.map(w).join(", ");n.forEach((s,l)=>{let d=s.map(no).join(", ");l>0&&o.append(` +`),o.append(`INSERT INTO ${i} (${a}) VALUES (${d});`)})}async function ls(e){let t=p.exec(`SELECT "type", "wr" FROM pragma.pragma_table_list WHERE "schema" = 'main' AND "name" = ? LIMIT 1`,[e]);if((t[0]?.values.length??0)===0)return;let n=$n(t[0].values[0][0],t[0].values[0][1]);if(!n)return;if(n==="rowid")return{kind:"rowid"};let r=On(await br(e));if(r.length===0)throw new Error(`WITHOUT ROWID table ${e} has no declared primary key`);return{kind:"primaryKey",columns:r}}async function te(e){let t=await ls(e);if(!t)throw new Error(`Table not found: ${e}`);if(t.kind==="rowid"&&(p.exec(rt,[e,e])[0]?.values.length??0)!==1)throw new Error(`Table ${e} is read-only because a declared "rowid" column shadows SQLite's intrinsic row identity`);return t}function cr(e){return new Error(`An UPDATE trigger changed or removed the primary-key identity in ${e}; the edit was rolled back because SQLite Explorer cannot safely identify the resulting row.`)}function on(e,t,n,r){let i=p.exec(`SELECT ${ut(t)} FROM ${N(e)} WHERE ${n.sql} LIMIT 2`,v(n.params),{useBigInt:!0})[0]?.values??[];if(i.length===0)throw r??new Error(`Updated row in ${e} no longer exists`);if(i.length!==1)throw new Error(`Primary-key identity for ${e} matched more than one row`);return dt(t,i[0],Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot resolve updated identity in ${e}`)}function wr(e){let t=p.exec(io,[e]);return ao(t[0]?.values??[],e)}function Yl(e,t,n=!0){let r=[...new Set(t)];if(r.length===0)throw new Error("UPDATE trigger probe requires at least one column");let o=r.map(a=>{let s=w(a);return`${s} = ${s}`}),i=n?"rowid = ?":"0";return`EXPLAIN UPDATE ${N(e)} SET ${o.join(", ")} WHERE ${i}`}function Jl(e,t){return`EXPLAIN ${t.length===0?`INSERT INTO ${N(e)} DEFAULT VALUES`:`INSERT INTO ${N(e)} (${t.map(w).join(", ")}) VALUES (${t.map(()=>"NULL").join(", ")})`}`}function Zl(e){return`EXPLAIN DELETE FROM ${N(e)} WHERE 0`}function Et(e,t,n=!0){let r=p.exec(po,v([e]),{useBigInt:!0}),o=go(r[0]?.values??[],e),i=p.exec(Yl(e,t,n),v(n?[0]:[]),{useBigInt:!0});yo(e,o,i[0]?.values??[],n?"rowid":"primary-key")}function Le(e,t,n=[]){let r=e==="INSERT"?Jl(t,n):Zl(t),o=p.exec(r,[],{useBigInt:!0});ho(e,t,o[0]?.values??[])}function Sr(e,t,n,r,o){let i=t!==void 0&&r!==void 0&&Me(t,r),a=i?w(t):"rowid",s=i?o:n,d=p.exec(`SELECT CAST(rowid AS TEXT) FROM ${N(e)} WHERE ${a} = ? LIMIT 2`,v([s??null]),{useBigInt:!0})[0]?.values??[];if(d.length===0)throw st(e);if(d.length!==1)throw new Error(`Rowid identity for ${e} matched more than one row`);return M(d[0][0])}function ur(e,t){let n=typeof t=="string"?t:JSON.stringify(t),r=p.exec("SELECT json_patch(COALESCE(?, '{}'), ?)",v([e,n]))[0]?.values?.[0]?.[0];if(typeof r!="string")throw new Error("SQLite returned an invalid json_patch result");return r}function ec(e,t,n,r,o){let i=ve(),a=new Map;for(let l of n){let d=M(l.rowId),c=a.get(d)??[];c.push({...l,rowId:d}),a.set(d,c)}let s=[];for(let[l,d]of a){let c=[...new Set(d.map(g=>g.column))];if(c.length!==d.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let u=p.exec(`SELECT ${c.map(ee).join(", ")} FROM ${N(e)} WHERE rowid = ? LIMIT 2`,v([l]),{useBigInt:!0})[0];if((u?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let f=d.map((g,h)=>{let C=V(u.values[0][h*2],u.values[0][h*2+1],`${e}.${g.column}`,{textEncoding:i}),T=C.value,I=Kt(g.value,T,g.operation??"set"),x=I.operation==="json_patch"?ur(T,I.value):I.value;return!o&&I.operation==="json_patch"&&He(x,r),{update:g,priorValue:T,priorState:C,prepared:I,storedValue:x}}),m=l;for(let g of f){let h=w(g.update.column),C=g.prepared.operation==="json_patch",T=C?typeof g.prepared.value=="string"?g.prepared.value:JSON.stringify(g.prepared.value):g.storedValue,I=C?`json_patch(COALESCE(${h}, '{}'), ?)`:G(g.storedValue);if(p.run(`UPDATE ${N(e)} SET ${h} = ${I} WHERE rowid = ?`,v([T,m])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);m=Sr(e,t,m,g.update.column,g.storedValue)}let y=p.exec(`SELECT ${c.map(ee).join(", ")} FROM ${N(e)} WHERE rowid = ? LIMIT 2`,v([m]),{useBigInt:!0})[0];if((y?.values.length??0)!==1)throw st(e);for(let[g,h]of f.entries())s.push({rowId:l,newRowId:m,columnName:h.update.column,priorValue:h.priorValue,newValue:h.prepared.value,priorState:h.priorState,postState:V(y.values[0][g*2],y.values[0][g*2+1],`${e}.${h.update.column}`,{textEncoding:i}),operation:h.prepared.operation})}return s}async function tc(e,t={}){if(!p)throw new Error("No database initialized");t=mi(t,1e3);let{columns:n=null,offset:r,limit:o,orderBy:i=null,orderDir:a="ASC",filters:s=[],globalFilter:l="",globalFilterColumns:d=null}=t,c=n,u=i,f=null,m,y,g=!1;if(n?.[0]?.toLowerCase()==="rowid")if(y=await ls(e),y?.kind==="primaryKey"){let $=y,P=n.slice(1),ne=$.columns.map(we=>we.identifier).filter(we=>!P.includes(we));c=[...P,...ne],m={identity:$,visibleColumns:P},Wn({...t,columns:n})&&(u=null,f=$.columns.map(we=>we.identifier))}else y?.kind==="rowid"&&(g=(p.exec(rt,[e,e])[0]?.values.length??0)>0);let h=y?.kind==="primaryKey"||g?y:void 0,C=Hn(t,h),T=C?Fn(e,t):void 0,I=C?ui(e,t,h):void 0,x=g&&c?.[0]?.toLowerCase()==="rowid"&&c.length>Zt,S=x?c.slice(1):c,R;S&&S.length>0?R=S.map(($,P)=>g&&P===0&&$.toLowerCase()==="rowid"?`${w($)} AS ${w("rowid")}`:w($)).join(", "):R="*";let _=[],A=[];if(s&&s.length>0)for(let $ of s){let P=Te($.value);$.column&&P!==void 0&&(_.push(`${w($.column)} LIKE ? ESCAPE '\\'`),A.push(`%${et(P)}%`))}let L=Te(l);if(L!==void 0){let $=Yi(n,d);if($.length>0){let P=$.map(ne=>`${w(ne)} LIKE ? ESCAPE '\\'`);_.push(`(${P.join(" OR ")})`);for(let ne=0;ne<$.length;ne++)A.push(`%${et(L)}%`)}}let E=A,O=$=>{if(I)return di({selectListSql:$,escapedTable:N(e),whereClauses:_,filterParams:E,plan:I});let P=`SELECT ${$} FROM ${N(e)}`;_.length>0&&(P+=` WHERE ${_.join(" AND ")}`);let ne=ci(C,I),we=ne?ne.orderByColumns:f??(u?[u]:[]);if(we.length>0){let Is=ne?ne.orderDir:a==="DESC"?"DESC":"ASC";P+=` ORDER BY ${we.map(xs=>`${w(xs)} ${Is}`).join(", ")}`}return P+=` LIMIT ${parseInt(o,10)} OFFSET ${parseInt(r,10)}`,{sql:P,params:E}},{sql:q,params:Y}=O(R);A=Y;let X=x?O(w("rowid")):void 0,le=p.prepare(q,A),Pe=le.getColumnNames(),Re=x?["rowid",...Pe]:Pe;le.free();let Es=Number.isSafeInteger(t.maxInlineCellBytes)&&t.maxInlineCellBytes>0?t.maxInlineCellBytes:kt,ws=Number.isSafeInteger(t.maxPageResponseBytes)&&t.maxPageResponseBytes>0?t.maxPageResponseBytes:he,Tr={limit:parseInt(o,10),maxInlineCellBytes:Math.min(kt,Es),maxPageResponseBytes:Math.min(he,ws)},Ss=m?m.identity.columns.map($=>{let P=Re.indexOf($.identifier);if(P<0)throw new Error(`Primary-key column missing from table fetch: ${$.identifier}`);return P}):[],Cr=C?C.keyColumns.map($=>Re.indexOf($)).filter($=>$>=0):[],Rr=[...new Set([...Ss,...Cr])],bs=x?Rr.filter($=>$>0).map($=>$-1):Rr,Ir=Pe.length*2+1<=Zt?Pe.map(($,P)=>P):bs,ce=Bt(q,Pe.length,Tr,Ir),an=ot(ce.sql,ce.primaryTransportColumnCount),Ts=p.exec(an.sql,A,{useBigInt:!0}),wt=_o(Ts[0]?.values??[],void 0,ce),ke=(X?p.exec(X.sql,X.params,{useBigInt:!0}):void 0)?.[0]?.values;if(ke&&ke.length!==wt.length)throw new Error("Synthetic rowid companion row count does not match the value page");let Ee=ke?ke.map(($,P)=>{if($.length!==1)throw new Error(`Synthetic rowid companion row ${P} is not one value`);return[$[0],...wt[P]]}):wt,xr=[],ln=Re[0]?.toLowerCase()==="rowid",cn=ln&&lo(Ee,0),Ar=an.valueColumnCount===void 0&&ln;if(!g&&(Ar||cn)&&Ee.length>0&&(g=(p.exec(rt,[e,e])[0]?.values.length??0)>0),g&&Ar)for(let $ of co(e,Re,Ee.map(P=>P[0]))){let P=p.exec($.sql,$.params,{useBigInt:!0});xr.push({query:$,rows:P[0]?.values??[]})}let Nr=uo(Ee,xr),un=Ue(wt,an.valueColumnCount,x?void 0:Nr,!x&&g&&cn?0:void 0),_r=Wt(un.rows,Pe.length,un.exactIntegerTexts,Tr.maxPageResponseBytes),$r=ke?$o(Ue(ke,void 0,void 0,cn?0:void 0).rows.map($=>$[0]),_r,Nr):_r,dn=Oo(un.rows,ce),Be=Ir.length>0?Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]):void 0,fn=x?ce.rawTextColumnIndices.map($=>$+1):ce.rawTextColumnIndices,Cs=Be?vo({sourceRows:Ee,rawTextRows:dn,rawTextColumnIndices:fn,textEncoding:Be,contained:$r}):$r,{rows:mn,oversizedCells:Ze,exactIntegerTexts:pn}=Cs,ue=y?.kind==="rowid"&&ln&&!g?Bo({rows:mn,oversizedCells:Ze,exactIntegerTexts:pn,rowOffset:parseInt(r,10)}):void 0,Ie=m&&Be?Uo({identity:m.identity,sourceColumns:Re,visibleColumnCount:m.visibleColumns.length,identityRows:Ee,rawTextBytes:dn,rawTextColumnIndices:fn,rawTextValidationUnavailable:ce.rawTextValidationUnavailable,textEncoding:Be,rows:mn,oversizedCells:Ze,exactIntegerTexts:pn,effectiveInlineCellBytes:ce.effectiveInlineCellBytes,rowOffset:parseInt(r,10)}):void 0,Rs=C&&Be?Lo({sourceRows:Ee,sourceColumnIndices:Cr,rawTextRows:dn,rawTextColumnIndices:fn,textEncoding:Be,rawTextValidationUnavailable:ce.rawTextValidationUnavailable}):void 0,St=C&&T!==void 0?fi({tag:T,key:C,projectionColumns:Re,rows:Ee,oversizedCells:Ze,excludedRowIndices:Rs}):void 0;return m&&Ie?{headers:["rowid",...m.visibleColumns],rows:Ie.rows,exactIntegerTexts:Ie.exactIntegerTexts,...Ie.oversizedCells?{oversizedCells:Ie.oversizedCells}:{},...Ie.readOnlyRowReasons?{readOnlyRowReasons:Ie.readOnlyRowReasons}:{},...St?{keysetAnchors:St}:{}}:{headers:Re,rows:ue?.rows??mn,exactIntegerTexts:ue?ue.exactIntegerTexts:pn,...(ue?ue.oversizedCells:Ze)?{oversizedCells:ue?ue.oversizedCells:Ze}:{},...ue?.readOnlyRowReasons?{readOnlyRowReasons:ue.readOnlyRowReasons}:{},...St?{keysetAnchors:St}:{}}}async function nc(e,t={}){if(!p)throw new Error("No database initialized");let{columns:n=[],filters:r=[],globalFilter:o="",globalFilterColumns:i=null}=t,a=`SELECT COUNT(*) FROM ${N(e)}`,s=[],l=[];if(r&&r.length>0)for(let f of r){let m=Te(f.value);f.column&&m!==void 0&&(s.push(`${w(f.column)} LIKE ? ESCAPE '\\'`),l.push(`%${et(m)}%`))}let d=Te(o);if(d!==void 0){let f=Yi(n,i);if(f.length>0){let m=f.map(y=>`${w(y)} LIKE ? ESCAPE '\\'`);s.push(`(${m.join(" OR ")})`);for(let y=0;y0&&(a+=` WHERE ${s.join(" AND ")}`);let c={storage:ze,filtered:s.length>0,authorityConfirmedRowIdTable:!0,pagedFileSizeBytes:Oe,exactCountMaxFileBytes:Qi};if(Zn(c)){let f=!1;try{if(f=(p.exec(rt,[e,e])[0]?.values.length??0)>0,Zn({...c,authorityConfirmedRowIdTable:f})){let y=p.exec(Oi(e)),g=Pi(y[0]?.values?.[0]);if(g!==void 0)return{count:g,isExact:!1}}}catch{}if(!f){let m=!1;try{m=(p.exec($i,[e])[0]?.values.length??0)>0}catch{}if(m){try{let y=p.exec(Li(e),[Ke+1]),g=vi(y[0]?.values?.[0]?.[0],Oe);if(g)return g}catch{}return{count:er(Oe),isExact:!1}}}}let u=p.exec(a,l);return u.length===0||u[0].values.length===0?{count:0,isExact:!0}:{count:u[0].values[0][0],isExact:!0}}async function rc(){if(!p)throw new Error("No database initialized");let e=p.exec(` SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name - `),t=p.exec(fo),n=bo(t[0]?.values||[]),r=(e[0]?.values||[]).map(l=>{let d=l[0],c=n.get(d);if(!c)throw new Error(`Table not found: ${d}`);return{identifier:d,identity:c}}),i=(p.exec(` + `),t=p.exec(mo),n=To(t[0]?.values||[]),r=(e[0]?.values||[]).map(l=>{let d=l[0],c=n.get(d);if(!c)throw new Error(`Table not found: ${d}`);return{identifier:d,identity:c}}),i=(p.exec(` SELECT name FROM sqlite_master WHERE type = 'view' ORDER BY name @@ -63,6 +63,6 @@ ${t}`);if(!n.getSQL().trimEnd().endsWith(t))throw n.free(),new Error("Exactly on SELECT name, tbl_name FROM sqlite_master WHERE type = 'index' AND name NOT LIKE 'sqlite_%' ORDER BY name - `)[0]?.values||[]).map(l=>({identifier:l[0],parentTable:l[1]}));return{tables:r,views:i,indexes:s}}async function Sr(e){if(!p)throw new Error("No database initialized");let t=p.exec(io,[e]);return t.length===0?[]:t[0].values.filter(n=>Number(n[6]??0)!==1).map(n=>({ordinal:n[0],identifier:n[1],declaredType:n[2],isRequired:n[3],defaultExpression:n[4],primaryKeyPosition:n[5],isGenerated:Number(n[6]??0)===2||Number(n[6]??0)===3,isRowidAlias:Number(n[7]??0)===1}))}function cs(){let e=n=>{let r=p.prepare(n),o=[];try{for(;r.step();)o.push(r.get());return o}finally{r.free()}},t=e("PRAGMA main.schema_version")[0]?.[0];if(!Number.isSafeInteger(t))throw new Error("Unable to read the destination database schema version.");return JSON.stringify([t,e("SELECT type, name, tbl_name, sql FROM temp.sqlite_schema ORDER BY type, name")])}async function oc(e){if(!p)throw new Error("No database initialized");W(e,"Table name");let t=k("sp_import_preview");b(`SAVEPOINT ${t}`);try{let n=await Sr(e);if(!n.length)throw new Error(`Table not found: ${e}`);let r=cs();return b(`RELEASE SAVEPOINT ${t}`),{columns:n,schemaVersion:r}}catch(n){throw B(t,"getImportTarget"),n}}function en(e){return(p.exec("SELECT name FROM pragma.pragma_table_xinfo(?) WHERE hidden = 0 ORDER BY cid",[e])[0]?.values??[]).map(n=>{if(typeof n[0]!="string")throw new Error(`SQLite returned invalid column metadata for ${e}`);return n[0]})}function ic(e,t,n,r){let o=ve(),i=U(n,t),a=r.map(ee),l=p.exec(`SELECT ${a.join(", ")||"1"} FROM ${N(e)} WHERE ${i.sql} LIMIT 2`,v(i.params),{useBigInt:!0})[0]?.values??[];if(l.length!==1)throw new Ce(e);let d=r.map((c,u)=>V(l[0][u*2],l[0][u*2+1],`${e}.${c}`,{textEncoding:o}));return{rowId:n,row:Object.fromEntries(r.map((c,u)=>[c,d[u].rawTextBytes??d[u].value])),storageClasses:r.map((c,u)=>({column:c,storageClass:d[u].storageClass}))}}function sc(e,t,n,r,o){if(o===void 0)return;let i=U(n,t),a=ii(r,t.kind==="rowid"),s=si(e,a,i),l=p.exec(s.sql,v(s.params),{useBigInt:!0})[0]?.values?.[0],d=ai(l);li({table:e,insertableColumns:r,includeSyntheticRowId:t.kind==="rowid",rowIds:[n],rowCount:d.rowCount,valueBytes:d.valueBytes,maxSnapshotBytes:o,operation:"Insert"})}function Fi(e,t,n,r){let o=en(e),i=U(n,t);return dr(e,[n],o,[i]),sc(e,t,n,o,r),ic(e,t,n,o)}async function ac(){if(!p)throw new Error("No database initialized");let e={},t=["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","encoding","auto_vacuum"];for(let n of t)try{let r=p.exec(`PRAGMA ${n}`);r.length>0&&r[0].values.length>0&&(e[n]=r[0].values[0][0])}catch{}return e}async function lc(e,t){if(!p)throw new Error("No database initialized");if(Q("Pragma updates"),!["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","auto_vacuum"].includes(e))throw new Error(`Invalid or disallowed PRAGMA: ${e}`);let r;if(typeof t=="string"){if(!/^[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid PRAGMA string value: contains disallowed characters");r=`PRAGMA ${e} = '${t}'`}else if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Invalid PRAGMA numeric value: must be finite");r=`PRAGMA ${e} = ${t}`}else if(typeof t=="boolean")r=`PRAGMA ${e} = ${t?"ON":"OFF"}`;else throw new Error(`Invalid PRAGMA value type: ${typeof t}`);b(r)}async function cc(e,t,n,r,o,i,a){let s=a===gr,l=!s&&i!==void 0,d=s?0:je([r],i);if(Ae(t),!p)throw new Error("No database initialized");if(Q("Cell updates"),Z(t))return(await hs(e,[{rowId:t,column:n,value:r,operation:"set"}],void 0,i,a))[0]?.newRowId??t;let c=M(t);if((await te(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let f=k("sp_update_rowid_cell");b(`SAVEPOINT ${f}`);try{let m=Er(e);Et(e,[n]);let y=w(n);if(p.run(`UPDATE ${N(e)} SET ${y} = ${G(r)} WHERE rowid = ?`+(l?` AND NOT (typeof(${y}) IN ('text', 'blob') AND length(CAST(${y} AS BLOB)) > ?)`:""),v(l?[r,c,d]:[r,c])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1){if(l){let C=await Zt({table:e,rowId:c,column:n});if((C.storageClass==="text"||C.storageClass==="blob")&&C.byteLength>d)throw new Fe(e,n,C.storageClass,C.byteLength,d)}throw new Error(`Cannot update ${e}.${n}: row ${t} no longer exists`)}let h=wr(e,m,c,n,r);return b(`RELEASE ${f}`),h}catch(m){throw B(f,"updateCell"),m}}async function uc(e,t,n,r,o,i){let a=je([r],i);if(bi(o,a),Ae(t),!p)throw new Error("No database initialized");Q("Oversized cell replacement");let s=await te(e),l=U(t,s),d=w(n),c=()=>{if(p.run(`UPDATE ${N(e)} SET ${d} = ${G(r)} WHERE ${l.sql} AND typeof(${d}) = ? AND length(CAST(${d} AS BLOB)) = ?`,v([r,...l.params,o.storageClass,o.byteLength])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(Ei);if(s.kind==="rowid")return wr(e,Er(e),M(t),n,r);let m=s.columns.findIndex(g=>g.identifier===n),y=Nn(t,s,m>=0?[{column:n,value:r}]:[]);return rn(e,s,U(y,s),lr(e))},u=k("sp_replace_oversized_cell");b(`SAVEPOINT ${u}`);try{Et(e,[n],s.kind==="rowid");let f=c();return b(`RELEASE ${u}`),f}catch(f){throw B(u,"replaceOversizedCell"),f}}async function us(e,t,n,r,o,i){if(!p)throw new Error("No database initialized");Q("Row insertion"),r!==gr&&je(Object.values(t),n);let a=Object.keys(t),s=Object.values(t),l=await te(e),d;if(a.length===0)d=`INSERT INTO ${N(e)} DEFAULT VALUES`;else{let u=a.map(w).join(", "),f=s.map(G).join(", ");d=`INSERT INTO ${N(e)} (${u}) VALUES (${f})`}if(l.kind==="primaryKey"){let u=k("sp_insert_pk_row");b(`SAVEPOINT ${u}`);try{Le("INSERT",e,a);let f=p.prepare(`${d} RETURNING `+ut(l),v(s)),m;try{if(!f.step())throw new Error(`Insert into ${e} did not return a primary-key identity`);if(m=f.get(null,{useBigInt:!0}),!m||f.step())throw new Error(`Insert into ${e} did not return exactly one primary-key identity`)}finally{f.free()}let y=dt(l,m,Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot insert into ${e}`),g=rn(e,l,U(y,l)),h=o?Fi(e,l,g,i):g;return b(`RELEASE ${u}`),h}catch(f){throw B(u,"insertPrimaryKeyRow"),f}}let c=k("sp_insert_rowid_row");b(`SAVEPOINT ${c}`);try{Le("INSERT",e,a),p.run(d,v(s));let u=p.exec("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")[0]?.values?.[0];if(!u||Number(u[0])!==1)throw new Error(`Insert into ${e} did not create exactly one row`);let f=M(u[1]),m=U(f,l);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE ${m.sql} LIMIT 2`,v(m.params))[0]?.values.length??0)!==1)throw new Error(`Insert into ${e} did not leave one addressable row; the insert was rolled back`);let g=o?Fi(e,l,f,i):f;return b(`RELEASE ${c}`),g}catch(u){throw B(c,"insertRowIdRow"),u}}async function dc(e,t,n,r){return us(e,t,n,r,!1)}async function fc(e,t,n,r){return us(e,t,n,void 0,!0,r)}var Yt=40;function mc(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Import options must be an object");if(e.expectedSchemaVersion!==void 0&&typeof e.expectedSchemaVersion!="string")throw new Error("Import expectedSchemaVersion must be a string");let t=n=>{let r=e[n];if(r!==void 0){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Import ${n} must be a non-negative safe integer`);return r}};return{maxEditValueBytes:e.maxEditValueBytes,maxUndoSnapshotBytes:t("maxUndoSnapshotBytes"),maxSnapshotTransportBytes:t("maxSnapshotTransportBytes")}}function pc(e,t){if(!Array.isArray(e))throw new Error("Import rows must be an array");if(e.length===0)throw new Error("Import requires at least one row");if(e.length>er)throw new Error(`Import supports at most ${er.toLocaleString("en-US")} rows`);let n=je([],t),r=new Array(e.length),o=0;for(let i=0;itr)throw new Error(`Import supports at most ${tr} columns`);if(o+=s.length,o>nr)throw new Error(`Import supports at most ${nr.toLocaleString("en-US")} cells; split the file into smaller imports`);for(let l of s)W(l,"Column name"),He(a[l],n);r[i]=s}return r}function gc(e,t,n,r){let o=N(e),i=t.length===0?`INSERT INTO ${o} DEFAULT VALUES`:`INSERT INTO ${o} (${t.map(w).join(", ")}) VALUES (${n.join(", ")})`;return r.kind!=="primaryKey"?i:`${i} RETURNING ${ut(r)}`}function yc(e,t,n,r){let o=en(e),i=qe(n,t),a=t.kind==="rowid"?"CAST(rowid AS TEXT)":ut(t),s=t.kind==="rowid"?1:t.columns.length*2,l=o.map(ee),d=new Map(n.map((y,g)=>[String(y),g])),c=[],u=new Map,f=new Array(n.length),m=0;for(let y of i){let g=p.exec(`SELECT ${a}${l.length>0?", ":""}${l.join(", ")} FROM ${N(e)} WHERE ${y.sql}`,v(y.params),{useBigInt:!0})[0];for(let h of g?.values??[]){let C=t.kind==="rowid"?M(h[0]):dt(t,h.slice(0,s),r,`Cannot import into ${e}`),T=d.get(String(C));if(T===void 0||f[T]!==void 0)throw new Error(`Import into ${e} could not re-read an inserted row by its identity`);let I=o.map((_,A)=>V(h[s+A*2],h[s+A*2+1],`${e}.${_}`,{textEncoding:r})),x=I.map(_=>_.storageClass),S=x.join(","),R=u.get(S);R===void 0&&(R=c.length,c.push(x),u.set(S,R)),f[T]={rowId:C,values:I.map(_=>_.rawTextBytes??_.value),pattern:R},m+=1}}if(m!==n.length)throw new Error(`Import into ${e} inserted ${n.length} rows but could re-read only ${m}`);return{columns:o,storageClassPatterns:c,rows:f}}function ur(e){if(e==null)return 4;switch(typeof e){case"string":{let t=sr(e)+2;for(let n=0;nr.maxUndoSnapshotBytes)throw new Error(`Import undo history for ${t} rows into ${e} needs ${a} bytes, over the ${r.maxUndoSnapshotBytes}-byte undo memory budget; import fewer rows at a time or increase maxUndoMemory. No rows were imported.`)}let o=Math.min(r.maxSnapshotTransportBytes??Number.MAX_SAFE_INTEGER,Gt),i=ur({rowCount:t,snapshots:n});if(i>o)throw new Error(`Import undo history for ${t} rows into ${e} is about ${i} bytes encoded, over the ${o}-byte limit this engine can return in one edit; import fewer rows at a time. No rows were imported.`)}async function Ec(e,t,n={}){if(!p)throw new Error("No database initialized");Q("Row import"),W(e,"Table name");let r=mc(n??{}),o=pc(t,r.maxEditValueBytes),i=k("sp_import_rows");b(`SAVEPOINT ${i}`);try{if(n?.expectedSchemaVersion!==void 0&&cs()!==n.expectedSchemaVersion)throw new Error("The destination database schema changed after the preview was prepared. Start the import again.");let a=await te(e),s=ve(),l=new Array(t.length),d=new Map,c=null;try{for(let f=0;fm[x]),h=g.map(G),C=`${JSON.stringify(y)}|${h.join(",")}`,T=d.get(C);if(T||(Le("INSERT",e,y),T=p.prepare(gc(e,y,h,a)),d.set(C,T)),T.bind(v(g)),a.kind==="primaryKey"){if(!T.step())throw new Error(`Import into ${e} did not return a primary-key identity`);let x=T.get(null,{useBigInt:!0});if(!x||T.step())throw new Error(`Import into ${e} did not return exactly one primary-key identity`);T.reset();let S=dt(a,x,s,`Cannot import into ${e}`);l[f]=rn(e,a,U(S,a));continue}T.step(),T.reset(),c??(c=p.prepare("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")),c.step();let I=c.get(null,{useBigInt:!0});if(c.reset(),!I||Number(I[0])!==1)throw new Error(`Import into ${e} did not create exactly one row for row ${f+1}`);l[f]=M(I[1])}}finally{for(let f of d.values())f.free();c?.free()}let u=yc(e,a,l,s);return hc(e,t.length,u,r),b(`RELEASE ${i}`),{rowCount:t.length,snapshots:u}}catch(a){throw B(i,"importRows"),a}}function ds(e){if(e===null||typeof e!="object"||!Array.isArray(e.columns)||!Array.isArray(e.storageClassPatterns)||!Array.isArray(e.rows)||e.rows.length===0||e.columns.some(r=>typeof r!="string"))throw new K;let t=e.columns.length,n=e.storageClassPatterns.map(r=>{if(!Array.isArray(r)||r.length!==t)throw new K;return e.columns.map((o,i)=>({column:o,storageClass:r[i]}))});return e.rows.map(r=>{if(r===null||typeof r!="object"||!Array.isArray(r.values)||r.values.length!==t||!Number.isInteger(r.pattern)||r.pattern<0||r.pattern>=n.length)throw new K;return{rowId:r.rowId,row:Object.fromEntries(e.columns.map((o,i)=>[o,r.values[i]])),storageClasses:n[r.pattern]}})}var Hi=64;function or(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||n<0)throw new Error(`Demo delete snapshot ${t} exceeds the web transport safety bound`);return n}function wc(e){let t=w(e);return`CASE typeof(${t}) WHEN 'text' THEN 6 * octet_length(${t}) WHEN 'blob' THEN 4 * ((octet_length(${t}) + 2) / 3) + 40 WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 4 END`}function Sc(e){let t=w(e);return`COALESCE(MAX(CASE WHEN typeof(${t}) = 'blob' THEN octet_length(${t}) ELSE 0 END), 0)`}function dr(e,t,n,r){let o=1024;for(let s of t)o+=64+6*String(s).length;let i=128+n.reduce((s,l)=>s+48+6*l.length,0),a=0;for(let s of r)for(let l=0;l0?", ":""}`+d.map(Sc).join(", ")+` FROM ${N(e)} WHERE ${s.sql}`,v(s.params),{useBigInt:!0})[0]?.values?.[0];if(!c)throw new Error("Demo delete snapshot preflight returned no metadata");let u=or(c[0],"row count");l===0&&(a+=u,o+=u*i),o+=or(c[1],"encoded size");for(let f of c.slice(2))if(or(f,"BLOB size")>We)throw new Error(`Demo delete snapshot exceeds the ${We}-byte web transport binary limit; the row was not deleted`);if(!Number.isSafeInteger(o))throw new Error("Demo delete snapshot exceeds the web transport safety bound")}if(a!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);if(o>Gt)throw new Error(`Demo delete snapshot exceeds the ${Gt}-byte web transport response limit; no rows were deleted`)}async function bc(e,t){if(t.forEach(Ae),!p)throw new Error("No database initialized");if(Q("Row deletion"),t.length===0)return[];let n=await te(e),r=ve();if(t.some(Z)){if(!t.every(Z))throw new Error("Cannot mix rowid and primary-key row identities");if(n.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let a=qe(t,n),s=k("sp_delete_pk_rows");b(`SAVEPOINT ${s}`);try{Le("DELETE",e);let l=en(e);dr(e,t,l,a);let d=[];for(let c of a){let f=p.exec(`SELECT ${l.map(ee).join(", ")||"1"} FROM ${N(e)} WHERE ${c.sql}`,v(c.params),{useBigInt:!0})[0]?.values??[],m=n.columns.map(y=>{let g=l.indexOf(y.identifier);if(g<0)throw new Error(`Primary-key column missing from ${e}: ${y.identifier}`);return g});d.push(...f.map(y=>{let g=l.map((h,C)=>V(y[C*2],y[C*2+1],`${e}.${h}`,{textEncoding:r}));return{rowId:Ve(n.columns,m.map(h=>g[h].value)),row:Object.fromEntries(l.map((h,C)=>[h,g[C].rawTextBytes??g[C].value])),storageClasses:l.map((h,C)=>({column:h,storageClass:g[C].storageClass}))}}))}if(d.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let c of a)p.run(`DELETE FROM ${N(e)} WHERE ${c.sql}`,v(c.params));return b(`RELEASE ${s}`),d}catch(l){throw B(s,"deletePrimaryKeyRows"),l}}if(n.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let o=qe(t,n),i=k("sp_delete_rowid_rows");b(`SAVEPOINT ${i}`);try{Le("DELETE",e);let a=en(e);dr(e,t,a,o);let s=[];for(let l of o){let d=p.exec(`SELECT CAST(rowid AS TEXT)${a.length>0?", ":""}${a.map(ee).join(", ")} FROM ${N(e)} WHERE ${l.sql}`,v(l.params),{useBigInt:!0})[0];s.push(...(d?.values??[]).map(c=>{let u=M(c[0]),f=a.map((m,y)=>V(c[y*2+1],c[y*2+2],`${e}.${m}`,{textEncoding:r}));return{rowId:u,row:Object.fromEntries(a.map((m,y)=>[m,f[y].rawTextBytes??f[y].value])),storageClasses:a.map((m,y)=>({column:m,storageClass:f[y].storageClass}))}}))}if(s.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let l of o)p.run(`DELETE FROM ${N(e)} WHERE ${l.sql}`,v(l.params));return b(`RELEASE ${i}`),s}catch(a){throw B(i,"deleteRowidRows"),a}}async function fs(e,t){if(!p)throw new Error("No database initialized");if(!Array.isArray(t))throw new Error("Column names must be an array");W(e,"Table name"),t.forEach(u=>W(u,"Column name"));let r=(p.exec("SELECT name, sql FROM main.sqlite_schema WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL ORDER BY name",[e])[0]?.values??[]).map(u=>({identifier:u[0],sql:u[1]}));if(r.length===0||t.length===0)return[];let i=(p.exec(`PRAGMA main.table_xinfo(${w(e)})`)[0]?.values??[]).map(u=>u[1]),a=Qr(i,t);if(a.length===0)return[];let s=crypto.randomUUID().replace(/-/g,""),l=`__sqlite_explorer_index_probe_${s}`,d=`__sqlite_explorer_index_candidate_${s}`,c=k("sp_index_dependencies");b(`SAVEPOINT ${c}`);try{b(zr(l,i));let u=k("sp_index_baseline");b(`SAVEPOINT ${u}`);try{for(let m of a)b(`ALTER TABLE temp.${w(l)} DROP COLUMN ${w(m)}`);b(`ROLLBACK TO ${u}`),b(`RELEASE ${u}`)}catch(m){throw B(u,"findDependentIndexBaseline"),new Error("Cannot establish the index dependency probe baseline",{cause:m})}let f=[];for(let m of r){let y=k("sp_index_candidate");b(`SAVEPOINT ${y}`);try{b(Xr(l,d,m.sql));let g=!1;for(let h of a)try{b(`ALTER TABLE temp.${w(l)} DROP COLUMN ${w(h)}`)}catch{g=!0;break}b(`ROLLBACK TO ${y}`),b(`RELEASE ${y}`),g&&f.push(m)}catch(g){throw B(y,"findDependentIndex"),new Error(`Cannot inspect dependency for index ${w(m.identifier)}`,{cause:g})}}return b(`ROLLBACK TO ${c}`),b(`RELEASE ${c}`),f}catch(u){throw B(c,"findDependentIndexes"),u}}function Tc(e){if(e!==void 0){if(!Array.isArray(e))throw new Error("Dependent-index confirmation must be an array");return e.map(t=>{if(!t||typeof t!="object"||Array.isArray(t)||typeof t.identifier!="string"||typeof t.sql!="string")throw new Error("Dependent-index confirmation contains an invalid definition");return W(t.identifier,"Index name"),{identifier:t.identifier,sql:t.sql}})}}function Cc(e,t,n){if(t.length===0&&(n?.length??0)===0)return;if(!n)throw new Error("Column deletion requires confirmation for dependent indexes: "+t.map(i=>i.identifier).join(", "));let r=new Map(n.map(i=>[i.identifier,i.sql]));if(!(r.size===n.length&&n.length===t.length&&t.every(i=>r.get(i.identifier)===i.sql)))throw new Error(`Cannot delete columns from ${e}: dependent indexes changed while the confirmation was open`)}async function Rc(e,t,n){if(!p)throw new Error("No database initialized");if(Q("Column deletion"),t.length===0)return;let r=k("sp_delete_columns");b(`SAVEPOINT ${r}`);try{let o=Tc(n),i=await fs(e,t);Cc(e,i,o),await Xo(e,t,i.map(a=>a.identifier),a=>b(a)),b(`RELEASE ${r}`)}catch(o){throw B(r,"deleteColumns"),Ic(o,t)}}function Ic(e,t){let n;try{n=xc(t)}catch{return e}if(n.length===0)return e;let r=e instanceof Error?e.message:String(e),o=n.map(i=>`${i.type} ${i.identifier}`).join(", ");return new Error(`${r} \u2014 these schema objects mention ${t.join(", ")} and may be blocking the drop: ${o}. Drop or edit them first.`,{cause:e})}function xc(e){return(p.exec(zo)[0]?.values??[]).filter(n=>typeof n[1]=="string"&&typeof n[2]=="string"&&e.some(r=>Qo(n[2],r))).map(n=>({type:n[0],identifier:n[1]}))}async function Ac(e,t,n){if(!p)throw new Error("No database initialized");Q("Table creation");let r=Gr(e,t,n),o=k("sp_create_table");b(`SAVEPOINT ${o}`);try{let i=await j();b(r),ge(i,await j()),b(`RELEASE ${o}`)}catch(i){throw B(o,"createTable"),i}}async function ms(e,t=!1){if(!p)throw new Error("No database initialized");let r=p.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0]?.[0];if(typeof r!="string")return null;let o=bt.map(c=>p.exec(c.sql,c.params(e))[0]?.values||[]),{triggers:i,ambiguousTemporaryTriggerNames:a,unqualifiedTemporaryTriggers:s}=Br(e,o);if(s.length>0){let u=(p.exec("SELECT name FROM pragma.pragma_table_xinfo(?, 'main') ORDER BY cid",[e])[0]?.values??[]).map(f=>{if(typeof f[0]!="string")throw new Error(`SQLite returned invalid view column metadata for ${e}`);return f[0]});for(let f of s){if(i.some(m=>!m.temporary&&Me(m.identifier,f.identifier))){a.push(f.identifier);continue}try{let m=Ct(f.sql,"main",e,u);if(m===void 0){a.push(f.identifier);continue}let y=p.exec(m);kr(y[0]?.values??[],f.identifier)&&i.push({...f,sql:En(f.sql,f.identifier)})}catch{a.push(f.identifier)}}}let l,d;try{l=Mr(r),d=hn(r)}catch(c){if(!t)throw c;l=""}return{identifier:e,sql:r,selectSql:l,columnListSql:d,triggers:i,...a.length>0?{ambiguousTemporaryTriggerNames:a}:{}}}async function ps(e,t=!1){let n=await ms(e,t);if(!n)throw new Error(`View not found: ${e}`);return n}async function tn(e){return ps(e,!1)}function j(){return Hr({queryRows:async(e,t)=>p.exec(e,v(t))[0]?.values??[],compileStatements:async e=>e.map(t=>{try{Je(t);return}catch(n){return oe(n)}})})}function gs(e,t){let r=p.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0];Vr(e,r!==void 0,t);let o=r?.[0];return{storedSql:o,columnListSql:typeof o=="string"?hn(o):void 0}}function Q(e){if(H)throw new Error(`${e} is unavailable because the database is read-only`)}async function Nc(e,t,n="edit"){if(W(e,"View name"),!p)throw new Error("No database initialized");if(H)throw new Error("View validation is unavailable because the database is read-only");let r=pe(t),{storedSql:o,columnListSql:i}=gs(e,n),a=k("sp_validate_view");b(`SAVEPOINT ${a}`);try{let s=await j();typeof o=="string"&&b(`DROP VIEW ${J(e)}`),b(tt(e,r,i)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),ge(s,await j()),b(`ROLLBACK TO ${a}`),b(`RELEASE ${a}`)}catch(s){throw B(a,"validateViewDefinition"),s}}async function _c(e,t,n=50,r="edit",o){if(W(e,"View name"),!p)throw new Error("No database initialized");let i=pe(t),a=Math.max(1,Math.min(100,Math.trunc(n)||50)),{storedSql:s,columnListSql:l}=gs(e,r);if(H){let c=w(e);return rr(l?`WITH ${c} ${l} AS (${i} + `)[0]?.values||[]).map(l=>({identifier:l[0],parentTable:l[1]}));return{tables:r,views:i,indexes:s}}async function br(e){if(!p)throw new Error("No database initialized");let t=p.exec(so,[e]);return t.length===0?[]:t[0].values.filter(n=>Number(n[6]??0)!==1).map(n=>({ordinal:n[0],identifier:n[1],declaredType:n[2],isRequired:n[3],defaultExpression:n[4],primaryKeyPosition:n[5],isGenerated:Number(n[6]??0)===2||Number(n[6]??0)===3,isRowidAlias:Number(n[7]??0)===1}))}function cs(){let e=n=>{let r=p.prepare(n),o=[];try{for(;r.step();)o.push(r.get());return o}finally{r.free()}},t=e("PRAGMA main.schema_version")[0]?.[0];if(!Number.isSafeInteger(t))throw new Error("Unable to read the destination database schema version.");return JSON.stringify([t,e("SELECT type, name, tbl_name, sql FROM temp.sqlite_schema ORDER BY type, name")])}async function oc(e){if(!p)throw new Error("No database initialized");W(e,"Table name");let t=k("sp_import_preview");b(`SAVEPOINT ${t}`);try{let n=await br(e);if(!n.length)throw new Error(`Table not found: ${e}`);let r=cs();return b(`RELEASE SAVEPOINT ${t}`),{columns:n,schemaVersion:r}}catch(n){throw B(t,"getImportTarget"),n}}function tn(e){return(p.exec("SELECT name FROM pragma.pragma_table_xinfo(?) WHERE hidden = 0 ORDER BY cid",[e])[0]?.values??[]).map(n=>{if(typeof n[0]!="string")throw new Error(`SQLite returned invalid column metadata for ${e}`);return n[0]})}function ic(e,t,n,r){let o=ve(),i=U(n,t),a=r.map(ee),l=p.exec(`SELECT ${a.join(", ")||"1"} FROM ${N(e)} WHERE ${i.sql} LIMIT 2`,v(i.params),{useBigInt:!0})[0]?.values??[];if(l.length!==1)throw new Ce(e);let d=r.map((c,u)=>V(l[0][u*2],l[0][u*2+1],`${e}.${c}`,{textEncoding:o}));return{rowId:n,row:Object.fromEntries(r.map((c,u)=>[c,d[u].rawTextBytes??d[u].value])),storageClasses:r.map((c,u)=>({column:c,storageClass:d[u].storageClass}))}}function sc(e,t,n,r,o){if(o===void 0)return;let i=U(n,t),a=ii(r,t.kind==="rowid"),s=si(e,a,i),l=p.exec(s.sql,v(s.params),{useBigInt:!0})[0]?.values?.[0],d=ai(l);li({table:e,insertableColumns:r,includeSyntheticRowId:t.kind==="rowid",rowIds:[n],rowCount:d.rowCount,valueBytes:d.valueBytes,maxSnapshotBytes:o,operation:"Insert"})}function Fi(e,t,n,r){let o=tn(e),i=U(n,t);return fr(e,[n],o,[i]),sc(e,t,n,o,r),ic(e,t,n,o)}async function ac(){if(!p)throw new Error("No database initialized");let e={},t=["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","encoding","auto_vacuum"];for(let n of t)try{let r=p.exec(`PRAGMA ${n}`);r.length>0&&r[0].values.length>0&&(e[n]=r[0].values[0][0])}catch{}return e}async function lc(e,t){if(!p)throw new Error("No database initialized");if(Q("Pragma updates"),!["foreign_keys","journal_mode","synchronous","cache_size","locking_mode","temp_store","auto_vacuum"].includes(e))throw new Error(`Invalid or disallowed PRAGMA: ${e}`);let r;if(typeof t=="string"){if(!/^[a-zA-Z0-9_-]+$/.test(t))throw new Error("Invalid PRAGMA string value: contains disallowed characters");r=`PRAGMA ${e} = '${t}'`}else if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Invalid PRAGMA numeric value: must be finite");r=`PRAGMA ${e} = ${t}`}else if(typeof t=="boolean")r=`PRAGMA ${e} = ${t?"ON":"OFF"}`;else throw new Error(`Invalid PRAGMA value type: ${typeof t}`);b(r)}async function cc(e,t,n,r,o,i,a){let s=a===yr,l=!s&&i!==void 0,d=s?0:je([r],i);if(Ae(t),!p)throw new Error("No database initialized");if(Q("Cell updates"),Z(t))return(await hs(e,[{rowId:t,column:n,value:r,operation:"set"}],void 0,i,a))[0]?.newRowId??t;let c=M(t);if((await te(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let f=k("sp_update_rowid_cell");b(`SAVEPOINT ${f}`);try{let m=wr(e);Et(e,[n]);let y=w(n);if(p.run(`UPDATE ${N(e)} SET ${y} = ${G(r)} WHERE rowid = ?`+(l?` AND NOT (typeof(${y}) IN ('text', 'blob') AND length(CAST(${y} AS BLOB)) > ?)`:""),v(l?[r,c,d]:[r,c])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1){if(l){let C=await en({table:e,rowId:c,column:n});if((C.storageClass==="text"||C.storageClass==="blob")&&C.byteLength>d)throw new Fe(e,n,C.storageClass,C.byteLength,d)}throw new Error(`Cannot update ${e}.${n}: row ${t} no longer exists`)}let h=Sr(e,m,c,n,r);return b(`RELEASE ${f}`),h}catch(m){throw B(f,"updateCell"),m}}async function uc(e,t,n,r,o,i){let a=je([r],i);if(bi(o,a),Ae(t),!p)throw new Error("No database initialized");Q("Oversized cell replacement");let s=await te(e),l=U(t,s),d=w(n),c=()=>{if(p.run(`UPDATE ${N(e)} SET ${d} = ${G(r)} WHERE ${l.sql} AND typeof(${d}) = ? AND length(CAST(${d} AS BLOB)) = ?`,v([r,...l.params,o.storageClass,o.byteLength])),p.exec("SELECT changes()")[0]?.values?.[0]?.[0]!==1)throw new Error(Ei);if(s.kind==="rowid")return Sr(e,wr(e),M(t),n,r);let m=s.columns.findIndex(g=>g.identifier===n),y=_n(t,s,m>=0?[{column:n,value:r}]:[]);return on(e,s,U(y,s),cr(e))},u=k("sp_replace_oversized_cell");b(`SAVEPOINT ${u}`);try{Et(e,[n],s.kind==="rowid");let f=c();return b(`RELEASE ${u}`),f}catch(f){throw B(u,"replaceOversizedCell"),f}}async function us(e,t,n,r,o,i){if(!p)throw new Error("No database initialized");Q("Row insertion"),r!==yr&&je(Object.values(t),n);let a=Object.keys(t),s=Object.values(t),l=await te(e),d;if(a.length===0)d=`INSERT INTO ${N(e)} DEFAULT VALUES`;else{let u=a.map(w).join(", "),f=s.map(G).join(", ");d=`INSERT INTO ${N(e)} (${u}) VALUES (${f})`}if(l.kind==="primaryKey"){let u=k("sp_insert_pk_row");b(`SAVEPOINT ${u}`);try{Le("INSERT",e,a);let f=p.prepare(`${d} RETURNING `+ut(l),v(s)),m;try{if(!f.step())throw new Error(`Insert into ${e} did not return a primary-key identity`);if(m=f.get(null,{useBigInt:!0}),!m||f.step())throw new Error(`Insert into ${e} did not return exactly one primary-key identity`)}finally{f.free()}let y=dt(l,m,Ne(p.exec("PRAGMA encoding")[0]?.values?.[0]?.[0]),`Cannot insert into ${e}`),g=on(e,l,U(y,l)),h=o?Fi(e,l,g,i):g;return b(`RELEASE ${u}`),h}catch(f){throw B(u,"insertPrimaryKeyRow"),f}}let c=k("sp_insert_rowid_row");b(`SAVEPOINT ${c}`);try{Le("INSERT",e,a),p.run(d,v(s));let u=p.exec("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")[0]?.values?.[0];if(!u||Number(u[0])!==1)throw new Error(`Insert into ${e} did not create exactly one row`);let f=M(u[1]),m=U(f,l);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE ${m.sql} LIMIT 2`,v(m.params))[0]?.values.length??0)!==1)throw new Error(`Insert into ${e} did not leave one addressable row; the insert was rolled back`);let g=o?Fi(e,l,f,i):f;return b(`RELEASE ${c}`),g}catch(u){throw B(c,"insertRowIdRow"),u}}async function dc(e,t,n,r){return us(e,t,n,r,!1)}async function fc(e,t,n,r){return us(e,t,n,void 0,!0,r)}var Jt=40;function mc(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Import options must be an object");if(e.expectedSchemaVersion!==void 0&&typeof e.expectedSchemaVersion!="string")throw new Error("Import expectedSchemaVersion must be a string");let t=n=>{let r=e[n];if(r!==void 0){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Import ${n} must be a non-negative safe integer`);return r}};return{maxEditValueBytes:e.maxEditValueBytes,maxUndoSnapshotBytes:t("maxUndoSnapshotBytes"),maxSnapshotTransportBytes:t("maxSnapshotTransportBytes")}}function pc(e,t){if(!Array.isArray(e))throw new Error("Import rows must be an array");if(e.length===0)throw new Error("Import requires at least one row");if(e.length>tr)throw new Error(`Import supports at most ${tr.toLocaleString("en-US")} rows`);let n=je([],t),r=new Array(e.length),o=0;for(let i=0;inr)throw new Error(`Import supports at most ${nr} columns`);if(o+=s.length,o>rr)throw new Error(`Import supports at most ${rr.toLocaleString("en-US")} cells; split the file into smaller imports`);for(let l of s)W(l,"Column name"),He(a[l],n);r[i]=s}return r}function gc(e,t,n,r){let o=N(e),i=t.length===0?`INSERT INTO ${o} DEFAULT VALUES`:`INSERT INTO ${o} (${t.map(w).join(", ")}) VALUES (${n.join(", ")})`;return r.kind!=="primaryKey"?i:`${i} RETURNING ${ut(r)}`}function yc(e,t,n,r){let o=tn(e),i=qe(n,t),a=t.kind==="rowid"?"CAST(rowid AS TEXT)":ut(t),s=t.kind==="rowid"?1:t.columns.length*2,l=o.map(ee),d=new Map(n.map((y,g)=>[String(y),g])),c=[],u=new Map,f=new Array(n.length),m=0;for(let y of i){let g=p.exec(`SELECT ${a}${l.length>0?", ":""}${l.join(", ")} FROM ${N(e)} WHERE ${y.sql}`,v(y.params),{useBigInt:!0})[0];for(let h of g?.values??[]){let C=t.kind==="rowid"?M(h[0]):dt(t,h.slice(0,s),r,`Cannot import into ${e}`),T=d.get(String(C));if(T===void 0||f[T]!==void 0)throw new Error(`Import into ${e} could not re-read an inserted row by its identity`);let I=o.map((_,A)=>V(h[s+A*2],h[s+A*2+1],`${e}.${_}`,{textEncoding:r})),x=I.map(_=>_.storageClass),S=x.join(","),R=u.get(S);R===void 0&&(R=c.length,c.push(x),u.set(S,R)),f[T]={rowId:C,values:I.map(_=>_.rawTextBytes??_.value),pattern:R},m+=1}}if(m!==n.length)throw new Error(`Import into ${e} inserted ${n.length} rows but could re-read only ${m}`);return{columns:o,storageClassPatterns:c,rows:f}}function dr(e){if(e==null)return 4;switch(typeof e){case"string":{let t=ar(e)+2;for(let n=0;nr.maxUndoSnapshotBytes)throw new Error(`Import undo history for ${t} rows into ${e} needs ${a} bytes, over the ${r.maxUndoSnapshotBytes}-byte undo memory budget; import fewer rows at a time or increase maxUndoMemory. No rows were imported.`)}let o=Math.min(r.maxSnapshotTransportBytes??Number.MAX_SAFE_INTEGER,Yt),i=dr({rowCount:t,snapshots:n});if(i>o)throw new Error(`Import undo history for ${t} rows into ${e} is about ${i} bytes encoded, over the ${o}-byte limit this engine can return in one edit; import fewer rows at a time. No rows were imported.`)}async function Ec(e,t,n={}){if(!p)throw new Error("No database initialized");Q("Row import"),W(e,"Table name");let r=mc(n??{}),o=pc(t,r.maxEditValueBytes),i=k("sp_import_rows");b(`SAVEPOINT ${i}`);try{if(n?.expectedSchemaVersion!==void 0&&cs()!==n.expectedSchemaVersion)throw new Error("The destination database schema changed after the preview was prepared. Start the import again.");let a=await te(e),s=ve(),l=new Array(t.length),d=new Map,c=null;try{for(let f=0;fm[x]),h=g.map(G),C=`${JSON.stringify(y)}|${h.join(",")}`,T=d.get(C);if(T||(Le("INSERT",e,y),T=p.prepare(gc(e,y,h,a)),d.set(C,T)),T.bind(v(g)),a.kind==="primaryKey"){if(!T.step())throw new Error(`Import into ${e} did not return a primary-key identity`);let x=T.get(null,{useBigInt:!0});if(!x||T.step())throw new Error(`Import into ${e} did not return exactly one primary-key identity`);T.reset();let S=dt(a,x,s,`Cannot import into ${e}`);l[f]=on(e,a,U(S,a));continue}T.step(),T.reset(),c??(c=p.prepare("SELECT changes(), CAST(last_insert_rowid() AS TEXT)")),c.step();let I=c.get(null,{useBigInt:!0});if(c.reset(),!I||Number(I[0])!==1)throw new Error(`Import into ${e} did not create exactly one row for row ${f+1}`);l[f]=M(I[1])}}finally{for(let f of d.values())f.free();c?.free()}let u=yc(e,a,l,s);return hc(e,t.length,u,r),b(`RELEASE ${i}`),{rowCount:t.length,snapshots:u}}catch(a){throw B(i,"importRows"),a}}function ds(e){if(e===null||typeof e!="object"||!Array.isArray(e.columns)||!Array.isArray(e.storageClassPatterns)||!Array.isArray(e.rows)||e.rows.length===0||e.columns.some(r=>typeof r!="string"))throw new K;let t=e.columns.length,n=e.storageClassPatterns.map(r=>{if(!Array.isArray(r)||r.length!==t)throw new K;return e.columns.map((o,i)=>({column:o,storageClass:r[i]}))});return e.rows.map(r=>{if(r===null||typeof r!="object"||!Array.isArray(r.values)||r.values.length!==t||!Number.isInteger(r.pattern)||r.pattern<0||r.pattern>=n.length)throw new K;return{rowId:r.rowId,row:Object.fromEntries(e.columns.map((o,i)=>[o,r.values[i]])),storageClasses:n[r.pattern]}})}var Hi=64;function ir(e,t){let n=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(n)||n<0)throw new Error(`Demo delete snapshot ${t} exceeds the web transport safety bound`);return n}function wc(e){let t=w(e);return`CASE typeof(${t}) WHEN 'text' THEN 6 * octet_length(${t}) WHEN 'blob' THEN 4 * ((octet_length(${t}) + 2) / 3) + 40 WHEN 'integer' THEN 8 WHEN 'real' THEN 8 ELSE 4 END`}function Sc(e){let t=w(e);return`COALESCE(MAX(CASE WHEN typeof(${t}) = 'blob' THEN octet_length(${t}) ELSE 0 END), 0)`}function fr(e,t,n,r){let o=1024;for(let s of t)o+=64+6*String(s).length;let i=128+n.reduce((s,l)=>s+48+6*l.length,0),a=0;for(let s of r)for(let l=0;l0?", ":""}`+d.map(Sc).join(", ")+` FROM ${N(e)} WHERE ${s.sql}`,v(s.params),{useBigInt:!0})[0]?.values?.[0];if(!c)throw new Error("Demo delete snapshot preflight returned no metadata");let u=ir(c[0],"row count");l===0&&(a+=u,o+=u*i),o+=ir(c[1],"encoded size");for(let f of c.slice(2))if(ir(f,"BLOB size")>We)throw new Error(`Demo delete snapshot exceeds the ${We}-byte web transport binary limit; the row was not deleted`);if(!Number.isSafeInteger(o))throw new Error("Demo delete snapshot exceeds the web transport safety bound")}if(a!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);if(o>Yt)throw new Error(`Demo delete snapshot exceeds the ${Yt}-byte web transport response limit; no rows were deleted`)}async function bc(e,t){if(t.forEach(Ae),!p)throw new Error("No database initialized");if(Q("Row deletion"),t.length===0)return[];let n=await te(e),r=ve();if(t.some(Z)){if(!t.every(Z))throw new Error("Cannot mix rowid and primary-key row identities");if(n.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let a=qe(t,n),s=k("sp_delete_pk_rows");b(`SAVEPOINT ${s}`);try{Le("DELETE",e);let l=tn(e);fr(e,t,l,a);let d=[];for(let c of a){let f=p.exec(`SELECT ${l.map(ee).join(", ")||"1"} FROM ${N(e)} WHERE ${c.sql}`,v(c.params),{useBigInt:!0})[0]?.values??[],m=n.columns.map(y=>{let g=l.indexOf(y.identifier);if(g<0)throw new Error(`Primary-key column missing from ${e}: ${y.identifier}`);return g});d.push(...f.map(y=>{let g=l.map((h,C)=>V(y[C*2],y[C*2+1],`${e}.${h}`,{textEncoding:r}));return{rowId:Ve(n.columns,m.map(h=>g[h].value)),row:Object.fromEntries(l.map((h,C)=>[h,g[C].rawTextBytes??g[C].value])),storageClasses:l.map((h,C)=>({column:h,storageClass:g[C].storageClass}))}}))}if(d.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let c of a)p.run(`DELETE FROM ${N(e)} WHERE ${c.sql}`,v(c.params));return b(`RELEASE ${s}`),d}catch(l){throw B(s,"deletePrimaryKeyRows"),l}}if(n.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let o=qe(t,n),i=k("sp_delete_rowid_rows");b(`SAVEPOINT ${i}`);try{Le("DELETE",e);let a=tn(e);fr(e,t,a,o);let s=[];for(let l of o){let d=p.exec(`SELECT CAST(rowid AS TEXT)${a.length>0?", ":""}${a.map(ee).join(", ")} FROM ${N(e)} WHERE ${l.sql}`,v(l.params),{useBigInt:!0})[0];s.push(...(d?.values??[]).map(c=>{let u=M(c[0]),f=a.map((m,y)=>V(c[y*2+1],c[y*2+2],`${e}.${m}`,{textEncoding:r}));return{rowId:u,row:Object.fromEntries(a.map((m,y)=>[m,f[y].rawTextBytes??f[y].value])),storageClasses:a.map((m,y)=>({column:m,storageClass:f[y].storageClass}))}}))}if(s.length!==t.length)throw new Error(`Cannot delete from ${e}: one or more row identities no longer exist`);for(let l of o)p.run(`DELETE FROM ${N(e)} WHERE ${l.sql}`,v(l.params));return b(`RELEASE ${i}`),s}catch(a){throw B(i,"deleteRowidRows"),a}}async function fs(e,t){if(!p)throw new Error("No database initialized");if(!Array.isArray(t))throw new Error("Column names must be an array");W(e,"Table name"),t.forEach(u=>W(u,"Column name"));let r=(p.exec("SELECT name, sql FROM main.sqlite_schema WHERE type = 'index' AND tbl_name = ? AND sql IS NOT NULL ORDER BY name",[e])[0]?.values??[]).map(u=>({identifier:u[0],sql:u[1]}));if(r.length===0||t.length===0)return[];let i=(p.exec(`PRAGMA main.table_xinfo(${w(e)})`)[0]?.values??[]).map(u=>u[1]),a=Xr(i,t);if(a.length===0)return[];let s=crypto.randomUUID().replace(/-/g,""),l=`__sqlite_explorer_index_probe_${s}`,d=`__sqlite_explorer_index_candidate_${s}`,c=k("sp_index_dependencies");b(`SAVEPOINT ${c}`);try{b(Qr(l,i));let u=k("sp_index_baseline");b(`SAVEPOINT ${u}`);try{for(let m of a)b(`ALTER TABLE temp.${w(l)} DROP COLUMN ${w(m)}`);b(`ROLLBACK TO ${u}`),b(`RELEASE ${u}`)}catch(m){throw B(u,"findDependentIndexBaseline"),new Error("Cannot establish the index dependency probe baseline",{cause:m})}let f=[];for(let m of r){let y=k("sp_index_candidate");b(`SAVEPOINT ${y}`);try{b(Gr(l,d,m.sql));let g=!1;for(let h of a)try{b(`ALTER TABLE temp.${w(l)} DROP COLUMN ${w(h)}`)}catch{g=!0;break}b(`ROLLBACK TO ${y}`),b(`RELEASE ${y}`),g&&f.push(m)}catch(g){throw B(y,"findDependentIndex"),new Error(`Cannot inspect dependency for index ${w(m.identifier)}`,{cause:g})}}return b(`ROLLBACK TO ${c}`),b(`RELEASE ${c}`),f}catch(u){throw B(c,"findDependentIndexes"),u}}function Tc(e){if(e!==void 0){if(!Array.isArray(e))throw new Error("Dependent-index confirmation must be an array");return e.map(t=>{if(!t||typeof t!="object"||Array.isArray(t)||typeof t.identifier!="string"||typeof t.sql!="string")throw new Error("Dependent-index confirmation contains an invalid definition");return W(t.identifier,"Index name"),{identifier:t.identifier,sql:t.sql}})}}function Cc(e,t,n){if(t.length===0&&(n?.length??0)===0)return;if(!n)throw new Error("Column deletion requires confirmation for dependent indexes: "+t.map(i=>i.identifier).join(", "));let r=new Map(n.map(i=>[i.identifier,i.sql]));if(!(r.size===n.length&&n.length===t.length&&t.every(i=>r.get(i.identifier)===i.sql)))throw new Error(`Cannot delete columns from ${e}: dependent indexes changed while the confirmation was open`)}async function Rc(e,t,n){if(!p)throw new Error("No database initialized");if(Q("Column deletion"),t.length===0)return;let r=k("sp_delete_columns");b(`SAVEPOINT ${r}`);try{let o=Tc(n),i=await fs(e,t);Cc(e,i,o),await Xo(e,t,i.map(a=>a.identifier),a=>b(a)),b(`RELEASE ${r}`)}catch(o){throw B(r,"deleteColumns"),Ic(o,t)}}function Ic(e,t){let n;try{n=xc(t)}catch{return e}if(n.length===0)return e;let r=e instanceof Error?e.message:String(e),o=n.map(i=>`${i.type} ${i.identifier}`).join(", ");return new Error(`${r} \u2014 these schema objects mention ${t.join(", ")} and may be blocking the drop: ${o}. Drop or edit them first.`,{cause:e})}function xc(e){return(p.exec(zo)[0]?.values??[]).filter(n=>typeof n[1]=="string"&&typeof n[2]=="string"&&e.some(r=>Qo(n[2],r))).map(n=>({type:n[0],identifier:n[1]}))}async function Ac(e,t,n){if(!p)throw new Error("No database initialized");Q("Table creation");let r=Yr(e,t,n),o=k("sp_create_table");b(`SAVEPOINT ${o}`);try{let i=await j();b(r),ge(i,await j()),b(`RELEASE ${o}`)}catch(i){throw B(o,"createTable"),i}}async function ms(e,t=!1){if(!p)throw new Error("No database initialized");let r=p.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0]?.[0];if(typeof r!="string")return null;let o=bt.map(c=>p.exec(c.sql,c.params(e))[0]?.values||[]),{triggers:i,ambiguousTemporaryTriggerNames:a,unqualifiedTemporaryTriggers:s}=Dr(e,o);if(s.length>0){let u=(p.exec("SELECT name FROM pragma.pragma_table_xinfo(?, 'main') ORDER BY cid",[e])[0]?.values??[]).map(f=>{if(typeof f[0]!="string")throw new Error(`SQLite returned invalid view column metadata for ${e}`);return f[0]});for(let f of s){if(i.some(m=>!m.temporary&&Me(m.identifier,f.identifier))){a.push(f.identifier);continue}try{let m=Ct(f.sql,"main",e,u);if(m===void 0){a.push(f.identifier);continue}let y=p.exec(m);Br(y[0]?.values??[],f.identifier)&&i.push({...f,sql:wn(f.sql,f.identifier)})}catch{a.push(f.identifier)}}}let l,d;try{l=Ur(r),d=En(r)}catch(c){if(!t)throw c;l=""}return{identifier:e,sql:r,selectSql:l,columnListSql:d,triggers:i,...a.length>0?{ambiguousTemporaryTriggerNames:a}:{}}}async function ps(e,t=!1){let n=await ms(e,t);if(!n)throw new Error(`View not found: ${e}`);return n}async function nn(e){return ps(e,!1)}function j(){return jr({queryRows:async(e,t)=>p.exec(e,v(t))[0]?.values??[],compileStatements:async e=>e.map(t=>{try{Je(t);return}catch(n){return oe(n)}})})}function gs(e,t){let r=p.exec("SELECT sql FROM sqlite_schema WHERE type = 'view' AND name = ?",[e])[0]?.values?.[0];qr(e,r!==void 0,t);let o=r?.[0];return{storedSql:o,columnListSql:typeof o=="string"?En(o):void 0}}function Q(e){if(H)throw new Error(`${e} is unavailable because the database is read-only`)}async function Nc(e,t,n="edit"){if(W(e,"View name"),!p)throw new Error("No database initialized");if(H)throw new Error("View validation is unavailable because the database is read-only");let r=pe(t),{storedSql:o,columnListSql:i}=gs(e,n),a=k("sp_validate_view");b(`SAVEPOINT ${a}`);try{let s=await j();typeof o=="string"&&b(`DROP VIEW ${J(e)}`),b(tt(e,r,i)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),ge(s,await j()),b(`ROLLBACK TO ${a}`),b(`RELEASE ${a}`)}catch(s){throw B(a,"validateViewDefinition"),s}}async function _c(e,t,n=50,r="edit",o){if(W(e,"View name"),!p)throw new Error("No database initialized");let i=pe(t),a=Math.max(1,Math.min(100,Math.trunc(n)||50)),{storedSql:s,columnListSql:l}=gs(e,r);if(H){let c=w(e);return or(l?`WITH ${c} ${l} AS (${i} ) SELECT * FROM ${c} LIMIT ${a}`:`WITH ${c} AS (${i} -) SELECT * FROM ${c} LIMIT ${a}`,o)}let d=k("sp_preview_view");b(`SAVEPOINT ${d}`);try{let c=await j();typeof s=="string"&&b(`DROP VIEW ${J(e)}`),b(tt(e,i,l)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),ge(c,await j());let u=rr(`SELECT * FROM ${J(e)} LIMIT ${a}`,o);return b(`ROLLBACK TO ${d}`),b(`RELEASE ${d}`),u}catch(c){throw B(d,"previewViewDefinition"),c}}async function $c(e,t){if(W(e,"View name"),!p)throw new Error("No database initialized");Q("View creation");let n=pe(t),r=k("sp_create_view");b(`SAVEPOINT ${r}`);try{let o=await j();b(tt(e,n)),Je(`EXPLAIN SELECT * FROM ${J(e)}`);let i=await tn(e);return ge(o,await j()),b(`RELEASE ${r}`),i}catch(o){throw B(r,"createView"),o}}async function Oc(e,t,n=!0,r,o){if(!p)throw new Error("No database initialized");Q("View editing");let i=pe(t),a=k("sp_edit_view");b(`SAVEPOINT ${a}`);try{let s=await tn(e);Rt(s),It(r,s.sql,o,s.triggers);let l=await j();if(b(`DROP VIEW ${J(e)}`),b(tt(e,i,s.columnListSql,s.columns)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),n){let u=(p.exec(`PRAGMA main.table_info(${w(e)})`)[0]?.values??[]).map(f=>{if(typeof f[1]!="string")throw new Error(`SQLite returned invalid column metadata for view ${e}`);return f[1]});Ur(s.triggers,u);for(let f of s.triggers)b(wn(f))}let d=await tn(e);return ge(l,await j()),b(`RELEASE ${a}`),{before:s,after:d}}catch(s){throw B(a,"editView"),s}}async function Lc(e,t,n){if(!p)throw new Error("No database initialized");Q("View deletion");let r=k("sp_drop_view");b(`SAVEPOINT ${r}`);try{let o=await ps(e,!0);Rt(o),It(t,o.sql,n,o.triggers);let i=await j();return b(`DROP VIEW ${J(e)}`),ge(i,await j()),b(`RELEASE ${r}`),o}catch(o){throw B(r,"dropView"),o}}async function Qe(e,t,n){Q("View history replay");let r=k("sp_restore_view");b(`SAVEPOINT ${r}`);try{let o=await ms(e,!0);o&&Rt(o),Wr(t,o);let i=await j();if(o&&b(`DROP VIEW ${J(e)}`),n){b(n.sql),Je(`EXPLAIN SELECT * FROM ${J(n.identifier)}`);for(let a of n.triggers)b(wn(a))}ge(i,await j()),b(`RELEASE ${r}`)}catch(o){throw B(r,"restoreViewDefinition"),o}}function on(){let e=p.exec("SELECT changes()",void 0,{useBigInt:!0})[0]?.values?.[0]?.[0],t=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(t)||t<0)throw new Error("SQLite returned an invalid changes() count");return t}async function fr(e,t){if(!Array.isArray(t)||t.length===0)throw new K;t.forEach(pt);let n=await te(e),r=k("sp_history_delete_rows");b(`SAVEPOINT ${r}`);try{Le("DELETE",e);for(let o of t){let i=U(o.rowId,n),a=Dn(o,G);if(p.run(`DELETE FROM ${N(e)} WHERE (${i.sql}) AND (${a.sql})`,v([...i.params,...a.params])),on()!==1)throw new Ce(e)}b(`RELEASE ${r}`)}catch(o){throw B(r,"deleteRowHistorySnapshots"),o}}async function mr(e,t){if(!Array.isArray(t)||t.length===0)throw new K;let n=await te(e),r=t.map(i=>({snapshot:i,states:pt(i),writes:ri(i,G)})),o=k("sp_history_restore_rows");b(`SAVEPOINT ${o}`);try{for(let i of r){Le("INSERT",e,i.states.map(l=>l.column));let a=U(i.snapshot.rowId,n);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE ${a.sql} LIMIT 1`,v(a.params))[0]?.values.length??0)!==0)throw new Ce(e)}for(let i of r){let a=i.writes.map(f=>f.column),s=i.writes.map(f=>f.write.sql),l=i.writes.flatMap(f=>f.write.params);if(n.kind==="rowid"&&!a.some(f=>f.toLowerCase()==="rowid")&&(a.unshift("rowid"),s.unshift(G(i.snapshot.rowId)),l.unshift(i.snapshot.rowId)),p.run(`INSERT INTO ${N(e)} (${a.map(w).join(", ")}) VALUES (${s.join(", ")})`,v(l)),on()!==1)throw new Ce(e);let d=U(i.snapshot.rowId,n),c=Dn(i.snapshot,G);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE (${d.sql}) AND (${c.sql}) LIMIT 2`,v([...d.params,...c.params]))[0]?.values.length??0)!==1)throw new Ce(e)}b(`RELEASE ${o}`)}catch(i){throw B(o,"restoreRowHistorySnapshots"),i}}function vc(e){let t=e.affectedCells??(e.targetRowId!==void 0&&e.targetColumn?[{rowId:e.targetRowId,newRowId:e.newTargetRowId,columnName:e.targetColumn,newValue:e.newValue,operation:e.operation,priorState:e.priorState,postState:e.postState}]:[]);if(t.length===0)throw new ft;return t.map(n=>(mt(n.priorState),mt(n.postState),n))}async function ys(e,t,n){if(t.undoPolicy==="barrier")throw new Error("Forward-only cell history barriers cannot be replayed");let r=vc(t),o=r.some(c=>Z(c.rowId));if(o&&!r.every(c=>Z(c.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let i=await te(e);if(o&&i.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);if(!o&&i.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let a=ve(),s=new Map;for(let c of r){let u=s.get(c.rowId)??[];if(u.some(f=>Me(f.columnName,c.columnName)))throw new Error(`Cell history for ${e} contains the same column more than once`);u.push(c),s.set(c.rowId,u)}let l=[...s.entries()];n==="undo"&&r.some(c=>c.newRowId!==void 0&&c.newRowId!==c.rowId)&&l.reverse();let d=k("sp_replay_cell_history");b(`SAVEPOINT ${d}`);try{Et(e,r.map(c=>c.columnName),i.kind==="rowid");for(let[c,u]of l){if(new Set(u.map(E=>E.newRowId??E.rowId)).size!==1)throw new Error(`Cell history for ${e} has inconsistent post-update identities`);let m=u[0].newRowId??c,y=n==="undo"?m:c,g=n==="undo"?c:m,h=U(y,i),C=u.map(E=>ee(E.columnName)),T=p.exec(`SELECT ${C.join(", ")} FROM ${N(e)} WHERE ${h.sql} LIMIT 2`,v(h.params),{useBigInt:!0})[0];if((T?.values.length??0)!==1)throw new se(e,u.map(E=>E.columnName));let I=u.map((E,O)=>V(T.values[0][O*2],T.values[0][O*2+1],`${e}.${E.columnName}`,{textEncoding:a})),x=u.map((E,O)=>{let q=n==="undo"?E.postState:E.priorState,Y=n==="undo"?E.priorState:E.postState,X=I[O];if(E.operation!=="json_patch"){if(!Bn(X,q))throw new se(e,[E.columnName]);return Y}if(X.storageClass!==q.storageClass||E.newValue===void 0)throw new se(e,[E.columnName]);let le=ti(X.value,E.newValue,E.priorState.value,E.postState.value,n);if(le.kind==="conflict")throw new se(e,[E.columnName]);return Object.is(le.value,Y.value)?Y:V("text",le.value,`${e}.${E.columnName} JSON replay`)}),S=x.map(E=>Kt(E,G)),R=I.map((E,O)=>zt(u[O].columnName,E,G));if(p.run(`UPDATE ${N(e)} SET ${u.map((E,O)=>`${w(E.columnName)} = ${S[O].sql}`).join(", ")} WHERE ${h.sql} AND `+R.map(E=>`(${E.sql})`).join(" AND "),v([...S.flatMap(E=>E.params),...h.params,...R.flatMap(E=>E.params)])),on()!==1)throw new se(e,u.map(E=>E.columnName));let _=U(g,i),A=p.exec(`SELECT ${C.join(", ")} FROM ${N(e)} WHERE ${_.sql} LIMIT 2`,v(_.params),{useBigInt:!0})[0];if((A?.values.length??0)!==1)throw new se(e,u.map(E=>E.columnName));if(!x.every((E,O)=>Bn(E,V(A.values[0][O*2],A.values[0][O*2+1],`${e}.${u[O].columnName}`,{textEncoding:a}))))throw new se(e,u.map(E=>E.columnName))}b(`RELEASE ${d}`)}catch(c){throw B(d,"replayCellHistory"),c}}async function Pc(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,newTargetRowId:s,targetColumn:l,priorValue:d,newValue:c,operation:u,deletedRows:f,insertedRow:m}=e;if(n)switch(t){case"cell_update":await ys(n,e,"undo");return;case"row_insert":if(e.importedRows){await fr(n,ds(e.importedRows).reverse());return}if(!m||a===void 0)throw new K;if(typeof m.rowId!=typeof a||String(m.rowId)!==String(a))throw new K;await fr(n,[m]);return;case"row_delete":{if(!f||f.length===0)throw new K;await mr(n,f);return}case"view_create":if(o)await Qe(n,o,null);else throw new Error("Cannot undo view_create: missing view definition");return;case"view_edit":if(r&&o)await Qe(n,o,r);else throw new Error("Cannot undo view_edit: missing view definition");return;case"view_drop":if(r)await Qe(n,null,r);else throw new Error("Cannot undo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be undone: this operation is recorded as a history barrier, not a replayable change`)}}async function kc(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,targetColumn:s,newValue:l,operation:d,rowData:c,affectedRowIds:u,insertedRow:f,deletedRows:m}=e;if(n)switch(t){case"cell_update":await ys(n,e,"redo");return;case"row_insert":{if(e.importedRows){await mr(n,ds(e.importedRows));return}if(!f)throw new K;await mr(n,[f]);return}case"row_delete":if(!m||m.length===0)throw new K;await fr(n,m);return;case"view_create":if(o)await Qe(n,null,o);else throw new Error("Cannot redo view_create: missing view definition");return;case"view_edit":if(r&&o)await Qe(n,r,o);else throw new Error("Cannot redo view_edit: missing view definition");return;case"view_drop":if(r)await Qe(n,r,null);else throw new Error("Cannot redo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be redone: this operation is recorded as a history barrier, not a replayable change`)}}function Bc(e,t){let n=new Map;for(let r of t){W(r.column,"Column name");let o;Z(r.rowId)?(So(r.rowId),o=`primary-key:${r.rowId}`):o=`rowid:${String(M(r.rowId))}`;let i=n.get(o)??[];if(i.some(a=>Me(a,r.column)))throw new Error(`Batch update for ${e} contains a duplicate row identity/column target: ${String(r.rowId)} / ${r.column}`);i.push(r.column),n.set(o,i)}}async function hs(e,t,n,r,o){if(t.forEach(c=>Ae(c.rowId)),!p)throw new Error("No database initialized");if(Q("Batch cell updates"),t.length===0)return[];Bc(e,t);let i=o===gr,a=i?0:je(t.map(c=>c.value),r),s=ve();if(t.some(c=>Z(c.rowId))){if(!t.every(f=>Z(f.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let c=await te(e);if(c.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let u=k("sp_update_pk_batch");b(`SAVEPOINT ${u}`);try{if(Et(e,t.map(y=>y.column),!1),!i&&r!==void 0)for(let y of t){let g=await Zt({table:e,rowId:y.rowId,column:y.column});if((g.storageClass==="text"||g.storageClass==="blob")&&g.byteLength>a)throw new Fe(e,y.column,g.storageClass,g.byteLength,a)}let f=new Map;for(let y of t){let g=f.get(y.rowId)??[];g.push(y),f.set(y.rowId,g)}let m=[];for(let[y,g]of f){let h=U(y,c),C=[...new Set(g.map(E=>E.column))];if(C.length!==g.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let T=p.exec(`SELECT ${C.map(ee).join(", ")} FROM ${N(e)} WHERE ${h.sql} LIMIT 2`,v(h.params),{useBigInt:!0})[0];if((T?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let I=g.map((E,O)=>{let q=V(T.values[0][O*2],T.values[0][O*2+1],`${e}.${E.column}`,{textEncoding:s}),Y=q.value,X=jt(E.value,Y,E.operation??"set"),le=X.operation==="json_patch"?cr(Y,X.value):X.value;return!i&&X.operation==="json_patch"&&He(le,a),{update:E,priorValue:Y,priorState:q,prepared:X,storedValue:le}}),x=I.map(({update:E,storedValue:O})=>`${w(E.column)} = ${G(O)}`).join(", ");if(p.run(`UPDATE ${N(e)} SET ${x} WHERE ${h.sql}`,v([...I.map(E=>E.storedValue),...h.params])),on()!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let S=[];for(let E of I)c.columns.findIndex(q=>q.identifier===E.update.column)>=0&&S.push({column:E.update.column,value:E.storedValue});let R=Nn(y,c,S),_=rn(e,c,U(R,c),lr(e)),A=U(_,c),L=p.exec(`SELECT ${C.map(ee).join(", ")} FROM ${N(e)} WHERE ${A.sql} LIMIT 2`,v(A.params),{useBigInt:!0})[0];if((L?.values.length??0)!==1)throw lr(e);for(let[E,O]of I.entries())m.push({rowId:y,newRowId:_,columnName:O.update.column,priorValue:O.priorValue,newValue:O.prepared.value,priorState:O.priorState,postState:V(L.values[0][E*2],L.values[0][E*2+1],`${e}.${O.update.column}`,{textEncoding:s}),operation:O.prepared.operation})}return b(`RELEASE ${u}`),m}catch(f){throw B(u,"updatePrimaryKeyCellBatch"),f}}if((await te(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let d=k("sp_update_cell_batch");b(`SAVEPOINT ${d}`);try{if(!i&&r!==void 0)for(let S of t){let R=await Zt({table:e,rowId:S.rowId,column:S.column});if((R.storageClass==="text"||R.storageClass==="blob")&&R.byteLength>a)throw new Fe(e,S.column,R.storageClass,R.byteLength,a)}let c=Er(e);if(Et(e,t.map(S=>S.column)),c!==void 0&&t.some(S=>Me(S.column,c))){let S=ec(e,c,t,a,i);return b(`RELEASE ${d}`),S}let u=[...new Set(t.map(S=>M(S.rowId)))],f=[...new Set(t.map(S=>S.column))],m=N(e),y=new Map,g=qe(u,{kind:"rowid"});for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT), ${f.map(ee).join(", ")} FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[]){let A=new Map;f.forEach((L,E)=>A.set(L,V(_[E*2+1],_[E*2+2],`${e}.${L}`,{textEncoding:s}))),y.set(String(M(_[0])),A)}}let h=[],C=t.map(S=>{let R=M(S.rowId),_=y.get(String(R));if(!_)throw new Error(`Cannot update ${e}.${S.column}: row ${S.rowId} no longer exists`);let A=_.get(S.column);if(!A)throw new Error(`Cannot update ${e}.${S.column}: cell state is unavailable`);let L=A.value,E=jt(S.value,L,S.operation??"set");if(!i&&E.operation==="json_patch"){let O=cr(L,E.value);He(O,a)}return h.push({rowId:R,columnName:S.column,priorValue:L,newValue:E.value,priorState:A,operation:E.operation}),{...S,rowId:R,value:E.value,operation:E.operation}});for(let S of C){let R=w(S.column),A=S.operation==="json_patch"?`UPDATE ${m} SET ${R} = json_patch(COALESCE(${R}, '{}'), ?) WHERE rowid = ?`:`UPDATE ${m} SET ${R} = ${G(S.value)} WHERE rowid = ?`;p.run(A,v([S.value,S.rowId]))}let T=new Set;for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT) FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[])T.add(String(M(_[0])))}if(u.some(S=>!T.has(String(S))))throw st(e);let I=new Map;for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT), ${f.map(ee).join(", ")} FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[]){let A=new Map;f.forEach((L,E)=>A.set(L,V(_[E*2+1],_[E*2+2],`${e}.${L}`,{textEncoding:s}))),I.set(String(M(_[0])),A)}}let x=h.map(S=>{let R=I.get(String(S.rowId))?.get(S.columnName);if(!R)throw st(e);return{...S,postState:R}});return b(`RELEASE ${d}`),x}catch(c){throw B(d,"updateCellBatch"),c}}async function Dc(e,t,n,r){if(W(e,"Table name"),W(t,"Column name"),!p)throw new Error("No database initialized");Q("Column creation"),ul(n);let o=`ALTER TABLE ${N(e)} ADD COLUMN ${w(t)} ${n}`;r!=null&&r!==""&&(o+=` DEFAULT ${dl(r)}`);let i=k("sp_add_column");b(`SAVEPOINT ${i}`);try{let a=await j();b(o),ge(a,await j()),b(`RELEASE ${i}`)}catch(a){throw B(i,"addColumn"),a}}async function Mc(){if(!p)return!1;try{return p.exec("SELECT 1"),!0}catch{return!1}}async function Uc(){throw new Error("Reload must be handled by the demo host so it can reinitialize from the original database source")}var ji={initializeDatabase:Rl,runQuery:Nl,runConsole:ql,executeReadQuery:_l,getCellMetadata:Zt,openCellReadSession:yl,readCellChunk:hl,closeCellReadSession:El,exportDatabase:Wl,exportTable:Fl,fetchTableData:tc,fetchTableCount:nc,fetchSchema:rc,getTableInfo:Sr,getImportTarget:oc,getPragmas:ac,setPragma:lc,updateCell:cc,replaceOversizedCell:uc,insertRow:dc,insertRowWithHistory:fc,importRows:Ec,deleteRows:bc,findDependentIndexes:fs,deleteColumns:Rc,createTable:Ac,getViewDefinition:tn,validateViewDefinition:Nc,previewViewDefinition:_c,createView:$c,editView:Oc,dropView:Lc,undoModification:Pc,redoModification:kc,updateCellBatch:hs,addColumn:Dc,ping:Mc,refreshFile:Uc};self.onmessage=async e=>{let t=e.data;if(!t||t.channel!=="rpc"||!t.content){console.warn("[Worker] Invalid message format",{valueType:t===null?"null":Array.isArray(t)?"array":typeof t,hasRpcChannel:t?.channel==="rpc",hasContent:!!t?.content});return}let{kind:n,messageId:r,targetMethod:o,payload:i}=t.content;if(n!=="invoke")return;if(typeof r!="string"||r.length===0||r.length>256){console.warn("[Worker] Invalid RPC correlation ID");return}let s=typeof o=="string"&&Object.prototype.hasOwnProperty.call(ji,o)?ji[o]:void 0;if(typeof s!="function"){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:`Unknown method: ${typeof o=="string"?o.slice(0,256):""}`}});return}if(!Array.isArray(i)){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:"Worker RPC payload must be an array"}});return}try{wl(o);let l=await s(...i),d={channel:"rpc",content:{kind:"response",messageId:r,success:!0,data:l}};if(o==="exportDatabase"&&l instanceof Uint8Array){let c=l.byteOffset===0&&l.byteLength===l.buffer.byteLength&&l.buffer instanceof ArrayBuffer?l:l.slice();d.content.data=c,self.postMessage(d,[c.buffer])}else self.postMessage(d)}catch(l){let d=oe(l);console.error("[Worker] Method error:",o,d);let c;try{c=Ti(l)}catch{}self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:d,...c?{error:c}:{}}})}};})(); +) SELECT * FROM ${c} LIMIT ${a}`,o)}let d=k("sp_preview_view");b(`SAVEPOINT ${d}`);try{let c=await j();typeof s=="string"&&b(`DROP VIEW ${J(e)}`),b(tt(e,i,l)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),ge(c,await j());let u=or(`SELECT * FROM ${J(e)} LIMIT ${a}`,o);return b(`ROLLBACK TO ${d}`),b(`RELEASE ${d}`),u}catch(c){throw B(d,"previewViewDefinition"),c}}async function $c(e,t){if(W(e,"View name"),!p)throw new Error("No database initialized");Q("View creation");let n=pe(t),r=k("sp_create_view");b(`SAVEPOINT ${r}`);try{let o=await j();b(tt(e,n)),Je(`EXPLAIN SELECT * FROM ${J(e)}`);let i=await nn(e);return ge(o,await j()),b(`RELEASE ${r}`),i}catch(o){throw B(r,"createView"),o}}async function Oc(e,t,n=!0,r,o){if(!p)throw new Error("No database initialized");Q("View editing");let i=pe(t),a=k("sp_edit_view");b(`SAVEPOINT ${a}`);try{let s=await nn(e);Rt(s),It(r,s.sql,o,s.triggers);let l=await j();if(b(`DROP VIEW ${J(e)}`),b(tt(e,i,s.columnListSql,s.columns)),Je(`EXPLAIN SELECT * FROM ${J(e)}`),n){let u=(p.exec(`PRAGMA main.table_info(${w(e)})`)[0]?.values??[]).map(f=>{if(typeof f[1]!="string")throw new Error(`SQLite returned invalid column metadata for view ${e}`);return f[1]});Vr(s.triggers,u);for(let f of s.triggers)b(Sn(f))}let d=await nn(e);return ge(l,await j()),b(`RELEASE ${a}`),{before:s,after:d}}catch(s){throw B(a,"editView"),s}}async function Lc(e,t,n){if(!p)throw new Error("No database initialized");Q("View deletion");let r=k("sp_drop_view");b(`SAVEPOINT ${r}`);try{let o=await ps(e,!0);Rt(o),It(t,o.sql,n,o.triggers);let i=await j();return b(`DROP VIEW ${J(e)}`),ge(i,await j()),b(`RELEASE ${r}`),o}catch(o){throw B(r,"dropView"),o}}async function Qe(e,t,n){Q("View history replay");let r=k("sp_restore_view");b(`SAVEPOINT ${r}`);try{let o=await ms(e,!0);o&&Rt(o),Fr(t,o);let i=await j();if(o&&b(`DROP VIEW ${J(e)}`),n){b(n.sql),Je(`EXPLAIN SELECT * FROM ${J(n.identifier)}`);for(let a of n.triggers)b(Sn(a))}ge(i,await j()),b(`RELEASE ${r}`)}catch(o){throw B(r,"restoreViewDefinition"),o}}function sn(){let e=p.exec("SELECT changes()",void 0,{useBigInt:!0})[0]?.values?.[0]?.[0],t=typeof e=="bigint"?Number(e):e;if(!Number.isSafeInteger(t)||t<0)throw new Error("SQLite returned an invalid changes() count");return t}async function mr(e,t){if(!Array.isArray(t)||t.length===0)throw new K;t.forEach(pt);let n=await te(e),r=k("sp_history_delete_rows");b(`SAVEPOINT ${r}`);try{Le("DELETE",e);for(let o of t){let i=U(o.rowId,n),a=Mn(o,G);if(p.run(`DELETE FROM ${N(e)} WHERE (${i.sql}) AND (${a.sql})`,v([...i.params,...a.params])),sn()!==1)throw new Ce(e)}b(`RELEASE ${r}`)}catch(o){throw B(r,"deleteRowHistorySnapshots"),o}}async function pr(e,t){if(!Array.isArray(t)||t.length===0)throw new K;let n=await te(e),r=t.map(i=>({snapshot:i,states:pt(i),writes:ri(i,G)})),o=k("sp_history_restore_rows");b(`SAVEPOINT ${o}`);try{for(let i of r){Le("INSERT",e,i.states.map(l=>l.column));let a=U(i.snapshot.rowId,n);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE ${a.sql} LIMIT 1`,v(a.params))[0]?.values.length??0)!==0)throw new Ce(e)}for(let i of r){let a=i.writes.map(f=>f.column),s=i.writes.map(f=>f.write.sql),l=i.writes.flatMap(f=>f.write.params);if(n.kind==="rowid"&&!a.some(f=>f.toLowerCase()==="rowid")&&(a.unshift("rowid"),s.unshift(G(i.snapshot.rowId)),l.unshift(i.snapshot.rowId)),p.run(`INSERT INTO ${N(e)} (${a.map(w).join(", ")}) VALUES (${s.join(", ")})`,v(l)),sn()!==1)throw new Ce(e);let d=U(i.snapshot.rowId,n),c=Mn(i.snapshot,G);if((p.exec(`SELECT 1 FROM ${N(e)} WHERE (${d.sql}) AND (${c.sql}) LIMIT 2`,v([...d.params,...c.params]))[0]?.values.length??0)!==1)throw new Ce(e)}b(`RELEASE ${o}`)}catch(i){throw B(o,"restoreRowHistorySnapshots"),i}}function vc(e){let t=e.affectedCells??(e.targetRowId!==void 0&&e.targetColumn?[{rowId:e.targetRowId,newRowId:e.newTargetRowId,columnName:e.targetColumn,newValue:e.newValue,operation:e.operation,priorState:e.priorState,postState:e.postState}]:[]);if(t.length===0)throw new ft;return t.map(n=>(mt(n.priorState),mt(n.postState),n))}async function ys(e,t,n){if(t.undoPolicy==="barrier")throw new Error("Forward-only cell history barriers cannot be replayed");let r=vc(t),o=r.some(c=>Z(c.rowId));if(o&&!r.every(c=>Z(c.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let i=await te(e);if(o&&i.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);if(!o&&i.kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let a=ve(),s=new Map;for(let c of r){let u=s.get(c.rowId)??[];if(u.some(f=>Me(f.columnName,c.columnName)))throw new Error(`Cell history for ${e} contains the same column more than once`);u.push(c),s.set(c.rowId,u)}let l=[...s.entries()];n==="undo"&&r.some(c=>c.newRowId!==void 0&&c.newRowId!==c.rowId)&&l.reverse();let d=k("sp_replay_cell_history");b(`SAVEPOINT ${d}`);try{Et(e,r.map(c=>c.columnName),i.kind==="rowid");for(let[c,u]of l){if(new Set(u.map(E=>E.newRowId??E.rowId)).size!==1)throw new Error(`Cell history for ${e} has inconsistent post-update identities`);let m=u[0].newRowId??c,y=n==="undo"?m:c,g=n==="undo"?c:m,h=U(y,i),C=u.map(E=>ee(E.columnName)),T=p.exec(`SELECT ${C.join(", ")} FROM ${N(e)} WHERE ${h.sql} LIMIT 2`,v(h.params),{useBigInt:!0})[0];if((T?.values.length??0)!==1)throw new se(e,u.map(E=>E.columnName));let I=u.map((E,O)=>V(T.values[0][O*2],T.values[0][O*2+1],`${e}.${E.columnName}`,{textEncoding:a})),x=u.map((E,O)=>{let q=n==="undo"?E.postState:E.priorState,Y=n==="undo"?E.priorState:E.postState,X=I[O];if(E.operation!=="json_patch"){if(!Dn(X,q))throw new se(e,[E.columnName]);return Y}if(X.storageClass!==q.storageClass||E.newValue===void 0)throw new se(e,[E.columnName]);let le=ti(X.value,E.newValue,E.priorState.value,E.postState.value,n);if(le.kind==="conflict")throw new se(e,[E.columnName]);return Object.is(le.value,Y.value)?Y:V("text",le.value,`${e}.${E.columnName} JSON replay`)}),S=x.map(E=>zt(E,G)),R=I.map((E,O)=>Qt(u[O].columnName,E,G));if(p.run(`UPDATE ${N(e)} SET ${u.map((E,O)=>`${w(E.columnName)} = ${S[O].sql}`).join(", ")} WHERE ${h.sql} AND `+R.map(E=>`(${E.sql})`).join(" AND "),v([...S.flatMap(E=>E.params),...h.params,...R.flatMap(E=>E.params)])),sn()!==1)throw new se(e,u.map(E=>E.columnName));let _=U(g,i),A=p.exec(`SELECT ${C.join(", ")} FROM ${N(e)} WHERE ${_.sql} LIMIT 2`,v(_.params),{useBigInt:!0})[0];if((A?.values.length??0)!==1)throw new se(e,u.map(E=>E.columnName));if(!x.every((E,O)=>Dn(E,V(A.values[0][O*2],A.values[0][O*2+1],`${e}.${u[O].columnName}`,{textEncoding:a}))))throw new se(e,u.map(E=>E.columnName))}b(`RELEASE ${d}`)}catch(c){throw B(d,"replayCellHistory"),c}}async function Pc(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,newTargetRowId:s,targetColumn:l,priorValue:d,newValue:c,operation:u,deletedRows:f,insertedRow:m}=e;if(n)switch(t){case"cell_update":await ys(n,e,"undo");return;case"row_insert":if(e.importedRows){await mr(n,ds(e.importedRows).reverse());return}if(!m||a===void 0)throw new K;if(typeof m.rowId!=typeof a||String(m.rowId)!==String(a))throw new K;await mr(n,[m]);return;case"row_delete":{if(!f||f.length===0)throw new K;await pr(n,f);return}case"view_create":if(o)await Qe(n,o,null);else throw new Error("Cannot undo view_create: missing view definition");return;case"view_edit":if(r&&o)await Qe(n,o,r);else throw new Error("Cannot undo view_edit: missing view definition");return;case"view_drop":if(r)await Qe(n,null,r);else throw new Error("Cannot undo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be undone: this operation is recorded as a history barrier, not a replayable change`)}}async function kc(e){let{modificationType:t,targetTable:n,viewDefBefore:r,viewDefAfter:o,affectedCells:i,targetRowId:a,targetColumn:s,newValue:l,operation:d,rowData:c,affectedRowIds:u,insertedRow:f,deletedRows:m}=e;if(n)switch(t){case"cell_update":await ys(n,e,"redo");return;case"row_insert":{if(e.importedRows){await pr(n,ds(e.importedRows));return}if(!f)throw new K;await pr(n,[f]);return}case"row_delete":if(!m||m.length===0)throw new K;await mr(n,m);return;case"view_create":if(o)await Qe(n,null,o);else throw new Error("Cannot redo view_create: missing view definition");return;case"view_edit":if(r&&o)await Qe(n,r,o);else throw new Error("Cannot redo view_edit: missing view definition");return;case"view_drop":if(r)await Qe(n,r,null);else throw new Error("Cannot redo view_drop: missing view definition");return;default:throw new Error(`${String(t)} cannot be redone: this operation is recorded as a history barrier, not a replayable change`)}}function Bc(e,t){let n=new Map;for(let r of t){W(r.column,"Column name");let o;Z(r.rowId)?(bo(r.rowId),o=`primary-key:${r.rowId}`):o=`rowid:${String(M(r.rowId))}`;let i=n.get(o)??[];if(i.some(a=>Me(a,r.column)))throw new Error(`Batch update for ${e} contains a duplicate row identity/column target: ${String(r.rowId)} / ${r.column}`);i.push(r.column),n.set(o,i)}}async function hs(e,t,n,r,o){if(t.forEach(c=>Ae(c.rowId)),!p)throw new Error("No database initialized");if(Q("Batch cell updates"),t.length===0)return[];Bc(e,t);let i=o===yr,a=i?0:je(t.map(c=>c.value),r),s=ve();if(t.some(c=>Z(c.rowId))){if(!t.every(f=>Z(f.rowId)))throw new Error("Cannot mix rowid and primary-key row identities");let c=await te(e);if(c.kind!=="primaryKey")throw new Error(`Primary-key identity cannot target rowid table ${e}`);let u=k("sp_update_pk_batch");b(`SAVEPOINT ${u}`);try{if(Et(e,t.map(y=>y.column),!1),!i&&r!==void 0)for(let y of t){let g=await en({table:e,rowId:y.rowId,column:y.column});if((g.storageClass==="text"||g.storageClass==="blob")&&g.byteLength>a)throw new Fe(e,y.column,g.storageClass,g.byteLength,a)}let f=new Map;for(let y of t){let g=f.get(y.rowId)??[];g.push(y),f.set(y.rowId,g)}let m=[];for(let[y,g]of f){let h=U(y,c),C=[...new Set(g.map(E=>E.column))];if(C.length!==g.length)throw new Error(`Batch update for ${e} contains the same column more than once`);let T=p.exec(`SELECT ${C.map(ee).join(", ")} FROM ${N(e)} WHERE ${h.sql} LIMIT 2`,v(h.params),{useBigInt:!0})[0];if((T?.values.length??0)!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let I=g.map((E,O)=>{let q=V(T.values[0][O*2],T.values[0][O*2+1],`${e}.${E.column}`,{textEncoding:s}),Y=q.value,X=Kt(E.value,Y,E.operation??"set"),le=X.operation==="json_patch"?ur(Y,X.value):X.value;return!i&&X.operation==="json_patch"&&He(le,a),{update:E,priorValue:Y,priorState:q,prepared:X,storedValue:le}}),x=I.map(({update:E,storedValue:O})=>`${w(E.column)} = ${G(O)}`).join(", ");if(p.run(`UPDATE ${N(e)} SET ${x} WHERE ${h.sql}`,v([...I.map(E=>E.storedValue),...h.params])),sn()!==1)throw new Error(`Cannot update ${e}: row identity no longer exists`);let S=[];for(let E of I)c.columns.findIndex(q=>q.identifier===E.update.column)>=0&&S.push({column:E.update.column,value:E.storedValue});let R=_n(y,c,S),_=on(e,c,U(R,c),cr(e)),A=U(_,c),L=p.exec(`SELECT ${C.map(ee).join(", ")} FROM ${N(e)} WHERE ${A.sql} LIMIT 2`,v(A.params),{useBigInt:!0})[0];if((L?.values.length??0)!==1)throw cr(e);for(let[E,O]of I.entries())m.push({rowId:y,newRowId:_,columnName:O.update.column,priorValue:O.priorValue,newValue:O.prepared.value,priorState:O.priorState,postState:V(L.values[0][E*2],L.values[0][E*2+1],`${e}.${O.update.column}`,{textEncoding:s}),operation:O.prepared.operation})}return b(`RELEASE ${u}`),m}catch(f){throw B(u,"updatePrimaryKeyCellBatch"),f}}if((await te(e)).kind!=="rowid")throw new Error(`Rowid identity cannot target WITHOUT ROWID table ${e}`);let d=k("sp_update_cell_batch");b(`SAVEPOINT ${d}`);try{if(!i&&r!==void 0)for(let S of t){let R=await en({table:e,rowId:S.rowId,column:S.column});if((R.storageClass==="text"||R.storageClass==="blob")&&R.byteLength>a)throw new Fe(e,S.column,R.storageClass,R.byteLength,a)}let c=wr(e);if(Et(e,t.map(S=>S.column)),c!==void 0&&t.some(S=>Me(S.column,c))){let S=ec(e,c,t,a,i);return b(`RELEASE ${d}`),S}let u=[...new Set(t.map(S=>M(S.rowId)))],f=[...new Set(t.map(S=>S.column))],m=N(e),y=new Map,g=qe(u,{kind:"rowid"});for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT), ${f.map(ee).join(", ")} FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[]){let A=new Map;f.forEach((L,E)=>A.set(L,V(_[E*2+1],_[E*2+2],`${e}.${L}`,{textEncoding:s}))),y.set(String(M(_[0])),A)}}let h=[],C=t.map(S=>{let R=M(S.rowId),_=y.get(String(R));if(!_)throw new Error(`Cannot update ${e}.${S.column}: row ${S.rowId} no longer exists`);let A=_.get(S.column);if(!A)throw new Error(`Cannot update ${e}.${S.column}: cell state is unavailable`);let L=A.value,E=Kt(S.value,L,S.operation??"set");if(!i&&E.operation==="json_patch"){let O=ur(L,E.value);He(O,a)}return h.push({rowId:R,columnName:S.column,priorValue:L,newValue:E.value,priorState:A,operation:E.operation}),{...S,rowId:R,value:E.value,operation:E.operation}});for(let S of C){let R=w(S.column),A=S.operation==="json_patch"?`UPDATE ${m} SET ${R} = json_patch(COALESCE(${R}, '{}'), ?) WHERE rowid = ?`:`UPDATE ${m} SET ${R} = ${G(S.value)} WHERE rowid = ?`;p.run(A,v([S.value,S.rowId]))}let T=new Set;for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT) FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[])T.add(String(M(_[0])))}if(u.some(S=>!T.has(String(S))))throw st(e);let I=new Map;for(let S of g){let R=p.exec(`SELECT CAST(rowid AS TEXT), ${f.map(ee).join(", ")} FROM ${m} WHERE ${S.sql}`,v(S.params),{useBigInt:!0})[0];for(let _ of R?.values??[]){let A=new Map;f.forEach((L,E)=>A.set(L,V(_[E*2+1],_[E*2+2],`${e}.${L}`,{textEncoding:s}))),I.set(String(M(_[0])),A)}}let x=h.map(S=>{let R=I.get(String(S.rowId))?.get(S.columnName);if(!R)throw st(e);return{...S,postState:R}});return b(`RELEASE ${d}`),x}catch(c){throw B(d,"updateCellBatch"),c}}async function Dc(e,t,n,r){if(W(e,"Table name"),W(t,"Column name"),!p)throw new Error("No database initialized");Q("Column creation"),ul(n);let o=`ALTER TABLE ${N(e)} ADD COLUMN ${w(t)} ${n}`;r!=null&&r!==""&&(o+=` DEFAULT ${dl(r)}`);let i=k("sp_add_column");b(`SAVEPOINT ${i}`);try{let a=await j();b(o),ge(a,await j()),b(`RELEASE ${i}`)}catch(a){throw B(i,"addColumn"),a}}async function Mc(){if(!p)return!1;try{return p.exec("SELECT 1"),!0}catch{return!1}}async function Uc(){throw new Error("Reload must be handled by the demo host so it can reinitialize from the original database source")}var ji={initializeDatabase:Rl,runQuery:Nl,runConsole:ql,executeReadQuery:_l,getCellMetadata:en,openCellReadSession:yl,readCellChunk:hl,closeCellReadSession:El,exportDatabase:Wl,exportTable:Fl,fetchTableData:tc,fetchTableCount:nc,fetchSchema:rc,getTableInfo:br,getImportTarget:oc,getPragmas:ac,setPragma:lc,updateCell:cc,replaceOversizedCell:uc,insertRow:dc,insertRowWithHistory:fc,importRows:Ec,deleteRows:bc,findDependentIndexes:fs,deleteColumns:Rc,createTable:Ac,getViewDefinition:nn,validateViewDefinition:Nc,previewViewDefinition:_c,createView:$c,editView:Oc,dropView:Lc,undoModification:Pc,redoModification:kc,updateCellBatch:hs,addColumn:Dc,ping:Mc,refreshFile:Uc};self.onmessage=async e=>{let t=e.data;if(!t||t.channel!=="rpc"||!t.content){console.warn("[Worker] Invalid message format",{valueType:t===null?"null":Array.isArray(t)?"array":typeof t,hasRpcChannel:t?.channel==="rpc",hasContent:!!t?.content});return}let{kind:n,messageId:r,targetMethod:o,payload:i}=t.content;if(n!=="invoke")return;if(typeof r!="string"||r.length===0||r.length>256){console.warn("[Worker] Invalid RPC correlation ID");return}let s=typeof o=="string"&&Object.prototype.hasOwnProperty.call(ji,o)?ji[o]:void 0;if(typeof s!="function"){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:`Unknown method: ${typeof o=="string"?o.slice(0,256):""}`}});return}if(!Array.isArray(i)){self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:"Worker RPC payload must be an array"}});return}try{wl(o);let l=await s(...i),d={channel:"rpc",content:{kind:"response",messageId:r,success:!0,data:l}};if(o==="exportDatabase"&&l instanceof Uint8Array){let c=l.byteOffset===0&&l.byteLength===l.buffer.byteLength&&l.buffer instanceof ArrayBuffer?l:l.slice();d.content.data=c,self.postMessage(d,[c.buffer])}else self.postMessage(d)}catch(l){let d=oe(l);console.error("[Worker] Method error:",o,d);let c;try{c=Ti(l)}catch{}self.postMessage({channel:"rpc",content:{kind:"response",messageId:r,success:!1,errorMessage:d,...c?{error:c}:{}}})}};})();

  • d-J*EzKsuhU(lilX_2x@1?3BFr8=AcvD4rTyQ(afbmBUyc>HXTk7W@@f9ey1Y< z647bdBI8L1X6R+>%rz==yvU5eXHI zf_~yTlpXHEc-mF0M7-2d^U8oc3g-ryr`A}J2FdI?0kC}VqkWOm;`q7{Z>bI z+A@rR$?LQFKL{7*`egPmkR@IGf(7CvHYjRQZou5-*8Ry4))Pqg$vfI2qSkX0gFM7o zFi;8jc;dOZA+~ed1}>(Au3`ccNnylkUjoF5!?GYXT;3BO2Jdw9&TO&>#U380me2)W z^e0{v)z9|15#m0;I|I=btRFggWPWtjFYO1Rn_$}QW;q%m?k5t;Qu-l z3j+C;3#+dFL%b}L>(vQqOd{RbKJ!9IV*%ui?c}!040kn=^gIo2?9j5pt< zHt&sRjUrRcPW!--S6@vwBnNGdC?_g#I`iv=x%5CV#n~jIQK9d`L+7(d(W`c@*g!t9qqKeTw#5jsW zVLN#+64TntE)QK4BqedMn(9s2oRZuu_jL9sX z%P}Tm9+raVg%Cjrs;VB8lNgPQB4Iof>If>?vFrW@W`8q_U!7Inr2B+^GBVk%87ZQyZi{g$r;TCEj=n z0Rgg8MS{E=<|l{H3e)MPHaz-XNt?sS>>!oyjRU85u^b2>1KYqi((hB2>)x!TC#vsp zky^Mf>%SRn+>I9A2VMvcNUDzjVOwBIb1!3)vi_Syl>boO+d>~l!GX2d6wP~1$KGeS z$Jhh=u&bs)sZHqxg(D)wwT;F%?U-aj^Vht{agu2-5MQuqM`^?6o$6l7wHor>?{B)R zIpECh`R>F=)~7iK?_Lfk@b2_BbV-m2C)Y}J)*1#`4R9Qdvra;Y&tN^;;6T4tvd26# z__q>2Br|fGQi;q~B%FF6L84dBQ`%!$~apclw;hB?wh(t;Cuqvlm5kzp) zpdypQKNwTCPip84K&5X1H!_vXw7106B@Z}yQR15yaeo~$ngq6KbwSe|unThZp9b*7 zvvH%Cj)TrT+7Lr~PWaH@iAn(?Lh|Ym(|m|&t^vyO`?wBxoOx;1mdXf6VY;#{Wb{zp z*t_Vh_c3boIr|yA+}aKrnz)ltl?0y1MmWcWPIiwDQ;rrR*Iy{c`OF4Y&1jI0CBEi$ z2Jw!=ohFptTv~^i#&ZMVT|9W-kqZu>FyIQX$)12+1~G)jMKXn5>=6aRW*6ReQgxlV zHRcW#w@|`*LhXnV8AxzaisSfgmW^Ia1GJAOluPmOjPL^=5@VDl;er7SZ>rWW@$$b4iUhRP>WEn%Dvgj$ml?& z{94)*%b-{Zx?ekG^vZxl9GU16BTjDp(E+TY5t(@8r1TyAJyyIe~Q}EM2 z0yK;VUrj3o+e12nY zXqB>;M5n`DgG8JOtl10Rgjr$x{#fpbeB~#Ap8))r zsBZ11i%QKdiDFd>VX@E8$ZhyV9(DwfEbnEJ1oP^pu%Q?+gonCRr5uEe%v!Z*{~Bj7 z;(ZwM?`Ydcpk%{+yt9gLRTY}Xa!mp+n?QkTme_7vxY@=$@_&hy2wb7GhMX)V_Qw$+ zrxJMuLM9LVS5&lCqi%(m=|P9KTcGeJ&*r94xdRu2!9b;u#SpgjsmxrlzC`4B02yQ! zw#?3(EPvZ_a?(2>UUGdWzfTNfH%TZW5@u-JOe>twc-!TnPJfR+Jn)dSs@KNL>i+O@ zi3!UN5B?rj83e>frjvO?5U=zpD`dY9R87O$B91i?bWwO;!3r3f&me;K>L$YLY?HZZ%r%C5s%K3SvuZ7$iZ9QirWxVepdIEbbRza%jdyMa zbU_Nx3h3}Q>7VLjGZ!J^26!GQL3Cz<1w<4)My&3qx_+KL6mMd!EyHU@_*)DGmsZPC zCMfP9e=apIjK)v(ypgg(lj%n3cQ_g0PxVP7#&VDI6%t)jSio5HnO>#NGk*PNSNOv{3m91kK~S0ta}gV6gS?1<<>sfx|u;K94{TT6b(5e$0+#k zqRWliL;9$p|K>reaqy6y{*_O!JpAuJOEF$Qth?0(M(1I@+72=F6Jq$x?M3CrcR&Bv zF9WX?tu(Ta=u-kDN9~a^+G$8M2Sy_ui3=|Q(B4n)*{`g^qV!#h0SHM{xpsCcYaRR- zsv--T!{%w1#Q__iM7WgWgPY(1F36{-^+WbpPFm#X3!j8Ro>C^dE+ zAp%uo?Drp28h_89P&O|o`(3+pW2=nIj|M5$a?zKgq_egWvY~ylkI}zECO>Eqy zWJ1dTxLI~5XOx;%X`{1ET@AwlLfXecyVB0 zFtUH3Nyj7#W!M==rMzkU>V%%@NdKIunF=Mp+te1YDTojVam76lUd5Fe2iXZIDNafr=GHjCPssJ z+Vi*e>Vs4=evCU~`UFSkD@Hh`-{|mX7(-9$KX%k?G1i^b&v!(J8n2wxXE@pi8>xNz zXkW&YARxs}G~jLwz~cG0F^vxsJ|VC#qTM0#oB=O0uIeLC=a-u-7x*UdTEb?%7pdjP z*<6`s*lcF_^Ndr5Jd@3Rs_vB0#BaMK8PnQgR|pN#1*iX()O|k~aSU*U7tz%+x{~`> z{G`uV$NzWW(r@$qrlD5EEZ?UH-Whjq^yH*2c~qP}nc*iMHGZ|xGb8H_dJ~x}>22xF z*mz3M$lDe+T`^^B%d>}Lym?A5(!>V1iC9eIf_!bXG5ZUB%=j(JBj+|=cF&oPEdwH9 z&Lg4iu4a#m%YX6^<5yqc^1qgv`+oIw0Cd97wZ+zsXMOcPFtu=d>uN|prsM(YV~N@# zmZ)L(6kKeyjq;?F_#s_Erm+KUMHZ-wsmZnE3srLcQR4c=9~)1*5_1m$kaQYv0Ym{UMS_{+1mh^_ zUTF+YRQhHldY4}*74cTyqm8Qy)Xe&}CzW|O4N&skab6aGS=5t4EQG>Bp{Wu-jKXMa zb9yoY$2>~xV?g}gNvBHhX&Z)y_{_{^Z2($0 z8)$@6JfmF-!4aYRF6-5dy(ymbF`HIU0aTWqF-O_;8~RK`ct3W_ZYVZf13bmkfBVNX zEBl5R1*rI-y%9vp32`kvr4}sFdaQ#;MD(Z5i7~7%Yg8a)G6Cx(i9S%~1zrrnBsA50 z$z%>Pme8?yS&(7Men6=WS2wdKxGwlnpRs}ecjJj!L0b|lpWK;$p$X%}DIpSfpBJuL zFIyxpynKD%Kr`_EPUEV9o^;opEPSAfKV!*OJu9&JmZb3eLnavd%O3|}dPk-s3v+gl zm_UdUs8>X)xjA<(2Qt;v!bMyx=SqifgD9Nq|EjE&%xrHC2&cMhyg7)hd@H|6@9;&P z)y>+WC8ZBZQ) z*oj@4?kdlZppAI0MF zN9;pxn?sIZBz_AC4*-5?@S5yv)nasFwd?k8xEj_ZDakIeWoGc24fi6|w0!e~SRK$>_1?9VFb@Dvgp! z#DXh)Az-G!Zt3%2kvRbrFrfjzArC7D6$v{J*E#i)u`SMHi5l^$0jqr8>Gb{_Grix$ zWy~Jc9Jpo0VTg{D7rwv``lMSG%KCtWKuvN;#1Q0`b>=^@*x)EL$ zhV`V=_*0r^=w*FLK)^#??Aaq zu717?AS4W7vRIFC&;AbAdWmeh``^dqWqnARJ0C8${J8xx!|MOQ#;~Y7c)A*wp>2(00m4%lD9(XiOjHM3hVg^M|zF8?so66c7e9?vR?o8cniKU zc`vfv%tWDz!khTOxG%0N4beAu1kVSvt41hSNiDe}zva-k+l8xSE~r-}%K%)=QMF#d z%V~h18n8&Ds%g^zEICxQ>g4_m?sx1yec#;Ya15anHGia?B%;2{@vlT(>t8x+`&F=X zn=msZZ$EqK&ZbHGF>&Y7f1z!1U|fIVo-YrYO7)3)%0Y;D+zcim#c}wLNzVeNoLo@_ z?<82uUt@8jUc{g$ufP#n1s#G*h>)-t2@c8iL6Ka$Co3@#R13aPd;(p6jpb64JoCC1^wB4QjqeIjm{7+`xY$6_cT#gP1Hv))ZN9JWBrm=5F4k#J3$ z<%jGTzbeslv%(+T46p!h2XpM^`ouU~bQrQ|3$u&j{$o49PXeYqm$v1dkVL^HF(|1m zAXS9oBbCEaMW`3YRifX3S+vn4s)>%b({UT7>Ew<@#Xxw8Jjx0!UmQe2gL~j_l!+WG zChbJR?RZD2oMvXqMf^!tdU(567HkqK0sH36l<8dx39Zg1d<{ZVo01c-Dq1`PM4UoN3yw=hQW z3Y|H=?67bJks#%Wi5+dHjBeDhW5trylApGmfLG{A=`supQ=Iu}1x}%P=cRf^1+vX? zc7vVv3bzkVa4&P5dEpxvXDw-i0_bB*r%ncS5Ekn_ms5~US@Xw z!PlCrhe5t^HRT{_wgK!}&eH>MVQgDytc>b8i9vMXkVqbgKT*QV2H0c%^BY8kT!(?elm!U+&SQnG@;(=KnDi)oX{F{LmzRT=vh*Y12^FtX( z2Ncvsy<^N&2O^)n%KaoTI6j7D99wey#FEZ*B&`@DFwRhk3b|Dbe*KK z%Ml?5_@IqL+|O8hHj_PgKjjHzNmhfuu3ginJW5=3a_5y;ZI@EE{92Y}8#NUqI?6u- zKUkVII5}5B26qhCBoW_?8p?xw9f{(KR@I8%3Xzduuq{-evkA^YI{Xk08EMA)0L7a| z{E$#LZ&HvLYhCK++BTw^&k_+emeOk-dP%l}RayG-&mnndoLxYnD2^@&fk2|xh-GvI zgZup%O0jjH)YRAm_(W}}G+QL><`_$Ac8uoIZi{FPUXb^pZ(Aaoy`-}1LqrjDIj58~ zJ6vh5?Y@R0Lcj!HB=zg;&{TmY~Te zXh|j`yU^aPMT8B>=9u)Z?ADC%?V#3pMyn*@u6#qquB@&T&c?#S4@~QD4tuJ@IrOOx zW0BkA&Yc;&*azzq$xCuFQsHdlK)Qccr5F#nJvTV`f5h$a1(MB35=$iZw-Y4i{NXqe z*sPy)(~K^?i)ycZ49T>gVeguo6^vYm!NQ(mb;56^VL9;kS5nFe_ud41!GAUv3%(y4 zwTtJP>f2C|qr|YS8M`w*BLX3e;4vtdEnpHd7ybeD?ERP`>i8&?kIu!G2BwcVA~v>x zimBN>Lan7b7{8DEb$LqU>Ot&?w2Ih2p@h3?;w`fVk%dC=P8#1gj~%zcr{2)JW{lcA z|0JdB2|W;adsCE(7IPK}Mmy_&*$URNa_J_9-@$gUBW{i0kj#OLt@|M$7iADl$=FY4 zvMZtZnCS;D-qK*Y(zMF01c6R996r zNm6KF-o~L>BhN`W_W%ywib73Kx6S~S#41UE$YR0Ejg?uRQO=y6DaPh3Pga2B^)y0y z8zu2d;td=Kgt+Ig!kUlKPaM$sW)x}AL3%L-A(ElugF79;S|Daf|Gyy=r2-9%HC8mK zzVT!D z@gqFeN@I!i167X4Ei7&v_3OB??tOQWaaF!&a!K%Km-bSfzs0iOWrmkN4uj__v1bdd zU6Q!24p=sAa|*UiyM8UJ$xEC0Z`!n9U38{R+k6{O05P4-pWC`Z1r zw$L+N-DPZlLr*ta3q9@|&5=Ry{Wgtc!Nou0y%BoHg5G%>Yed@gjfhAh)mYiHdP9*@ zGORMfE;fLlXHtDk5`{&-R9;Tj=Zr54J>v@#d9p~8Zn1Aj)@#$ypcyu`7y{|(&$}ob z*m;xEc zJJ4!MQFi~YI8+9{oK|+NjK~BTFiTGxoIyD`P&eRoPId_iGxotLVvO>FQ|tJvr+1Bc zn`=%XQA>)=4*%nAd(E@WH5aklJg~)V=k$RsBe^f_Tt_=^?*s^m{BCr7PeiiF#r}Cw zyJTP}C6dov#`z^BeAMYt8q3;^zm4(S=E!L`t{CeXt)6S#I@U8@{m}U3SkFTB6XT1q zp5pHu7=zrzDn{MPWZC9Ya3=PJ1j<>zBQ$=857;q^5X2lw)$M2J_*o9LO|z(rI7vT1 z*!xYEGVge%cwen=FXY?hzh)w!c#ihWF%3{Ai@z}$tFDEtpN&-)95p8SJS8K}Mynmh%V1l8W#1z? zeP?6UCky`-tLD3CN|WFMC*Te#dvxgo-*S-~?>m0+igC%go+{%<=Zq)} zOv7*i8zI_zUl?>0X`wS6>kik6oSc0e8XT+kFW9eb_n2{aS;XC4#M;~g(<}r0naY+q zB0{T-Hi+`YCY{s8UmYVZU!^pjaAY<};Gd)sKyAzXM7cB}yo!AwQ1rOvV@v~qD&S=j zzTj4J8pPEayl>^S;C(@)SrJFF!jHa8rU#J;wGxGb4GWfE-sJG6&O&i=Aw(?ssU4i9@|&SB@K??0j|jgyUs&+}Y#$t^NI=jdK})qbq`I9C`I2mtKO&&q9h z*h$mHmA;r{qyVhu)QU(Nnr67r7<#@ZGvjIel0Q|m8jxbI3UGfB<2`AVpYO>lsslws zS&$8;6iQPfi;2~)QQOMvK;H(|`)kIc^F0NN2J@Oo_wO?M#gx~Z#pBr~EzFsV^Rz^o z@P9=UPm=K_&VgG8w3YvcZ*JwA*<^prRtJ~V@czrv-mtdv*NivL_hkLc2x{0UV#@s= zX~NZ3{xnUzR-RfiTOE;lD|Lz*%%;*x>UrmB-VwZS17J3wqIt&X@g6-T?Th%N=f6JQ z^L2+~d8e`dLeK2_oDT@A9i~J+NadUul-?MkY1yzFdbhrB%07E+NA0fn;-$ya6izFa zlhruF0VMq@Vk5|VH*$^NlxwWOox8Y~Em^u4U@!HvNJ4l;LeJoLui0Q`_&6UdJ&@=$ zA(ytGy9!Q7g$ywnJ`6s{x7&=TCU`vB=Uc2pV~h(9j5xpV2Xf;hL z^zR*D1SWb$IZ|FWel^i^$2QVka!6i>OT-kVNwza z?fe$R2pWHpL>73UtYZIn8zh*WbA@2nZW(1ZD|7VahsJ@X|LNC?((iH1!) zKLS~4;2n`2<(*4-2gz2a3?d4!v%F;Dy#;fHhP}RxjuR!0qipT%#>HixEXQkK7}u0} z-gA8RyfI;tXOh}w)J^g%Q1=-xPx9R4c=matWHN%*mYv2GlRZ;szGbN}{r>-i+`Ag@aefd;RRp2O56-T}f&30i|5-a%?t~~loD-k3BDK@b{VlEY@ zw3tc*2~%k`2ok#3GCf)dk{;f&0ORt-#N2{^M?i{LF}sL(lj}GKD(ji=iGR zU&Np9qQBJy8jc%*!Cg)3IS<=jkHB=4*#DH4bItpMd%g>~UrgQU_t>wJ!cqjq@fKIr zA(k|ZlRaHrMf9ILEt5?vIhq&9sdQp2Vw^tS^~ovZN8-a;e2g)b3E?p78FIw9ZK`K< zksR?PnWZh~A|{N+)yV&9CKpitxRb$_Fjwy z!^b*)h@mKx$IV~fw%^72N|Je(ygEQBZ(3iw-|I4~=9(E5C)ttt<~O9Obk%Hmy6#hWyIs z0ObVpJIZ{i9Nj}w`MmWjYJc9u-$DXgPeA}HD0AY+q?sW>lnhi@Ye}7VN+F3dE5EFL zNbtWYO>xW%86&29(&rjP;7T!@6DI7kOxT@5W(t9HV((qXqHJ?y^>o8OPbT#hgfRS@ zevD<)J(uRSY_*{L0!dWIKynLe7d1p38ODL>o{PswrHx;jFJ*-924u(RHHe{qB?9ez zNOx~S*A1h*!c&pL5f2`tak?k#>mk-gvnm>!m0MQOz}Y>792vW1UCgOM6YX`8qX8s8 zP%OCe+xV}KGV+buKj|rso3{DCBKK1MdqNkXw=(pB;MCozeZfu{yF0o&GoY#b1 zM?oaJIeD#@rE)t>>*E%&KDtrvqevW5gWx|gNfi4nXDjy0xF_*^(S*hpMPu8r*L~qP z3Ify+WT^ysymTOuULni0`oD7E69Rs4N`x^?tXu5Eg$7x-LPl4WCof~$Ym<62fJzhy zXL?k##&DgH@iosxNAz`L_SZaPjp2XFP061(JQ(qND}Ae}o#d;tN_+3Z%Ofn>_~9pd z;hbI=wggg3JiJW`+ieHL|6}dl0hyMUG%(#zo-F zUE9xo9>3ooJeYIN`@GNl{d&LNulwuu#zY{pQ2Oc?+NOT)?9QPse1t6BiIIz!BBjJmOnDkflbd1cNufdw0 z9If384BJcEWydfUj!I18=X`(^ToDkfky{1f|4cMpGh{9jRejZ6Hzm0ztfzCZT*98b z2oI8fb*eO^#t0gJZ)$xRxmHG0o%|n5JL0x(#F3tAV2427EPLUlZ7S8_pXEbqOOaCP z(+zJc$4C1-?=^#k(pC=Yxtr;GU~(V(d?RBe97Qq@WOm+OQ<BY$9`2A~ zgxii)GxGGf*($ zA##9rw3VRVbk6v)XY-6;C7E_BQ&5fcZ^>7m<>|xJ>9iF4z$6A<%%a<|bK7%s!nYIH zaez8jRf{v*tJLUxeeBS@ekA`ocCMN3*s-Rx#pD0IN{@!^pyD6hma0h__TwBu(&0bSu)&5-8ZVXe0{JxGk<)!RMNVd zv7?4%S7U7`hTlpd-a;tsSjIhTQR3M1wSygQD(2lAcvs+*$F+z}Tjt~EW{G@M;yU=| zbHep>0w zzY>2LsTy_=TI->l)Ag{K{?7!zaytcbZs3(-hLbkZ9MX1%n$GK~z^1GRCJK(V5w!Gv z!#Pg0y`qn?6dm8G1=IB_XB0L23QI9U-{IKdd}V_p;fgDU$x3zfJ>%Pa8s)O}_m$36 zx)Xo*Qn>eB)||Z(#bDQtJQZds`+OK^6F{}Jv8wOodb%~~keYD0J|txn&)RJLYddY> zwRe#h+W+BRvyKp?xM5LZ#5T~f=%8A5xjv>(-j}{{f8txR<~DWoRmb2hp;ut;4EcdM z$o^E%U#X9Eci4N_%cG7i*#})TA~L(84+N4|BN7sMV3?4&zH_Ixx(=URB3gSn$cE@w z`zmOY#wv!|JOyo#3t>p2Rvd=fOt$oIdlbfffC@ToBts{1a?vpOqo^0Xd1v^d^u$^6 z!ef>`VIIf?!8>ikA)!WO1@lvRJC5IJ8#g~sFO9V z4LVV1@7cfH%IuxH5V{2dXB#$G2I-PrG0PY>S9TjVO@|=5q)`#@N^3-#b=6@t;>yTG zHM&5bXua|sb!UP88|(0Q)X4%pOKliFSXVQjj_N(ihyB9`@qHgX_8Brjo)hjwo^si2 zOIi{NOZrd=kTa{2Vhi(EB^8l(JY+VoURa&|v5sa!XB_Ly;}|X-1C{F)O~6 zB;FHVH8(`7kjkWwu%7Zo&Or-H)lJ{ZgLs#!{NXKPpuCUuzMo@(4vy6-4%xKPhD}{e zcYPau5_ptR4HdOB2!DgF=RJ8|MBzczf7IY4ccX32Cpe#0Izf{%D8O1KTh=q@%p(4u zMph}&b82Ms=Zba;`Uusvqou}LR;;-X3M2J2;Z(*{y**>gEi9T?_itgkMVK#&U@-Rs z%;H{VJW7$gv&6YJzBsj=dwCF9=h^{1%mxmAr#iGVb|mrQURWQQW zL}bU`BGwykpTJ6+M^$}U$nNZ;srA?Bzr1Q0qRCEcPWBw=|0y^S2Gzp-*66krw%g8_ z#_{C-W}Rdj_(uy)68s>cFjZ^-iJQpco?Isbdt+Gik)-mk)f3|?c5uoPgk8c(?L?^C zF+kV}ELSV9)qi3A{B3peTD@T4_0<2&`N5QN?PNBe;6qS%juW>`KdP>p-#>Cy)#4EK zi|h3MBeniH9n&qn%iS#Ys|>(_)i*7f>i!Hss=B$yXbrcZe$GRKJYb7btFF^CtmPBb z&g=A(AuHGxYWMYe(pbp>603y7GPJWL7K-uM4=9$^za>mSotyM z;RJRKZ?WA-rtw{`Q~q?eo*mXdw&I|UX&ffJYGp*6in>7`XMM6sO}jxK6cUCHNLA(a zOi@qVpx6hfx3s&wVk8r0NeX~ByI&Q1F`DWeOqn3E^ z1!~F7`bLXSjh>@F*<;^^)9PI{ck6&ibtHi*!3XEynafj_B0Y9eV0pd%urzO&rNXC^ zwMyckW|?}XIYB!kDPFz@3EAgfa?+TJ=H*(&OH;Lqv{~w!B7Ml94?piTGtMX&D~6*J z$dVj!x5>l&zMiKBO-qg`{qgr^mZ661A@>u1hp`gUvQ+vU9|?hrs?A=FyI9aIh+pJ! z9pD$nGruD&iu>LC!ZbmXj(r5RO6~tJHc?HOtA|d>z|`Aagv)Ftg1>z;dy9~>lWbBk zqZV5UJ6V2Xd;U2gBNmIgb8<|Kx?o?l-B$Z2O;zUg9IXB@SGP~Pgv9d1)s_VWITXr4 zA?wI5ZDwK?x*Q^9BB4-noy_(ACpwi_n*-OsdqP=n(brg$8q|xo=qIhEYt=LJ^bx)M z6I8qA>G7f8EfWaE*1DFf@8;=~+|y^CR*iTjJ($6ahW?X5irCl1L-^yqwFlKbm|t-U zbkJWFS28GNP|NS`L_3lS2Qjq*1KNmo&|&Rk4svTnrz)d=M}rv~*(0p-kMNUa#t0+NTzOhG(Sw(fI9Q7`A~gQ?OMT$r{BMo$UgNx4DX?(xrLM)_ z9a#JyRrsyCeud0JV;15l3(Ue0cKx7DWER1rmrPU{wWKU!T&n>`@okPZ@adoGgzHu9CGOcEHe9r)qATQW{p z-KLKY+0S&2F$lI@F5`^hrGoLaz=i&?DXd{FP4~gTE(n z_=AX&!gq^P@S*`wZTou{6)jtK;eBkA1Qbc1&r;(+f%m2lA=N7$CH8Y%drvffhbaRrl3 z4R>=UDMwu7AvH<;>sU~53uQJS?L`pr3f&G$ibOL7Zi= zwIm^S$Z~&5*l;8E)xqLDlOTb;FM~VL#H}Gf3(dNhEg_EOI_zTA>W#Z~eX6mc&Zg13 zgJ^VDutGG;-);IbW%_HlM`)Y++ZV~{>V4~<2RDU#W$r3?E-sSWq*^DIlY zgg>B{TdWH=suvf*DT+3#?-uD#Sto8(%NFbN^R|O?+j0Hdlb}RwJI6rLTr8!-5zIqf zSeKBc<`OEL8lqj5mrvn2o?iz_h)3a2q&TvzwVOH5ST+7JGETkvpg!Q@4}nWDnhSeq zfduRyU{AC#G_hFs9@sd(oT!5fLff;Zv#_bme?HxTS(L=LlwN=dFbQ&`sy+yhQ$-Ky zaoG-#ChhvU?dcZuj2=W{pls&Cc}0G(^MA5tZ<~vrl^PBc;FDqUI~nk)J08>%T~{E% zLa;If6{=ae7NlA6fC)N?IUX}j!>XC%qlU^5K>EFNSRR(h*Z}$Y$>q5JBw23yG``1q zeJb%GJ=ro^#8@^j}PgSRNX^* zlx4@N+`q=E%a`bN*2~{iKP@3RY|xwPt%q5d&^J|2x4zS|Q|)oXmQ|@5;n8QOx4?B0 zmQHOiVJq%neMTa)`HaldEmQHD3L0694sr3M= zpoH+a_t-N>UNvJDghqO~--MB&Nfd3VisRoGaB?9(;U8-;o`R8dtT7ka6sqpz;J7ep z-VE=|L#f-gOpgxx^j&Q=^$Y7>P8z57FVo}Qq1Z$Zz%yiL52Fyf`3CYA@VOE8V0_5W z7j|I87{Y+xVPIV)uox73Xs<*<%%pu52F~Dj^4Yj~3^s_Dbj2FP_0r;uDmZpy0H#ml zdKz~H*%mL;`wTzq%aBzHtWap1oGaofxCs#1LFuNn>b3T8PXj6Y<@Uj9#Bx0*{t2EH zK}dr~Qi7f05EYax395Lx{;XxQvOJ|9O*$XNe>96(V93br(g7(c0lZmkoHz^t3kz~O7IMwu zTIrGo*#>D5*YY!Cw2BD;NR(w%wu(=dNmYsXwu9Ja55g-C&5|e`^XSc0*j{kAW;6p} zPOvwsd^Ap}ys&YKhrdL3`}X$|>))qCv4TZXtILDM>+={byA=q7m<54>9Pc!UwP6`8 z_UC1tc=$ntsp#5`mw}gvlOlSE2WbW{URXeogn!`kQH*5*({U7t8{+9(w2H-AnaLl7D``%9Bk#s_kM1%-QC&`+#qwA+398Jc7oCD!aub4A_KIW)QY&k;S z%41^6OWC{;pQDV#P!}o<%sBD^aGblos$#&)<-x3^^%`ETT&dLan5=MdW z(x7(#BPQ9+xAO*!%Cs+vH@?507epGVP8gMWfIz@b_~dDLrd00=tW=)g(px1Jyae~K z@`?#eN`hIweQ4j>x3#WvX1idbJCJ+`9NLtKzX)yG$Ptp@=igJKr*|_54+Z z_1ET_C*FQ}f}jmi$(fB-owHbDcNqil6U!R33z1Or{wpG2nlS=I;PvpxG^$(J!dg$!$mZ#!vrt)E(InjR)Jfl|cO4|jLuL1$!khT)X~OhaH0 zT)DkZPQzn>*bQE$vGYV`^RS-N7nQV^vfD~&cRRY)D^&J+70ck`*tNFNkL<(!o&s(N-OG-%c4J`<;shn<{$NNWrQa^pCyVQ^;^mKi? zE+%5n-bd$`jDJ+u#>vX~IK52Fmme#9#1C4s_=+SLKS zl%SB}$!u3nB69adH{iE>GFD79rK&-i=mQmH_TQ{Xht&Qq8fG~@sU!oM`{S%dnxqLsTMz}JL6ZwRm+54-ofdWup!=)W7D!z z)rKeagh?Nw#$0!j^YR#q9ib#1ZuJH$7mY!38_ud-cp)WdP7Fx*Fg&TBM5V_@u9@C9RgD*BfmtHyXv0Nem_clZ3aUZ z%YerAineLACH+tqm3=PGhbDiG5)sI5yo71?)Eq`+cb8P=E&{SL6l$(!MC$mi{KHww zCi+jqv6Fgs?r{1DBvFQfha*rlh&fXcZ=-!l=vu_{4hJqChC2uB4qfZ)VUFFw@3FtM zrm^iSm_tVcLY}B`|E$Je|&~kQtcf#ZHvFo z0p}WY!_iNW%`!jnwVwf(B#3f6t~U*|vjc>#LGzwjrUFt0Y#X*}tK~V-ZDDp?Z%K@! zj&W4^U2igu1ny~PPc|bk+kc)9+9|ZHSbuj`QZr+Zm{T$(C$ngikKzV22qk8_%%{9 z*H@B+B*x`jIFDS5>7stAX-N-Uw{a~bN2H=xLe!wA^+BPHaHd3Cbm>lqy7X!Nnz7?v z?RFuQp)wp`{1TucZBF*8bS|_)Em5Pz=IJGaPRykvYxMZg-22Rd+<%{HeOjL~_=Tyb z8FY7XIis=P5bZ`@km76m)m6{vdbrFf(67en)O%IUGy0R(n#+3g@`dkT8}_ zEkFZ1c9-co$sqiZwSNSH$1Woa`TLNX`&mWr3_&~g+;S)7MH7rcd_`coXQ(z#VhuOa zUeY$@IYx}lEtioVJeoKRNK@Hpj2hf`V^TdnR=X9|*AtP!?B3=mDme^C=#`Ueks?V7Jr6`gZk5($LH6%u%TM&rKhO87xYwj({bNsu_4sE*&pOa|A#TO`4n_euG8zHb5%6wuhni1_q6mkFLbH~0kPmXP3FQD1TMt%A*G8fnj zMSt~Wyak$y040ljVyxC7RL{9w_F+uz(VI=Gx1GvN#q6!fWKV;EX|T+8_D%IblebA9 zMJFHL_i-+KZJ?RPEbm+BbB5d9DXA1lV&;vdT#E{J4;?OKl`A2ar2`BtxZp>iBz7qO zY>vw2EahOuz^t&Hj+0qc^TA>^=}Ow>+2AkSlM`WQV}v7w^{B@2&{Bb7S^_67Svi+| z`qO%{HP5E*gebe^jUwLo22vnLsr`Y{64lGEua|RW<(UxWWQP_W0Goj9LO>?jrOk4=(LPU*UC}Yay99RcF&V+4+f|*yrSQAf)?iBTBwxTWl$Dg5Jj$iMD)rU?dDoY)>!^z zolatW_!#POo`HSRbaU6ZRC%TD2>q=wsF>P!?lB6%x)0@?T?jUq?8wK3^E5`RaSC$f zyhVL2BIb}!#vLSBQV`JMN5Ea>2>Y9T87B=+VIrSEvcQ03Ol=yFyaw7SggR)j_AZ`i zl&QVkKe}bc=tii8UnTc<*DyqZn->oHpWwELvP*(W_w#=pKJco8zH!I6z8QGQf0=^7 zZ#LH$XbJ?K=8BRG%8G&|&xVOH7ebPT@|2j%q3;&WZ78BCymSu>B8}4cEgzD_ssXb? zOCEY^7$vF?W8wLhSQSqX_l9MC-h1_z;SX=PE#AFhL2k~5d-8KPygaI^uV+-%jITzm z>$`o_x*0>pywuk^=A{|8jalD!>X`L2ercJs;TJt7Z@AT=ZMdzEWkV?iiZ|qvQMeRU zY!2$37*(VQTUwvc^48GM^68g&>Msz(iY08pQ8WZwjD-yHB&7y<`;BLQ zE7)-`vD@2kYH$Qr%aL1V+N-+yLJESJ54M12TSTYoI(^H$f9m^-YXT(a}Iv0lGI=Ci@Dil=rhth){nSn zb?q0IWTg$nwXSk{VCu&RGN0ulcfXg2F)_7gFxe#Ordu&|0JWu9{b4DFVXL5pHp4Jt zwSfF-XNvZ<4YkxvCb$cR=q?BY+e^Y%I9rgI!*G<22T+&`D@2ND{r!}h$qwykTOu`a zs7yrA${rE-TcK*{;i2V)825!Tiixsyq-pnIA%f2rVsK_jHJP{c-#QYy5A{3Fg!`Ov z`wFS3yeA)JxN}I@+7ddSOb(Ep6&K5_{9aGzKqy0GA5kTQq;8uUUoR(bHf6GPiSiUL z{6mQHm69@uxkP4~>iA-f^W_0+;R!})Z?3W%=J=QM@D!;1Dl76pPGA zHP2MF;3YlEZG2ukdU1G}^W}|}J^up@7C=jEvV>zvK;K5**gEz4`mJa-sle;pb`mNJ zU5@x_C~SzflK*S87t=LL@EMYnASUW-v@wj;X9v#Gy9a{yZeHp768u|Q|< zqAq`|@yy&s{XgksCA$+k~kC{(IjhnZ+FRYJrY@yYDRYZ5GG zJ%E-WOs{!6Mhg0|=ffGOJGXSZUQ++R#PHESJ@aZtl7kJUqLs_aR#xO^X zuGS-a+{8f^Me688TjZ*`zr;Ar3OGKrdI_|f3(kuC@%jp>L4sQ`?YKdfy0xp(NXMdG z*~zFC71aV#3%^;YEH!#;>}uHPISQ8%gkvaN`U3Oa>lYXbSEOgsSqj%~2^=~#DSV)6 ztkIJ&{@9XKQ7>nRN~+bP;+GO&a)>;c`2 z>cv`pwt16IeYJY@%vX$&$JTDa`mzuJmWj9np%uLr)@>YXCiXi~^*lUVjZyRj?fjaQ z1OyqHlqlf+s0E;AzM@Bk=BH>`#ibCYRCVVoy3_p=%cv!BO0fYqGcM=!!^|7PC-@em zn+5e~I+K2&ot7pn1lfcP!p&*g=6m?kwZQj6kEcLzN~pQOTcRHb{KzQQJwiCK%7XmA>Nrn4jbme)S(5)Y2+W@Covpdz(ILbExTUoUt$XFgjH;UvxK#-I)dX4}4 zZ%DrA7aw1E+6Z>De`2Wkf^q+*;!~6|)`Q+7hm}@a;vonT=0TFO|+F&S;M>Pu5S{f)XF-&H(7Hp)ak>9o(rHJjQK6b+t@967@Oq#Iz2ut z-9P3c8S}2>i`>6u%uTfPnj+?T$6WM1M=jA~Bm}vLw)l3=An;kSYYjEQ|OA{<2Ap!hl@bPIn* z1I11x4{bp{evsa5vIht+SN~YlejS!lZ+gz6G>?Quq|TQR3OoG6MN~q8&W+e3n)XI&zD{S*OY>p5K zU^N00(-JpNG)*5G-?V38{OsLDg6bqDvDYSIxX;|FCT(J4;|RWclb#+iZ?UQ67BLCZ zuESR>Qm<{ImdPLQR4JPw2>UNow{F%8tc@3{t()~Z)|H7W;Vt$!|EIr2e@|Sfmc7N! ztLhtZDTiVxUG+EL=C#sK5vL)Bq)MHD z@%8%9__`@Gvn8l&Z-@s&2i&oG`OWQV^7w&z>NeC(iJM?NKB5}x^_29wDUX@gUt<>` z`56N1I&Cvu7sst9%IZ)WXR?8bLPRzIN9sc8unL3`6Iqq=j+;P z-}0X9wWyjOZ;P&JpA*CBUn>0%1N-9Jw-~2$L}Mit=Rno+2^%)sV%y)s63G5D;+~4f zm}Zfto-yUxiHG;Cod6dZgK3dAF_PJVt|LXl#_^qM{Ht)0y4h1RDymUdvKY@S4l0-A z3Co3?xP8dFM_@45)STUW#~|`F&#`1|Szd_UCbo9ANpa?jgtEe8|hXi zA?-eA%Zey=zAc@{mQICA<}c4(G)yBSF&)8JqVd8G#y$S>%y9z@M90NjO7*D-Zjwu6V$`+Q2%8=WJ?B2aU17+`F>12*wl47m!YP!Sr@*V^_3u zFEAOMXCeTl-j8PmT7JF>JJsBGshwHS}Z0gTbZ*Jx{$Z%zV@2;pRT8RPI=y<%=W;tS@!!1tCnBWzOWw!TNvzd2)m%d zjhEbRBDVv(eE_-F0ZKvcz-+`;8~7bCj0Yq89TP;39MV&ev!$<^v`wGlz9Cn;Y69|c zi!D8U0J%uPOQId|6<*0w$-QUcQg8EH2AAm{T!82$UxU~TR7Ky>_WBAXrfB=~xCB2m z<33(?m^A2q(lF^{GGieh#gi=K z40JGDU~%mpX1^UbQu1nR#Y=}Qdqx4tqQMsU<8|#TfQn>UB~P*#Qr&9!??&4-?IO2E zlNGkjHy%4(RPE)j_}r>Uw`@9r*mo?FnjIryvKX!GSi^*8?25M-X3rLKnI)tP@vj48 zR~=@KIx%x(o8f^K11P*ERtieTbx7=N>rf^HD$L=)wc1!qVT(>ZVvJuk9MB_lO0sEN zhe{zHw`cDOtYEUvtKjew(oo&g3~8vv+*!@Yg(ZASg!u|apZX4o^lrRG7_yGh*(yvO z-cat%(K=dia-R`g%y9CX1Z|8kR-OiL{Cm6t{WzJ^{vN| zL7}u#WP(u742h_`_n6MrqI?l;z5OdbaX>5EY_6TH)&NmT{DQhk>rAc9r+{W(wFYDf&Jd-2s;B17TO$waVrVMIyGlebuW8nCihceBAiM%h6;I$@K%mH zMZbZ;W8NPp!8F3AjR6$%BTfcD_=I%W)ex#+f8Mk%FUvAz2zgfR_sHg$O5Mr;Rrrrf zLE9Qt@h3gfRSY{87vs6WyB^>L=Aw4@O^R|y_Rnefm`LPoT6?vmtg<*QOGf=EgBALF z0>}0ko=Ll64YsJ|G)Q%=%@~8uH;HNgw@Ji^Dti_}<-sp&)E$53e3^ADUsGhamM)bg z>}ct!oYS%Z*+QbXL|i*}ma##zloeY+ET?GsRqXE=r0tJ?X6!L%k3G}S&;BnfP;87n z`!9@LA{%J&a%A@8#VSEcW@} z-<)Y6ky`a)a)etz>t`pz%v13M$T4|`zvR#c3#D={qdYh{v@Kc0XmGN$Q0N2KY8{Wf zh(xhd+jIo@M%$s@eTlz?YuG_ddykw&2|XHTC-mizwMcEjk$GCjPPX;;Jvk$X;{yWs zO1~sUnRDAqFW|>EYeK1{FT~J6yDcHT(Hd87N4Ip6vQSJQZj+VmMyGQ){yJxD-r}@K zt*~**gszm_9gg;_B#_dfIm6O(Q_Bg5ZQB7rp9FaOpc5jU2tD-BKLxKlyw~zKRCCtA zuZ%-PUR~sq8cT*d^JA}X^8&S}NssLjqaE36{!FH%#9o1GG#>U1$O@u=+{%AB66M}w zzRlGtcL#4|ZZBJNqx>9jgFHCu+x#qz9R5nGH57u(Pl%s2fpVYc&MA)y8zOsdi_jM2 zlHx0Xvhd%FJ=YGCNhG&3X{J^vf{N;&mlEd=p6v=O^B3{9gSxCWQk^ovET>8-^MCtN z36ymWy+{q$TBG`9cO~GWbD_wpAQwihTW;A?!?GWl2ko)Vu6Hid+!5zap&FS=j!Kcn zF9tOhZ+Gxu*#?Di92jnWW0hIi1l(z~I*hW#gQ2$a5e*8NL@jDT5#+v=qP4>4S4vsL ziL6w!oMe*Z^JV_b+IB5%B1(d9%nQ3FQX zbZy`9S*bJ}Kv^=)#_6;mbSfRR^ffy;Mr8VhoLWmAoN}MlS*q>1=EuiD+W&1r$0%6R zijBs76iHIpvw+1O0fRwm5V;3yWYh&zDlO+@ud;jcNs>vogr(=psLvU+96j~FeeiFF zLC9Gv-}!M%PQ#~zv~hE6vF=jN#V#a?&VMf38sl8HW473IV(yLOZ}t;wDTl`xBwRw| z1NFAABnlR*#QT|8E1-AHS85%SJ};uHy#FIhaKM&NouSCumtWCVAB9DK&a73mO*t+8Pcr3Omel^&g? zHE>wb%^#w0c0bQ6+y0LdKUK$@rH+Xj)n+}Com$}QlXKyju(ah55~ z$uj0~`rIsAcRzSCs5Ko+PMb_r(uPw=*^pF<7C{%1qwHi;bWd1N$K8!P zf_Qn6XU}>Rvu-A6B{1tt8H}h`jC{fE{{>>lfD${Hn8X4FHd5KwzKpHhdrVePUG!JH z`x|5r4eXsR$%(D(pLEDs@Wv0@?<;f(mOxL16SX=`+IuauSLC{L3BZnj`ZA?ryU^cO z+6ULr7A!mmQQQV)xPuZ8-=i=K@MQ&M#U#~4;3BImm>?_t*II3L;JG^B%aHa${_N-^ zExU3WCK|`d*-K^4Qg*2PQ!r2#k-?NO(Q^lX%;r9O75g0Z6-ue5;o*(huK=Xd?B40a zd9h?*XnHLlJ1>Mj@fCi-;MYHkWe-nn0DA%hZRVLU4Iynk$yOH1CR`>KNPFEB$Ne`D ze&owcU=V?qI!JX6yd>PFg?G*YqXEUk`#2<&_m(n{=EH`lZB#%ycR-u`eIKIV!2zCU zjK=8rY=|8G+*deNE!cxy`h1fgMvT_e>Ww}6*z-Q#wbNI)Or6=I4?FMUSDK`>NA6xd zarXH-Z~L>aa30VLut?eX#dtdcn%@dsCPA8Cmn3}*mKvzzdt$np@j+CIyBJO<>Ye!9 zQ*AjNGH)*g#U9Wx4g?)HA_RtZMjOca|M{D|)Ag-mpy&1^HRpq<@beD>{vd;Bk}&1q zLC{IpAp9zGzJJ31psg4Ls<6cv@A;z*WWdE?^6~z782X!&H3zUO^_Zsq_7Pc+qnLev zK3GgJnHVJlo!Kqsi}F!JVJ=2pyo}LPk-PNJGk8YJq;q#z}&%Uk>b zoL4^9hGe~;(xuaBTTNR!HU#A+6#l@6n$&`i^w?RU%%cVYJkZ7CC=0OFNI0S|tl?w~t+P@I+@py#t8a6m)bd`2a9lRT`BalGce5im_faHJ*#wlt%9 zK1S!gGQwEVGv?p0&r5t>lhtli(T_&!7TPvTVcA3uv_n=}_*((P*=!w99)~AJ5-X)- zdn##k#&BMq;clRAq>%w(Sud`dgxVX&;XEM4NEFosEzYQ%U$lJbg+cZc?o)i3_=Fe$-13A7&oFercu#2WyJaT z;sP({5zZq5<-fng41P4Bw1b&`4%UjKn=lyU!@&FneHrWMK&!)|bOK}xSY(=h;Tud!XP8{a+m`KXjqJ4#W z8pgBQp?pvd*PF(`MLHJDceso8h1x==hjHrG?a?{o4`ZFWfK0_Ss!*{USGng{oTa(Q zdt?yD3J6<5wT3uj%f!_>1~iU0q+e7ZZw&b&G9aFZ+U(tx`Z)(eY8k9%)~zu)4bv>n z=@{+8TWPN?T~RL7ej;1NuEm8>hHQF`ZFYMrmPP7JmACXIB~3a!-wcOQy7;$r8tSk4 zAAF9A45s)zgW1*T%e>q#MPH7Vl!g?Yh7>)Gwzo@P)cbEeOM7yMrb}mK=jp7p!m}E-h5jKn z73V^(l$seIOI3v{`j{salxK&fAK?Q>_`vOa;Bk`WR}6F*GK}bnGvMC47|0zAEm%e4E`T{RxYDbd;VRgWEo8 zgQb7yjDhB}!w3Vs({nV{roz?*7kca^5|J)QddkR922t^d-BWsh`z#4B^OL3(Z216#3#Rj5u#@EQzB0Ao@4Bv< zzl-mAl^K697UC|_(^x{vj5quo<#WIn=rt{fZ3g$ck6r_869S{QeMFGA!8XlMwTblI z8Q?gv$fg zqrBt2jZ!Yqg5sW9xO5ra1>H z_TY0yb&de{F_{l4`Oh(*4)TXK*AbK^M${QlV!5iM?!H*v(#Qpn&IF!)|E* zyMU4br0;D%djD+mN-qOmxqO%fkldm$6Vp0IfdgFeOc;Aa^!d2~=e>-|rYzu1_l z%>I(@*&FvR0HQMaP}uJ@Sha+Lte{9(iyMB6-6ofJLhaf(lIhf(&-KlrE%VG+fmXM2 z{zFfna4LxLjt_#&&*9;x;GtO}z<`YUAV0SMBuueqA#^Yfn4mD~z82V?C8H8V^op_j zHiP3eq<*b__=o;Pv@jCc9I_L`PzWVvHAb!bLXYg)jb^<7dt0rs8}IwCc4OCg)f=C2 z&bHUsGTqy8);U}8A1q`mTPFXC-1;4;qOvVyMAO8N>fiVQ&^yL9+!^swGF zvPFM~bnazqi?%EdlnhKmTbO_37JfAQy@h@nquRc6#k<>Y=~NqOQ9WpCwgdvq1$$&K z|7!sG24hfzu|So)$Mb7IB2afLZQqg@YKm9otuwfjL}gEhufoh5NV8?tsruW_E0z+WHYL=_IC<^9{MxOeu}e%>f@+ z``xnk)S%jYrwr+z{vrL7NHK{PBa%vnRWduLVXVa-Dv0YH)~O^#LQ)?zN6z9#1ED3e zBC=MEH2p}j?Ib+}@ol$Az$}fMy&GG*cn<3dwUV_@ZTl(XTGl9)hW1o#(Nzo}Fp=hY z=AM!? zX3||M|HYxcZE9S7pxf#}_HySPIUNam;84HJ>DXqAueYqTRIEQFDIHPb58wOoKS-|| zc6XX1+&sO2?dvvbFjtmT5PY55zLPnPoJV3hT6;y)NnVg0X^`pN=%N&rKUi zQ>j`WM^^6j^@62Uyp!0JS})hpd}uQRk!XQ8pE8t9!?@)|Y23{7x0YXVUHePNEPK|k z4l0jOZ)S|A=Uk^|cvRClp2%6Tfy5?P*Vp=wbd)EmN=;E3v; zuk^Hp3#0?`+g~=&{Hzz$map`I7Y(9;2figCfCvULSZIc3mugRa|0CSXFd)hLFR$!)4 z`tE;5P!RxOpDL7Hwbv5+b4~rVxDX;C?uSKb=r0~NZxqS^@2C1&ff~--;(`w>L-u=tN6&+lOce#05s>0PHH{mxIjkB7SSkc0Vs0i6-rAqsm(azK6g9=G&$cX3FL?E1mT{`0MbAo- zlZ1_Ae2fT^oN&OuN0vh-l8}OxXQO3+QMdb8FA+xqDgXF82=lIHY3x@JQU)Y86Cohj zH@}MIW8cP5$L|6oBP(ib~2-U#YZLJi_%io`*j=gaEJl89(k_meGTRsZMgYV~3L0(W3PHvxMCH-Vf5A`}mP z2?Z68yQD!NqFRO{w7Nr7ec+1pmNe) z+Tv<6!q#K7n6T%uNLAY6liG~Pm57{<*hLSuHx1Fk6D_MsY;r#;CZat1qkEs3H4s;OG0Q-jPv0XPM7&8|bwrPy za+vJ!z$*xv25u3(+VM7Jqzq%@1?)EJ$x1})TZ(-N?G{L4H0f{UV;&s6#un_?2f<%eBfOH1LgH9GQb6gW>`yjcV>c~K9H$L)%KI-OD zwD(r(_Bc3MvzmA?$&DCRGJkw&ANw>yf2LtnJ6Z<&6KDmVujp%^2Dh2!aD3v-To;qT zRL#%4)06Wv=Sn&CZqC+@*}vB zrSgyI2}PrLMf{P{jhvWx+-9HN0&n;`3_S_nV4_v5Aq`Y=aDvwfImE1-$f-kKy24;( z46z^m%$7x<>R&pGVE4_~$LBYz54PxWq2|EiYTx*+vL4qb7Dj3fA7dm7jA=U^wfsiQ z&Z85<&bds>7L!2hrHzZ`aQwhJp0`5lTZmt+fk{o0XI!su^u#`8 zG>!I;sgJtixIV1s{XnC&mwNcP9&3qI&m7mUvCjUj`tGZhJfUAa zTf^Yfd+D5dHvzaF%k;(TFxJYL>=&XI2nmN$UB@MjO7(K%bAP(Y^W%-ZG(`df$nN3w5VB0W6-q7TAM-=N{Cq&Y*Tb>Qh3|s*2#+ zb~4ajzb83c6?W>;!8hGIlb5LzoqBq&I!&8c@wbU;$Z0+O$`&`!XOjg(IgN=(*^mE@ z4s=moV=R@Y^{a;!Quj$hmIW0B0v6dq)6uA{2v}VIenzMAe^4c!(K9SXD)+Y`3F@vh z`b@Xee@LH@h8=#g5TC3?ES|lny&ljy5hIM3C8onq9<+H{g)I&K12wboTS7Hoe1T$_ z6l-keqbE3wMfUnZc-osUYO6H{R7`)Eg*)z_olQOm8xq}fHnq-eKk0*0U!;*x?o=9j zK?4!7pM4BaK~T2cqK%eyl2V1weAz2r-7(e~>xM^g-k>Rc;C`xWgpD?}n$glCU&vvM z9u~+Lx?jd9CaBX(T>HI#(d%^%->MoydLGl*HiYDv`w`J#jlz4Pv@&NhqmX{&y<&s} zp*Poc`lQtVD2f1M^F;iKWDrGsu!z{#zyRd>ehx$o8i0EJtB8T)+}OkeUw_p9br01t z0}MI1Lt7#!njh18;HPvn&Q4$Q@V+qKnX^knecgVKH zqAWx%vxmL*823dO6;X-cfpl*_^66~0^bVZ`CQ{oAq?!mDF(}V|>I0mVdIRW`+j!|8 zoW~33jVfr>e%Va;rXv-33zVlYK5c<*C=O@jc#aupmV7? zIu!^QGr#Hz^^~xabzB0hwjW#*0!U-W93w=DCVFERWINziWPO0>)q;&&`uab~z5h7*W??Fei6^)I5?-W=P>O zv-3a6V9fi*yXzv=-#pRLZdr#rn7Z6deZkrh%KvHGqbl;*W~n&C@+=@(8W?K{Z4<;W z+HE&MBw%hNMA^>Fq@RBqxqn8_AMtIHj|&1?1OchPN71K-vZK#FM)&S-UEcxYAjy?JYf5si`5ZcifjyL(L2PF*t5U*D0t1 zOwThD`TYmTU(zwdyV6y%xP*g=j0Fayh)SDw0M0ZF?qq4eFWqZN|-?P1Hs&w9x(=$k|mHOsovwus1OUhe|bPmXtsF%V`@>EB36rDEySW_ zeNIiLMQfmb``0m()k8g9_9VFeNOqW!hakLXOz6B-k9Tt+pCw~)ZQYKIh@tY74pt=)VVJjKg8({AtBa0 zI$TaM5plJd|JSfzCF9BYh@~Ph@w_gz+F3h!FuEK>Mi5o1i+)ajpCOVYEw@x8*|ZKT zyGqpK@78FmGZ1%+;s4|G9yN>L|Av@?9C7Bsi))Ury0;)Q`pYt8NkBm0D;k9t7&1bzJmh8DMOMrY!Ms-(Tm{-uS>G4C&FB_r+ZAn=c$#O7vO&kfBJJr^}DvutRL@m%CvCDAxJ9sj^eDGZ{>kj*r8 z?M>0iE|C*uqkD&F4Pb6v^5s_K%d>q{s`pjB28>uXyEC>-GqY9h9(>xcqOqKNV|eS6 ze-5rl)U=~bR?iyor5A;&N&Q@72Hh0YuIqWJW>jbN{zXmb=gM^Fov#goP!T2{aonsB z;mblci7;P8QsL0$aOmJ?8ZwP0&rWMcA0uE)-qo2|o;9w!<^^OKxMKm{t6hhHlK7HUJs^W5+~G-HwU^31kQ zV$Eg(&JZ4<|y%Pd?$UN&YaU^bhLR3itZ=afkpi5xAtYqGSTY6LK36!pC`1097fa z(Nge`)4^y6^ZB54j~`l9sqB!y5a0Z^5q5c%418F!Ares;O^f==ZydWDcwmJZM4~qg_Y)MoWd@#OYZ*(@rL89b&?RloSy47Cy%oRoeKS zukaxZM3pvY>0AUk!4cnY>0=dtYe}9QfiY;RwIXG%oc#$B+HM!`r|BTp#OdV+%b`el z*!?Vt!!4>w9zK9a_h97Av_qG1ydE7%8~AeFpLe^AWcKD(+Kr*jF)`8wz0ZB`HuZ40 zE5#`+ zZKA~oY!q=}iM)4!op!b2cuSsrO&eHo$2aSxAMvBb`p?0}qyH~tE*CVtnS+~JD4XQv zh1NNk`M?v2s%iZd*FfF-HW8MrK&Jo*D7UU96p#=h(L`I&Tt&0l$-up{fGQtEgkCW1 zPnAwAt5=1FYZZqvF%09q!zdwFP*9$TvOSOWP>)8qLT_ugh3&F0dZ1oVM6x?Nr;0np zoP^FKq|by!^+sJfsZS?lW1XNX6A?5Orym5}DCu9sm=PZfgd!fN5Bcq7d;=^Asx!is z>=wudZ?LXTmeUCib; zE|k+J1CTckx(79`0EZ1|%c`&fURENo3X-iL?TYzdgpV+b{{~J&{{*M?r9uM*?aa;W zWh2@(w>`Z@Mi)dxt3UGN=^?>kN7oCLi0B5MLu3yg;-nz({C9xb!10-x6<_nAz>Ezl z@g;bD&W_*7av;ui5!rY*a-MjeJy2eu-g)rHme{2Yt$ZMokkK4);Fr84B&IKI&qrcr z5>*m#f6?V98+p4sQqrumcS61*K@ZEL6V=||L?=!GQQDY zUL^LP8Q&+yd=Pod43XCyUZAtrMcx0h&&*upo>NGy$Ner{5Ax2RshKA-jVUKsHZ(7{@@L!NBQv5I z$+Xd?4#vBNBs4R&MiO>YSs&S~#ioF|GC9?zbf;^u^R{a{5!+08^x70Md|@Q=lE+4D(8;Tbx_be{YJf6!!vmy5e+G#(j&z-J|V(XHP;zY*LeO)U*>KZj7!8OS0?W1NS zxKb=T)Pe-ph1Qvw>h%QI;LOj3v`q&-`_7g(28;#0nMkm_Q6<|2GKQxybb!k_>d!y( zuAO%e2qohEDr^UWv<}9s?i%2VySAAc0gS%jIA2{28XD;4S9e7rDESY|{gz z?imNY4shM8#(x$OelPviu6+XzN$BQ1>%y8q8)a*9SgE5ZBj<5YfT`|a&_)AIdND4=c5nhXxTl6nX z>k)3_!{%|3UKBaAacdgYwa;^q#r^q)US zOPxC?FZmlq|F1|t3V0pCIls%XLNv)w^-pes^oEBCt# zSH>A+pp$!sd$DSF)SyW7UJ;g>915Ng@K-TH4Ni28wbmX}vlCr|`c*-Jy*OL7{&x-{ z$xr<@(KY;{LeTjDfM*Yl6h<|Fd8f*uJh`BZpt+1mD#6&X@CYb{BNtJry@)+jthSFx zazRGxgp9HygpAe+85I|!@f$Mww~LdKFJPVP0%TN-v8?k-lT4nyS>7w`AYL%7dG{A)4Uf4zYlNK5#i~_>$S?G#I!N8$Z`Dd$L)61Am-7YUsil8@LbM5aCK-tG_;=5i&co+|8&O(pJJ2wHLA zBd|Q9v-)hNXF^w1U7r}WYIk->$QQFZu`sw?Q5-n&|HE>J=?bg?iGn9%)OTT6UQLowe==1Sl$tu+=9lONBpPpE<%?bjhVC@!|6F2 z{PY?)7+G6FX^%E=bVpEotVhy5h72XsOFARyg|7{L+EBNH8BTA%y8W?Q+A}HE-8Dr2 zu!}?5w**f|^IHVYJeW&`xc90XZF4@U2^vD9f5@ab8ABctGy=&iDG6!|0W&QJ5V8TZ zqffPQOL)BfPkbDr9HHvAgb&F1+W6#=y}_Rhp21;cY%v(@qWj?cR~YZrMW~sT;cTIw z!sFu3>Vj7u;g#(@wX9W1FGZ;j2D|Kz>7ZX30UNv2mxEoG4ea`8o*aZ)hgVlt&a^mq3IuEp zs7jiu7~+bwZnqj;BnG-D!wDwDG|^f9sR9<;J0|i*3$#S81!uU%x^=i~g0c?}ypc0PZ5{6VW&~w;r0VGjjC&I8wgozC zMDGQxnsG$`C74!C&sgfvj&vp6P^T@Kdd739c1BuObL@#>|HOjxG%Y<-w2m^QVS9AX zibk+>8%C0Hu$HCUOLRm!_Ojij**z;>rLN9nOPv*Bdrou6Sz@7WQ*7!tBVE%HvsjTk z(e4Mkku-4Ni%t3z_kPK}q6;*&Z=`FsHBD0^N4ZiaQ4Mf~HEjG=`l;+=S&%~Go`XdThNS-TlqLH^dXvha+E7(&|rU?cPtAI%lovc z>dXH(sDwONQ}6Q~E7eH98Rbg1rf4d1H2;$|HJSgnQhR;Hqt@(&@_pJDkuXw8KNh+F zt~L8kx!+(}@EE(K@;ROpYgG9%&j;~*uQmHtdA{90?hjEhXxAe5p7!74-E{-VULB1L zn4qce<-b!?{l>UroTLJ-_@~u~P^sKwF{tZ<(Y>ex4$dT*^2dZC&*ds5i#CBIm!ttR+hLIT&&FzTOpES*6*_ofT_YwFhtO zS@AsopI_C}NIVn?DTP(R@V{F0)@ws4sS(CO)ztN9C4OZ`-#CI?$^Ar}N$vsZhV{2n z5I|Nuj3}7flbx!nAfbQ17Ie$NgVNKKzqma)-gu&JALr_A-32=gv~{jv0BN9)$QIM4 z&mTX1dg*w|mz6H9{_zt9H+^ z_YsUe22GLfkE_xDgLqVw;j&Mb{Um;-sLL@o@*8c;i1I=MlZcLrg<=6l4Lmm^0jegE zVJh)=$urc63|CZNLQo)FB5WHE`hA^z&AIok?3cVi9nN%(x;i!o8Mn;S&_aAvcD%NS zgMlhur;h&-oJ9R!imEv3d$Pcytu1KhI&OV*#WDWhlO9vy-Dasdgyr--Dqc=`U|_}9 zVOmF}HM&iQyDV1=vRnz4W$N)P*D%Y1|Hs<9$3<1G|Koel3^D^MAoq(f1A7lM;9XGA z)B$gR<^@qRO9w3-r7YCEWHn>f2_-vhHCJjW*o~R;L?;dDCfE(DQ>Z7abLt3PLAu~2 z5z*%Re)is@XmtAgKA+zo^V+l5v-Vogx;^Vz&uvxL3>W^&J1+tGuh3V`5CuF03p{$) z>-gyg7pxjGMW&}(AJ7kulFlQy{VXh?q|?{{vM+eU^b zU9|3x-v<(4r2FGgPZV~A1m$L!x@`E1X!$uG#&LSY!HD+!^)aY^kXWOfNUD5{@e$=T zQq_eirVf;uQMp3W#2P^4Q3kPb=g`61Ffwe~vq{nM)Z3H+)7Y0`2N)&wLpElF5bpd8 z)1&!NmRpbeL+dwDlkk4nQW}kpzrMqL9s8|6oPD&lnH;<>o5|I*uWd{HQbz_g{Tzg2 z&topple%?04B<9tBPTVUwYhO3fo*W4$E6)};+If3^6R*WYev*pfvx)V2;qG`eH^56 z-(ub(y@5uQMx90<5y#tTCQup3IO5IbZO@@+&uDAhBc48k#m^2S3nHLcH3f(784fN?#C zZbF`o$OG%#%qMZjju(<4<=VBfQG#X6;b6KCi43ka9`vtbOcJ1OE-0cQ5~~r8RdibC zI4w^78vOWua^Cg*SnRvl(goq#n}G=#r~D zkG|*wP~}fxjNgWV9t7GnTFBR|*Rf-xg+=~D*P&wE`B_wDGEJ3hQ_oy(Wop3(DN7FH z?FQDQHYe?uFXTMY3@rL9Dsx#grifrj*-Uy~E2|nK*#Ac*L!#294~g!oo^E!ifq&O2PHtGnulXs29wqt$<>rbvx_!iIp4_c%o5U^*c9rQzLt^W^;YYP z92sN@s)zl{Ty69uCnVr^0^a;ICy_rnHuQp5lm&K0si`ioD+*1yhpsNLGI{;T3rvyj zV1bp<0xLNK%<7CEvYVbw3IP&IMtPwr8Mk7gomEJl0)tD4vJe%xZ<07vizAYXd17>7RaE=|2pE~kOh-g*8_X>1PUrC*5s;9CC|rN=N}R#Z{oprs<`3M|h;R9+ z?8R*1QH}iVHIL)f`Vv2*ivj1ip_ies}p1u#7<5X&_~m`KCj zjJ9>5K4m`Y({)<-q+8e*WE+HfwR7svz(zBI{q2i{_>37ip~!6pK{B8(0??jD%x#LV za0IMrR~#GB-lH-N;XLf4aY91yHQ@Eo8xI`cBbtSc7lPTi2?k@&CdRqxFj`N_`Mbvp zasHoC{Bkh)TgMBV`IF2vL1^_qf;4MI7z>>!%;6tpcTN;eUP+sgBg_fA0W!5lRE)ET zEHNjWwoh9T7FZ=smKFbw0@}IE6JYgOG1N$mZ*vccw z#Ux>BM_<)}0&7g*uDHs1u4Ve0C99O+j@!-}~9nk|cly0iX%rbe(sQ-p9nn|(S( z_))XAFME5c@Q?AH5^mdl5WK;4D5Se@A5kZ{9s@&@{hldY$C@o1*bgpj+bWm}A_h?- zJNl9?i8W3WQgv-b(|fU?>4II?W?di2R!kQx_}3E6_DmNtbZvQG^kx5^E*O!9f8OcB zO#T>~nJ*;q$<=G~g+M+a>p2)(M!O>O)n5awRw9uHh-poK*T$^f;{D*R@DC~_VLZakPsI`8Whl^=X(@l zjL+Fm1;Sid9OupyCTVQT*!G#iXug(xI#Wn6)NN53P|7aP6k>H15?8=%^M$BXNAd4# zuf1Cqo5H`)l|LCZ>_ICx{Z&Dwmuu5iRPJOIvxK2mZsWC>+^j>3an!My&{7hQ^- z7#u~}J|MmRm0eqJ#BCIC0BO7%Q^9a|H8(av*(51CdsME%U`k zH)GIx7TNjSdyN9lUa+$NppPxHb>Cz8MUU-UJ_bi5YcE&64e&ysrc4&S=UF|-bunz4 zd%N=M1Gvm)%$Q!DWqt`mTeZDC*sD$(AEnpO&t;}fyEg2Yc^e!1*FtUrqDE;}il zPa-Bo1^9Rn+mK4=hnwL7Hy#SHUqKnhveUO>?(b%O=Luu@$Et6gCoI%P7yjFeD6RS; z6Q1~L`lL%<+5Yk+_C+Cbk7j-g@YulyFA$QgZ>T^bG>~X)s~rGBgSiJHvxd5LIpz*^ zt+_DF9J5Qh07H4q%xU1D8oydpmI~ zcw&K&md-z?d|mtO)vsZ35=kY(_%^@DZ%<6A);-mQnlyU&rf6MM%C`=7sh)Sr} zPicF4>?+QK+0lio>;~rsuxm}oG zFg>h%*2q4+U6^R%Hz=>Q4|ZS5!_=gKiA|u?!_92;Vn~o$cd~hlg?X9}7qPb%3ub;2`);vtoNuqLaR>{01Y`|I z{7*u8I5XcxD5op$jqIMgP$)lCMVY-zuT6uLI?7r2-FU4Vpk#Kj+v&BUpYm$2K7d!A z?_igUg^8N6v24O}!K}%OVat{aTX;9)R|sBy3FB8{zRhF(R|*N~2nDXvstC^vp4;{v zlr7)lq)rw#V0mCoi5pO`k`#J|IZ0|2wjL#n`oAx_{{LSV9nVbn2-VICM8f+nvv@^SFRs{mV<|0~+BrvHrpzRH#&kMIA^>Zeu-ll=Alz&51f$J%ZW5S;yP zf-f^iRzh4cd5!;wYnLGJItI7nK2N}(CbwFE+N^No`XyX>T1$QmVmX>-yeVrBI4vb4VOYz zSft7dP4McuYj<>CX9;#l5)gK1cEpgbRu?_(-d{D3$B=`KE_&R(=QZ17>QUGih*tb# zkgeuXK57WugF39v`;Vt!kOG!i4_X47k2w-K#GQh7URlGjda?Noy_0^d>$?T{4S*j> zYCc0{4dX8?9sVdEIbimLQ)8`7BFP z4%!pB%Rod{Nb@-A(S=I}9xjO_xeP(j20W=k2Yg%ZNI{4-nGxk}EQj<@D}W z&Ie^a8OBDyNQQB}qyY^5?<5VN){1qvQz-oZz0j#H;r3)YK6~MPG)2F;E=lCU{XAJ*W=ub=?6q3T1{Sd=DVamPHNDD@IECxX!xMOO}}R7$^)fE z7&?gbI;eAqABsR3)UZfM7vIOadt(W3gNE)f3>}`p<1UsnLP~gxE1E)&p9(_^Hd^sVE&t%4jgq*F$uXIkIQ$q*t zx!-|%?uk@IW!h?<1YV!%Y#2$pd)#$wwqMS$jW^>~794p}V1SmA{J~E65^bHu8#Yzz zrVT3r%z$)j@{yfZq^I%vP0jHLrJv2!q?2F{DsF3X{Z4BjH(Y}l(r~AF{_&lTA+8z?^6=}pZCY$NWP(bf|96Pqv%*J&$bN<3xJi~) zihecHJ(}cu4xc@0z8*_Se~&^m?OL2^8gA7_=_JfMR{oVSDy;$|YVp$#?~jy9*uv2a zHUZz8dced5tAqNs9`{#~;D^d>hN}o`?9jwH37Ik=k!vG95tj?%9B@Rv>;$$H1$8L7 zQm-GLi!Xh7>X5!s%>yb`@Hq0681%!ZArFt9s^|2>+&(zw{$7y#Rj9*)yGO8wW$Z{? z4h;L}8)X#91();OiAye80rw5J?cY;g42ULqJrS+rDwa%Xy&+CCb~ z9IbvB#2H~0x&6xhuss1Mnn`1tgZ9U;$9{YB#W>Z<+*_RU)h#_5`L}6v9tsB7GPBQwU*% zk}P`?j%!4z8-a2o2B8UME%=(379QrMn!DJU62Y7~U@@W(krQ*du7CaiNQoY=5l9m|L*3M=~BkM({+FlWg{l2j6; zom}#0LD9E#NP9u2koQ%~xElKquEVj^g(!fE$jXAAaKvymxvX!gFfo`+f9Z2lpVE`v zT`Gh*mjfXOt_IWdVSx@HK%5*w9g7v(+=)W$X1GFsF2cU&oW&0i15J8FuF_Nqg$5-u_2p<#P}^pcfpZZK!INmg+=~YqIP7g9^oln z#+Gju2E;q*TQY>iw|c~50y|n{$H6Xvk17fXWN&R2vd!P$u8emMxTCJ)O~`u#U>tDL zTVQNp=EsE5n!m4MiyjjOo3F@4k6<^bM9aDxal|bBCKM9E$Ak<6-Kc3dx$?7F)?bCy znp4BsYkw6sX#_o+P$oR4d3rcIQ6?BW6mN=22LEumZBAT#RjPaN@zVK_@tH(%q`03 znR`cu6EdwjCT)d02xbZSH{d6utV*|AFbAe0`;}tW8@m5IA^rMKbFnLo==!Pj2cO0| z>C>C8s~MWubP=DUb35c=*l&<7hbkA!#UU>ZMORFTtE~KkNpUaIui9oRcJ>I0(3Xj% zf!LPp?8}IRG-#V3IBx*`!B92mvmzvZ&Kfz|TJ+7(6yPXK-CGQd=s6loxg!ZGX+F9% z#*dd|Oh6%;)nO(b-(5VugUX7g2OXyaR&m?bjO1!oex`BTwLI)Gqf70_dADzuja$t* zw~@M@wqW0RJ90Is1Jc0#Wu|Q8rqAzy${)K~D!Kr|N)Qk$GNhaG{=mJ~sA(_W{nG23}4cv@U9#%0HMstC4>7P@<@D4kC>X zB`3EFg@)Pps3du7-KtQ28oQMV8~6#Vi9rREh5_*HCl9h-PYB8VuS^zzx^5+7F=1Tb zkGpOq29{ME6U&Sb_tvqypAdrizHB|pFa*(CXzenYIDj~|i%Ke|LVeOFKN-7g;&$yHkjB`i;HJ+4xHd8Qfah`6?HpUD#k&LYcYka5U}@ zRHO34lsg8q;d2CxXG|dA^aLN)(2F1Gf zm4O>#S|5a2j2`9W&W_uaf`dHUuMVEOJoQA4dTq>=5n*E+E6;GRv;`tICZD$_cd1AVKni)IU-6#6?W;N?urCoMN( zk>w$~c2P8R*=QSltko(E?e&fZa9n9v0m}mlT1%D(4k*_h5eRtzFEU324-;Ur@=+Gh zO8h@ZLZ_L1LYVO>K_9Mz&G$pH%{OsY$}NpatRf&WL9;lG&3j6ir5Vq$SDzAwYsz}F zU!D@8drwU7jPymZzub3k5K3@4@pB$Hnd!@MadTV zL(%6Ys@uvr9O8B&YiYSK?uIt~<`L2!`Bb)TC-J}Fwfp$Im^Q$9WE&(AWAL>+5mbAA z`M+w<@4PY};1+f5e7L5tV@pujIe)l4DfAE<-_-z+poiTK{R$dpoayPz=NnF_1{$Dy zmMWE@XU|^nYurHt4iRB2`Z*y%vuXw#@thDdaT{1=xzPXHG-ZgFVf70`A350RBYi@L z&_VxUJ2_>Ad0enib@U#0uo5y}qKdc-$wQ0Z0nKJ3ymu(VhTD&w8t!lA1s3wW5UHc~ zvwqJDQB&(NQS{SreB2CU0EiT6B9QC4uO~`W>0ompj~>#v)t?4Md1O@}-mWO*t6iDT^ptXi9uEsE3b_!?f zo)-){H?^^OE-&=__-<~ScdYJcOH#m{tjZk_$JSKB%uQ}8s2CTF<%n@Ip_H#d$DO0V z*5F_|D_U8ySvYCaI}iAI+~Q5gB;Wh%c&8&2x~od|TY&WqF%2;|G7(RmehG{NSR|5F zG(j@;HPTv&xozwF$RV%8Ja=QkzKRTVK&1l>$<_dr>C_UyPN2*B0#@>zO_pC{@imyH zh06RkF4YF2Tt`VZY)2trXz+R?Kc3$yUo7h@izY$|WP!di3s5Fv-yA5(UJNRM8H2r) zR&;|&7bX{qi?Z2EDCh)YlP3hh>15sqX1?H6?VJk>G|JTwGvp~9zh``EPbCa8&M)R?-L?3!9-lG200c{ zj(A(m2~>rClbnYwt*3tU792qpRuuaIiqFHdlzp{NSQl-9{7GLyN5<6`9O}%XZTo#z z{5K)8kFpZNJjNS9JJJ01NcJ((1D=YKa>?BO%_#QE--L*i=1AEwkFrn){{!SVfs1IZ z#d$0T`Se}#4}3|832uzSBnb8N1hVvOVyD}CheA!G)A8s&R`!x$@t0=@HpIVCPz!u`3Rgitp@x+R^BtP;|D{#(yM8s^IX0#9aa)<*Q;J)m@D z?1?I28o#ur=_W|M6VXeTDmZfj$TGXYBDHcLwuj{zT>@m2-8>wD8*4=~snaA$0Gca3{Cz z^14Ir%P6UxJyk7?b~bS31Ek*q@CgpxM2zesFnLFC9q&zqBn=HD;toa%){06f`w)23 z5bOItT|i)YtFC8xtC0rZTB-RA+j}Zxgy8^40F6a8d+MMtGRD^#IqFf56J7bYUAV}M zTGpdRnB}iQ3mf5)aq^(hm)$pu?=zG0gyEzX+!I?k!WBH<7wkGsu4~tKS(o*F#oYBC zzQpc`+8h3WC%#`vlLgD zaBQ59^B5e7vhbe+9{`e6WojNM?Oq0+&&Z`mgNPLZ$e^$ zXtC6B9UQk{cMed(R(ZME>piB2p9N<2F_;^+S|H{I!N#@B4t&4{ zp(NjcH2Ym0kVbGDz5z*5`lED=AJ>t9a8fqNXW%{2C&9oc6l3ufG{cl29+{%%VsGxv zrE>^gVn^p2d$XV4fDe2S3wcwp^ury@&8U)kN56U5rp+R!s zq<*)8`%Jpypf(sc(SUuaMk+?7JW!a?pYW}Y8{jV zxYc6BmzHD8k41-VlgnANn*#4qkCbiAaz(MnYlQ@&$0K3&4LQ|?aCGG#yX+;N}+*=1&N=+o;oZfKyvlwVc`*N zA%=3|+d`o>2Y+68TbLfdqut9$12zl|pvq}q`^PZUi>`jA4~uz67^2ym%BH*{!~`W( z5H}s_SpimmMPhHZ`W<1^h`zs4B5pN7A@q^&{8g)*zhtC|6(=KWqSh4dj0)-K&whRf z_M%%N+30tL37P|w*k9fiKHv-4^!J2nT}zVRoviF5zc{~3aJB4YgWnh8LbZrD5$YN> z1~lx$V6NcOFPxj%--p7bIam(OTpS4JKA6xPBe6~lqOde?;G|f;2mbyfC>#w-03vYx zx}oszVYt)DwqgDSqJRl}+)@{4L?jllR}Cm_$_dc>11z0k=B0YZd~wCP?z zT5eftOfM0IM*^|yD_xIR_ZGE0J1W(~RU5j6{j0B(=fv$r*B6EsAtF+~53&A`4}Jl} zx=!GIN`-x{uaF0+`WEGN&AVACuaB=h`u1IvM-zXw^SW;05lV<+xsznq_d$OYP$Pe^ zW;c0iQPdG)qU8dv{~iIYNkQH9`^n*4K_JEuFj1}%#9tG8#iM}${$qbLp?`B7roTR zLXHTbnR?rTc)l(%o?^zK!O$U@;|+csqG~~E|7=N&o==W%KAiAIIc+hRPQK6WY|arO z*2x(c#Qy`ISvY)le?q90=Y}Azd?1g{nl#*-oXHgb5lG!O+TpUn_+XdYgG)mOKG~dlZ}a%_5J{eCi`Y~WNQ|N3O$uiy?T9*<^^)Y<^wNZk5h5i=YgH>uvy4s zpJ3}y_+&(jLU1yA{|u5*Ivw7N{};j3&B2HnahMKtfnMZ50#D>{-G@SSKnDUt()n