From a50bad22ec6c4065494722ea6d1c49644c1dba45 Mon Sep 17 00:00:00 2001 From: stevensJourney <51082125+stevensJourney@users.noreply.github.com> Date: Tue, 6 Jan 2026 18:52:15 +0200 Subject: [PATCH 001/104] OPFS Error handling improvements (#304) * Clear retryOps on error (#59) [Fix] OPFS Potential Deadlocks #56 * Update src/examples/OPFSCoopSyncVFS.js Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Reset dist/ to upstream/master * remove async and await from releaseAccessHandle --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- src/examples/OPFSCoopSyncVFS.js | 33 ++++++++++++++++++++------------- src/sqlite-api.js | 7 +++++-- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/examples/OPFSCoopSyncVFS.js b/src/examples/OPFSCoopSyncVFS.js index 90630e6f..44028251 100644 --- a/src/examples/OPFSCoopSyncVFS.js +++ b/src/examples/OPFSCoopSyncVFS.js @@ -519,17 +519,24 @@ export class OPFSCoopSyncVFS extends FacadeVFS { this._module.retryOps.push((async () => { // Acquire the Web Lock. file.persistentFile.handleLockReleaser = await this.#acquireLock(file.persistentFile); - - // Get access handles for the database and releated files in parallel. - this.log?.(`creating access handles for ${file.path}`) - await Promise.all(DB_RELATED_FILE_SUFFIXES.map(async suffix => { - const persistentFile = this.persistentFiles.get(file.path + suffix); - if (persistentFile) { - persistentFile.accessHandle = - await persistentFile.fileHandle.createSyncAccessHandle(); - } - })); - file.persistentFile.isRequestInProgress = false; + try { + // Get access handles for the database and releated files in parallel. + this.log?.(`creating access handles for ${file.path}`) + await Promise.all(DB_RELATED_FILE_SUFFIXES.map(async suffix => { + const persistentFile = this.persistentFiles.get(file.path + suffix); + if (persistentFile) { + persistentFile.accessHandle = + await persistentFile.fileHandle.createSyncAccessHandle(); + } + })); + } catch (e) { + this.log?.(`failed to create access handles for ${file.path}`, e); + // Close any of the potentially opened access handles + this.#releaseAccessHandle(file); + throw e; + } finally { + file.persistentFile.isRequestInProgress = false; + } })()); return this._module.retryOps.at(-1); } @@ -539,8 +546,8 @@ export class OPFSCoopSyncVFS extends FacadeVFS { /** * @param {File} file */ - async #releaseAccessHandle(file) { - DB_RELATED_FILE_SUFFIXES.forEach(async suffix => { + #releaseAccessHandle(file) { + DB_RELATED_FILE_SUFFIXES.forEach(suffix => { const persistentFile = this.persistentFiles.get(file.path + suffix); if (persistentFile) { persistentFile.accessHandle?.close(); diff --git a/src/sqlite-api.js b/src/sqlite-api.js index 2b3c04f7..a13e68bf 100644 --- a/src/sqlite-api.js +++ b/src/sqlite-api.js @@ -873,8 +873,11 @@ export function Factory(Module) { // Wait for all pending retry operations to complete. This is // normally empty on the first loop iteration. if (Module.retryOps.length) { - await Promise.all(Module.retryOps); - Module.retryOps = []; + try { + await Promise.all(Module.retryOps); + } finally { + Module.retryOps = []; + } } rc = await f(); From 16a6de92aab0b721a6cd410dfbee4e94e18da7b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jan 2026 16:54:02 +0000 Subject: [PATCH 002/104] Bump qs from 6.11.2 to 6.14.1 Bumps [qs](https://github.com/ljharb/qs) from 6.11.2 to 6.14.1. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.11.2...v6.14.1) --- updated-dependencies: - dependency-name: qs dependency-version: 6.14.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 251 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 176 insertions(+), 75 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3a49dbc2..d6af5c26 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1044,6 +1044,20 @@ __metadata: languageName: node linkType: hard +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 1a09379937d846f0ce7614e75071c12826945d4e417db634156bf0e4673c495989302f52186dfa9767a1d9181794554717badd193ca2bbab046ef1da741d8efd + languageName: node + linkType: hard + +"async-generator-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-generator-function@npm:1.0.0" + checksum: 3d49e7acbeee9e84537f4cb0e0f91893df8eba976759875ae8ee9e3d3c82f6ecdebdb347c2fad9926b92596d93cdfc78ecc988bcdf407e40433e8e8e6fe5d78e + languageName: node + linkType: hard + "async-mutex@npm:0.4.0": version: 0.4.0 resolution: "async-mutex@npm:0.4.0" @@ -1255,14 +1269,23 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0": - version: 1.0.5 - resolution: "call-bind@npm:1.0.5" +"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" dependencies: + es-errors: "npm:^1.3.0" function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.1" - set-function-length: "npm:^1.1.1" - checksum: 246d44db6ef9bbd418828dbd5337f80b46be4398d522eded015f31554cbb2ea33025b0203b75c7ab05a1a255b56ef218880cca1743e4121e306729f9e414da39 + checksum: 00482c1f6aa7cfb30fb1dbeb13873edf81cfac7c29ed67a5957d60635a56b2a4a480f1016ddbdb3395cc37900d46037fb965043a51c5c789ffeab4fc535d18b5 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + get-intrinsic: "npm:^1.3.0" + checksum: ef2b96e126ec0e58a7ff694db43f4d0d44f80e641370c21549ed911fecbdbc2df3ebc9bddad918d6bbdefeafb60bb3337902006d5176d72bcd2da74820991af7 languageName: node linkType: hard @@ -1639,17 +1662,6 @@ __metadata: languageName: node linkType: hard -"define-data-property@npm:^1.1.1": - version: 1.1.1 - resolution: "define-data-property@npm:1.1.1" - dependencies: - get-intrinsic: "npm:^1.2.1" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.0" - checksum: 5573c8df96b5857408cad64d9b91b69152e305ce4b06218e5f49b59c6cafdbb90a8bd8a0bb83c7bc67a8d479c04aa697063c9bc28d849b7282f9327586d6bc7b - languageName: node - linkType: hard - "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -1733,6 +1745,17 @@ __metadata: languageName: node linkType: hard +"dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 5add88a3d68d42d6e6130a0cac450b7c2edbe73364bbd2fc334564418569bea97c6943a8fcd70e27130bf32afc236f30982fc4905039b703f23e9e0433c29934 + languageName: node + linkType: hard + "ee-first@npm:1.1.1": version: 1.1.1 resolution: "ee-first@npm:1.1.1" @@ -1793,6 +1816,20 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: f8dc9e660d90919f11084db0a893128f3592b781ce967e4fccfb8f3106cb83e400a4032c559184ec52ee1dbd4b01e7776c7cd0b3327b1961b1a4a7008920fe78 + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 + languageName: node + linkType: hard + "es-module-lexer@npm:^1.0.0": version: 1.4.1 resolution: "es-module-lexer@npm:1.4.1" @@ -1800,6 +1837,15 @@ __metadata: languageName: node linkType: hard +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 54fe77de288451dae51c37bfbfe3ec86732dc3778f98f3eb3bdb4bf48063b2c0b8f9c93542656986149d08aa5be3204286e2276053d19582b76753f1a2728867 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -2050,6 +2096,13 @@ __metadata: languageName: node linkType: hard +"generator-function@npm:^2.0.0": + version: 2.0.1 + resolution: "generator-function@npm:2.0.1" + checksum: eb7e7eb896c5433f3d40982b2ccacdb3dd990dd3499f14040e002b5d54572476513be8a2e6f9609f6e41ab29f2c4469307611ddbfc37ff4e46b765c326663805 + languageName: node + linkType: hard + "get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -2057,15 +2110,34 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": - version: 1.2.2 - resolution: "get-intrinsic@npm:1.2.2" +"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.3.0": + version: 1.3.1 + resolution: "get-intrinsic@npm:1.3.1" dependencies: + async-function: "npm:^1.0.0" + async-generator-function: "npm:^1.0.0" + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" function-bind: "npm:^1.1.2" - has-proto: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.0" - checksum: aa96db4f809734d26d49b59bc8669d73a0ae792da561514e987735573a1dfaede516cd102f217a078ea2b42d4c4fb1f83d487932cb15d49826b726cc9cd4470b + generator-function: "npm:^2.0.0" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: bb579dda84caa4a3a41611bdd483dade7f00f246f2a7992eb143c5861155290df3fdb48a8406efa3dfb0b434e2c8fafa4eebd469e409d0439247f85fc3fa2cc1 + languageName: node + linkType: hard + +"get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b languageName: node linkType: hard @@ -2134,12 +2206,10 @@ __metadata: languageName: node linkType: hard -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: "npm:^1.1.3" - checksum: 5fbc7ad57b368ae4cd2f41214bd947b045c1a4be2f194a7be1778d71f8af9dbf4004221f3b6f23e30820eb0d052b4f819fe6ebe8221e2a3c6f0ee4ef173421ca +"gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1 languageName: node linkType: hard @@ -2164,29 +2234,20 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1": - version: 1.0.1 - resolution: "has-property-descriptors@npm:1.0.1" - dependencies: - get-intrinsic: "npm:^1.2.2" - checksum: 21a47bb080a24e79594aef1ce71e1a18a1c5ab4120308e218088f67ebb7f6f408847541e2d96e5bd00e90eef5c5a49e4ebbdc8fc2d5b365a2c379aef071642f0 - languageName: node - linkType: hard - -"has-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "has-proto@npm:1.0.1" - checksum: eab2ab0ed1eae6d058b9bbc4c1d99d2751b29717be80d02fd03ead8b62675488de0c7359bc1fdd4b87ef6fd11e796a9631ad4d7452d9324fdada70158c2e5be7 - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.2": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" checksum: 464f97a8202a7690dadd026e6d73b1ceeddd60fe6acfd06151106f050303eaa75855aaa94969df8015c11ff7c505f196114d22f7386b4a471038da5874cf5e9b languageName: node linkType: hard +"has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 959385c98696ebbca51e7534e0dc723ada325efa3475350951363cce216d27373e0259b63edb599f72eb94d6cde8577b4b2375f080b303947e560f85692834fa + languageName: node + linkType: hard + "has-tostringtag@npm:^1.0.0": version: 1.0.0 resolution: "has-tostringtag@npm:1.0.0" @@ -2212,6 +2273,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -2866,6 +2936,13 @@ __metadata: languageName: node linkType: hard +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 11df2eda46d092a6035479632e1ec865b8134bdfc4bd9e571a656f4191525404f13a283a515938c3a8de934dbfd9c09674d9da9fa831e6eb7e22b50b197d2edd + languageName: node + linkType: hard + "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -3166,10 +3243,10 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.9.0": - version: 1.13.1 - resolution: "object-inspect@npm:1.13.1" - checksum: 92f4989ed83422d56431bc39656d4c780348eb15d397ce352ade6b7fec08f973b53744bd41b94af021901e61acaf78fcc19e65bf464ecc0df958586a672700f0 +"object-inspect@npm:^1.13.3": + version: 1.13.4 + resolution: "object-inspect@npm:1.13.4" + checksum: aa13b1190ad3e366f6c83ad8a16ed37a19ed57d267385aa4bfdccda833d7b90465c057ff6c55d035a6b2e52c1a2295582b294217a0a3a1ae7abdd6877ef781fb languageName: node linkType: hard @@ -3437,11 +3514,11 @@ __metadata: linkType: hard "qs@npm:^6.5.2": - version: 6.11.2 - resolution: "qs@npm:6.11.2" + version: 6.14.1 + resolution: "qs@npm:6.14.1" dependencies: - side-channel: "npm:^1.0.4" - checksum: f2321d0796664d0f94e92447ccd3bdfd6b6f3a50b6b762aa79d7f5b1ea3a7a9f94063ba896b82bc2a877ed6a7426d4081e4f16568fdb04f0ee188cca9d8505b4 + side-channel: "npm:^1.1.0" + checksum: 34b5ab00a910df432d55180ef39c1d1375e550f098b5ec153b41787f1a6a6d7e5f9495593c3b112b77dbc6709d0ae18e55b82847a4c2bbbb0de1e8ccbb1794c5 languageName: node linkType: hard @@ -3689,19 +3766,6 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.1.1": - version: 1.2.0 - resolution: "set-function-length@npm:1.2.0" - dependencies: - define-data-property: "npm:^1.1.1" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.2" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.1" - checksum: 6d609cd060c488d7d2178a5d4c3689f8a6afa26fa4c48ff4a0516664ff9b84c1c0898915777f5628092dab55c4fcead205525e2edd15c659423bf86f790fdcae - languageName: node - linkType: hard - "setprototypeof@npm:1.1.0": version: 1.1.0 resolution: "setprototypeof@npm:1.1.0" @@ -3744,14 +3808,51 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + checksum: 603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + checksum: 5771861f77feefe44f6195ed077a9e4f389acc188f895f570d56445e251b861754b547ea9ef73ecee4e01fdada6568bfe9020d2ec2dfc5571e9fa1bbc4a10615 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" dependencies: - call-bind: "npm:^1.0.0" - get-intrinsic: "npm:^1.0.2" - object-inspect: "npm:^1.9.0" - checksum: c4998d9fc530b0e75a7fd791ad868fdc42846f072734f9080ff55cc8dc7d3899abcda24fd896aa6648c3ab7021b4bb478073eb4f44dfd55bce9714bc1a7c5d45 + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + side-channel-map: "npm:^1.0.1" + checksum: a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + +"side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + side-channel-list: "npm:^1.0.0" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 7d53b9db292c6262f326b6ff3bc1611db84ece36c2c7dc0e937954c13c73185b0406c56589e2bb8d071d6fee468e14c39fb5d203ee39be66b7b8174f179afaba languageName: node linkType: hard From b9579a52784c9934a2f0f72698638fd82fbcec95 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 4 Apr 2026 10:57:45 -0700 Subject: [PATCH 003/104] Fix type declarations for VFS.Base. --- docs/assets/navigation.js | 2 +- docs/assets/search.js | 2 +- docs/interfaces/SQLiteAPI.html | 10 +- docs/interfaces/SQLitePrepareOptions.html | 2 +- docs/interfaces/SQLiteVFS.html | 43 +-- src/types/index.d.ts | 338 ++++++++-------------- 6 files changed, 152 insertions(+), 245 deletions(-) diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index a6a5256a..fa2d8817 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA4uuVipJrShRslIKDvTJLEl1DPBU0lEqSCzJULJSyswrSS1KS0xOLdaHy+pllOTmKOkoZWfmpShZGZma1eqgGRFQlFqQWJTqX1CSmZ9XjMc0VIWEDQ5zC8ZjWphbMGEjnPNzCxJLMpNyUkMqC1IRppVUFsANQlWDZqaBpbmhqVFtLAAsbW1yOAEAAA==" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA4uuVipJrShRslIKDvTJLEl1DPBU0lEqSCzJAApl5pWkFqUlJqcW68Nl9TJKcnOASrIz81KUrIxMzWp10IwIKEotSCxK9S8oyczPK8ZjGqpCwgaHuQXjMQ0oS9gI5/xcoP7MpJzUkMqCVIRpJUAezCBUNWhmGliaG5oa1cYCACxtbXI4AQAA" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 77a151f1..cd77e279 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/interfaces/SQLiteAPI.html b/docs/interfaces/SQLiteAPI.html index 167ba2f5..6bcdc936 100644 --- a/docs/interfaces/SQLiteAPI.html +++ b/docs/interfaces/SQLiteAPI.html @@ -10,7 +10,7 @@
// Import an ES6 module factory function from one of the
// package builds, either 'wa-sqlite.mjs' (synchronous) or
// 'wa-sqlite-async.mjs' (asynchronous). You should only
// use the asynchronous build if you plan to use an
// asynchronous VFS or module.
import SQLiteESMFactory from 'wa-sqlite/dist/wa-sqlite.mjs';

// Import the Javascript API wrappers.
import * as SQLite from 'wa-sqlite';

// Use an async function to simplify Promise handling.
(async function() {
// Invoke the ES6 module factory to create the SQLite
// Emscripten module. This will fetch and compile the
// .wasm file.
const module = await SQLiteESMFactory();

// Use the module to build the API instance.
const sqlite3 = SQLite.Factory(module);

// Use the API to open and access a database.
const db = await sqlite3.open_v2('myDB');
...
})();
interface SQLiteAPI {
    bind(stmt, i, value): number;
    bind_blob(stmt, i, value): number;
    bind_collection(stmt, bindings): number;
    bind_double(stmt, i, value): number;
    bind_int(stmt, i, value): number;
    bind_int64(stmt, i, value): number;
    bind_null(stmt, i): number;
    bind_parameter_count(stmt): number;
    bind_parameter_name(stmt, i): string;
    bind_text(stmt, i, value): number;
    changes(db): number;
    clear_bindings(stmt): number;
    close(db): Promise<number>;
    column(stmt, i): SQLiteCompatibleType;
    column_blob(stmt, i): Uint8Array;
    column_bytes(stmt, i): number;
    column_count(stmt): number;
    column_double(stmt, i): number;
    column_int(stmt, i): number;
    column_int64(stmt, i): bigint;
    column_name(stmt, i): string;
    column_names(stmt): string[];
    column_text(stmt, i): string;
    column_type(stmt, i): number;
    create_function(db, zFunctionName, nArg, eTextRep, pApp, xFunc?, xStep?, xFinal?): number;
    data_count(stmt): number;
    exec(db, zSQL, callback?): Promise<number>;
    finalize(stmt): Promise<number>;
    get_autocommit(db): number;
    libversion(): string;
    libversion_number(): number;
    limit(db, id, newVal): number;
    open_v2(zFilename, iFlags?, zVfs?): Promise<number>;
    progress_handler(db, nProgressOps, handler, userData): any;
    reset(stmt): Promise<number>;
    result(context, value): void;
    result_blob(context, value): void;
    result_double(context, value): void;
    result_int(context, value): void;
    result_int64(context, value): void;
    result_null(context): void;
    result_text(context, value): void;
    row(stmt): SQLiteCompatibleType[];
    set_authorizer(db, authFunction, userData): number;
    sql(stmt): string;
    statements(db, sql, options?): AsyncIterable<number>;
    step(stmt): Promise<number>;
    update_hook(db, callback): void;
    value(pValue): SQLiteCompatibleType;
    value_blob(pValue): Uint8Array;
    value_bytes(pValue): number;
    value_double(pValue): number;
    value_int(pValue): number;
    value_int64(pValue): bigint;
    value_text(pValue): string;
    value_type(pValue): number;
    vfs_register(vfs, makeDefault?): number;
}

Methods

interface SQLiteAPI {
    bind(stmt, i, value): number;
    bind_blob(stmt, i, value): number;
    bind_collection(stmt, bindings): number;
    bind_double(stmt, i, value): number;
    bind_int(stmt, i, value): number;
    bind_int64(stmt, i, value): number;
    bind_null(stmt, i): number;
    bind_parameter_count(stmt): number;
    bind_parameter_name(stmt, i): string;
    bind_text(stmt, i, value): number;
    changes(db): number;
    clear_bindings(stmt): number;
    close(db): Promise<number>;
    column(stmt, i): SQLiteCompatibleType;
    column_blob(stmt, i): Uint8Array;
    column_bytes(stmt, i): number;
    column_count(stmt): number;
    column_double(stmt, i): number;
    column_int(stmt, i): number;
    column_int64(stmt, i): bigint;
    column_name(stmt, i): string;
    column_names(stmt): string[];
    column_text(stmt, i): string;
    column_type(stmt, i): number;
    commit_hook(db, callback): void;
    create_function(db, zFunctionName, nArg, eTextRep, pApp, xFunc?, xStep?, xFinal?): number;
    data_count(stmt): number;
    exec(db, zSQL, callback?): Promise<number>;
    finalize(stmt): Promise<number>;
    get_autocommit(db): number;
    libversion(): string;
    libversion_number(): number;
    limit(db, id, newVal): number;
    open_v2(zFilename, iFlags?, zVfs?): Promise<number>;
    progress_handler(db, nProgressOps, handler, userData): any;
    reset(stmt): Promise<number>;
    result(context, value): void;
    result_blob(context, value): void;
    result_double(context, value): void;
    result_int(context, value): void;
    result_int64(context, value): void;
    result_null(context): void;
    result_text(context, value): void;
    row(stmt): SQLiteCompatibleType[];
    set_authorizer(db, authFunction, userData): number;
    sql(stmt): string;
    statements(db, sql, options?): AsyncIterable<number>;
    step(stmt): Promise<number>;
    update_hook(db, callback): void;
    value(pValue): SQLiteCompatibleType;
    value_blob(pValue): Uint8Array;
    value_bytes(pValue): number;
    value_double(pValue): number;
    value_int(pValue): number;
    value_int64(pValue): bigint;
    value_text(pValue): string;
    value_type(pValue): number;
    vfs_register(vfs, makeDefault?): number;
}

Methods

  • i: number

    column index

  • Returns number

    enumeration value for type

    • Register a commit hook

      +

      Parameters

      • db: number

        database pointer

        +
      • callback: (() => number)

        If a non-zero value is returned, commit is converted into +a rollback; disables callback when null

        +
          • (): number
          • Returns number

      Returns void

    • Create or redefine SQL functions

      The application data passed is ignored. Use closures instead.

      If any callback function returns a Promise, that function must @@ -386,4 +392,4 @@

      Parameters

      • vfs: SQLiteVFS

        VFS object

      • Optional makeDefault: boolean

      Returns number

      SQLITE_OK (throws exception on error)

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/SQLitePrepareOptions.html b/docs/interfaces/SQLitePrepareOptions.html index 506d61f6..1bc0c9a5 100644 --- a/docs/interfaces/SQLitePrepareOptions.html +++ b/docs/interfaces/SQLitePrepareOptions.html @@ -2,7 +2,7 @@
    interface SQLitePrepareOptions {
        flags?: number;
        unscoped?: boolean;
    }

    Properties

    Properties

    flags?: number

    SQLITE_PREPARE_* flags

    -
    unscoped?: boolean

    Statement handles prepared and yielded by SQLiteAPI.statements are normally valid only within the scope of an iteration. Set unscoped to true to give iterated statements an arbitrary diff --git a/docs/interfaces/SQLiteVFS.html b/docs/interfaces/SQLiteVFS.html index 11287961..39025e91 100644 --- a/docs/interfaces/SQLiteVFS.html +++ b/docs/interfaces/SQLiteVFS.html @@ -1,17 +1,14 @@ SQLiteVFS | wa-sqlite

    Interface SQLiteVFS

    SQLite Virtual File System object

    Objects with this interface can be passed to SQLiteAPI.vfs_register to define a new filesystem.

    -

    There are examples of a synchronous -MemoryVFS.js, -and asynchronous -MemoryAsyncVFS.js -and -IndexedDbVFS.js.

    +

    There are synchronous +and asynchronous +example VFS classes in the repository.

    interface SQLiteVFS {
        mxPathName?: number;
        xAccess(pVfs, zName, flags, pResOut): number | Promise<number>;
        xCheckReservedLock(fileId, pResOut): number | Promise<number>;
        xClose(fileId): number | Promise<number>;
        xDelete(pVfs, zName, syncDir): number | Promise<number>;
        xDeviceCharacteristics(fileId): number | Promise<number>;
        xFileControl(fileId, flags, pOut): number | Promise<number>;
        xFileSize(fileId, pSize64): number | Promise<number>;
        xLock(fileId, flags): number | Promise<number>;
        xOpen(pVfs, zName, pFile, flags, pOutFlags): number | Promise<number>;
        xRead(fileId, pData, iAmt, iOffsetLo, iOffsetHi): number | Promise<number>;
        xSync(fileId, flags): number | Promise<number>;
        xTruncate(fileId, iSizeLo, iSizeHi): number | Promise<number>;
        xUnlock(fileId, flags): number | Promise<number>;
        xWrite(fileId, pData, iAmt, iOffsetLo, iOffsetHi): number | Promise<number>;
    }

    Properties

    interface SQLiteVFS {
        mxPathname?: number;
        xAccess(pVfs, zName, flags, pResOut): number | Promise<number>;
        xCheckReservedLock(pFile, pResOut): number | Promise<number>;
        xClose(pFile): number | Promise<number>;
        xDelete(pVfs, zName, syncDir): number | Promise<number>;
        xDeviceCharacteristics(pFile): number | Promise<number>;
        xFileControl(pFile, op, pArg): number | Promise<number>;
        xFileSize(pFile, pSize): number | Promise<number>;
        xFullPathname(pVfs, zName, nOut, zOut): number | Promise<number>;
        xGetLastError(pVfs, nBuf, zBuf): number | Promise<number>;
        xLock(pFile, lockType): number | Promise<number>;
        xOpen(pVfs, zName, pFile, flags, pOutFlags): number | Promise<number>;
        xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi): number | Promise<number>;
        xSectorSize(pFile): number | Promise<number>;
        xSync(pFile, flags): number | Promise<number>;
        xTruncate(pFile, sizeLo, sizeHi): number | Promise<number>;
        xUnlock(pFile, lockType): number | Promise<number>;
        xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi): number | Promise<number>;
    }

    Properties

    mxPathName?: number

    Maximum length of a file path in UTF-8 bytes (default 64)

    +

    Properties

    mxPathname?: number

    Maximum length of a file path in UTF-8 bytes (default 64)

    Methods

    • Parameters

      • pVfs: number
      • zName: number
      • flags: number
      • pResOut: number

      Returns number | Promise<number>

    • Parameters

      • pVfs: number
      • zName: number
      • syncDir: number

      Returns number | Promise<number>

    • Parameters

      • pVfs: number
      • zName: number
      • nOut: number
      • zOut: number

      Returns number | Promise<number>

    • Parameters

      • pVfs: number
      • nBuf: number
      • zBuf: number

      Returns number | Promise<number>

    • Parameters

      • pVfs: number
      • zName: number
      • pFile: number
      • flags: number
      • pOutFlags: number

      Returns number | Promise<number>

    • Parameters

      • fileId: number
      • pData: number
      • iAmt: number
      • iOffsetLo: number
      • iOffsetHi: number

      Returns number | Promise<number>

    • Parameters

      • fileId: number
      • pData: number
      • iAmt: number
      • iOffsetLo: number
      • iOffsetHi: number

      Returns number | Promise<number>

    Generated using TypeDoc

    \ No newline at end of file +
    • Parameters

      • pFile: number
      • pData: number
      • iAmt: number
      • iOffsetLo: number
      • iOffsetHi: number

      Returns number | Promise<number>

    • Parameters

      • pFile: number
      • pData: number
      • iAmt: number
      • iOffsetLo: number
      • iOffsetHi: number

      Returns number | Promise<number>

    Generated using TypeDoc

    \ No newline at end of file diff --git a/src/types/index.d.ts b/src/types/index.d.ts index 3eaa73a0..24e7ef5d 100644 --- a/src/types/index.d.ts +++ b/src/types/index.d.ts @@ -23,29 +23,64 @@ type SQLiteCompatibleType = number|string|Uint8Array|Array|bigint|null; * Objects with this interface can be passed to {@link SQLiteAPI.vfs_register} * to define a new filesystem. * - * There are examples of a synchronous - * [MemoryVFS.js](https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/MemoryVFS.js), - * and asynchronous - * [MemoryAsyncVFS.js](https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/MemoryAsyncVFS.js) - * and - * [IndexedDbVFS.js](https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/IndexedDbVFS.js). + * There are [synchronous](https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/MemoryVFS.js) + * and [asynchronous](https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/MemoryAsyncVFS.js) + * example VFS classes in the repository. * * @see https://sqlite.org/vfs.html * @see https://sqlite.org/c3ref/io_methods.html */ declare interface SQLiteVFS { /** Maximum length of a file path in UTF-8 bytes (default 64) */ - mxPathName?: number; + mxPathname?: number; + + name: string; close(): void|Promise; isReady(): boolean|Promise; + hasAsyncMethod(methodName: string): boolean; + + /** @see https://sqlite.org/c3ref/vfs.html */ + xOpen( + pVfs: number, + zName: number, + pFile: number, + flags: number, + pOutFlags: number + ): number|Promise; + + /** @see https://sqlite.org/c3ref/vfs.html */ + xDelete(pVfs: number, zName: number, syncDir: number): number|Promise; + + /** @see https://sqlite.org/c3ref/vfs.html */ + xAccess( + pVfs: number, + zName: number, + flags: number, + pResOut: number + ): number|Promise; + + /** @see https://sqlite.org/c3ref/vfs.html */ + xFullPathname( + pVfs: number, + zName: number, + nOut: number, + zOut: number + ): number|Promise; + + /** @see https://sqlite.org/c3ref/vfs.html */ + xGetLastError( + pVfs: number, + nBuf: number, + zBuf: number + ): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ - xClose(fileId: number): number|Promise; + xClose(pFile: number): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ xRead( - fileId: number, + pFile: number, pData: number, iAmt: number, iOffsetLo: number, @@ -54,7 +89,7 @@ declare interface SQLiteVFS { /** @see https://sqlite.org/c3ref/io_methods.html */ xWrite( - fileId: number, + pFile: number, pData: number, iAmt: number, iOffsetLo: number, @@ -62,58 +97,41 @@ declare interface SQLiteVFS { ): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ - xTruncate(fileId: number, iSizeLo: number, iSizeHi): number|Promise; + xTruncate(pFile: number, sizeLo: number, sizeHi: number): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ - xSync(fileId: number, flags: number): number|Promise; + xSync(pFile: number, flags: number): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ xFileSize( - fileId: number, - pSize64: number + pFile: number, + pSize: number ): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ - xLock(fileId: number, flags: number): number|Promise; + xLock(pFile: number, lockType: number): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ - xUnlock(fileId: number, flags: number): number|Promise; + xUnlock(pFile: number, lockType: number): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ xCheckReservedLock( - fileId: number, + pFile: number, pResOut: number ): number|Promise; /** @see https://sqlite.org/c3ref/io_methods.html */ xFileControl( - fileId: number, - flags: number, - pOut: number - ): number|Promise; - - /** @see https://sqlite.org/c3ref/io_methods.html */ - xDeviceCharacteristics(fileId: number): number|Promise; - - /** @see https://sqlite.org/c3ref/vfs.html */ - xOpen( - pVfs: number, - zName: number, pFile: number, - flags: number, - pOutFlags: number + op: number, + pArg: number ): number|Promise; - /** @see https://sqlite.org/c3ref/vfs.html */ - xDelete(pVfs: number, zName: number, syncDir: number): number|Promise; + /** @see https://sqlite.org/c3ref/io_methods.html */ + xSectorSize(pFile: number): number|Promise; - /** @see https://sqlite.org/c3ref/vfs.html */ - xAccess( - pVfs: number, - zName: number, - flags: number, - pResOut: number - ): number|Promise; + /** @see https://sqlite.org/c3ref/io_methods.html */ + xDeviceCharacteristics(pFile: number): number|Promise; } /** @@ -130,7 +148,7 @@ declare interface SQLitePrepareOptions { /** * SQLITE_PREPARE_* flags - * @see https://www.sqlite.org/c3ref/c_prepare_normalize.html#sqlitepreparepersistent + * @see https://sqlite.org/c3ref/c_prepare_dont_log.html#sqlitepreparepersistent */ flags?: number; } @@ -1122,186 +1140,66 @@ declare module 'wa-sqlite/dist/wa-sqlite-async.mjs' { declare module 'wa-sqlite/src/VFS.js' { export * from 'wa-sqlite/src/sqlite-constants.js'; - export class Base { - mxPathName: number; - /** - * @param {number} fileId - * @returns {number|Promise} - */ - xClose(fileId: number): number; - /** - * @param {number} fileId - * @param {Uint8Array} pData - * @param {number} iOffset - * @returns {number} - */ - xRead(fileId: number, pData: { - size: number; - value: Uint8Array; - }, iOffset: number): number; - /** - * @param {number} fileId - * @param {Uint8Array} pData - * @param {number} iOffset - * @returns {number} - */ - xWrite(fileId: number, pData: { - size: number; - value: Uint8Array; - }, iOffset: number): number; - /** - * @param {number} fileId - * @param {number} iSize - * @returns {number} - */ - xTruncate(fileId: number, iSize: number): number; - /** - * @param {number} fileId - * @param {*} flags - * @returns {number} - */ - xSync(fileId: number, flags: any): number; - /** - * @param {number} fileId - * @param {DataView} pSize64 - * @returns {number|Promise} - */ - xFileSize(fileId: number, pSize64: DataView): number; - /** - * @param {number} fileId - * @param {number} flags - * @returns {number} - */ - xLock(fileId: number, flags: number): number; - /** - * @param {number} fileId - * @param {number} flags - * @returns {number} - */ - xUnlock(fileId: number, flags: number): number; - /** - * @param {number} fileId - * @param {DataView} pResOut - * @returns {number} - */ - xCheckReservedLock(fileId: number, pResOut: DataView): number; - /** - * @param {number} fileId - * @param {number} flags - * @param {DataView} pArg - * @returns {number} - */ - xFileControl(fileId: number, flags: number, pArg: DataView): number; - /** - * @param {number} fileId - * @returns {number} - */ - xSectorSize(fileId: number): number; - /** - * @param {number} fileId - * @returns {number} - */ - xDeviceCharacteristics(fileId: number): number; - /** - * @param {string?} name - * @param {number} fileId - * @param {number} flags - * @param {DataView} pOutFlags - * @returns {number} - */ - xOpen(name: string | null, fileId: number, flags: number, pOutFlags: DataView): number; - /** - * - * @param {string} name - * @param {number} syncDir - * @returns {number} - */ - xDelete(name: string, syncDir: number): number; - /** - * @param {string} name - * @param {number} flags - * @param {DataView} pResOut - * @returns {number} - */ - xAccess(name: string, flags: number, pResOut: DataView): number; - /** - * Handle asynchronous operation. This implementation will be overriden on - * registration by an Asyncify build. - * @param {function(): Promise} f - * @returns {number} - */ - handleAsync(f: () => Promise): number; - } -} - -/** @ignore */ -declare module 'wa-sqlite/src/examples/IndexedDbVFS.js' { - import * as VFS from "wa-sqlite/src/VFS.js"; - export class IndexedDbVFS extends VFS.Base { - /** - * @param {string} idbName Name of IndexedDB database. - */ - constructor(idbName?: string); - name: string; - mapIdToFile: Map; - cacheSize: number; - db: any; - close(): Promise; - /** - * Delete a file from IndexedDB. - * @param {string} name - */ - deleteFile(name: string): Promise; - /** - * Forcibly clear an orphaned file lock. - * @param {string} name - */ - forceClearLock(name: string): Promise; - _getStore(mode?: string): any; - /** - * Returns the key for file metadata. - * @param {string} name - * @returns - */ - _metaKey(name: string): string; - /** - * Returns the key for file block data. - * @param {string} name - * @param {number} index - * @returns - */ - _blockKey(name: string, index: number): string; - _getBlock(store: any, file: any, index: any): Promise; - _putBlock(store: any, file: any, index: any, blockData: any): void; - _purgeCache(store: any, file: any, size?: number): void; - _flushCache(store: any, file: any): Promise; - _sync(file: any): Promise; - /** - * Helper function that deletes all keys greater or equal to `key` - * provided they start with `prefix`. - * @param {string} key - * @param {string} [prefix] - * @returns - */ - _delete(key: string, prefix?: string): Promise; - } -} - -/** @ignore */ -declare module 'wa-sqlite/src/examples/MemoryVFS.js' { - import * as VFS from "wa-sqlite/src/VFS.js"; - /** @ignore */ - export class MemoryVFS extends VFS.Base { + export class Base implements SQLiteVFS { name: string; - mapNameToFile: Map; - mapIdToFile: Map; - } -} - -/** @ignore */ -declare module 'wa-sqlite/src/examples/MemoryAsyncVFS.js' { - import { MemoryVFS } from "wa-sqlite/src/examples/MemoryVFS.js"; - export class MemoryAsyncVFS extends MemoryVFS { + mxPathname: number; + _module: object; + + constructor(name: string, module: object); + + close(): void | Promise; + isReady(): boolean | Promise; + hasAsyncMethod(methodName: string): boolean; + + xOpen( + pVfs: number, + zName: number, + pFile: number, + flags: number, + pOutFlags: number + ): number | Promise; + xDelete(pVfs: number, zName: number, syncDir: number): number | Promise; + xAccess( + pVfs: number, + zName: number, + flags: number, + pResOut: number + ): number | Promise; + xFullPathname( + pVfs: number, + zName: number, + nOut: number, + zOut: number + ): number | Promise; + xGetLastError( + pVfs: number, + nBuf: number, + zBuf: number + ): number | Promise; + xClose(pFile: number): number | Promise; + xRead( + pFile: number, + pData: number, + iAmt: number, + iOffsetLo: number, + iOffsetHi: number + ): number | Promise; + xWrite( + pFile: number, + pData: number, + iAmt: number, + iOffsetLo: number, + iOffsetHi: number + ): number | Promise; + xTruncate(pFile: number, sizeLo: number, sizeHi: number): number | Promise; + xSync(pFile: number, flags: number): number | Promise; + xFileSize(pFile: number, pSize: number): number | Promise; + xLock(pFile: number, lockType: number): number | Promise; + xUnlock(pFile: number, lockType: number): number | Promise; + xCheckReservedLock(pFile: number, pResOut: number): number | Promise; + xFileControl(pFile: number, op: number, pArg: number): number | Promise; + xSectorSize(pFile: number): number | Promise; + xDeviceCharacteristics(pFile: number): number | Promise; } } From ac62f85891b56729eb912c83b322e55ff1ff5200 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Apr 2026 18:10:29 +0000 Subject: [PATCH 004/104] Bump basic-ftp from 5.0.4 to 5.2.0 Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.0.4 to 5.2.0. - [Release notes](https://github.com/patrickjuchli/basic-ftp/releases) - [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md) - [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.0.4...v5.2.0) --- updated-dependencies: - dependency-name: basic-ftp dependency-version: 5.2.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d6af5c26..27be4f8d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1161,9 +1161,9 @@ __metadata: linkType: hard "basic-ftp@npm:^5.0.2": - version: 5.0.4 - resolution: "basic-ftp@npm:5.0.4" - checksum: bc35c1a1246176c2ef68b9bdac3639d2da6fe499a5700d10b161826e6ee3dcbfd4ad1dd10d0093f1ddc781c36a3aa5e13c8e8b006efad329f86c45481f23eb76 + version: 5.2.0 + resolution: "basic-ftp@npm:5.2.0" + checksum: f5a15d789aa98859af4da9e976154b2aeae19052e1762dc68d259d2bce631dafa40c667aa06d7346cd630aa6f9cc9a26f515b468e0bd24243fbae2149c7d01ad languageName: node linkType: hard From d6afd636ee93693b7f9d736b91fe50aaeb707616 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 4 Apr 2026 12:00:48 -0700 Subject: [PATCH 005/104] Update packages for dependabot. --- package.json | 2 +- yarn.lock | 1113 +++++++++++++++++++++----------------------------- 2 files changed, 470 insertions(+), 645 deletions(-) diff --git a/package.json b/package.json index 690d10ea..65e60baf 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@types/jasmine": "^5.1.4", "@web/dev-server": "^0.4.6", - "@web/test-runner": "^0.20.0", + "@web/test-runner": "^0.20.2", "@web/test-runner-core": "^0.13.4", "comlink": "^4.4.1", "jasmine-core": "^4.5.0", diff --git a/yarn.lock b/yarn.lock index 27be4f8d..caaf78a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,10 +42,19 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 052dd232140fa60e81588000cbe729a40146579b361f1070bce63e2a761388a22a16d00beeffc504bd3601cb8e055c57b21a185448b3ed550cf50716f4fd442e +"@gar/promise-retry@npm:^1.0.0": + version: 1.0.3 + resolution: "@gar/promise-retry@npm:1.0.3" + checksum: 0d13ea3bb1025755e055648f6e290d2a7e0c87affaf552218f09f66b3fcd9ea9d5c9cc5fe2aa6e285e1530437768e40f9448fe9a86f4f3417b216dcf488d3d1a + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 4412e9e6713c89c1e66d80bb0bb5a2a93192f10477623a27d08f228ba0316bb880affabc5bfe7f838f58a34d26c2c190da726e576cdfc18c49a72e89adabdcf5 languageName: node linkType: hard @@ -100,23 +109,32 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^2.1.0": - version: 2.1.0 - resolution: "@npmcli/fs@npm:2.1.0" +"@npmcli/agent@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/agent@npm:4.0.0" dependencies: - "@gar/promisify": "npm:^1.1.3" - semver: "npm:^7.3.5" - checksum: 1fe97efb5c1250c5986b46b6c8256b1eab8159a6d50fc8ace9f90937b3195541272faf77f18bdbf5eeb89bab68332c7846ac5ab9337e6099e63c6007388ebe84 + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^11.2.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 1a81573becc60515031accc696e6405e9b894e65c12b98ef4aeee03b5617c41948633159dbf6caf5dde5b47367eeb749bdc7b7dfb21960930a9060a935c6f636 languageName: node linkType: hard -"@npmcli/move-file@npm:^1.1.2": - version: 1.1.2 - resolution: "@npmcli/move-file@npm:1.1.2" +"@npmcli/fs@npm:^5.0.0": + version: 5.0.0 + resolution: "@npmcli/fs@npm:5.0.0" dependencies: - mkdirp: "npm:^1.0.4" - rimraf: "npm:^3.0.2" - checksum: c96381d4a37448ea280951e46233f7e541058cf57a57d4094dd4bdcaae43fa5872b5f2eb6bfb004591a68e29c5877abe3cdc210cb3588cbf20ab2877f31a7de7 + semver: "npm:^7.3.5" + checksum: 4935c7719d17830d0f9fa46c50be17b2a3c945cec61760f6d0909bce47677c42e1810ca673305890f9e84f008ec4d8e841182f371e42100a8159d15f22249208 + languageName: node + linkType: hard + +"@npmcli/redact@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/redact@npm:4.0.0" + checksum: 5d52df2b5267f4369c97a2b2f7c427e3d7aa4b6a83e7a1b522e196f6e9d50024c620bd0cb2052067c74d1aaa0c330d9bc04e1d335bfb46180e705bb33423e74c languageName: node linkType: hard @@ -190,122 +208,178 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4" +"@rollup/rollup-android-arm-eabi@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.60.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-android-arm64@npm:4.22.4" +"@rollup/rollup-android-arm64@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-android-arm64@npm:4.60.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" +"@rollup/rollup-darwin-arm64@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.60.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" +"@rollup/rollup-darwin-x64@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.60.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" +"@rollup/rollup-freebsd-arm64@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.60.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.60.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.60.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" +"@rollup/rollup-linux-arm-musleabihf@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.60.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" +"@rollup/rollup-linux-arm64-gnu@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.60.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" +"@rollup/rollup-linux-arm64-musl@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.60.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" +"@rollup/rollup-linux-loong64-gnu@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.60.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-musl@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.60.1" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-gnu@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.60.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" +"@rollup/rollup-linux-ppc64-musl@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.60.1" + conditions: os=linux & cpu=ppc64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.60.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" +"@rollup/rollup-linux-riscv64-musl@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.60.1" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.60.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" +"@rollup/rollup-linux-x64-gnu@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.60.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" +"@rollup/rollup-linux-x64-musl@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.60.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" +"@rollup/rollup-openbsd-x64@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-openbsd-x64@npm:4.60.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.60.1" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.60.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" +"@rollup/rollup-win32-ia32-msvc@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.60.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" +"@rollup/rollup-win32-x64-gnu@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.60.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 +"@rollup/rollup-win32-x64-msvc@npm:4.60.1": + version: 4.60.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.60.1" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -401,7 +475,14 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": +"@types/estree@npm:1.0.8": + version: 1.0.8 + resolution: "@types/estree@npm:1.0.8" + checksum: 25a4c16a6752538ffde2826c2cc0c6491d90e69cd6187bef4a006dd2c3c45469f049e643d7e516c515f21484dc3d48fd5c870be158a5beb72f5baf3dc43e4099 + languageName: node + linkType: hard + +"@types/estree@npm:^1.0.0": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 7de6d928dd4010b0e20c6919e1a6c27b61f8d4567befa89252055fad503d587ecb9a1e3eab1b1901f923964d7019796db810b7fd6430acb26c32866d126fd408 @@ -709,16 +790,15 @@ __metadata: languageName: node linkType: hard -"@web/test-runner-chrome@npm:^0.18.0": - version: 0.18.0 - resolution: "@web/test-runner-chrome@npm:0.18.0" +"@web/test-runner-chrome@npm:^0.18.1": + version: 0.18.1 + resolution: "@web/test-runner-chrome@npm:0.18.1" dependencies: "@web/test-runner-core": "npm:^0.13.0" "@web/test-runner-coverage-v8": "npm:^0.8.0" - async-mutex: "npm:0.4.0" chrome-launcher: "npm:^0.15.0" puppeteer-core: "npm:^24.0.0" - checksum: 5683e889e6c5e102c63a223d56778fecac32e4f062ac96b962fb123c788df7faf647fa88eb2b87e2119b20a2b90a908a34e05646fba8427b56f0cbb96740244e + checksum: bd0e987d65d8a4642a0407e74efe8e4531b60002be26b689b5435e574c7f6670c34c41e31f394f8a04a05642522cfc3cbdc34387f6e576a3f75dc5d8c05c7a03 languageName: node linkType: hard @@ -732,41 +812,7 @@ __metadata: languageName: node linkType: hard -"@web/test-runner-core@npm:^0.13.0": - version: 0.13.3 - resolution: "@web/test-runner-core@npm:0.13.3" - dependencies: - "@babel/code-frame": "npm:^7.12.11" - "@types/babel__code-frame": "npm:^7.0.2" - "@types/co-body": "npm:^6.1.0" - "@types/convert-source-map": "npm:^2.0.0" - "@types/debounce": "npm:^1.2.0" - "@types/istanbul-lib-coverage": "npm:^2.0.3" - "@types/istanbul-reports": "npm:^3.0.0" - "@web/browser-logs": "npm:^0.4.0" - "@web/dev-server-core": "npm:^0.7.2" - chokidar: "npm:^3.4.3" - cli-cursor: "npm:^3.1.0" - co-body: "npm:^6.1.0" - convert-source-map: "npm:^2.0.0" - debounce: "npm:^1.2.0" - dependency-graph: "npm:^0.11.0" - globby: "npm:^11.0.1" - internal-ip: "npm:^6.2.0" - istanbul-lib-coverage: "npm:^3.0.0" - istanbul-lib-report: "npm:^3.0.1" - istanbul-reports: "npm:^3.0.2" - log-update: "npm:^4.0.0" - nanocolors: "npm:^0.2.1" - nanoid: "npm:^3.1.25" - open: "npm:^8.0.2" - picomatch: "npm:^2.2.2" - source-map: "npm:^0.7.3" - checksum: d601bd7a93d3b4ad5c819731364217770d9494d2887c605980bfd60bad946370f8412364d39db0daf962592751ae271e30df133636b19cd27abe61447d711328 - languageName: node - linkType: hard - -"@web/test-runner-core@npm:^0.13.4": +"@web/test-runner-core@npm:^0.13.0, @web/test-runner-core@npm:^0.13.4": version: 0.13.4 resolution: "@web/test-runner-core@npm:0.13.4" dependencies: @@ -849,14 +895,14 @@ __metadata: languageName: node linkType: hard -"@web/test-runner@npm:^0.20.0": - version: 0.20.0 - resolution: "@web/test-runner@npm:0.20.0" +"@web/test-runner@npm:^0.20.2": + version: 0.20.2 + resolution: "@web/test-runner@npm:0.20.2" dependencies: "@web/browser-logs": "npm:^0.4.0" "@web/config-loader": "npm:^0.3.0" "@web/dev-server": "npm:^0.4.0" - "@web/test-runner-chrome": "npm:^0.18.0" + "@web/test-runner-chrome": "npm:^0.18.1" "@web/test-runner-commands": "npm:^0.9.0" "@web/test-runner-core": "npm:^0.13.0" "@web/test-runner-mocha": "npm:^0.9.0" @@ -872,14 +918,14 @@ __metadata: bin: web-test-runner: dist/bin.js wtr: dist/bin.js - checksum: 15d96bf0d9466dfb041880ead1275bfe4ff46777c0b4f5743bab11c7373a1725e6245555cb6ec8655b89b625b91d18421d7a97157d25ad10631c93774fc7bec8 + checksum: bc9f52ce56a14348cd6a419a69ce0f0782978d3a9435d4efe8112d09f0e03397b3d6bd320152e7c264a6cdbc60c6975d8516780fad0cf6e4c939f93800a4ecdf languageName: node linkType: hard -"abbrev@npm:1": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: 2d882941183c66aa665118bafdab82b7a177e9add5eb2776c33e960a4f3c89cff88a1b38aba13a456de01d0dd9d66a8bea7c903268b21ea91dd1097e1e2e8243 +"abbrev@npm:^4.0.0": + version: 4.0.0 + resolution: "abbrev@npm:4.0.0" + checksum: e2f0c6a6708ad738b3e8f50233f4800de31ad41a6cdc50e0cbe51b76fed69fd0213516d92c15ce1a9985fca71a14606a9be22bf00f8475a58987b9bfb671c582 languageName: node linkType: hard @@ -893,15 +939,6 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:6, agent-base@npm:^6.0.2": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: "npm:4" - checksum: 21fb903e0917e5cb16591b4d0ef6a028a54b83ac30cd1fca58dece3d4e0990512a8723f9f83130d88a41e2af8b1f7be1386fda3ea2d181bb1a62155e75e95e23 - languageName: node - linkType: hard - "agent-base@npm:^7.1.0": version: 7.1.0 resolution: "agent-base@npm:7.1.0" @@ -918,27 +955,6 @@ __metadata: languageName: node linkType: hard -"agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" - dependencies: - debug: "npm:^4.1.0" - depd: "npm:^1.1.2" - humanize-ms: "npm:^1.2.1" - checksum: 63961cba1afa26d708da94159f3b9428d46fdc137b783fbc399b848e750c5e28c97d96839efa8cb3c2d11ecd12dd411298c00d164600212f660e8c55369c9e55 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: "npm:^2.0.0" - indent-string: "npm:^4.0.0" - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - "ansi-escapes@npm:^4.3.0": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -990,23 +1006,6 @@ __metadata: languageName: node linkType: hard -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: c2b9a631298e8d6f3797547e866db642f68493808f5b37cd61da778d5f6ada890d16f668285f7d60bd4fc3b03889bd590ffe62cf81b700e9bb353431238a0a7b - languageName: node - linkType: hard - -"are-we-there-yet@npm:^3.0.0": - version: 3.0.0 - resolution: "are-we-there-yet@npm:3.0.0" - dependencies: - delegates: "npm:^1.0.0" - readable-stream: "npm:^3.6.0" - checksum: 7266eee19d0be9dd8e58b63cfb1e1ad45945125fac1e75f00237b55960891bf3bb0be291757a8d9dcf1dbfacfb3802d3eb3f9a064084a6a70a61fe0571f9318f - languageName: node - linkType: hard - "array-back@npm:^3.0.1, array-back@npm:^3.1.0": version: 3.1.0 resolution: "array-back@npm:3.1.0" @@ -1090,6 +1089,13 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: fb07bb66a0959c2843fc055838047e2a95ccebb837c519614afb067ebfdf2fa967ca8d712c35ced07f2cd26fc6f07964230b094891315ad74f11eba3d53178a0 + languageName: node + linkType: hard + "bare-events@npm:^2.2.0": version: 2.2.2 resolution: "bare-events@npm:2.2.2" @@ -1174,22 +1180,21 @@ __metadata: languageName: node linkType: hard -"brace-expansion@npm:^1.1.7": - version: 1.1.12 - resolution: "brace-expansion@npm:1.1.12" +"brace-expansion@npm:^2.0.2": + version: 2.0.3 + resolution: "brace-expansion@npm:2.0.3" dependencies: balanced-match: "npm:^1.0.0" - concat-map: "npm:0.0.1" - checksum: 12cb6d6310629e3048cadb003e1aca4d8c9bb5c67c3c321bafdd7e7a50155de081f78ea3e0ed92ecc75a9015e784f301efc8132383132f4f7904ad1ac529c562 + checksum: e9dd66caaf0784126e1654f1bc19adb28f3ef86f39f2226f833f7700ec727c141f6cd85eaa47bacf3426beda01c9fbc3a2f28174cf59330dc9b58ffaf9e09d96 languageName: node linkType: hard -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" +"brace-expansion@npm:^5.0.5": + version: 5.0.5 + resolution: "brace-expansion@npm:5.0.5" dependencies: - balanced-match: "npm:^1.0.0" - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + balanced-match: "npm:^4.0.2" + checksum: f259b2ddf04489da9512ad637ba6b4ef2d77abd4445d20f7f1714585f153435200a53fa6a2e4a5ee974df14ddad4cd16421f6f803e96e8b452bd48598878d0ee languageName: node linkType: hard @@ -1233,29 +1238,21 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^16.0.2": - version: 16.0.3 - resolution: "cacache@npm:16.0.3" +"cacache@npm:^20.0.1": + version: 20.0.4 + resolution: "cacache@npm:20.0.4" dependencies: - "@npmcli/fs": "npm:^2.1.0" - "@npmcli/move-file": "npm:^1.1.2" - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.1.0" - glob: "npm:^7.2.0" - infer-owner: "npm:^1.0.4" - lru-cache: "npm:^7.7.1" - minipass: "npm:^3.1.6" - minipass-collect: "npm:^1.0.2" + "@npmcli/fs": "npm:^5.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^13.0.0" + lru-cache: "npm:^11.1.0" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" minipass-flush: "npm:^1.0.5" minipass-pipeline: "npm:^1.2.4" - mkdirp: "npm:^1.0.4" - p-map: "npm:^4.0.0" - promise-inflight: "npm:^1.0.1" - rimraf: "npm:^3.0.2" - ssri: "npm:^8.0.1" - tar: "npm:^6.1.11" - unique-filename: "npm:^1.1.1" - checksum: 33788e925e25d63a9db2e6cf871d8fb653be69d825b3418c2f36ad001a3be32de3b4c3a7570614a8de46150925f38d5a59bd5b26b5770f22c34694ba73b12185 + p-map: "npm:^7.0.2" + ssri: "npm:^13.0.0" + checksum: 02c1b4c57dc2473e6f4654220c9405b73ae5fcdb392f82a7cf535468a52b842690cdb3694861d13bbe4dc067d5f8abe9697b4f791ae5b65cd73d62abad1e3e54 languageName: node linkType: hard @@ -1354,10 +1351,10 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: b63cb1f73d171d140a2ed8154ee6566c8ab775d3196b0e03a2a94b5f6a0ce7777ee5685ca56849403c8d17bd457a6540672f9a60696a6137c7a409097495b82c languageName: node linkType: hard @@ -1400,13 +1397,6 @@ __metadata: languageName: node linkType: hard -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - "cli-cursor@npm:^3.1.0": version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" @@ -1485,15 +1475,6 @@ __metadata: languageName: node linkType: hard -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 4bcfe30eea1498fe1cabc852bbda6c9770f230ea0e4faf4611c5858b1b9e4dde3730ac485e65f54ca182f4c50b626c1bea7c8441ceda47367a54a818c248aa7a - languageName: node - linkType: hard - "comlink@npm:^4.4.1": version: 4.4.1 resolution: "comlink@npm:4.4.1" @@ -1525,20 +1506,6 @@ __metadata: languageName: node linkType: hard -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 9680699c8e2b3af0ae22592cb764acaf973f292a7b71b8a06720233011853a58e256c89216a10cbe889727532fd77f8bcd49a760cedfde271b8e006c20e079f2 - languageName: node - linkType: hard - -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 27b5fa302bc8e9ae9e98c03c66d76ca289ad0c61ce2fe20ab288d288bee875d217512d2edb2363fc83165e88f1c405180cf3f5413a46e51b4fe1a004840c6cdb - languageName: node - linkType: hard - "content-disposition@npm:~0.5.2": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" @@ -1597,7 +1564,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -1694,7 +1661,7 @@ __metadata: languageName: node linkType: hard -"depd@npm:^1.1.2, depd@npm:~1.1.2": +"depd@npm:~1.1.2": version: 1.1.2 resolution: "depd@npm:1.1.2" checksum: 2ed6966fc14463a9e85451db330ab8ba041efed0b9a1a472dbfc6fbf2f82bab66491915f996b25d8517dddc36c8c74e24c30879b34877f3c4410733444a51d1d @@ -1777,15 +1744,6 @@ __metadata: languageName: node linkType: hard -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - "end-of-stream@npm:^1.1.0": version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" @@ -1802,13 +1760,6 @@ __metadata: languageName: node linkType: hard -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd - languageName: node - linkType: hard - "errorstacks@npm:^2.2.0": version: 2.4.1 resolution: "errorstacks@npm:2.4.1" @@ -1947,6 +1898,13 @@ __metadata: languageName: node linkType: hard +"exponential-backoff@npm:^3.1.1": + version: 3.1.3 + resolution: "exponential-backoff@npm:3.1.3" + checksum: ca25962b4bbab943b7c4ed0b5228e263833a5063c65e1cdeac4be9afad350aae5466e8e619b5051f4f8d37b2144a2d6e8fcc771b6cc82934f7dade2f964f652c + languageName: node + linkType: hard + "extract-zip@npm:^2.0.1": version: 2.0.1 resolution: "extract-zip@npm:2.0.1" @@ -2002,6 +1960,18 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 14ca1c9f0a0e8f4f2e9bf4e8551065a164a09545dae548c12a18d238b72e51e5a7b39bd8e5494b56463a0877672d0a6c1ef62c6fa0677db1b0c847773be939b1 + languageName: node + linkType: hard + "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -2038,19 +2008,12 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" dependencies: - minipass: "npm:^3.0.0" - checksum: 03191781e94bc9a54bd376d3146f90fe8e082627c502185dbf7b9b3032f66b0b142c1115f3b2cc5936575fc1b44845ce903dd4c21bec2a8d69f3bd56f9cee9ec - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: e703107c28e362d8d7b910bbcbfd371e640a3bb45ae157a362b5952c0030c0b6d4981140ec319b347bce7adc025dd7813da1ff908a945ac214d64f5402a51b96 + minipass: "npm:^7.0.3" + checksum: af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f languageName: node linkType: hard @@ -2080,22 +2043,6 @@ __metadata: languageName: node linkType: hard -"gauge@npm:^4.0.0": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" - dependencies: - aproba: "npm:^1.0.3 || ^2.0.0" - color-support: "npm:^1.1.3" - console-control-strings: "npm:^1.1.0" - has-unicode: "npm:^2.0.1" - signal-exit: "npm:^3.0.7" - string-width: "npm:^4.2.3" - strip-ansi: "npm:^6.0.1" - wide-align: "npm:^1.1.5" - checksum: 09535dd53b5ced6a34482b1fa9f3929efdeac02f9858569cde73cef3ed95050e0f3d095706c1689614059898924b7a74aa14042f51381a1ccc4ee5c29d2389c4 - languageName: node - linkType: hard - "generator-function@npm:^2.0.0": version: 2.0.1 resolution: "generator-function@npm:2.0.1" @@ -2178,17 +2125,14 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": - version: 7.2.0 - resolution: "glob@npm:7.2.0" +"glob@npm:^13.0.0": + version: 13.0.6 + resolution: "glob@npm:13.0.6" dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: bc78b6ea0735b6e23d20678aba4ae6a4760e8c9527e3c4683ac25b14e70f55f9531245dcf25959b70cbc4aa3dcce1fc37ab65fd026a4cbd70aa3a44880bd396b + minimatch: "npm:^10.2.2" + minipass: "npm:^7.1.3" + path-scurry: "npm:^2.0.2" + checksum: 201ad69e5f0aa74e1d8c00a481581f8b8c804b6a4fbfabeeb8541f5d756932800331daeba99b58fb9e4cd67e12ba5a7eba5b82fb476691588418060b84353214 languageName: node linkType: hard @@ -2257,13 +2201,6 @@ __metadata: languageName: node linkType: hard -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 041b4293ad6bf391e21c5d85ed03f412506d6623786b801c4ab39e4e6ca54993f13201bceb544d92963f9e0024e6e7fbf0cb1d84c9d6b31cb9c79c8c990d13d8 - languageName: node - linkType: hard - "hasown@npm:^2.0.0": version: 2.0.0 resolution: "hasown@npm:2.0.0" @@ -2299,10 +2236,10 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.0": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 362d5ed66b12ceb9c0a328fb31200b590ab1b02f4a254a697dc796850cc4385603e75f53ec59f768b2dad3bfa1464bd229f7de278d2899a0e3beffc634b6683f +"http-cache-semantics@npm:^4.1.1": + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 4efd2dfcfeea9d5e88c84af450b9980be8a43c2c8179508b1c57c7b4421c855f3e8efe92fa53e0b3f4a43c85824ada930eabbc306d1b3beab750b6dcc5187693 languageName: node linkType: hard @@ -2344,17 +2281,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": "npm:2" - agent-base: "npm:6" - debug: "npm:4" - checksum: 5ee19423bc3e0fd5f23ce991b0755699ad2a46a440ce9cec99e8126bb98448ad3479d2c0ea54be5519db5b19a4ffaa69616bac01540db18506dd4dac3dc418f0 - languageName: node - linkType: hard - "http-proxy-agent@npm:^7.0.0": version: 7.0.0 resolution: "http-proxy-agent@npm:7.0.0" @@ -2375,17 +2301,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "https-proxy-agent@npm:5.0.0" - dependencies: - agent-base: "npm:6" - debug: "npm:4" - checksum: 517037badcbbe30757a9a88aaf5e8c198d31aa0b1e9c0a49a0053ab8e812809242218cc9ea1929171f74d95ae1ec89782ba471ffc3709b8910e91d1761f5f1a6 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.6": +"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.6": version: 7.0.6 resolution: "https-proxy-agent@npm:7.0.6" dependencies: @@ -2402,15 +2318,6 @@ __metadata: languageName: node linkType: hard -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: "npm:^2.0.0" - checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 - languageName: node - linkType: hard - "iconv-lite@npm:0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -2420,12 +2327,12 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" +"iconv-lite@npm:^0.7.2": + version: 0.7.2 + resolution: "iconv-lite@npm:0.7.2" dependencies: safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f + checksum: 24c937b532f868e938386b62410b303b7c767ce3d08dc2829cbe59464d5a26ef86ae5ad1af6b34eec43ddfea39e7d101638644b0178d67262fa87015d59f983a languageName: node linkType: hard @@ -2443,27 +2350,6 @@ __metadata: languageName: node linkType: hard -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: cd3f5cbc9ca2d624c6a1f53f12e6b341659aba0e2d3254ae2b4464aaea8b4294cdb09616abbc59458f980531f2429784ed6a420d48d245bcad0811980c9efae9 - languageName: node - linkType: hard - -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 - languageName: node - linkType: hard - "inflation@npm:^2.0.0": version: 2.1.0 resolution: "inflation@npm:2.1.0" @@ -2471,30 +2357,20 @@ __metadata: languageName: node linkType: hard -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: "npm:^1.3.0" - wrappy: "npm:1" - checksum: d2ebd65441a38c8336c223d1b80b921b9fa737e37ea466fd7e253cb000c64ae1f17fa59e68130ef5bda92cfd8d36b83d37dab0eb0a4558bcfec8e8cdfd2dcb67 +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 8771303d66c51be433b564427c16011a8e3fbc3449f1f11ea50efb30a4369495f1d0e89f0fc12bdec0bd7e49102ced5d137e031d39ea09821cb3c717fcf21e69 languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3": +"inherits@npm:2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 languageName: node linkType: hard -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 8771303d66c51be433b564427c16011a8e3fbc3449f1f11ea50efb30a4369495f1d0e89f0fc12bdec0bd7e49102ced5d137e031d39ea09821cb3c717fcf21e69 - languageName: node - linkType: hard - "internal-ip@npm:^6.2.0": version: 6.2.0 resolution: "internal-ip@npm:6.2.0" @@ -2608,13 +2484,6 @@ __metadata: languageName: node linkType: hard -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - "is-module@npm:^1.0.0": version: 1.0.0 resolution: "is-module@npm:1.0.0" @@ -2659,6 +2528,13 @@ __metadata: languageName: node linkType: hard +"isexe@npm:^4.0.0": + version: 4.0.0 + resolution: "isexe@npm:4.0.0" + checksum: 2ead327ef596042ef9c9ec5f236b316acfaedb87f4bb61b3c3d574fb2e9c8a04b67305e04733bde52c24d9622fdebd3270aadb632adfbf9cadef88fe30f479e5 + languageName: node + linkType: hard + "istanbul-lib-coverage@npm:^3.0.0": version: 3.2.2 resolution: "istanbul-lib-coverage@npm:3.2.2" @@ -2784,8 +2660,8 @@ __metadata: linkType: hard "koa@npm:^2.13.0": - version: 2.16.3 - resolution: "koa@npm:2.16.3" + version: 2.16.4 + resolution: "koa@npm:2.16.4" dependencies: accepts: "npm:^1.3.5" cache-content-type: "npm:^1.0.0" @@ -2810,7 +2686,7 @@ __metadata: statuses: "npm:^1.5.0" type-is: "npm:^1.6.16" vary: "npm:^1.1.2" - checksum: 62b6bc4939003eab2b77d523207e252f4eed3f75471fce3b50fe46a80fb01b9f425d4094437f25e3579ad90bcf43b652c166ac5b58d277255ed82a0ea7069ac8 + checksum: f49e76c2cb7db4facbf215eef964c1eb3f0012c2f64490dfd9b349727e11c7f429f4bf16a47f725e41325415ffebefab0ca6ece3b1187518b42f979e4dbf6e01 languageName: node linkType: hard @@ -2832,9 +2708,9 @@ __metadata: linkType: hard "lodash@npm:^4.17.14, lodash@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 + version: 4.18.1 + resolution: "lodash@npm:4.18.1" + checksum: 306fea53dfd39dad1f03d45ba654a2405aebd35797b673077f401edb7df2543623dc44b9effbb98f69b32152295fff725a4cec99c684098947430600c6af0c3f languageName: node linkType: hard @@ -2850,6 +2726,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1": + version: 11.2.7 + resolution: "lru-cache@npm:11.2.7" + checksum: fbff4b8dee8189dde9b52cdfb3ea89b4c9cec094c1538cd30d1f47299477ff312efdb35f7994477ec72328f8e754e232b26a143feda1bd1f79ff22da6664d2c5 + languageName: node + linkType: hard + "lru-cache@npm:^6.0.0": version: 6.0.0 resolution: "lru-cache@npm:6.0.0" @@ -2866,13 +2749,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.7.1": - version: 7.7.3 - resolution: "lru-cache@npm:7.7.3" - checksum: 832a332b7f96f5c67e3b9cdca581bce94a5eb8a59175787318e56437b6ff3388b121d0240d0828252da43dbaf4ba78afb88f3a573367bff1006f68433f974a1b - languageName: node - linkType: hard - "lru-cache@npm:^8.0.4": version: 8.0.5 resolution: "lru-cache@npm:8.0.5" @@ -2896,27 +2772,23 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^10.0.3": - version: 10.1.1 - resolution: "make-fetch-happen@npm:10.1.1" +"make-fetch-happen@npm:^15.0.0": + version: 15.0.5 + resolution: "make-fetch-happen@npm:15.0.5" dependencies: - agentkeepalive: "npm:^4.2.1" - cacache: "npm:^16.0.2" - http-cache-semantics: "npm:^4.1.0" - http-proxy-agent: "npm:^5.0.0" - https-proxy-agent: "npm:^5.0.0" - is-lambda: "npm:^1.0.1" - lru-cache: "npm:^7.7.1" - minipass: "npm:^3.1.6" - minipass-collect: "npm:^1.0.2" - minipass-fetch: "npm:^2.0.3" + "@gar/promise-retry": "npm:^1.0.0" + "@npmcli/agent": "npm:^4.0.0" + "@npmcli/redact": "npm:^4.0.0" + cacache: "npm:^20.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^5.0.0" minipass-flush: "npm:^1.0.5" minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - promise-retry: "npm:^2.0.1" - socks-proxy-agent: "npm:^6.1.1" - ssri: "npm:^8.0.1" - checksum: b616f86b91fe3d24591dbfde5bbc46131b206214a65325c1530df92ef535c86f27f2d21cbb302fd67bf8e640b3675c5b8857da5f63f879148f936af58570b3a0 + negotiator: "npm:^1.0.0" + proc-log: "npm:^6.0.0" + ssri: "npm:^13.0.0" + checksum: d2649effb06c00cb2b266057cb1c8c1e99cfc8d1378e7d9c26cc8f00be41bc63d59b77a5576ed28f8105acc57fb16220b64217f8d3a6a066a594c004aa163afa languageName: node linkType: hard @@ -2997,21 +2869,21 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" +"minimatch@npm:^10.2.2": + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" dependencies: - brace-expansion: "npm:^1.1.7" - checksum: e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 + brace-expansion: "npm:^5.0.5" + checksum: 19e87a931aff60ee7b9d80f39f817b8bfc54f61f8356ee3549fbf636dbccacacfec8d803eac73293955c4527cd085247dfc064bce4a5e349f8f3b85e2bf5da0f languageName: node linkType: hard "minimatch@npm:^9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" + version: 9.0.9 + resolution: "minimatch@npm:9.0.9" dependencies: - brace-expansion: "npm:^2.0.1" - checksum: c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 + brace-expansion: "npm:^2.0.2" + checksum: b91fad937deaffb68a45a2cb731ff3cff1c3baf9b6469c879477ed16f15c8f4ce39d63a3f75c2455107c2fdff0f3ab597d97dc09e2e93b883aafcf926ef0c8f9 languageName: node linkType: hard @@ -3022,27 +2894,27 @@ __metadata: languageName: node linkType: hard -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" dependencies: - minipass: "npm:^3.0.0" - checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + minipass: "npm:^7.0.3" + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 languageName: node linkType: hard -"minipass-fetch@npm:^2.0.3": - version: 2.1.0 - resolution: "minipass-fetch@npm:2.1.0" +"minipass-fetch@npm:^5.0.0": + version: 5.0.2 + resolution: "minipass-fetch@npm:5.0.2" dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^3.1.6" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^2.1.2" + iconv-lite: "npm:^0.7.2" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^2.0.0" + minizlib: "npm:^3.0.1" dependenciesMeta: - encoding: + iconv-lite: optional: true - checksum: 33b6927ef8a4516e27878e1e9966a6dee5c2efb844584b39712a8c222cf7cc586ae00c09897ce3b21e77b6600ad4c7503f8bd732ef1a8bf98137f18c45c6d6c4 + checksum: 4f3f65ea5b20a3a287765ebf21cc73e62031f754944272df2a3039296cc75a8fc2dc50b8a3c4f39ce3ac6e5cc583e8dc664d12c6ab98e0883d263e49f344bc86 languageName: node linkType: hard @@ -3064,16 +2936,16 @@ __metadata: languageName: node linkType: hard -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" +"minipass-sized@npm:^2.0.0": + version: 2.0.0 + resolution: "minipass-sized@npm:2.0.0" dependencies: - minipass: "npm:^3.0.0" - checksum: 40982d8d836a52b0f37049a0a7e5d0f089637298e6d9b45df9c115d4f0520682a78258905e5c8b180fb41b593b0a82cc1361d2c74b45f7ada66334f84d1ecfdd + minipass: "npm:^7.1.2" + checksum: 3b89adf64ca705662f77481e278eff5ec0a57aeffb5feba7cc8843722b1e7770efc880f2a17d1d4877b2d7bf227873cd46afb4da44c0fd18088b601ea50f96bb languageName: node linkType: hard -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": +"minipass@npm:^3.0.0": version: 3.1.6 resolution: "minipass@npm:3.1.6" dependencies: @@ -3082,20 +2954,19 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93 +"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 175e4d5e20980c3cd316ae82d2c031c42f6c746467d8b1905b51060a0ba4461441a0c25bb67c025fd9617f9a3873e152c7b543c6b5ac83a1846be8ade80dffd6 languageName: node linkType: hard -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" +"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" dependencies: - minipass: "npm:^3.0.0" - yallist: "npm:^4.0.0" - checksum: ae0f45436fb51344dcb87938446a32fbebb540d0e191d63b35e1c773d47512e17307bf54aa88326cc6d176594d00e4423563a091f7266c2f9a6872cdc1e234d1 + minipass: "npm:^7.1.2" + checksum: f47365cc2cb7f078cbe7e046eb52655e2e7e97f8c0a9a674f4da60d94fb0624edfcec9b5db32e8ba5a99a5f036f595680ae6fe02a262beaa73026e505cc52f99 languageName: node linkType: hard @@ -3117,7 +2988,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": +"mkdirp@npm:^1.0.4": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" bin: @@ -3147,7 +3018,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": +"ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -3170,13 +3041,20 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": +"negotiator@npm:0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: 2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 languageName: node linkType: hard +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: b5734e87295324fabf868e36fb97c84b7d7f3156ec5f4ee5bf6e488079c11054f818290fc33804cef7b1ee21f55eeb14caea83e7dafae6492a409b3e573153e5 + languageName: node + linkType: hard + "netmask@npm:^2.0.2": version: 2.0.2 resolution: "netmask@npm:2.0.2" @@ -3185,33 +3063,33 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 9.0.0 - resolution: "node-gyp@npm:9.0.0" + version: 12.2.0 + resolution: "node-gyp@npm:12.2.0" dependencies: env-paths: "npm:^2.2.0" - glob: "npm:^7.1.4" + exponential-backoff: "npm:^3.1.1" graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^10.0.3" - nopt: "npm:^5.0.0" - npmlog: "npm:^6.0.0" - rimraf: "npm:^3.0.2" + make-fetch-happen: "npm:^15.0.0" + nopt: "npm:^9.0.0" + proc-log: "npm:^6.0.0" semver: "npm:^7.3.5" - tar: "npm:^6.1.2" - which: "npm:^2.0.2" + tar: "npm:^7.5.4" + tinyglobby: "npm:^0.2.12" + which: "npm:^6.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 7a9f184dda7bd53970ac52e138b091b417505bef5be0a7d9a902137a55246afaebbae1263a0545b6d7d94af131bcd49ac99f18db0b801c5b4c627dd291c08a7f + checksum: 4ebab5b77585a637315e969c2274b5520562473fe75de850639a580c2599652fb9f33959ec782ea45a2e149d8f04b548030f472eeeb3dbdf19a7f2ccbc30b908 languageName: node linkType: hard -"nopt@npm:^5.0.0": - version: 5.0.0 - resolution: "nopt@npm:5.0.0" +"nopt@npm:^9.0.0": + version: 9.0.0 + resolution: "nopt@npm:9.0.0" dependencies: - abbrev: "npm:1" + abbrev: "npm:^4.0.0" bin: nopt: bin/nopt.js - checksum: 00f9bb2d16449469ba8ffcf9b8f0eae6bae285ec74b135fec533e5883563d2400c0cd70902d0a7759e47ac031ccf206ace4e86556da08ed3f1c66dda206e9ccd + checksum: 56a1ccd2ad711fb5115918e2c96828703cddbe12ba2c3bd00591758f6fa30e6f47dd905c59dbfcf9b773f3a293b45996609fb6789ae29d6bfcc3cf3a6f7d9fda languageName: node linkType: hard @@ -3231,18 +3109,6 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^6.0.0": - version: 6.0.1 - resolution: "npmlog@npm:6.0.1" - dependencies: - are-we-there-yet: "npm:^3.0.0" - console-control-strings: "npm:^1.1.0" - gauge: "npm:^4.0.0" - set-blocking: "npm:^2.0.0" - checksum: cd2efe47d521453898fb3d582f2fad29127bccb8d690457873f8ea6e55a325c8e317b05797fc0807c515f2c932a31c017656bec0a60b38a04a730ffcdb562926 - languageName: node - linkType: hard - "object-inspect@npm:^1.13.3": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" @@ -3259,7 +3125,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": +"once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -3311,12 +3177,10 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: "npm:^3.0.0" - checksum: 7ba4a2b1e24c05e1fc14bbaea0fc6d85cf005ae7e9c9425d4575550f37e2e584b1af97bcde78eacd7559208f20995988d52881334db16cf77bc1bcf68e48ed7c +"p-map@npm:^7.0.2": + version: 7.0.4 + resolution: "p-map@npm:7.0.4" + checksum: ef48c3b2e488f31c693c9fcc0df0ef76518cf6426a495cf9486ebbb0fd7f31aef7f90e96f72e0070c0ff6e3177c9318f644b512e2c29e3feee8d7153fcb6782e languageName: node linkType: hard @@ -3369,7 +3233,7 @@ __metadata: languageName: node linkType: hard -"path-is-absolute@npm:1.0.1, path-is-absolute@npm:^1.0.0": +"path-is-absolute@npm:1.0.1": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 @@ -3390,6 +3254,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^2.0.2": + version: 2.0.2 + resolution: "path-scurry@npm:2.0.2" + dependencies: + lru-cache: "npm:^11.0.0" + minipass: "npm:^7.1.2" + checksum: 2b4257422bcb870a4c2d205b3acdbb213a72f5e2250f61c80f79c9d014d010f82bdf8584441612c8e1fa4eb098678f5704a66fa8377d72646bad4be38e57a2c3 + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -3405,9 +3279,16 @@ __metadata: linkType: hard "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc + version: 2.3.2 + resolution: "picomatch@npm:2.3.2" + checksum: b788ef8148a2415b9dec12f0bb350ae6a5830f8f1950e472abc2f5225494debf7d1b75eb031df0ceaea9e8ec3e7bad599e8dbf3c60d61b42be429ba41bff4426 + languageName: node + linkType: hard + +"picomatch@npm:^4.0.3": + version: 4.0.4 + resolution: "picomatch@npm:4.0.4" + checksum: f6ef80a3590827ce20378ae110ac78209cc4f74d39236370f1780f957b7ee41c12acde0e4651b90f39983506fd2f5e449994716f516db2e9752924aff8de93ce languageName: node linkType: hard @@ -3422,6 +3303,13 @@ __metadata: languageName: node linkType: hard +"proc-log@npm:^6.0.0": + version: 6.1.0 + resolution: "proc-log@npm:6.1.0" + checksum: 9033f30f168ed5a0991b773d0c50ff88384c4738e9a0a67d341de36bf7293771eed648ab6a0562f62276da12fde91f3bbfc75ffff6e71ad49aafd74fc646be66 + languageName: node + linkType: hard + "progress@npm:^2.0.3": version: 2.0.3 resolution: "progress@npm:2.0.3" @@ -3429,23 +3317,6 @@ __metadata: languageName: node linkType: hard -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 1560d413ea20c5a74f3631d39ba8cbd1972b9228072a755d01e1f5ca5110382d9af76a1582d889445adc6e75bb5ac4886b56dc4b6eae51b30145d7bb1ac7505b - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4 - languageName: node - linkType: hard - "proxy-agent@npm:^6.4.0, proxy-agent@npm:^6.5.0": version: 6.5.0 resolution: "proxy-agent@npm:6.5.0" @@ -3514,11 +3385,11 @@ __metadata: linkType: hard "qs@npm:^6.5.2": - version: 6.14.1 - resolution: "qs@npm:6.14.1" + version: 6.15.0 + resolution: "qs@npm:6.15.0" dependencies: side-channel: "npm:^1.1.0" - checksum: 34b5ab00a910df432d55180ef39c1d1375e550f098b5ec153b41787f1a6a6d7e5f9495593c3b112b77dbc6709d0ae18e55b82847a4c2bbbb0de1e8ccbb1794c5 + checksum: a3458f2f389285c3512e0ebc55522ee370ac7cb720ba9f0eff3e30fb2bb07631caf556c08e2a3d4481a371ac14faa9ceb7442a0610c5a7e55b23a5bdee7b701c languageName: node linkType: hard @@ -3548,17 +3419,6 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" - dependencies: - inherits: "npm:^2.0.3" - string_decoder: "npm:^1.1.1" - util-deprecate: "npm:^1.0.1" - checksum: b80b3e6a7fafb1c79de7db541de357f4a5ee73bd70c21672f5a7c840d27bb27bdb0151e7ba2fd82c4a888df22ce0c501b0d9f3e4dfe51688876701c437d59536 - languageName: node - linkType: hard - "readdirp@npm:^4.0.1": version: 4.1.2 resolution: "readdirp@npm:4.1.2" @@ -3628,13 +3488,6 @@ __metadata: languageName: node linkType: hard -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 1f914879f97e7ee931ad05fe3afa629bd55270fc6cf1c1e589b6a99fab96d15daad0fa1a52a00c729ec0078045fe3e399bd4fd0c93bcc906957bdc17f89cb8e6 - languageName: node - linkType: hard - "reusify@npm:^1.0.4": version: 1.0.4 resolution: "reusify@npm:1.0.4" @@ -3642,38 +3495,36 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: bin.js - checksum: 063ffaccaaaca2cfd0ef3beafb12d6a03dd7ff1260d752d62a6077b5dfff6ae81bea571f655bb6b589d366930ec1bdd285d40d560c0dae9b12f125e54eb743d5 - languageName: node - linkType: hard - "rollup@npm:^4.4.0": - version: 4.22.4 - resolution: "rollup@npm:4.22.4" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.22.4" - "@rollup/rollup-android-arm64": "npm:4.22.4" - "@rollup/rollup-darwin-arm64": "npm:4.22.4" - "@rollup/rollup-darwin-x64": "npm:4.22.4" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.4" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.4" - "@rollup/rollup-linux-arm64-gnu": "npm:4.22.4" - "@rollup/rollup-linux-arm64-musl": "npm:4.22.4" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.4" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.4" - "@rollup/rollup-linux-s390x-gnu": "npm:4.22.4" - "@rollup/rollup-linux-x64-gnu": "npm:4.22.4" - "@rollup/rollup-linux-x64-musl": "npm:4.22.4" - "@rollup/rollup-win32-arm64-msvc": "npm:4.22.4" - "@rollup/rollup-win32-ia32-msvc": "npm:4.22.4" - "@rollup/rollup-win32-x64-msvc": "npm:4.22.4" - "@types/estree": "npm:1.0.5" + version: 4.60.1 + resolution: "rollup@npm:4.60.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.60.1" + "@rollup/rollup-android-arm64": "npm:4.60.1" + "@rollup/rollup-darwin-arm64": "npm:4.60.1" + "@rollup/rollup-darwin-x64": "npm:4.60.1" + "@rollup/rollup-freebsd-arm64": "npm:4.60.1" + "@rollup/rollup-freebsd-x64": "npm:4.60.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.60.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.60.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.60.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.60.1" + "@rollup/rollup-linux-loong64-gnu": "npm:4.60.1" + "@rollup/rollup-linux-loong64-musl": "npm:4.60.1" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.60.1" + "@rollup/rollup-linux-ppc64-musl": "npm:4.60.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.60.1" + "@rollup/rollup-linux-riscv64-musl": "npm:4.60.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.60.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.60.1" + "@rollup/rollup-linux-x64-musl": "npm:4.60.1" + "@rollup/rollup-openbsd-x64": "npm:4.60.1" + "@rollup/rollup-openharmony-arm64": "npm:4.60.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.60.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.60.1" + "@rollup/rollup-win32-x64-gnu": "npm:4.60.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.60.1" + "@types/estree": "npm:1.0.8" fsevents: "npm:~2.3.2" dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -3684,6 +3535,10 @@ __metadata: optional: true "@rollup/rollup-darwin-x64": optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true "@rollup/rollup-linux-arm-musleabihf": @@ -3692,27 +3547,41 @@ __metadata: optional: true "@rollup/rollup-linux-arm64-musl": optional: true - "@rollup/rollup-linux-powerpc64le-gnu": + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-loong64-musl": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-musl": optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true "@rollup/rollup-linux-s390x-gnu": optional: true "@rollup/rollup-linux-x64-gnu": optional: true "@rollup/rollup-linux-x64-musl": optional: true + "@rollup/rollup-openbsd-x64": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true "@rollup/rollup-win32-arm64-msvc": optional: true "@rollup/rollup-win32-ia32-msvc": optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true "@rollup/rollup-win32-x64-msvc": optional: true fsevents: optional: true bin: rollup: dist/bin/rollup - checksum: 0fbee8c14d9052624c76a09fe79ed4d46024832be3ceea86c69f1521ae84b581a64c6e6596fdd796030c206835987e1a0a3be85f4c0d35b71400be5dce799d12 + checksum: 6866a35efc999990e191fc954a859ba802d13be63ca13b04746459455982f6b8784d92e5eea8db3ef8acf8baba8c43e8e6cb741f3233ba4c46adf148d3708a9c languageName: node linkType: hard @@ -3725,7 +3594,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 @@ -3759,13 +3628,6 @@ __metadata: languageName: node linkType: hard -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 8980ebf7ae9eb945bb036b6e283c547ee783a1ad557a82babf758a065e2fb6ea337fd82cac30dd565c1e606e423f30024a19fff7afbf4977d784720c4026a8ef - languageName: node - linkType: hard - "setprototypeof@npm:1.1.0": version: 1.1.0 resolution: "setprototypeof@npm:1.1.0" @@ -3856,7 +3718,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 @@ -3888,18 +3750,7 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^6.1.1": - version: 6.1.1 - resolution: "socks-proxy-agent@npm:6.1.1" - dependencies: - agent-base: "npm:^6.0.2" - debug: "npm:^4.3.1" - socks: "npm:^2.6.1" - checksum: 53fb7d34bf3e5ed9cf4de73bf5c18b351d75c4a8757a0c0e384c2a7c86adf688e5f5e8f72eee7bc6c01ff619458f621ccf9d172bc986adb05f10fa0c9599c39e - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.5": +"socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.5": version: 8.0.5 resolution: "socks-proxy-agent@npm:8.0.5" dependencies: @@ -3910,16 +3761,6 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.6.1": - version: 2.8.3 - resolution: "socks@npm:2.8.3" - dependencies: - ip-address: "npm:^9.0.5" - smart-buffer: "npm:^4.2.0" - checksum: ffcb622c22481dfcd7589aae71fbfd71ca34334064d181df64bf8b7feaeee19706aba4cffd1de35cc7bbaeeaa0af96be2d7f40fcbc7bc0ab69533a7ae9ffc4fb - languageName: node - linkType: hard - "socks@npm:^2.8.3": version: 2.8.4 resolution: "socks@npm:2.8.4" @@ -3951,12 +3792,12 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^8.0.1": - version: 8.0.1 - resolution: "ssri@npm:8.0.1" +"ssri@npm:^13.0.0": + version: 13.0.1 + resolution: "ssri@npm:13.0.1" dependencies: - minipass: "npm:^3.1.1" - checksum: fde247b7107674d9a424a20f9c1a6e3ad88a139c2636b9d9ffa7df59e85e11a894cdae48fadd0ad6be41eb0d5b847fe094736513d333615c7eebc3d111abe0d2 + minipass: "npm:^7.0.3" + checksum: ae560d0378d074006a71b06af71bfbe84a3fe1ac6e16c1f07575f69e670d40170507fe52b21bcc23399429bc6a15f4bc3ea8d9bc88e9dfd7e87de564e6da6a72 languageName: node linkType: hard @@ -4005,7 +3846,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": +"string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -4016,15 +3857,6 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: "npm:~5.2.0" - checksum: 54d23f4a6acae0e93f999a585e673be9e561b65cd4cca37714af1e893ab8cd8dfa52a9e4f58f48f87b4a44918d3a9254326cb80ed194bf2e4c226e2b21767e56 - languageName: node - linkType: hard - "strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -4111,17 +3943,16 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.2.1 - resolution: "tar@npm:6.2.1" +"tar@npm:^7.5.4": + version: 7.5.13 + resolution: "tar@npm:7.5.13" dependencies: - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.0.0" - minipass: "npm:^5.0.0" - minizlib: "npm:^2.1.1" - mkdirp: "npm:^1.0.3" - yallist: "npm:^4.0.0" - checksum: bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0 + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 2bc2b6f0349038a6621dbba1c4522d45752d5071b2994692257113c2050cd23fafc30308f820e5f8ad6fda3f7d7f92adc9a432aa733daa04c42af2061c021c3f languageName: node linkType: hard @@ -4141,6 +3972,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.12": + version: 0.2.15 + resolution: "tinyglobby@npm:0.2.15" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.3" + checksum: d72bd826a8b0fa5fa3929e7fe5ba48fceb2ae495df3a231b6c5408cd7d8c00b58ab5a9c2a76ba56a62ee9b5e083626f1f33599734bed1ffc4b792406408f0ca2 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -4264,24 +4105,6 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^1.1.1": - version: 1.1.1 - resolution: "unique-filename@npm:1.1.1" - dependencies: - unique-slug: "npm:^2.0.0" - checksum: 9b6969d649a2096755f19f793315465c6427453b66d67c2a1bee8f36ca7e1fc40725be2c028e974dec110d365bd30a4248e89b1044dc1dfe29663b6867d071ef - languageName: node - linkType: hard - -"unique-slug@npm:^2.0.0": - version: 2.0.2 - resolution: "unique-slug@npm:2.0.2" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 6cfaf91976acc9c125fd0686c561ee9ca0784bb4b2b408972e6cd30e747b4ff0ca50264c01bcf5e711b463535ea611ffb84199e9f73088cd79ac9ddee8154042 - languageName: node - linkType: hard - "universalify@npm:^0.1.0": version: 0.1.2 resolution: "universalify@npm:0.1.2" @@ -4303,13 +4126,6 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.1": version: 9.2.0 resolution: "v8-to-istanbul@npm:9.2.0" @@ -4348,7 +4164,7 @@ __metadata: dependencies: "@types/jasmine": "npm:^5.1.4" "@web/dev-server": "npm:^0.4.6" - "@web/test-runner": "npm:^0.20.0" + "@web/test-runner": "npm:^0.20.2" "@web/test-runner-core": "npm:^0.13.4" comlink: "npm:^4.4.1" jasmine-core: "npm:^4.5.0" @@ -4390,7 +4206,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^2.0.1, which@npm:^2.0.2": +"which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" dependencies: @@ -4401,12 +4217,14 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" +"which@npm:^6.0.0": + version: 6.0.1 + resolution: "which@npm:6.0.1" dependencies: - string-width: "npm:^1.0.2 || 2 || 3 || 4" - checksum: d5f8027b9a8255a493a94e4ec1b74a27bff6679d5ffe29316a3215e4712945c84ef73ca4045c7e20ae7d0c72f5f57f296e04a4928e773d4276a2f1222e4c2e99 + isexe: "npm:^4.0.0" + bin: + node-which: bin/which.js + checksum: dbea77c7d3058bf6c78bf9659d2dce4d2b57d39a15b826b2af6ac2e5a219b99dc8a831b79fdbc453c0598adb4f3f84cf9c2491fd52beb9f5d2dececcad117f68 languageName: node linkType: hard @@ -4490,6 +4308,13 @@ __metadata: languageName: node linkType: hard +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 1884d272d485845ad04759a255c71775db0fac56308764b4c77ea56a20d56679fad340213054c8c9c9c26fcfd4c4b2a90df993b7e0aaf3cdb73c618d1d1a802a + languageName: node + linkType: hard + "yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" From 619f9318490b07392c74940268a9de2178defa86 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 4 Apr 2026 12:51:57 -0700 Subject: [PATCH 006/104] Update @types/estree version in yarn.lock --- yarn.lock | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index caaf78a2..d813371c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -475,20 +475,13 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:1.0.8": +"@types/estree@npm:1.0.8, @types/estree@npm:^1.0.0": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 25a4c16a6752538ffde2826c2cc0c6491d90e69cd6187bef4a006dd2c3c45469f049e643d7e516c515f21484dc3d48fd5c870be158a5beb72f5baf3dc43e4099 languageName: node linkType: hard -"@types/estree@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: 7de6d928dd4010b0e20c6919e1a6c27b61f8d4567befa89252055fad503d587ecb9a1e3eab1b1901f923964d7019796db810b7fd6430acb26c32866d126fd408 - languageName: node - linkType: hard - "@types/express-serve-static-core@npm:^4.17.18": version: 4.17.28 resolution: "@types/express-serve-static-core@npm:4.17.28" From c17fe55df5d3b9da82ab34aa6b356a8a90eaa023 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 22 Nov 2025 17:54:30 +0000 Subject: [PATCH 007/104] Enable SQLite experimental write hint. --- Makefile | 3 ++- dist/wa-sqlite-async.mjs | 2 +- dist/wa-sqlite-async.wasm | Bin 1231452 -> 1250917 bytes dist/wa-sqlite-jspi.mjs | 2 +- dist/wa-sqlite-jspi.wasm | Bin 602606 -> 611971 bytes dist/wa-sqlite.mjs | 2 +- dist/wa-sqlite.wasm | Bin 596883 -> 606248 bytes 7 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 053b3538..a853d590 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # dependencies -SQLITE_VERSION = version-3.50.1 +SQLITE_VERSION = trunk SQLITE_TARBALL_URL = https://www.sqlite.org/src/tarball/$(SQLITE_VERSION)/sqlite.tar.gz EXTENSION_FUNCTIONS = extension-functions.c @@ -44,6 +44,7 @@ EMCC ?= emcc CFLAGS_COMMON = \ -I'deps/$(SQLITE_VERSION)' \ -Wno-non-literal-null-conversion \ + -DSQLITE_EXPERIMENTAL_PRAGMA_20251114 \ $(CFLAGS_EXTRA) CFLAGS_DEBUG = -g $(CFLAGS_COMMON) CFLAGS_DIST = -Oz -flto $(CFLAGS_COMMON) diff --git a/dist/wa-sqlite-async.mjs b/dist/wa-sqlite-async.mjs index 98d313c3..73fc7387 100644 --- a/dist/wa-sqlite-async.mjs +++ b/dist/wa-sqlite-async.mjs @@ -6,7 +6,7 @@ var Module = (() => { function(moduleArg = {}) { var moduleRtn; -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))}).then(onload,onerror)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module["locateFile"]){var f="wa-sqlite-async.wasm";if(!isDataURI(f)){return locateFile(f)}return f}return new URL("wa-sqlite-async.wasm",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports["la"];updateMemoryViews();wasmTable=wasmExports["ef"];addOnInit(wasmExports["ma"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeHEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:"short"}).split(" ")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffsetDate.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _fd_sync=function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return Asyncify.handleSleep(wakeUp=>{var mount=stream.node.mount;if(!mount.type.syncfs){wakeUp(0);return}mount.type.syncfs(mount,false,err=>{if(err){wakeUp(29);return}wakeUp(0)})})}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}};_fd_sync.isAsync=true;var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify==="object"?Asyncify.handleAsync.bind(Asyncify):null;Module["handleAsync"]=handleAsync;const targets=new Map;Module["setCallback"]=(key,target)=>targets.set(key,target);Module["getCallback"]=key=>targets.get(key);Module["deleteCallback"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver==="function"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error("Synchronous WebAssembly cannot call async function")}const result=f.apply(receiver,args);if(typeof result?.then=="function"){console.error("unexpected Promise",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}_ipp_async.isAsync=true;function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}_ippipppp_async.isAsync=true;function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}_ippp_async.isAsync=true;function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}_ipppi_async.isAsync=true;function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}_ipppiii_async.isAsync=true;function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}_ipppiiip_async.isAsync=true;function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}_ipppip_async.isAsync=true;function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}_ipppj_async.isAsync=true;function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}_ipppp_async.isAsync=true;function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}_ippppi_async.isAsync=true;function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}_ippppij_async.isAsync=true;function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}_ippppip_async.isAsync=true;function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}_ipppppip_async.isAsync=true;function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}_vppippii_async.isAsync=true;function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}_vppp_async.isAsync=true;function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}_vpppip_async.isAsync=true;var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var sigToWasmTypes=sig=>{var typeNames={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{runtimeKeepaliveCounter+=1};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(ipp|ipp_async|ippp|ippp_async|vppp|vppp_async|ipppj|ipppj_async|ipppi|ipppi_async|ipppp|ipppp_async|ipppip|ipppip_async|vpppip|vpppip_async|ippppi|ippppi_async|ippppij|ippppij_async|ipppiii|ipppiii_async|ippppip|ippppip_async|ippipppp|ippipppp_async|ipppppip|ipppppip_async|ipppiiip|ipppiiip_async|vppippii|vppippii_async|invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){ret[x]=(...args)=>{Asyncify.exportCallStack.push(x);try{return original(...args)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:16384,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){HEAPU32[ptr>>2]=stack;HEAPU32[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFuncName(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];return name},getDataRewindFunc(name){var func=wasmExports[name];return func},doRewind(ptr){var name=Asyncify.getDataRewindFuncName(ptr);var func=Asyncify.getDataRewindFunc(name);return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var generateFuncType=(sig,target)=>{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i{if(typeof WebAssembly.Function=="function"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports["f"];return wrappedFunc};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>wasmTable.set(idx,func);var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={a:___assert_fail,Y:___syscall_chmod,$:___syscall_faccessat,Z:___syscall_fchmod,X:___syscall_fchown32,b:___syscall_fcntl64,W:___syscall_fstat64,y:___syscall_ftruncate64,Q:___syscall_getcwd,U:___syscall_lstat64,N:___syscall_mkdirat,S:___syscall_newfstatat,M:___syscall_openat,K:___syscall_readlinkat,J:___syscall_rmdir,V:___syscall_stat64,G:___syscall_unlinkat,F:___syscall_utimensat,w:__localtime_js,u:__mmap_js,v:__munmap_js,H:__tzset_js,n:_emscripten_date_now,m:_emscripten_get_now,D:_emscripten_resize_heap,O:_environ_get,P:_environ_sizes_get,o:_fd_close,E:_fd_fdstat_get,L:_fd_read,x:_fd_seek,R:_fd_sync,I:_fd_write,s:_ipp,t:_ipp_async,ga:_ippipppp,ka:_ippipppp_async,i:_ippp,j:_ippp_async,c:_ipppi,d:_ipppi_async,ca:_ipppiii,da:_ipppiii_async,ea:_ipppiiip,fa:_ipppiiip_async,g:_ipppip,h:_ipppip_async,z:_ipppj,A:_ipppj_async,e:_ipppp,f:_ipppp_async,aa:_ippppi,ba:_ippppi_async,B:_ippppij,C:_ippppij_async,p:_ippppip,q:_ippppip_async,ha:_ipppppip,ia:_ipppppip_async,ja:_vppippii,r:_vppippii_async,k:_vppp,l:_vppp_async,T:_vpppip,_:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["ma"])();var _sqlite3_status64=Module["_sqlite3_status64"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module["_sqlite3_status64"]=wasmExports["na"])(a0,a1,a2,a3);var _sqlite3_status=Module["_sqlite3_status"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module["_sqlite3_status"]=wasmExports["oa"])(a0,a1,a2,a3);var _sqlite3_db_status=Module["_sqlite3_db_status"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module["_sqlite3_db_status"]=wasmExports["pa"])(a0,a1,a2,a3,a4);var _sqlite3_msize=Module["_sqlite3_msize"]=a0=>(_sqlite3_msize=Module["_sqlite3_msize"]=wasmExports["qa"])(a0);var _sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=a0=>(_sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=wasmExports["ra"])(a0);var _sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=(a0,a1)=>(_sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=wasmExports["sa"])(a0,a1);var _sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=a0=>(_sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=wasmExports["ta"])(a0);var _sqlite3_release_memory=Module["_sqlite3_release_memory"]=a0=>(_sqlite3_release_memory=Module["_sqlite3_release_memory"]=wasmExports["ua"])(a0);var _sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=wasmExports["va"])(a0,a1);var _sqlite3_memory_used=Module["_sqlite3_memory_used"]=()=>(_sqlite3_memory_used=Module["_sqlite3_memory_used"]=wasmExports["wa"])();var _sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=wasmExports["xa"])(a0,a1);var _sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=a0=>(_sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=wasmExports["ya"])(a0);var _sqlite3_malloc=Module["_sqlite3_malloc"]=a0=>(_sqlite3_malloc=Module["_sqlite3_malloc"]=wasmExports["za"])(a0);var _sqlite3_malloc64=Module["_sqlite3_malloc64"]=(a0,a1)=>(_sqlite3_malloc64=Module["_sqlite3_malloc64"]=wasmExports["Aa"])(a0,a1);var _sqlite3_free=Module["_sqlite3_free"]=a0=>(_sqlite3_free=Module["_sqlite3_free"]=wasmExports["Ba"])(a0);var _sqlite3_realloc=Module["_sqlite3_realloc"]=(a0,a1)=>(_sqlite3_realloc=Module["_sqlite3_realloc"]=wasmExports["Ca"])(a0,a1);var _sqlite3_realloc64=Module["_sqlite3_realloc64"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module["_sqlite3_realloc64"]=wasmExports["Da"])(a0,a1,a2);var _sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=wasmExports["Ea"])(a0,a1,a2);var _sqlite3_str_append=Module["_sqlite3_str_append"]=(a0,a1,a2)=>(_sqlite3_str_append=Module["_sqlite3_str_append"]=wasmExports["Fa"])(a0,a1,a2);var _sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=wasmExports["Ga"])(a0,a1,a2);var _sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=(a0,a1)=>(_sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=wasmExports["Ha"])(a0,a1);var _sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=wasmExports["Ia"])(a0,a1,a2);var _sqlite3_str_finish=Module["_sqlite3_str_finish"]=a0=>(_sqlite3_str_finish=Module["_sqlite3_str_finish"]=wasmExports["Ja"])(a0);var _sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=a0=>(_sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=wasmExports["Ka"])(a0);var _sqlite3_str_length=Module["_sqlite3_str_length"]=a0=>(_sqlite3_str_length=Module["_sqlite3_str_length"]=wasmExports["La"])(a0);var _sqlite3_str_value=Module["_sqlite3_str_value"]=a0=>(_sqlite3_str_value=Module["_sqlite3_str_value"]=wasmExports["Ma"])(a0);var _sqlite3_str_reset=Module["_sqlite3_str_reset"]=a0=>(_sqlite3_str_reset=Module["_sqlite3_str_reset"]=wasmExports["Na"])(a0);var _sqlite3_str_new=Module["_sqlite3_str_new"]=a0=>(_sqlite3_str_new=Module["_sqlite3_str_new"]=wasmExports["Oa"])(a0);var _sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=(a0,a1)=>(_sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=wasmExports["Pa"])(a0,a1);var _sqlite3_mprintf=Module["_sqlite3_mprintf"]=(a0,a1)=>(_sqlite3_mprintf=Module["_sqlite3_mprintf"]=wasmExports["Qa"])(a0,a1);var _sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=wasmExports["Ra"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module["_sqlite3_snprintf"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module["_sqlite3_snprintf"]=wasmExports["Sa"])(a0,a1,a2,a3);var _sqlite3_log=Module["_sqlite3_log"]=(a0,a1,a2)=>(_sqlite3_log=Module["_sqlite3_log"]=wasmExports["Ta"])(a0,a1,a2);var _sqlite3_randomness=Module["_sqlite3_randomness"]=(a0,a1)=>(_sqlite3_randomness=Module["_sqlite3_randomness"]=wasmExports["Ua"])(a0,a1);var _sqlite3_stricmp=Module["_sqlite3_stricmp"]=(a0,a1)=>(_sqlite3_stricmp=Module["_sqlite3_stricmp"]=wasmExports["Va"])(a0,a1);var _sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=wasmExports["Wa"])(a0,a1,a2);var _sqlite3_os_init=Module["_sqlite3_os_init"]=()=>(_sqlite3_os_init=Module["_sqlite3_os_init"]=wasmExports["Xa"])();var _sqlite3_os_end=Module["_sqlite3_os_end"]=()=>(_sqlite3_os_end=Module["_sqlite3_os_end"]=wasmExports["Ya"])();var _sqlite3_serialize=Module["_sqlite3_serialize"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module["_sqlite3_serialize"]=wasmExports["Za"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=wasmExports["_a"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module["_sqlite3_step"]=a0=>(_sqlite3_step=Module["_sqlite3_step"]=wasmExports["$a"])(a0);var _sqlite3_column_int64=Module["_sqlite3_column_int64"]=(a0,a1)=>(_sqlite3_column_int64=Module["_sqlite3_column_int64"]=wasmExports["ab"])(a0,a1);var _sqlite3_reset=Module["_sqlite3_reset"]=a0=>(_sqlite3_reset=Module["_sqlite3_reset"]=wasmExports["bb"])(a0);var _sqlite3_exec=Module["_sqlite3_exec"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module["_sqlite3_exec"]=wasmExports["cb"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module["_sqlite3_column_int"]=(a0,a1)=>(_sqlite3_column_int=Module["_sqlite3_column_int"]=wasmExports["db"])(a0,a1);var _sqlite3_finalize=Module["_sqlite3_finalize"]=a0=>(_sqlite3_finalize=Module["_sqlite3_finalize"]=wasmExports["eb"])(a0);var _sqlite3_deserialize=Module["_sqlite3_deserialize"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module["_sqlite3_deserialize"]=wasmExports["fb"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=a0=>(_sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=wasmExports["gb"])(a0);var _sqlite3_backup_init=Module["_sqlite3_backup_init"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module["_sqlite3_backup_init"]=wasmExports["hb"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module["_sqlite3_backup_step"]=(a0,a1)=>(_sqlite3_backup_step=Module["_sqlite3_backup_step"]=wasmExports["ib"])(a0,a1);var _sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=a0=>(_sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=wasmExports["jb"])(a0);var _sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=a0=>(_sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=wasmExports["kb"])(a0);var _sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=a0=>(_sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=wasmExports["lb"])(a0);var _sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=a0=>(_sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=wasmExports["mb"])(a0);var _sqlite3_value_blob=Module["_sqlite3_value_blob"]=a0=>(_sqlite3_value_blob=Module["_sqlite3_value_blob"]=wasmExports["nb"])(a0);var _sqlite3_value_text=Module["_sqlite3_value_text"]=a0=>(_sqlite3_value_text=Module["_sqlite3_value_text"]=wasmExports["ob"])(a0);var _sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=a0=>(_sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=wasmExports["pb"])(a0);var _sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=a0=>(_sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=wasmExports["qb"])(a0);var _sqlite3_value_double=Module["_sqlite3_value_double"]=a0=>(_sqlite3_value_double=Module["_sqlite3_value_double"]=wasmExports["rb"])(a0);var _sqlite3_value_int=Module["_sqlite3_value_int"]=a0=>(_sqlite3_value_int=Module["_sqlite3_value_int"]=wasmExports["sb"])(a0);var _sqlite3_value_int64=Module["_sqlite3_value_int64"]=a0=>(_sqlite3_value_int64=Module["_sqlite3_value_int64"]=wasmExports["tb"])(a0);var _sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=a0=>(_sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=wasmExports["ub"])(a0);var _sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=(a0,a1)=>(_sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=wasmExports["vb"])(a0,a1);var _sqlite3_value_text16=Module["_sqlite3_value_text16"]=a0=>(_sqlite3_value_text16=Module["_sqlite3_value_text16"]=wasmExports["wb"])(a0);var _sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=a0=>(_sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=wasmExports["xb"])(a0);var _sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=a0=>(_sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=wasmExports["yb"])(a0);var _sqlite3_value_type=Module["_sqlite3_value_type"]=a0=>(_sqlite3_value_type=Module["_sqlite3_value_type"]=wasmExports["zb"])(a0);var _sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=a0=>(_sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=wasmExports["Ab"])(a0);var _sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=a0=>(_sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=wasmExports["Bb"])(a0);var _sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=a0=>(_sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=wasmExports["Cb"])(a0);var _sqlite3_value_dup=Module["_sqlite3_value_dup"]=a0=>(_sqlite3_value_dup=Module["_sqlite3_value_dup"]=wasmExports["Db"])(a0);var _sqlite3_value_free=Module["_sqlite3_value_free"]=a0=>(_sqlite3_value_free=Module["_sqlite3_value_free"]=wasmExports["Eb"])(a0);var _sqlite3_result_blob=Module["_sqlite3_result_blob"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module["_sqlite3_result_blob"]=wasmExports["Fb"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=wasmExports["Gb"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module["_sqlite3_result_double"]=(a0,a1)=>(_sqlite3_result_double=Module["_sqlite3_result_double"]=wasmExports["Hb"])(a0,a1);var _sqlite3_result_error=Module["_sqlite3_result_error"]=(a0,a1,a2)=>(_sqlite3_result_error=Module["_sqlite3_result_error"]=wasmExports["Ib"])(a0,a1,a2);var _sqlite3_result_error16=Module["_sqlite3_result_error16"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module["_sqlite3_result_error16"]=wasmExports["Jb"])(a0,a1,a2);var _sqlite3_result_int=Module["_sqlite3_result_int"]=(a0,a1)=>(_sqlite3_result_int=Module["_sqlite3_result_int"]=wasmExports["Kb"])(a0,a1);var _sqlite3_result_int64=Module["_sqlite3_result_int64"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module["_sqlite3_result_int64"]=wasmExports["Lb"])(a0,a1,a2);var _sqlite3_result_null=Module["_sqlite3_result_null"]=a0=>(_sqlite3_result_null=Module["_sqlite3_result_null"]=wasmExports["Mb"])(a0);var _sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=wasmExports["Nb"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=(a0,a1)=>(_sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=wasmExports["Ob"])(a0,a1);var _sqlite3_result_text=Module["_sqlite3_result_text"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module["_sqlite3_result_text"]=wasmExports["Pb"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module["_sqlite3_result_text64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module["_sqlite3_result_text64"]=wasmExports["Qb"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module["_sqlite3_result_text16"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module["_sqlite3_result_text16"]=wasmExports["Rb"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=wasmExports["Sb"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=wasmExports["Tb"])(a0,a1,a2,a3);var _sqlite3_result_value=Module["_sqlite3_result_value"]=(a0,a1)=>(_sqlite3_result_value=Module["_sqlite3_result_value"]=wasmExports["Ub"])(a0,a1);var _sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=a0=>(_sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=wasmExports["Vb"])(a0);var _sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=wasmExports["Wb"])(a0,a1);var _sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=wasmExports["Xb"])(a0,a1,a2);var _sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=(a0,a1)=>(_sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=wasmExports["Yb"])(a0,a1);var _sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=a0=>(_sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=wasmExports["Zb"])(a0);var _sqlite3_user_data=Module["_sqlite3_user_data"]=a0=>(_sqlite3_user_data=Module["_sqlite3_user_data"]=wasmExports["_b"])(a0);var _sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=a0=>(_sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=wasmExports["$b"])(a0);var _sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=a0=>(_sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=wasmExports["ac"])(a0);var _sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=wasmExports["bc"])(a0,a1);var _sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=wasmExports["cc"])(a0,a1);var _sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=(a0,a1)=>(_sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=wasmExports["dc"])(a0,a1);var _sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=(a0,a1)=>(_sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=wasmExports["ec"])(a0,a1);var _sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=wasmExports["fc"])(a0,a1,a2,a3);var _sqlite3_column_count=Module["_sqlite3_column_count"]=a0=>(_sqlite3_column_count=Module["_sqlite3_column_count"]=wasmExports["gc"])(a0);var _sqlite3_data_count=Module["_sqlite3_data_count"]=a0=>(_sqlite3_data_count=Module["_sqlite3_data_count"]=wasmExports["hc"])(a0);var _sqlite3_column_blob=Module["_sqlite3_column_blob"]=(a0,a1)=>(_sqlite3_column_blob=Module["_sqlite3_column_blob"]=wasmExports["ic"])(a0,a1);var _sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=(a0,a1)=>(_sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=wasmExports["jc"])(a0,a1);var _sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=(a0,a1)=>(_sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=wasmExports["kc"])(a0,a1);var _sqlite3_column_double=Module["_sqlite3_column_double"]=(a0,a1)=>(_sqlite3_column_double=Module["_sqlite3_column_double"]=wasmExports["lc"])(a0,a1);var _sqlite3_column_text=Module["_sqlite3_column_text"]=(a0,a1)=>(_sqlite3_column_text=Module["_sqlite3_column_text"]=wasmExports["mc"])(a0,a1);var _sqlite3_column_value=Module["_sqlite3_column_value"]=(a0,a1)=>(_sqlite3_column_value=Module["_sqlite3_column_value"]=wasmExports["nc"])(a0,a1);var _sqlite3_column_text16=Module["_sqlite3_column_text16"]=(a0,a1)=>(_sqlite3_column_text16=Module["_sqlite3_column_text16"]=wasmExports["oc"])(a0,a1);var _sqlite3_column_type=Module["_sqlite3_column_type"]=(a0,a1)=>(_sqlite3_column_type=Module["_sqlite3_column_type"]=wasmExports["pc"])(a0,a1);var _sqlite3_column_name=Module["_sqlite3_column_name"]=(a0,a1)=>(_sqlite3_column_name=Module["_sqlite3_column_name"]=wasmExports["qc"])(a0,a1);var _sqlite3_column_name16=Module["_sqlite3_column_name16"]=(a0,a1)=>(_sqlite3_column_name16=Module["_sqlite3_column_name16"]=wasmExports["rc"])(a0,a1);var _sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=wasmExports["sc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=wasmExports["tc"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module["_sqlite3_bind_double"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module["_sqlite3_bind_double"]=wasmExports["uc"])(a0,a1,a2);var _sqlite3_bind_int=Module["_sqlite3_bind_int"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module["_sqlite3_bind_int"]=wasmExports["vc"])(a0,a1,a2);var _sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=wasmExports["wc"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module["_sqlite3_bind_null"]=(a0,a1)=>(_sqlite3_bind_null=Module["_sqlite3_bind_null"]=wasmExports["xc"])(a0,a1);var _sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=wasmExports["yc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module["_sqlite3_bind_text"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module["_sqlite3_bind_text"]=wasmExports["zc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=wasmExports["Ac"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=wasmExports["Bc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module["_sqlite3_bind_value"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module["_sqlite3_bind_value"]=wasmExports["Cc"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=wasmExports["Dc"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=wasmExports["Ec"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=a0=>(_sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=wasmExports["Fc"])(a0);var _sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=wasmExports["Gc"])(a0,a1);var _sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=wasmExports["Hc"])(a0,a1);var _sqlite3_db_handle=Module["_sqlite3_db_handle"]=a0=>(_sqlite3_db_handle=Module["_sqlite3_db_handle"]=wasmExports["Ic"])(a0);var _sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=a0=>(_sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=wasmExports["Jc"])(a0);var _sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=a0=>(_sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=wasmExports["Kc"])(a0);var _sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=(a0,a1)=>(_sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=wasmExports["Lc"])(a0,a1);var _sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=a0=>(_sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=wasmExports["Mc"])(a0);var _sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=(a0,a1)=>(_sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=wasmExports["Nc"])(a0,a1);var _sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=wasmExports["Oc"])(a0,a1,a2);var _sqlite3_sql=Module["_sqlite3_sql"]=a0=>(_sqlite3_sql=Module["_sqlite3_sql"]=wasmExports["Pc"])(a0);var _sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=a0=>(_sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=wasmExports["Qc"])(a0);var _sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=a0=>(_sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=wasmExports["Rc"])(a0);var _sqlite3_blob_open=Module["_sqlite3_blob_open"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module["_sqlite3_blob_open"]=wasmExports["Sc"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module["_sqlite3_blob_close"]=a0=>(_sqlite3_blob_close=Module["_sqlite3_blob_close"]=wasmExports["Tc"])(a0);var _sqlite3_blob_read=Module["_sqlite3_blob_read"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module["_sqlite3_blob_read"]=wasmExports["Uc"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module["_sqlite3_blob_write"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module["_sqlite3_blob_write"]=wasmExports["Vc"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=a0=>(_sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=wasmExports["Wc"])(a0);var _sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=wasmExports["Xc"])(a0,a1,a2);var _sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=wasmExports["Yc"])(a0,a1,a2);var _sqlite3_strglob=Module["_sqlite3_strglob"]=(a0,a1)=>(_sqlite3_strglob=Module["_sqlite3_strglob"]=wasmExports["Zc"])(a0,a1);var _sqlite3_strlike=Module["_sqlite3_strlike"]=(a0,a1,a2)=>(_sqlite3_strlike=Module["_sqlite3_strlike"]=wasmExports["_c"])(a0,a1,a2);var _sqlite3_errmsg=Module["_sqlite3_errmsg"]=a0=>(_sqlite3_errmsg=Module["_sqlite3_errmsg"]=wasmExports["$c"])(a0);var _sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=a0=>(_sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=wasmExports["ad"])(a0);var _sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=a0=>(_sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=wasmExports["bd"])(a0);var _sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=()=>(_sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=wasmExports["cd"])();var _sqlite3_prepare=Module["_sqlite3_prepare"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module["_sqlite3_prepare"]=wasmExports["dd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=wasmExports["ed"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module["_sqlite3_prepare16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module["_sqlite3_prepare16"]=wasmExports["fd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=wasmExports["gd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=wasmExports["hd"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module["_sqlite3_get_table"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module["_sqlite3_get_table"]=wasmExports["id"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module["_sqlite3_free_table"]=a0=>(_sqlite3_free_table=Module["_sqlite3_free_table"]=wasmExports["jd"])(a0);var _sqlite3_create_module=Module["_sqlite3_create_module"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module["_sqlite3_create_module"]=wasmExports["kd"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=wasmExports["ld"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=(a0,a1)=>(_sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=wasmExports["md"])(a0,a1);var _sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=(a0,a1)=>(_sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=wasmExports["nd"])(a0,a1);var _sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=a0=>(_sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=wasmExports["od"])(a0);var _sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=wasmExports["pd"])(a0,a1,a2);var _sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=(a0,a1)=>(_sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=wasmExports["qd"])(a0,a1);var _sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=wasmExports["rd"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=wasmExports["sd"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=a0=>(_sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=wasmExports["td"])(a0);var _sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=wasmExports["ud"])(a0,a1,a2);var _sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=()=>(_sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=wasmExports["vd"])();var _sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=(a0,a1)=>(_sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=wasmExports["wd"])(a0,a1);var _sqlite3_complete=Module["_sqlite3_complete"]=a0=>(_sqlite3_complete=Module["_sqlite3_complete"]=wasmExports["xd"])(a0);var _sqlite3_complete16=Module["_sqlite3_complete16"]=a0=>(_sqlite3_complete16=Module["_sqlite3_complete16"]=wasmExports["yd"])(a0);var _sqlite3_libversion=Module["_sqlite3_libversion"]=()=>(_sqlite3_libversion=Module["_sqlite3_libversion"]=wasmExports["zd"])();var _sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=()=>(_sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=wasmExports["Ad"])();var _sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=()=>(_sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=wasmExports["Bd"])();var _sqlite3_initialize=Module["_sqlite3_initialize"]=()=>(_sqlite3_initialize=Module["_sqlite3_initialize"]=wasmExports["Cd"])();var _sqlite3_shutdown=Module["_sqlite3_shutdown"]=()=>(_sqlite3_shutdown=Module["_sqlite3_shutdown"]=wasmExports["Dd"])();var _sqlite3_config=Module["_sqlite3_config"]=(a0,a1)=>(_sqlite3_config=Module["_sqlite3_config"]=wasmExports["Ed"])(a0,a1);var _sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=a0=>(_sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=wasmExports["Fd"])(a0);var _sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=a0=>(_sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=wasmExports["Gd"])(a0);var _sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=a0=>(_sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=wasmExports["Hd"])(a0);var _sqlite3_db_config=Module["_sqlite3_db_config"]=(a0,a1,a2)=>(_sqlite3_db_config=Module["_sqlite3_db_config"]=wasmExports["Id"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=a0=>(_sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=wasmExports["Jd"])(a0);var _sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=wasmExports["Kd"])(a0,a1,a2);var _sqlite3_changes64=Module["_sqlite3_changes64"]=a0=>(_sqlite3_changes64=Module["_sqlite3_changes64"]=wasmExports["Ld"])(a0);var _sqlite3_changes=Module["_sqlite3_changes"]=a0=>(_sqlite3_changes=Module["_sqlite3_changes"]=wasmExports["Md"])(a0);var _sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=a0=>(_sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=wasmExports["Nd"])(a0);var _sqlite3_total_changes=Module["_sqlite3_total_changes"]=a0=>(_sqlite3_total_changes=Module["_sqlite3_total_changes"]=wasmExports["Od"])(a0);var _sqlite3_txn_state=Module["_sqlite3_txn_state"]=(a0,a1)=>(_sqlite3_txn_state=Module["_sqlite3_txn_state"]=wasmExports["Pd"])(a0,a1);var _sqlite3_close=Module["_sqlite3_close"]=a0=>(_sqlite3_close=Module["_sqlite3_close"]=wasmExports["Qd"])(a0);var _sqlite3_close_v2=Module["_sqlite3_close_v2"]=a0=>(_sqlite3_close_v2=Module["_sqlite3_close_v2"]=wasmExports["Rd"])(a0);var _sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=wasmExports["Sd"])(a0,a1,a2);var _sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=wasmExports["Td"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=(a0,a1)=>(_sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=wasmExports["Ud"])(a0,a1);var _sqlite3_interrupt=Module["_sqlite3_interrupt"]=a0=>(_sqlite3_interrupt=Module["_sqlite3_interrupt"]=wasmExports["Vd"])(a0);var _sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=a0=>(_sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=wasmExports["Wd"])(a0);var _sqlite3_create_function=Module["_sqlite3_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module["_sqlite3_create_function"]=wasmExports["Xd"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=wasmExports["Yd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=wasmExports["Zd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module["_sqlite3_create_function16"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module["_sqlite3_create_function16"]=wasmExports["_d"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module["_sqlite3_overload_function"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module["_sqlite3_overload_function"]=wasmExports["$d"])(a0,a1,a2);var _sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=wasmExports["ae"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=wasmExports["be"])(a0,a1,a2);var _sqlite3_update_hook=Module["_sqlite3_update_hook"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module["_sqlite3_update_hook"]=wasmExports["ce"])(a0,a1,a2);var _sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=wasmExports["de"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=wasmExports["ee"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=wasmExports["fe"])(a0,a1);var _sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=wasmExports["ge"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=wasmExports["he"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=wasmExports["ie"])(a0,a1);var _sqlite3_error_offset=Module["_sqlite3_error_offset"]=a0=>(_sqlite3_error_offset=Module["_sqlite3_error_offset"]=wasmExports["je"])(a0);var _sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=a0=>(_sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=wasmExports["ke"])(a0);var _sqlite3_errcode=Module["_sqlite3_errcode"]=a0=>(_sqlite3_errcode=Module["_sqlite3_errcode"]=wasmExports["le"])(a0);var _sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=a0=>(_sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=wasmExports["me"])(a0);var _sqlite3_system_errno=Module["_sqlite3_system_errno"]=a0=>(_sqlite3_system_errno=Module["_sqlite3_system_errno"]=wasmExports["ne"])(a0);var _sqlite3_errstr=Module["_sqlite3_errstr"]=a0=>(_sqlite3_errstr=Module["_sqlite3_errstr"]=wasmExports["oe"])(a0);var _sqlite3_limit=Module["_sqlite3_limit"]=(a0,a1,a2)=>(_sqlite3_limit=Module["_sqlite3_limit"]=wasmExports["pe"])(a0,a1,a2);var _sqlite3_open=Module["_sqlite3_open"]=(a0,a1)=>(_sqlite3_open=Module["_sqlite3_open"]=wasmExports["qe"])(a0,a1);var _sqlite3_open_v2=Module["_sqlite3_open_v2"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module["_sqlite3_open_v2"]=wasmExports["re"])(a0,a1,a2,a3);var _sqlite3_open16=Module["_sqlite3_open16"]=(a0,a1)=>(_sqlite3_open16=Module["_sqlite3_open16"]=wasmExports["se"])(a0,a1);var _sqlite3_create_collation=Module["_sqlite3_create_collation"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module["_sqlite3_create_collation"]=wasmExports["te"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=wasmExports["ue"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=wasmExports["ve"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=wasmExports["we"])(a0,a1,a2);var _sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=wasmExports["xe"])(a0,a1,a2);var _sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=(a0,a1)=>(_sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=wasmExports["ye"])(a0,a1);var _sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=wasmExports["ze"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=a0=>(_sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=wasmExports["Ae"])(a0);var _sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=wasmExports["Be"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module["_sqlite3_sleep"]=a0=>(_sqlite3_sleep=Module["_sqlite3_sleep"]=wasmExports["Ce"])(a0);var _sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=wasmExports["De"])(a0,a1);var _sqlite3_file_control=Module["_sqlite3_file_control"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module["_sqlite3_file_control"]=wasmExports["Ee"])(a0,a1,a2,a3);var _sqlite3_test_control=Module["_sqlite3_test_control"]=(a0,a1)=>(_sqlite3_test_control=Module["_sqlite3_test_control"]=wasmExports["Fe"])(a0,a1);var _sqlite3_create_filename=Module["_sqlite3_create_filename"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module["_sqlite3_create_filename"]=wasmExports["Ge"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module["_sqlite3_free_filename"]=a0=>(_sqlite3_free_filename=Module["_sqlite3_free_filename"]=wasmExports["He"])(a0);var _sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=(a0,a1)=>(_sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=wasmExports["Ie"])(a0,a1);var _sqlite3_uri_key=Module["_sqlite3_uri_key"]=(a0,a1)=>(_sqlite3_uri_key=Module["_sqlite3_uri_key"]=wasmExports["Je"])(a0,a1);var _sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=wasmExports["Ke"])(a0,a1,a2);var _sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=wasmExports["Le"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module["_sqlite3_filename_database"]=a0=>(_sqlite3_filename_database=Module["_sqlite3_filename_database"]=wasmExports["Me"])(a0);var _sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=a0=>(_sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=wasmExports["Ne"])(a0);var _sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=a0=>(_sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=wasmExports["Oe"])(a0);var _sqlite3_db_name=Module["_sqlite3_db_name"]=(a0,a1)=>(_sqlite3_db_name=Module["_sqlite3_db_name"]=wasmExports["Pe"])(a0,a1);var _sqlite3_db_filename=Module["_sqlite3_db_filename"]=(a0,a1)=>(_sqlite3_db_filename=Module["_sqlite3_db_filename"]=wasmExports["Qe"])(a0,a1);var _sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=(a0,a1)=>(_sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=wasmExports["Re"])(a0,a1);var _sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=a0=>(_sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=wasmExports["Se"])(a0);var _sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=a0=>(_sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=wasmExports["Te"])(a0);var _sqlite3_sourceid=Module["_sqlite3_sourceid"]=()=>(_sqlite3_sourceid=Module["_sqlite3_sourceid"]=wasmExports["Ue"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["Ve"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["We"])(a0);var _RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=a0=>(_RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=wasmExports["Xe"])(a0);var _getSqliteFree=Module["_getSqliteFree"]=()=>(_getSqliteFree=Module["_getSqliteFree"]=wasmExports["Ye"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["Ze"])(a0,a1);var _libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=wasmExports["_e"])(a0,a1,a2);var _libfunction_create_function=Module["_libfunction_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module["_libfunction_create_function"]=wasmExports["$e"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module["_libhook_commit_hook"]=(a0,a1,a2)=>(_libhook_commit_hook=Module["_libhook_commit_hook"]=wasmExports["af"])(a0,a1,a2);var _libhook_update_hook=Module["_libhook_update_hook"]=(a0,a1,a2)=>(_libhook_update_hook=Module["_libhook_update_hook"]=wasmExports["bf"])(a0,a1,a2);var _libprogress_progress_handler=Module["_libprogress_progress_handler"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module["_libprogress_progress_handler"]=wasmExports["cf"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module["_libvfs_vfs_register"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module["_libvfs_vfs_register"]=wasmExports["df"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["ff"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports["gf"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["hf"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["jf"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["kf"])();var _asyncify_start_unwind=a0=>(_asyncify_start_unwind=wasmExports["lf"])(a0);var _asyncify_stop_unwind=()=>(_asyncify_stop_unwind=wasmExports["mf"])();var _asyncify_start_rewind=a0=>(_asyncify_start_rewind=wasmExports["nf"])(a0);var _asyncify_stop_rewind=()=>(_asyncify_stop_rewind=wasmExports["of"])();var _sqlite3_version=Module["_sqlite3_version"]=3232;Module["getTempRet0"]=getTempRet0;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["addFunction"]=addFunction;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["intArrayFromString"]=intArrayFromString;Module["intArrayToString"]=intArrayToString;Module["AsciiToString"]=AsciiToString;Module["UTF16ToString"]=UTF16ToString;Module["stringToUTF16"]=stringToUTF16;Module["UTF32ToString"]=UTF32ToString;Module["stringToUTF32"]=stringToUTF32;Module["writeArrayToMemory"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["set_authorizer"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,"i32");const result=ccall("libauthorizer_set_authorizer","number",["number","number","number"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module["setCallback"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=["xFunc","xStep","xFinal"];const mapFunctionNameToKey=new Map;Module["create_function"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module["_sqlite3_malloc"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["commit_hook"]=function(db,xCommitHook){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,"i32");ccall("libhook_commit_hook","void",["number","number","number"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module["setCallback"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["progress_handler"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,"i32");ccall("libprogress_progress_handler","number",["number","number","number","number"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module["setCallback"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"];const mapVFSNameToKey=new Map;Module["vfs_register"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))}).then(onload,onerror)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module["locateFile"]){var f="wa-sqlite-async.wasm";if(!isDataURI(f)){return locateFile(f)}return f}return new URL("wa-sqlite-async.wasm",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports["la"];updateMemoryViews();wasmTable=wasmExports["ef"];addOnInit(wasmExports["ma"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeHEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:"short"}).split(" ")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffsetDate.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _fd_sync=function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return Asyncify.handleSleep(wakeUp=>{var mount=stream.node.mount;if(!mount.type.syncfs){wakeUp(0);return}mount.type.syncfs(mount,false,err=>{if(err){wakeUp(29);return}wakeUp(0)})})}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}};_fd_sync.isAsync=true;var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify==="object"?Asyncify.handleAsync.bind(Asyncify):null;Module["handleAsync"]=handleAsync;const targets=new Map;Module["setCallback"]=(key,target)=>targets.set(key,target);Module["getCallback"]=key=>targets.get(key);Module["deleteCallback"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver==="function"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error("Synchronous WebAssembly cannot call async function")}const result=f.apply(receiver,args);if(typeof result?.then=="function"){console.error("unexpected Promise",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}_ipp_async.isAsync=true;function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}_ippipppp_async.isAsync=true;function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}_ippp_async.isAsync=true;function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}_ipppi_async.isAsync=true;function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}_ipppiii_async.isAsync=true;function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}_ipppiiip_async.isAsync=true;function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}_ipppip_async.isAsync=true;function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}_ipppj_async.isAsync=true;function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}_ipppp_async.isAsync=true;function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}_ippppi_async.isAsync=true;function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}_ippppij_async.isAsync=true;function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}_ippppip_async.isAsync=true;function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}_ipppppip_async.isAsync=true;function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}_vppippii_async.isAsync=true;function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}_vppp_async.isAsync=true;function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}_vpppip_async.isAsync=true;var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var runAndAbortIfError=func=>{try{return func()}catch(e){abort(e)}};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var sigToWasmTypes=sig=>{var typeNames={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{runtimeKeepaliveCounter+=1};var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};var Asyncify={instrumentWasmImports(imports){var importPattern=/^(ipp|ipp_async|ippp|ippp_async|vppp|vppp_async|ipppj|ipppj_async|ipppi|ipppi_async|ipppp|ipppp_async|ipppip|ipppip_async|vpppip|vpppip_async|ippppi|ippppi_async|ippppij|ippppij_async|ipppiii|ipppiii_async|ippppip|ippppip_async|ippipppp|ippipppp_async|ipppppip|ipppppip_async|ipppiiip|ipppiiip_async|vppippii|vppippii_async|invoke_.*|__asyncjs__.*)$/;for(let[x,original]of Object.entries(imports)){if(typeof original=="function"){let isAsyncifyImport=original.isAsync||importPattern.test(x)}}},instrumentWasmExports(exports){var ret={};for(let[x,original]of Object.entries(exports)){if(typeof original=="function"){ret[x]=(...args)=>{Asyncify.exportCallStack.push(x);try{return original(...args)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}}return ret},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:16384,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader(ptr,stack,stackSize){HEAPU32[ptr>>2]=stack;HEAPU32[ptr+4>>2]=stack+stackSize},setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFuncName(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];return name},getDataRewindFunc(name){var func=wasmExports[name];return func},doRewind(ptr){var name=Asyncify.getDataRewindFuncName(ptr);var func=Asyncify.getDataRewindFunc(name);return func()},handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync((handleSleepReturnValue=0)=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>_asyncify_start_rewind(Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}runAndAbortIfError(()=>_asyncify_start_unwind(Asyncify.currData))}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback)}else{abort(`invalid state: ${Asyncify.state}`)}return Asyncify.handleSleepReturnValue},handleAsync(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var generateFuncType=(sig,target)=>{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i{if(typeof WebAssembly.Function=="function"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports["f"];return wrappedFunc};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>wasmTable.set(idx,func);var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={a:___assert_fail,Y:___syscall_chmod,$:___syscall_faccessat,Z:___syscall_fchmod,X:___syscall_fchown32,b:___syscall_fcntl64,W:___syscall_fstat64,y:___syscall_ftruncate64,Q:___syscall_getcwd,U:___syscall_lstat64,N:___syscall_mkdirat,S:___syscall_newfstatat,M:___syscall_openat,K:___syscall_readlinkat,J:___syscall_rmdir,V:___syscall_stat64,G:___syscall_unlinkat,F:___syscall_utimensat,w:__localtime_js,u:__mmap_js,v:__munmap_js,H:__tzset_js,n:_emscripten_date_now,m:_emscripten_get_now,D:_emscripten_resize_heap,O:_environ_get,P:_environ_sizes_get,o:_fd_close,E:_fd_fdstat_get,L:_fd_read,x:_fd_seek,R:_fd_sync,I:_fd_write,s:_ipp,t:_ipp_async,ga:_ippipppp,ka:_ippipppp_async,i:_ippp,j:_ippp_async,c:_ipppi,d:_ipppi_async,ca:_ipppiii,da:_ipppiii_async,ea:_ipppiiip,fa:_ipppiiip_async,g:_ipppip,h:_ipppip_async,z:_ipppj,A:_ipppj_async,e:_ipppp,f:_ipppp_async,aa:_ippppi,ba:_ippppi_async,B:_ippppij,C:_ippppij_async,p:_ippppip,q:_ippppip_async,ha:_ipppppip,ia:_ipppppip_async,ja:_vppippii,r:_vppippii_async,k:_vppp,l:_vppp_async,T:_vpppip,_:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["ma"])();var _sqlite3_status64=Module["_sqlite3_status64"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module["_sqlite3_status64"]=wasmExports["na"])(a0,a1,a2,a3);var _sqlite3_status=Module["_sqlite3_status"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module["_sqlite3_status"]=wasmExports["oa"])(a0,a1,a2,a3);var _sqlite3_msize=Module["_sqlite3_msize"]=a0=>(_sqlite3_msize=Module["_sqlite3_msize"]=wasmExports["pa"])(a0);var _sqlite3_db_status=Module["_sqlite3_db_status"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module["_sqlite3_db_status"]=wasmExports["qa"])(a0,a1,a2,a3,a4);var _sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=a0=>(_sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=wasmExports["ra"])(a0);var _sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=(a0,a1)=>(_sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=wasmExports["sa"])(a0,a1);var _sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=a0=>(_sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=wasmExports["ta"])(a0);var _sqlite3_release_memory=Module["_sqlite3_release_memory"]=a0=>(_sqlite3_release_memory=Module["_sqlite3_release_memory"]=wasmExports["ua"])(a0);var _sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=wasmExports["va"])(a0,a1);var _sqlite3_memory_used=Module["_sqlite3_memory_used"]=()=>(_sqlite3_memory_used=Module["_sqlite3_memory_used"]=wasmExports["wa"])();var _sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=wasmExports["xa"])(a0,a1);var _sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=a0=>(_sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=wasmExports["ya"])(a0);var _sqlite3_malloc=Module["_sqlite3_malloc"]=a0=>(_sqlite3_malloc=Module["_sqlite3_malloc"]=wasmExports["za"])(a0);var _sqlite3_malloc64=Module["_sqlite3_malloc64"]=(a0,a1)=>(_sqlite3_malloc64=Module["_sqlite3_malloc64"]=wasmExports["Aa"])(a0,a1);var _sqlite3_free=Module["_sqlite3_free"]=a0=>(_sqlite3_free=Module["_sqlite3_free"]=wasmExports["Ba"])(a0);var _sqlite3_realloc=Module["_sqlite3_realloc"]=(a0,a1)=>(_sqlite3_realloc=Module["_sqlite3_realloc"]=wasmExports["Ca"])(a0,a1);var _sqlite3_realloc64=Module["_sqlite3_realloc64"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module["_sqlite3_realloc64"]=wasmExports["Da"])(a0,a1,a2);var _sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=wasmExports["Ea"])(a0,a1,a2);var _sqlite3_str_append=Module["_sqlite3_str_append"]=(a0,a1,a2)=>(_sqlite3_str_append=Module["_sqlite3_str_append"]=wasmExports["Fa"])(a0,a1,a2);var _sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=wasmExports["Ga"])(a0,a1,a2);var _sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=(a0,a1)=>(_sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=wasmExports["Ha"])(a0,a1);var _sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=wasmExports["Ia"])(a0,a1,a2);var _sqlite3_str_finish=Module["_sqlite3_str_finish"]=a0=>(_sqlite3_str_finish=Module["_sqlite3_str_finish"]=wasmExports["Ja"])(a0);var _sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=a0=>(_sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=wasmExports["Ka"])(a0);var _sqlite3_str_length=Module["_sqlite3_str_length"]=a0=>(_sqlite3_str_length=Module["_sqlite3_str_length"]=wasmExports["La"])(a0);var _sqlite3_str_value=Module["_sqlite3_str_value"]=a0=>(_sqlite3_str_value=Module["_sqlite3_str_value"]=wasmExports["Ma"])(a0);var _sqlite3_str_reset=Module["_sqlite3_str_reset"]=a0=>(_sqlite3_str_reset=Module["_sqlite3_str_reset"]=wasmExports["Na"])(a0);var _sqlite3_str_new=Module["_sqlite3_str_new"]=a0=>(_sqlite3_str_new=Module["_sqlite3_str_new"]=wasmExports["Oa"])(a0);var _sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=(a0,a1)=>(_sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=wasmExports["Pa"])(a0,a1);var _sqlite3_mprintf=Module["_sqlite3_mprintf"]=(a0,a1)=>(_sqlite3_mprintf=Module["_sqlite3_mprintf"]=wasmExports["Qa"])(a0,a1);var _sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=wasmExports["Ra"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module["_sqlite3_snprintf"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module["_sqlite3_snprintf"]=wasmExports["Sa"])(a0,a1,a2,a3);var _sqlite3_log=Module["_sqlite3_log"]=(a0,a1,a2)=>(_sqlite3_log=Module["_sqlite3_log"]=wasmExports["Ta"])(a0,a1,a2);var _sqlite3_randomness=Module["_sqlite3_randomness"]=(a0,a1)=>(_sqlite3_randomness=Module["_sqlite3_randomness"]=wasmExports["Ua"])(a0,a1);var _sqlite3_stricmp=Module["_sqlite3_stricmp"]=(a0,a1)=>(_sqlite3_stricmp=Module["_sqlite3_stricmp"]=wasmExports["Va"])(a0,a1);var _sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=wasmExports["Wa"])(a0,a1,a2);var _sqlite3_os_init=Module["_sqlite3_os_init"]=()=>(_sqlite3_os_init=Module["_sqlite3_os_init"]=wasmExports["Xa"])();var _sqlite3_os_end=Module["_sqlite3_os_end"]=()=>(_sqlite3_os_end=Module["_sqlite3_os_end"]=wasmExports["Ya"])();var _sqlite3_serialize=Module["_sqlite3_serialize"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module["_sqlite3_serialize"]=wasmExports["Za"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=wasmExports["_a"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module["_sqlite3_step"]=a0=>(_sqlite3_step=Module["_sqlite3_step"]=wasmExports["$a"])(a0);var _sqlite3_column_int64=Module["_sqlite3_column_int64"]=(a0,a1)=>(_sqlite3_column_int64=Module["_sqlite3_column_int64"]=wasmExports["ab"])(a0,a1);var _sqlite3_reset=Module["_sqlite3_reset"]=a0=>(_sqlite3_reset=Module["_sqlite3_reset"]=wasmExports["bb"])(a0);var _sqlite3_exec=Module["_sqlite3_exec"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module["_sqlite3_exec"]=wasmExports["cb"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module["_sqlite3_column_int"]=(a0,a1)=>(_sqlite3_column_int=Module["_sqlite3_column_int"]=wasmExports["db"])(a0,a1);var _sqlite3_finalize=Module["_sqlite3_finalize"]=a0=>(_sqlite3_finalize=Module["_sqlite3_finalize"]=wasmExports["eb"])(a0);var _sqlite3_deserialize=Module["_sqlite3_deserialize"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module["_sqlite3_deserialize"]=wasmExports["fb"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=a0=>(_sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=wasmExports["gb"])(a0);var _sqlite3_backup_init=Module["_sqlite3_backup_init"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module["_sqlite3_backup_init"]=wasmExports["hb"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module["_sqlite3_backup_step"]=(a0,a1)=>(_sqlite3_backup_step=Module["_sqlite3_backup_step"]=wasmExports["ib"])(a0,a1);var _sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=a0=>(_sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=wasmExports["jb"])(a0);var _sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=a0=>(_sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=wasmExports["kb"])(a0);var _sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=a0=>(_sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=wasmExports["lb"])(a0);var _sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=a0=>(_sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=wasmExports["mb"])(a0);var _sqlite3_value_blob=Module["_sqlite3_value_blob"]=a0=>(_sqlite3_value_blob=Module["_sqlite3_value_blob"]=wasmExports["nb"])(a0);var _sqlite3_value_text=Module["_sqlite3_value_text"]=a0=>(_sqlite3_value_text=Module["_sqlite3_value_text"]=wasmExports["ob"])(a0);var _sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=a0=>(_sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=wasmExports["pb"])(a0);var _sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=a0=>(_sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=wasmExports["qb"])(a0);var _sqlite3_value_double=Module["_sqlite3_value_double"]=a0=>(_sqlite3_value_double=Module["_sqlite3_value_double"]=wasmExports["rb"])(a0);var _sqlite3_value_int=Module["_sqlite3_value_int"]=a0=>(_sqlite3_value_int=Module["_sqlite3_value_int"]=wasmExports["sb"])(a0);var _sqlite3_value_int64=Module["_sqlite3_value_int64"]=a0=>(_sqlite3_value_int64=Module["_sqlite3_value_int64"]=wasmExports["tb"])(a0);var _sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=a0=>(_sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=wasmExports["ub"])(a0);var _sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=(a0,a1)=>(_sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=wasmExports["vb"])(a0,a1);var _sqlite3_value_text16=Module["_sqlite3_value_text16"]=a0=>(_sqlite3_value_text16=Module["_sqlite3_value_text16"]=wasmExports["wb"])(a0);var _sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=a0=>(_sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=wasmExports["xb"])(a0);var _sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=a0=>(_sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=wasmExports["yb"])(a0);var _sqlite3_value_type=Module["_sqlite3_value_type"]=a0=>(_sqlite3_value_type=Module["_sqlite3_value_type"]=wasmExports["zb"])(a0);var _sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=a0=>(_sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=wasmExports["Ab"])(a0);var _sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=a0=>(_sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=wasmExports["Bb"])(a0);var _sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=a0=>(_sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=wasmExports["Cb"])(a0);var _sqlite3_value_dup=Module["_sqlite3_value_dup"]=a0=>(_sqlite3_value_dup=Module["_sqlite3_value_dup"]=wasmExports["Db"])(a0);var _sqlite3_value_free=Module["_sqlite3_value_free"]=a0=>(_sqlite3_value_free=Module["_sqlite3_value_free"]=wasmExports["Eb"])(a0);var _sqlite3_result_blob=Module["_sqlite3_result_blob"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module["_sqlite3_result_blob"]=wasmExports["Fb"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=wasmExports["Gb"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module["_sqlite3_result_double"]=(a0,a1)=>(_sqlite3_result_double=Module["_sqlite3_result_double"]=wasmExports["Hb"])(a0,a1);var _sqlite3_result_error=Module["_sqlite3_result_error"]=(a0,a1,a2)=>(_sqlite3_result_error=Module["_sqlite3_result_error"]=wasmExports["Ib"])(a0,a1,a2);var _sqlite3_result_error16=Module["_sqlite3_result_error16"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module["_sqlite3_result_error16"]=wasmExports["Jb"])(a0,a1,a2);var _sqlite3_result_int=Module["_sqlite3_result_int"]=(a0,a1)=>(_sqlite3_result_int=Module["_sqlite3_result_int"]=wasmExports["Kb"])(a0,a1);var _sqlite3_result_int64=Module["_sqlite3_result_int64"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module["_sqlite3_result_int64"]=wasmExports["Lb"])(a0,a1,a2);var _sqlite3_result_null=Module["_sqlite3_result_null"]=a0=>(_sqlite3_result_null=Module["_sqlite3_result_null"]=wasmExports["Mb"])(a0);var _sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=wasmExports["Nb"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=(a0,a1)=>(_sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=wasmExports["Ob"])(a0,a1);var _sqlite3_result_text=Module["_sqlite3_result_text"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module["_sqlite3_result_text"]=wasmExports["Pb"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module["_sqlite3_result_text64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module["_sqlite3_result_text64"]=wasmExports["Qb"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module["_sqlite3_result_text16"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module["_sqlite3_result_text16"]=wasmExports["Rb"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=wasmExports["Sb"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=wasmExports["Tb"])(a0,a1,a2,a3);var _sqlite3_result_value=Module["_sqlite3_result_value"]=(a0,a1)=>(_sqlite3_result_value=Module["_sqlite3_result_value"]=wasmExports["Ub"])(a0,a1);var _sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=a0=>(_sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=wasmExports["Vb"])(a0);var _sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=wasmExports["Wb"])(a0,a1);var _sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=wasmExports["Xb"])(a0,a1,a2);var _sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=(a0,a1)=>(_sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=wasmExports["Yb"])(a0,a1);var _sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=a0=>(_sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=wasmExports["Zb"])(a0);var _sqlite3_user_data=Module["_sqlite3_user_data"]=a0=>(_sqlite3_user_data=Module["_sqlite3_user_data"]=wasmExports["_b"])(a0);var _sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=a0=>(_sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=wasmExports["$b"])(a0);var _sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=a0=>(_sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=wasmExports["ac"])(a0);var _sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=wasmExports["bc"])(a0,a1);var _sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=wasmExports["cc"])(a0,a1);var _sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=(a0,a1)=>(_sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=wasmExports["dc"])(a0,a1);var _sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=(a0,a1)=>(_sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=wasmExports["ec"])(a0,a1);var _sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=wasmExports["fc"])(a0,a1,a2,a3);var _sqlite3_column_count=Module["_sqlite3_column_count"]=a0=>(_sqlite3_column_count=Module["_sqlite3_column_count"]=wasmExports["gc"])(a0);var _sqlite3_data_count=Module["_sqlite3_data_count"]=a0=>(_sqlite3_data_count=Module["_sqlite3_data_count"]=wasmExports["hc"])(a0);var _sqlite3_column_blob=Module["_sqlite3_column_blob"]=(a0,a1)=>(_sqlite3_column_blob=Module["_sqlite3_column_blob"]=wasmExports["ic"])(a0,a1);var _sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=(a0,a1)=>(_sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=wasmExports["jc"])(a0,a1);var _sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=(a0,a1)=>(_sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=wasmExports["kc"])(a0,a1);var _sqlite3_column_double=Module["_sqlite3_column_double"]=(a0,a1)=>(_sqlite3_column_double=Module["_sqlite3_column_double"]=wasmExports["lc"])(a0,a1);var _sqlite3_column_text=Module["_sqlite3_column_text"]=(a0,a1)=>(_sqlite3_column_text=Module["_sqlite3_column_text"]=wasmExports["mc"])(a0,a1);var _sqlite3_column_value=Module["_sqlite3_column_value"]=(a0,a1)=>(_sqlite3_column_value=Module["_sqlite3_column_value"]=wasmExports["nc"])(a0,a1);var _sqlite3_column_text16=Module["_sqlite3_column_text16"]=(a0,a1)=>(_sqlite3_column_text16=Module["_sqlite3_column_text16"]=wasmExports["oc"])(a0,a1);var _sqlite3_column_type=Module["_sqlite3_column_type"]=(a0,a1)=>(_sqlite3_column_type=Module["_sqlite3_column_type"]=wasmExports["pc"])(a0,a1);var _sqlite3_column_name=Module["_sqlite3_column_name"]=(a0,a1)=>(_sqlite3_column_name=Module["_sqlite3_column_name"]=wasmExports["qc"])(a0,a1);var _sqlite3_column_name16=Module["_sqlite3_column_name16"]=(a0,a1)=>(_sqlite3_column_name16=Module["_sqlite3_column_name16"]=wasmExports["rc"])(a0,a1);var _sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=wasmExports["sc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=wasmExports["tc"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module["_sqlite3_bind_double"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module["_sqlite3_bind_double"]=wasmExports["uc"])(a0,a1,a2);var _sqlite3_bind_int=Module["_sqlite3_bind_int"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module["_sqlite3_bind_int"]=wasmExports["vc"])(a0,a1,a2);var _sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=wasmExports["wc"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module["_sqlite3_bind_null"]=(a0,a1)=>(_sqlite3_bind_null=Module["_sqlite3_bind_null"]=wasmExports["xc"])(a0,a1);var _sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=wasmExports["yc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module["_sqlite3_bind_text"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module["_sqlite3_bind_text"]=wasmExports["zc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=wasmExports["Ac"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=wasmExports["Bc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module["_sqlite3_bind_value"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module["_sqlite3_bind_value"]=wasmExports["Cc"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=wasmExports["Dc"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=wasmExports["Ec"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=a0=>(_sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=wasmExports["Fc"])(a0);var _sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=wasmExports["Gc"])(a0,a1);var _sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=wasmExports["Hc"])(a0,a1);var _sqlite3_db_handle=Module["_sqlite3_db_handle"]=a0=>(_sqlite3_db_handle=Module["_sqlite3_db_handle"]=wasmExports["Ic"])(a0);var _sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=a0=>(_sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=wasmExports["Jc"])(a0);var _sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=a0=>(_sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=wasmExports["Kc"])(a0);var _sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=(a0,a1)=>(_sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=wasmExports["Lc"])(a0,a1);var _sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=a0=>(_sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=wasmExports["Mc"])(a0);var _sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=(a0,a1)=>(_sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=wasmExports["Nc"])(a0,a1);var _sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=wasmExports["Oc"])(a0,a1,a2);var _sqlite3_sql=Module["_sqlite3_sql"]=a0=>(_sqlite3_sql=Module["_sqlite3_sql"]=wasmExports["Pc"])(a0);var _sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=a0=>(_sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=wasmExports["Qc"])(a0);var _sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=a0=>(_sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=wasmExports["Rc"])(a0);var _sqlite3_blob_open=Module["_sqlite3_blob_open"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module["_sqlite3_blob_open"]=wasmExports["Sc"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module["_sqlite3_blob_close"]=a0=>(_sqlite3_blob_close=Module["_sqlite3_blob_close"]=wasmExports["Tc"])(a0);var _sqlite3_blob_read=Module["_sqlite3_blob_read"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module["_sqlite3_blob_read"]=wasmExports["Uc"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module["_sqlite3_blob_write"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module["_sqlite3_blob_write"]=wasmExports["Vc"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=a0=>(_sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=wasmExports["Wc"])(a0);var _sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=wasmExports["Xc"])(a0,a1,a2);var _sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=wasmExports["Yc"])(a0,a1,a2);var _sqlite3_strglob=Module["_sqlite3_strglob"]=(a0,a1)=>(_sqlite3_strglob=Module["_sqlite3_strglob"]=wasmExports["Zc"])(a0,a1);var _sqlite3_strlike=Module["_sqlite3_strlike"]=(a0,a1,a2)=>(_sqlite3_strlike=Module["_sqlite3_strlike"]=wasmExports["_c"])(a0,a1,a2);var _sqlite3_errmsg=Module["_sqlite3_errmsg"]=a0=>(_sqlite3_errmsg=Module["_sqlite3_errmsg"]=wasmExports["$c"])(a0);var _sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=a0=>(_sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=wasmExports["ad"])(a0);var _sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=a0=>(_sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=wasmExports["bd"])(a0);var _sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=()=>(_sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=wasmExports["cd"])();var _sqlite3_prepare=Module["_sqlite3_prepare"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module["_sqlite3_prepare"]=wasmExports["dd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=wasmExports["ed"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module["_sqlite3_prepare16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module["_sqlite3_prepare16"]=wasmExports["fd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=wasmExports["gd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=wasmExports["hd"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module["_sqlite3_get_table"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module["_sqlite3_get_table"]=wasmExports["id"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module["_sqlite3_free_table"]=a0=>(_sqlite3_free_table=Module["_sqlite3_free_table"]=wasmExports["jd"])(a0);var _sqlite3_create_module=Module["_sqlite3_create_module"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module["_sqlite3_create_module"]=wasmExports["kd"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=wasmExports["ld"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=(a0,a1)=>(_sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=wasmExports["md"])(a0,a1);var _sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=(a0,a1)=>(_sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=wasmExports["nd"])(a0,a1);var _sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=a0=>(_sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=wasmExports["od"])(a0);var _sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=wasmExports["pd"])(a0,a1,a2);var _sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=(a0,a1)=>(_sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=wasmExports["qd"])(a0,a1);var _sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=wasmExports["rd"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=wasmExports["sd"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=a0=>(_sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=wasmExports["td"])(a0);var _sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=wasmExports["ud"])(a0,a1,a2);var _sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=()=>(_sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=wasmExports["vd"])();var _sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=(a0,a1)=>(_sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=wasmExports["wd"])(a0,a1);var _sqlite3_complete=Module["_sqlite3_complete"]=a0=>(_sqlite3_complete=Module["_sqlite3_complete"]=wasmExports["xd"])(a0);var _sqlite3_complete16=Module["_sqlite3_complete16"]=a0=>(_sqlite3_complete16=Module["_sqlite3_complete16"]=wasmExports["yd"])(a0);var _sqlite3_libversion=Module["_sqlite3_libversion"]=()=>(_sqlite3_libversion=Module["_sqlite3_libversion"]=wasmExports["zd"])();var _sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=()=>(_sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=wasmExports["Ad"])();var _sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=()=>(_sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=wasmExports["Bd"])();var _sqlite3_initialize=Module["_sqlite3_initialize"]=()=>(_sqlite3_initialize=Module["_sqlite3_initialize"]=wasmExports["Cd"])();var _sqlite3_shutdown=Module["_sqlite3_shutdown"]=()=>(_sqlite3_shutdown=Module["_sqlite3_shutdown"]=wasmExports["Dd"])();var _sqlite3_config=Module["_sqlite3_config"]=(a0,a1)=>(_sqlite3_config=Module["_sqlite3_config"]=wasmExports["Ed"])(a0,a1);var _sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=a0=>(_sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=wasmExports["Fd"])(a0);var _sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=a0=>(_sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=wasmExports["Gd"])(a0);var _sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=a0=>(_sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=wasmExports["Hd"])(a0);var _sqlite3_db_config=Module["_sqlite3_db_config"]=(a0,a1,a2)=>(_sqlite3_db_config=Module["_sqlite3_db_config"]=wasmExports["Id"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=a0=>(_sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=wasmExports["Jd"])(a0);var _sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=wasmExports["Kd"])(a0,a1,a2);var _sqlite3_changes64=Module["_sqlite3_changes64"]=a0=>(_sqlite3_changes64=Module["_sqlite3_changes64"]=wasmExports["Ld"])(a0);var _sqlite3_changes=Module["_sqlite3_changes"]=a0=>(_sqlite3_changes=Module["_sqlite3_changes"]=wasmExports["Md"])(a0);var _sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=a0=>(_sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=wasmExports["Nd"])(a0);var _sqlite3_total_changes=Module["_sqlite3_total_changes"]=a0=>(_sqlite3_total_changes=Module["_sqlite3_total_changes"]=wasmExports["Od"])(a0);var _sqlite3_txn_state=Module["_sqlite3_txn_state"]=(a0,a1)=>(_sqlite3_txn_state=Module["_sqlite3_txn_state"]=wasmExports["Pd"])(a0,a1);var _sqlite3_close=Module["_sqlite3_close"]=a0=>(_sqlite3_close=Module["_sqlite3_close"]=wasmExports["Qd"])(a0);var _sqlite3_close_v2=Module["_sqlite3_close_v2"]=a0=>(_sqlite3_close_v2=Module["_sqlite3_close_v2"]=wasmExports["Rd"])(a0);var _sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=wasmExports["Sd"])(a0,a1,a2);var _sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=wasmExports["Td"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=(a0,a1)=>(_sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=wasmExports["Ud"])(a0,a1);var _sqlite3_interrupt=Module["_sqlite3_interrupt"]=a0=>(_sqlite3_interrupt=Module["_sqlite3_interrupt"]=wasmExports["Vd"])(a0);var _sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=a0=>(_sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=wasmExports["Wd"])(a0);var _sqlite3_create_function=Module["_sqlite3_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module["_sqlite3_create_function"]=wasmExports["Xd"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=wasmExports["Yd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=wasmExports["Zd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module["_sqlite3_create_function16"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module["_sqlite3_create_function16"]=wasmExports["_d"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module["_sqlite3_overload_function"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module["_sqlite3_overload_function"]=wasmExports["$d"])(a0,a1,a2);var _sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=wasmExports["ae"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=wasmExports["be"])(a0,a1,a2);var _sqlite3_update_hook=Module["_sqlite3_update_hook"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module["_sqlite3_update_hook"]=wasmExports["ce"])(a0,a1,a2);var _sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=wasmExports["de"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=wasmExports["ee"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=wasmExports["fe"])(a0,a1);var _sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=wasmExports["ge"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=wasmExports["he"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=wasmExports["ie"])(a0,a1);var _sqlite3_error_offset=Module["_sqlite3_error_offset"]=a0=>(_sqlite3_error_offset=Module["_sqlite3_error_offset"]=wasmExports["je"])(a0);var _sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=a0=>(_sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=wasmExports["ke"])(a0);var _sqlite3_errcode=Module["_sqlite3_errcode"]=a0=>(_sqlite3_errcode=Module["_sqlite3_errcode"]=wasmExports["le"])(a0);var _sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=a0=>(_sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=wasmExports["me"])(a0);var _sqlite3_system_errno=Module["_sqlite3_system_errno"]=a0=>(_sqlite3_system_errno=Module["_sqlite3_system_errno"]=wasmExports["ne"])(a0);var _sqlite3_errstr=Module["_sqlite3_errstr"]=a0=>(_sqlite3_errstr=Module["_sqlite3_errstr"]=wasmExports["oe"])(a0);var _sqlite3_limit=Module["_sqlite3_limit"]=(a0,a1,a2)=>(_sqlite3_limit=Module["_sqlite3_limit"]=wasmExports["pe"])(a0,a1,a2);var _sqlite3_open=Module["_sqlite3_open"]=(a0,a1)=>(_sqlite3_open=Module["_sqlite3_open"]=wasmExports["qe"])(a0,a1);var _sqlite3_open_v2=Module["_sqlite3_open_v2"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module["_sqlite3_open_v2"]=wasmExports["re"])(a0,a1,a2,a3);var _sqlite3_open16=Module["_sqlite3_open16"]=(a0,a1)=>(_sqlite3_open16=Module["_sqlite3_open16"]=wasmExports["se"])(a0,a1);var _sqlite3_create_collation=Module["_sqlite3_create_collation"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module["_sqlite3_create_collation"]=wasmExports["te"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=wasmExports["ue"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=wasmExports["ve"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=wasmExports["we"])(a0,a1,a2);var _sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=wasmExports["xe"])(a0,a1,a2);var _sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=(a0,a1)=>(_sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=wasmExports["ye"])(a0,a1);var _sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=wasmExports["ze"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=a0=>(_sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=wasmExports["Ae"])(a0);var _sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=wasmExports["Be"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module["_sqlite3_sleep"]=a0=>(_sqlite3_sleep=Module["_sqlite3_sleep"]=wasmExports["Ce"])(a0);var _sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=wasmExports["De"])(a0,a1);var _sqlite3_file_control=Module["_sqlite3_file_control"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module["_sqlite3_file_control"]=wasmExports["Ee"])(a0,a1,a2,a3);var _sqlite3_test_control=Module["_sqlite3_test_control"]=(a0,a1)=>(_sqlite3_test_control=Module["_sqlite3_test_control"]=wasmExports["Fe"])(a0,a1);var _sqlite3_create_filename=Module["_sqlite3_create_filename"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module["_sqlite3_create_filename"]=wasmExports["Ge"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module["_sqlite3_free_filename"]=a0=>(_sqlite3_free_filename=Module["_sqlite3_free_filename"]=wasmExports["He"])(a0);var _sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=(a0,a1)=>(_sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=wasmExports["Ie"])(a0,a1);var _sqlite3_uri_key=Module["_sqlite3_uri_key"]=(a0,a1)=>(_sqlite3_uri_key=Module["_sqlite3_uri_key"]=wasmExports["Je"])(a0,a1);var _sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=wasmExports["Ke"])(a0,a1,a2);var _sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=wasmExports["Le"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module["_sqlite3_filename_database"]=a0=>(_sqlite3_filename_database=Module["_sqlite3_filename_database"]=wasmExports["Me"])(a0);var _sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=a0=>(_sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=wasmExports["Ne"])(a0);var _sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=a0=>(_sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=wasmExports["Oe"])(a0);var _sqlite3_db_name=Module["_sqlite3_db_name"]=(a0,a1)=>(_sqlite3_db_name=Module["_sqlite3_db_name"]=wasmExports["Pe"])(a0,a1);var _sqlite3_db_filename=Module["_sqlite3_db_filename"]=(a0,a1)=>(_sqlite3_db_filename=Module["_sqlite3_db_filename"]=wasmExports["Qe"])(a0,a1);var _sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=(a0,a1)=>(_sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=wasmExports["Re"])(a0,a1);var _sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=a0=>(_sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=wasmExports["Se"])(a0);var _sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=a0=>(_sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=wasmExports["Te"])(a0);var _sqlite3_sourceid=Module["_sqlite3_sourceid"]=()=>(_sqlite3_sourceid=Module["_sqlite3_sourceid"]=wasmExports["Ue"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["Ve"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["We"])(a0);var _RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=a0=>(_RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=wasmExports["Xe"])(a0);var _getSqliteFree=Module["_getSqliteFree"]=()=>(_getSqliteFree=Module["_getSqliteFree"]=wasmExports["Ye"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["Ze"])(a0,a1);var _libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=wasmExports["_e"])(a0,a1,a2);var _libfunction_create_function=Module["_libfunction_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module["_libfunction_create_function"]=wasmExports["$e"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module["_libhook_commit_hook"]=(a0,a1,a2)=>(_libhook_commit_hook=Module["_libhook_commit_hook"]=wasmExports["af"])(a0,a1,a2);var _libhook_update_hook=Module["_libhook_update_hook"]=(a0,a1,a2)=>(_libhook_update_hook=Module["_libhook_update_hook"]=wasmExports["bf"])(a0,a1,a2);var _libprogress_progress_handler=Module["_libprogress_progress_handler"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module["_libprogress_progress_handler"]=wasmExports["cf"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module["_libvfs_vfs_register"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module["_libvfs_vfs_register"]=wasmExports["df"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["ff"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports["gf"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["hf"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["jf"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["kf"])();var _asyncify_start_unwind=a0=>(_asyncify_start_unwind=wasmExports["lf"])(a0);var _asyncify_stop_unwind=()=>(_asyncify_stop_unwind=wasmExports["mf"])();var _asyncify_start_rewind=a0=>(_asyncify_start_rewind=wasmExports["nf"])(a0);var _asyncify_stop_rewind=()=>(_asyncify_stop_rewind=wasmExports["of"])();var _sqlite3_version=Module["_sqlite3_version"]=3232;Module["getTempRet0"]=getTempRet0;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["addFunction"]=addFunction;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["intArrayFromString"]=intArrayFromString;Module["intArrayToString"]=intArrayToString;Module["AsciiToString"]=AsciiToString;Module["UTF16ToString"]=UTF16ToString;Module["stringToUTF16"]=stringToUTF16;Module["UTF32ToString"]=UTF32ToString;Module["stringToUTF32"]=stringToUTF32;Module["writeArrayToMemory"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["set_authorizer"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,"i32");const result=ccall("libauthorizer_set_authorizer","number",["number","number","number"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module["setCallback"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=["xFunc","xStep","xFinal"];const mapFunctionNameToKey=new Map;Module["create_function"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module["_sqlite3_malloc"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["commit_hook"]=function(db,xCommitHook){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,"i32");ccall("libhook_commit_hook","void",["number","number","number"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module["setCallback"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["progress_handler"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,"i32");ccall("libprogress_progress_handler","number",["number","number","number","number"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module["setCallback"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"];const mapVFSNameToKey=new Map;Module["vfs_register"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]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 z 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
    Yc%q11{4^wM#S15 zntYuBMYdR~rOJ?+8lOt5ZiWy8G0nt9lZAw&5B!=^X#N&%!X+k?;U1wf*o4QNK1*wb zXpu-7juE4d!O&Sa{D@IvxZ1+a7(QELjk0ir#&}=^Y`xE~0!^^-h>I`b(Bwmx4xSlD z)et5XG!9#8+i<|#06e+@yESnFmIBsHC$Y&K_KOQV4ZdR!0KebVu9|hTHJmdIw8s!e zNgC>9Lp9H+fO7;x1e^mQf5Z%jVfFD=yX1g^ju%teS{-$BWxRfnay8-IF8I&|?mE`lY#Ozj>&E65_V@1QeR)AqB|_zR7`z9I!{7sl zz$ORY%g({3F(4#(3|=OPC3Cm&UaI1NG=#SsmOS8W5fO(qHHVH?@uz1LdkvyaMVzNW z$s(g!B5%fUgqdPnAjD$fZ5PAq$ps>nBgrI+sbOiR*&0kl#PqPV1T*+xAVGYHwNS!i zX>Um!a{nZYa#ePiW_Mf~5C2z~yP+1|{5%qbhAVs;iyQ+lQ~MOLIPbj50e4$PNc7lU zPcgNxY(5EF!!+E#1%iSNRK~(a$x^QVqmII=z0DdWRuYQ9gdYQPvxgYYpC(7A;Xc6#jDdd(I?jePetr;F*SN%(5HE8-dEMClpr{?= ziuITuVl(iq$^3;QoVq=~f`TPQSuCoB9C_q%^lM2mFvT*W!BlbeN^|I#VESUBT`;lc z=P#BL;c+|QJc(Dh2?G{>X0*U?huOV6<3gx=ykIzXI0T1{e@rndU`^o^pz$GT3!)Ck zTN|MetJ)6p$d+ZB3EBZ^y|!(F8&ATlMJRk?`Hs3hV!3AcDZ{JB(b=-@y0qtZL|JD- zZA1j$y2~3I77EXnHJGjj#53CJdBI_+$n=RI{n4dGxuy%$v@kZB#~!bQsf_?K1BSlw zhMLN*>g@gJFdu`8{!C5tnOazWIfc~;Y_J6Hv`M8!CGPp+gz*lp4MP@^Tpa^R#;DXqY>is(l&ZqBiT@I^8HMy5d}I zS56>RNN_+oQB$q3LABp@`cp8W9AbDemXmc83wT*E`SUbG@qc0|SK&UNMCU$0R;7W_ zh>*L2UW*oo5{rMyU+|Y)!#p}uUQ9-S+ea&ij)(`pp#lh+c67LcNP*}3ZxzI4t-wmq z$C)FtY05Q61U0K9#;gC*?n)xQ;n%kTL&=3_DNu^Z%L9}QbV@7--n3TFw*6orW(h3H zq4$uLMPvB=cdCqG=hNEC$WFP2rami6A{}6Bs?|yiVP}9==;0blZ7l{MDCCURB3&!E zO`BVb@~|2?(ON8mTkh~SqN?kiy>`yNQ`**BG_fr<-49gIR+K1v)ryh<dkh7&`jI* z;(0j(vub+lVECq25q;lY#6`ntM=@$+H?V4H2CvokwC!yqKs@ri+fR{I#Z+*0^QvOX zPt&HVqN~XrIjf0|<{uAL6L)y{+c;5(ovR^dkz04dor_i;Qlp({^Cm6qASy+{!OLv; zCSL(4NJN@TzBZK8DMIF<-I6Bd$xq-ijL$AGXKa3P0nB2t$JforR|+3rx&JXtuJQG` z!pGbhYdxiY4g!31HZ*GZ?5K z&Fm~1VZ(gV8Efo*-JQw`=W3UcomO-eV`yeqFk7{dzY$!)YBOD;7^XU~Wla+cG$zgm zJ3k}_t5E&!epocp&fTDY9~NWPg5c=xVyCKZ3s&kOTq-bg=A$CH%qQ5}#Ze5-QqE_? zSS>`NA@$FwM@0fmWpIhtkk#k4M@41%z+1?XWIisiUt4{gqI!x-9slo)Hk@C{YSH-G z&K47DdXIV3pilV2>J#lXL=!sPQvmsO6g{;yKDG>sr!^f#H8$Wg^A1+0j4_T#I`WVd z5n)&v!^^G;{`D|+`U1v&1?vzszk4syQv7DxhIozaka5hGUZR_}|0QxiCi=@ers$H- z9k$WC0^6C1kBO>f@dpDq;)CE1_O54Xgv+>D^tN#c?;d$fObJJ!X~b@p^z03f$@7pf z<3}5Mi=Cww%;m^e=o>eJKqh>au>Ir(yo4V;+eci0kG{J%3pK?mqA( z{@E1~rh>r%bbsuuOeR}lL15^f}+P8PB}0(zEn;~eo#%%Q?f7OWCt2!i-Wo#Hzz zCY&V^GtcV9KCRG`*fOsL@xfz4JcbQEIx@!-&uv%)J^QSfhknTG7sn`CgC@2|8QFyb z_cTeb?(%x_H};bb|2{XZsD+%WTh6+Ym`6momwSHKqIHN6bk->=FM8P%k;f~-PByj@ z!%EHR#6*KfDO?&mHwRB1uZqPwgjU6cmyrss@a2d?ehDul;d-jDmORC}z`2DJHrSJv zXP;0!W=(ALf!njWHcrrow~8%kK&-Aa ziU1dZ))EFI`zc_67x97b0)6err~nlwfYyy40)tJvZVj%ykq(E3tZAs2R~vTu_WWB0 zwzq?v+|xFKw)2)3tqpQ}^4f6rM<1^}?7ZP{llh4!G0z1!U>X!t&xvE%ml~E5rb{)m zLgvN7Ei-2n}H91nS_gUNeaNLX#hU@J3K(u)nu3N$r#}Wqy7IzXq^aPOm6mD#(Ww!5 z%lZ&O0vKy@65BeEI$(2H_zg^29q{5e;oRoI=*=pbB{P@B`ZS_B_;9wj22qp6=Lf1O zLTG58^90NoIh!`s-j9w0f$Oza&L&N355F9xV;JfINibWQXS!n*75bzaPjxO$) zSP!Qc6TzFCoPnSNI_@<7Wr)JRm=+r{(D5u&po3*^#WEW17UUEfWVWGqPzI3)9{sBz z+9F40bW)!LEvC#0L|Af)H+&%}liOmJ5xrEy+e$lZr!*};^LRoVX8;bZh`b0UybyG4 zTMlFU=h%&0i;XKR%!QF!OJo}h0q0qU3X%D~_&g3R1!w`V0Q`j%9%FH4Xp=GOmjXi45RnV+(!omTgtU=*Gl#cF+?mHyX!|Mej|llOK66 z0j`zVuo_t(*1FItB7v69_D6+>I9f(|!9IOOdsS;Nn6~tTkl`kM)=zZu{eY#7K{G#7 znf_vM70%!T;f4+13~q`*cnKS{tpvTGEFn@tSaI6bA9Cu+gfKMq5nZap0MSY+eHKy-|2U~U?G&2?IwyF+|WjR)d`jWl7PU>C;?14RZRF`XGGdT4(kY}qp+mfAld z!Ykn5LAC%8PMlgCvyEJAo3#Z+K#X8R(Yxb$&cX+$x4G|KiJoAT$thjKq$8fmd1}qqIiW_tq z&(vSoyE{5qdZ<{zjeR&wG*G)Q8ZO$w;?-!g_ZI(h6tOs@$ASPYC2N*oQ}oJ9M<0DC0eCsu{!vy4y`u zi?;3{;$ZXmdFEZP(d0tGq5dKHThK)7H23XaR+ z@PRW{N?bL+NgIyV0W4x!ysM10u{7Kc5Y=1GRmkWU6|5o;wvdyTCVOfV>mbxfTK zJe5ujr;0MM{3dUUJsKZ4UKXzy=`?Pts197SeyV5_hc|4OejAi=c!;Md>{;V>Do`DaCUL}P9E9QyDyJ@Oo|S$ff4bQ{*1@?L!Z zIc$M+DlrZ0{tT)$P1LQh87dH-3zI*>OyS@LB1j2@i%p0x4(T}V5^%Sf7EcrDJUE2e z=HV>{r{}Q;cXXPFE{*q5yi5bwgtYY`#K!`~jkqDU52cjnMT;8g4D)CY^8WRZpIK*_ z7ox@q5L*K87!HmT?My>hc(aJ-aN+Y1+)te{4fii%-J6K zf=G*sbpk?(qHQ-Ik6izPg{`9>z}D7;+1NV9+62Ha-@O1W@3~;ubYN+O0-gG* zXiU%Tj(|BMseJ0Xm#(-gdBA}Jw8ihnl)r*z+P}tgx~8^jQ5e>7qmQE6Sjic z07M^Av&Cy#zPjjJL>u^gHafLsv`E)2te0jIy1;t$!)WXy-gGR`2Wm_mBQm^h2u#uy z|5?iHD3Chw4$`As`55k&eP)YrI_H6X#`rm+0%MI(P`v{B{)YcyYCl&rgX7Z6b74-9 zPw&nZcX4^=CETs2?_a_OHqAkkgSF=g&4FE9FJB~k{sr2 zqusBHhap_U0_7tn6<_Gf4@5R~T_IkAH`MtRBHR5TyG^T<~Ia7m2R*6w6 z*B_4hH`Yg>h~BG3Ezew#K3xB@)#6Fyf{I!Lq&$@xtbs(hFU?;gzSUm3Mx)jOM;}M% zr?qI|7FAm(+Gytx%5j~@)^_L9?scNJ`&>Q_r+m7#P7DbBJ>Yd<{~u`e>!Pf-FP{#* zF1lzJu2Sk7ET+$=LH2dq8=`URTbop4-9=EcNchwuxe)hQ7@PSEXE=ytm-?jGg%dP1__Ya_QDhpwNDxW1Fm(k~U)? z82{s&1$cVRKoaVFINa;J=_5C9Ix1X+;@-61CbQCeo2bVu6IIB4mT6 z=bY+a=YUh?l?k${#X{fOA|BB`)adLCkwhc5LSj0Xp4(Yc{k%4B_;Xp}#%pNE!h$7Y$oR7_6UgSZy#jB1gj%={YfT~wfkR>V50v<#B> z)6{F3sAmejmn;)0?%=Pm`+)?zaabIExeRN!=VdClT#SNsxX5uRVka3Ni1|?Gm?-Di zPH_N%H7dXkBB-m$89$E+e4wFlY{ z{-`)|n!Q)Nf}L7+pD4*zw=MPo*0S3%4dp+EWfu7`uFk3E4=K zKg5y_p%ovB6elENE;?E^QO^pA0*ZKT{E1@tyMBBSWVkHrl4trt}B zp3gFduW|qc@w?Rc0Ghf@nFleD7qnofgAl%>>D*7muJ{*z0mBnx*x~JQVks~vfT2g$ zr$Fjksn@5X8or^qpNg_*>#a}4Puf~Ue;MXTrQM$a3f9tz&p`HXBkv(mPuq@3KNuDZ zrJ`+L4tEN~hb-%lmQI_FK=yTOm^AZ{NGgH9ZSfCNvrMkTn8G|^AkYZzJp|ZuPtPPN+ci+T9Z=ni1L~GZV{56f+fyhjIEN#uXSvZP*JR%yD_^h&#Unbx%^<=0XqbrQK zV=YoNbvz1duXlZvy3WzcGX6h!6telX!5v=;p9;W!|0^&>f79PziDx{&6u|C4ETeH> zi>y|&Pn$P|rV@~n*=(Q1J0OQA9K1Jbp&5=a`E&3?w)4306Kc~?+qJKOP7&#|<}uOC zbN8H8IOP~jeW1xcCXzh&P{z&fIR;dQ>5Mv#7dP*-3VR&~$+?jx9S1nxqF0XNxcHks zKaMSMgnmCRCc*-0$O-7~@ZJ0q=BjKs0rWM~Mb}Q?>3JG?5>5R1E3%!ViTNktH5LMq zohQNh-Jx$#hWBotM33H}q*GXeBh>zsNK!WjpEw0wA@=3h--t@QFV)jxmNpCN=YNHs zZRKe(14-R0o)ML?Nv(Yt#6FBs-D@=%xG6L;TBgwIv!b2$(RTXtETH^vO8gdjkUI|g zKG7Ew1=iVyR?iDb$%4#CGI#va+J`13I)7$3A3vQyfB}` zWK8auf3;$?H;+jy1teD6^P(anD~0A?6?G6UIQYSNXrX~L|N2REP!|T9{VbZR&M(2o z)A#=%(8M#T(hnrJ=@*gXH~rjz&wIhp@X9!7q)J`D%e|;mhOB4#<7bz~`SjieEXUMf zvx|@{XcshC$6`kx`BkjMsX6*L(Fv;W{lAGQ6&mOhmk@)qFSPt75-)f|mBF2t#c>DD z8Bksg3AVEL@Hb2aYm#~m)A%PXxhASS-d)V`a_}p~n2Hc70r*WjAb4ONRCGtGE7ORK z|HE?q3)N`nUtO37`BWBJejHjS_=b{sJmSC$$@*O2#g@jPsEgK&{sFqh7X# zLcd|r$hmQtr?Q@P7w==DL?HWrzUq#Cvii*)p#JE>nTd_>Mx zhb;VA4p(~xyQva7***DkpdBkNdmNPP^G^D_Zlo$RzCJ_AyG47GJQ%WDl=7d2iK}WX zzrgs|G#%cw8<_G81$Tp+c$3237nS_;U|tNm&U`2PeUasQ1Ap$Pt7*Pyn*BZ;o(?-? z@8CO{T&eNl-qR&3!47(cO9r&xuhM##Yz#;0UtO{UoEp7uSx(zAoig1rfcfj}mT64S zJ>{0^n8&4VnX7(6|GMQPamUOsfb|rPjPGSJBO){(IYvW0@+tQ*9CcrAqzfL|#q-J* zNR5!Hvx!%hMd0Z{UReV(w%jW-U}k*SE0Z;79e(r5>CWFh(9#ri^OvC0?e%K3&nFMS z@N#CDY#(=n?$U&&!BOyxx{t&Dj z+2g+pgMX)#Nw5J(kuu<15AA@3WLUw20PLkz|3(dQv@=J;-9B&|@N!Vf4(f?ue3V?G zI(I`OV!dxR0iWCfE}%cL+jLq8ej0;qu5J2-K97}4(deK!*@lnSx8h`Z^=wwuSx=hXGVPvT{`3Q#(pAp78(+KIANbO@BNHke4~Qw&EhC(4$*v|x3c1xqDK zV9KjhJy|yO6kIgZGEk=yvNU!SUU*1#U*!u{*rQ*=e27r(tm*-Dg{s+Li3X&6KF*#>Gib7`M(ziM%gW$3G{I(nF_?F z4)=7Tx&b-6m{Z!NfXsGVD3PkC$}WIsxSu5ec5ue5N|j|yV{{}!u19q~2ZAV(CTF>N zgpT48^l6%eFIn)fG=PCReNnnhLpMzQ8ysH4Xjr=ZI__;2+A}c~@^=7yiRHnE%g9}- zc2uSK)s9jg05eP6xsw?EHXIp!e)9){8_UVpc&c+M$SSx@t{~q8hhDv+d>)sb73Ee0 zBOX*qwnD3r3&vCgEZb5)NTF~%Mp*1r=x~K^zDcb5z*1kSB$J%rMRf~2;6E%WZ#IsJ zp_S!go+5V@*@=%>^8k&f(N*MTIHjak#TehGX1MS}L@}rj5z6GM(hp}k+ZP#QM|o8_ zf~#p#tyncNw4s`Omc1!~Z{y&$AEH(SCO$*%M*~w;y%p$Y**jv-Z&vaSSf0-=pieWg z3wm)B)nMi7*gDuk1F~c`TyocC$>!=e!OL0lZ55@fYsrTTH`bB*P;P$voy!w^qBcO< zJFUP0o#BiET3ko21US~KE6-yNOVyK8aambUb_ckPT;(vx{PMB-^2s>Ui`BG($L1@v zf?t#gcckw!aTb`JqBad=0T0ZUv`|(<`7r7-y)-{6*T8tunOf_iwmyE z2Hu8z|2so=1~Fc}33l6l8rB5+cMt7qBGcmVu1)4!+A5PW_=T=F0WRM`iA{k!XXI0d zrZRz}zdq4aX7T;2P32=iyZ<(oB^|Jgq)t(K3{`I?E5I(OXEXUFznjrqHckD>fh}h% zc@X!|&l=WjfGRfwLy#T$!3E9bPz@+RZ6&t{rsYFNr5IU5jr|aCJ2t_HgyGt4G6`O> zg}!Pf(-N(>z?(UYFf*GLzwI&(y-bm#S~jVZ9e2hXP%CsBy{6a)1e1*WkP3_`hJ1`0SD2TR6a zBv*)~@()P~_^S7iOmXK!4GLUix+7J-_yrzL!T zzwQAL*+AtUm8Bg!-LRZI3t>awN9ETLD47r zx-JB+d_NakW=_ z3cFNwsDyAX*mx)(dOuLRVZgQ(QVa0Pcm+BQP=anBH1L>|nPD?5@Y`LJ3&iJed)St(E+&I8U0P~z!)$x0P; zwY)nss{qNsG}vdrq#JGv_Etq$Y}N@MR1wP%xh0uA!k`wLg-Ti&of#>sI>Yb+MUH~y z7!=pA8*zj_2Dqh}`3xM6Yz_O~bQIvd3rk~;jfWMpH)1R5-9it`lD%J^|0L zIb6Jw=4b_Njst`DV%)qK{VdGR*HV$`4_~CnJ57X;7Dk^raOXN?K%XM-Hk(=7&`F0^8C_XY z0oB+t1N@Qb7SaM+x^-6V!%zeP?9q)hmT(obTtVHH97$wXI3tbnI1YeVf%J#saSB4dA`UTY zV0p)f#%0Nl(0QZ;hJ-|HMc9Ur1j%P5@~~#rk|N{5SWg>D?z~dNx=a zyOIlEvbe0T5pE%-!fn9wi%PK?N*k;OE*z1Eb$3`6NJ*+WQp=ga))nAP>=N_LGXX4= z%f+HQ-NrvO;3-*MdTdftHST@`;0O133@DfW~e5EHSp#X8iK#t6oA1244Saf$Y+ z_MQk~n~=$cwT0>4Q?jPtV+eCdiXdt{PL{0VF{E8^RE1Tgv<3*vvIxM6J@=YXpmH2I z*vQ#QQ6jNtF!9JV%h9WliM6(APXoiftdJE;gP=BEZqd|#gWI2xK;`YR{rz!_gCTA; z{W8mIQ&b?AOLS_2oX<4x(224Ef)d7^_IvUkMRt>kKL9k~auuL^ITHAP<_H>X9S+udJBdR?@bvw!-cz;bt*$AUmLTkgo{;TB|d-!sn<*XUH#l(1gyiL-H{PMhKlpHpnd4X2BE$QY7pg1FxU&EK~V2 zPZwFG#L3$@IUt)V+-$IaYzc=$UZ3$0U4riFL4&%;8s%4BhBYV$i%k!~iYFJR0Aw%yVv63QE#R^aF*xg)N@j@Otr*(;61G_k*F6;oHMkmtl<6i2i6uDakTPB5M|rC%73)8fX6lNnES0l{nYAN%<(QJOrL;v34x(EMsm}JE^md{7(`0}9Sqx376yb`_wGECjS@zzzM;*_5 zThixOg`f$~%K?RTz3;xSu5m9EwL{lmz)IMS+}D9=+I=7Om?7uFf2`m|`3P0(7~aeJ z`PkZ z{Zo9fbdJn{g4|-IO1>mBd5d*=Np{!rLBh}Rccfb{;rk6#ex9u4@4gOZuTTo*`gd}? zlaj1;_EN_0{%pEB4@BF_VETOQP7w0BFM}Q1qSC9^BhqQ>%h=m1=>3;Lsh^@>UWP2` z6eZ@%(b~*^XimQT3A-bAxFd%q8N#PsbJ3LrawOHvg0Ld{4ZSO!YZ&3J#Q3~9+^InT zz{L1uCmoz3IGO~>Fo844TphM=P{ax3znsIe98k)zYuo#ZjHc|j z;eeCV&{vB-NcKR3MDidu$ic-jqg1FZKI9@o+8RDk(2h%dOX3v>3BKcMwmZ&481vK; z`9)o)ZANSNGxROgX?&uEzGVYlo3eumtqx6_KRA4;T%~HK4pY=}prPle=W^LmeJQwc zIh=|hqpDdT$7wG)Xj?sJJf*zg45Kd!Od$~x{$)_XX-64nlLW-v%gusZMy&EVwJ9g* zwYhQvRa+^KsFN10k}cfpSP-PrwwEAS=(7r9d+eN5vKe@qZL8!o=e`J4(4Hplsx)G@ zH;l%t^_QcAgPql*V7u&P+L*1;K|*^|5wiX@nWQ-&mX8Lz6uBC5pd89rEwgpMso1rK ztB6UIw;IUVK_9OMB>*p4RKXVOY;wji!jTsT?!0C?rpgg~ItsW>gF?w*3dL(?L=oVN zxY0CtnUuHwhTkU4;20AHFdlP>Js=U`8Se{m^@Zmzq?lZ@4-Mx9yj9hzs2|BRnPYKc zO%Q^4?sQ$1k54)-qURu*X zC>>J|{+Z_*t6(K#;jSkzqhKI|nO_tW4leUJk4?b_arX zT5rY`e=`rHEMR&N%bm1rt41WE2m6UrKNc6ey9&C??j0P56iezw9aw&R4by(CF50nn z2rk%oB~6|cRC!T)VK|Qs0fNx-kM^!d`Z>si4wpv|w>@nkuGBAv`Dx;Cs3;(v>p2e` z^97IU54mK86()2Hr;L{)GK27!7^SL{f~z*j7*)Lx3~q!-1E!>zo8=SYzTg&EZCbop z<`kBCSUrb4LBXq=A$*6i-?c3uq9#%At@04ZR_WA0zin4>A&*gyfZXPOX{iC`J5eX5C-v?3@gs|d{(lqI}uTL>s|)779Xmxat? z&Q$2t0Bpczk|iqGhAuV&78nH>u8@7LwGCC{(oJf&Q>LfjjR4*N3m1CBHVrXeA)38Y zwx(U%pw2nFQx4Dz8ATiwrNj>E{EmDk)?+)9YXJxdu)BS*m)uU@zaz7dvncLeS*cVZ zBL~FJ9zix6=eJBHJk;l1IR)>2|E`P%@%0xz$@AFU6BKV^SZYGZHY_YDkWlEugDGN$ zPUTJA8$*W&1$^Y;-e_%HjK@TDA)d=#m_$QZa}6ds@&3ASd^E>bz(2I&J(*Gsxmem+ zvMH=uSHuEAL3?flP1;iA5dWqcbN;2D-;<5>jhG56dFJ-P9z#lz43n4Ps$vXC{-7-x3vWE0 z4z{OdA5POjcDGdIK{ZMdVuu-*nu_N1gjCiXjFatHzcsjRR z)_mAwB-n-hj0CH$kRyiOH5(=pt=DkuwK5Wmzli=MSUmSPZ8N)w+WQ`e({F4&sH6ha ztvrW_%>NQa@0Gp5u8i3WOq_4!OMiDSnANZ7+r7}pj0igRL8}C%{+bV=%X%|7ct2Qn z_ctm+8!MFC4LSt#XPv(TdRoRev9=g4F_^Oe6k%`5BmWK{s!l)wO98EDmA0jr?SSXkSAG!$(J@BPCCbj8rry3>8$5 z$K%u7oLd%B9bS5nAgt;>?12Ck#7KCm52r5l>NrdwB-Tte8x=VKf}kJ)hDd+IIM6&q z_G@WKuY*^)u7hA$m~Po`c_kgew_FWA&in7L4;BCVi2d~;d@T@&2pN}vf*_TLatZnz zjblw=JELbH;kdciIo}ZwhO3Z#1y6##(Sct8c&DMa*dn|)sOe>AbT_~}s167YYN!iT z%qAj$y{=+9QGOo3ESwzYk248s+tG%Z3>5tCI2?!!F+VtWr1b(sEDMfPPNbfchZI2; zVB%?1D&t4zQ$l%1#o%Yau+2+Ut&NgOjjyxVdC`ohh;aCOCQHc11dcat0 zjS^vYY>7aaMavs8NJfOQMu+6$7)^9)c&IxJ9^L>vFyJuB|G-59@WTI89z1w3MuuE{ z5JQ*OkOZ0+1`8Mwz{kmHtauJF4(6TEH zE=&N0^ANmKQG;3chkMFp@(*icwqp6>h1o;_yvMnf*brfWR$|Rbz+v(qt-uNqdH@Uy z!}0LY(yfuvD1ji|$7z<(lN!c_hQ&}FWSD{97F)&oAuoe~z^ z{(-()w1nN)_>ce_)yJE0yU^GFtlk6q9hFlYInaa9 ze5ogR**6lq+e_O<`JzNe)o*QhmMnXWgX-X#nlceM)kJOpeqb!1czfF^9OlpB8+i9HHiHfH2 z$`mKe(!hb?&zlbX$uZaLhP6P#Iy(dyBUNaSitc#K)_c_K6U6P!$@Y0VKmrf|V~prQ z>A1krvobD;wZRj)14*^n0h<$OXX6sVPH*l&WG$@~F376UE+o)~dI*hyblO7mn}$C` zmp_JSPCGL{ZOa4lrSR@pZ>H+uvf7<~H~<;;5RSr|KL z@#g4*vcB`U0w=R=2j!Jg(-52?gh64v@3u5Hm`Sc0ukZOpzQ^_w*=+v=i^(uL_$dsd zrqQ6!WFBO17e9l|-AQ`t5Y(?zgF6n%I2BUZ&pwCw3516ng42B%XKpVmmD2DMUL-^M z1iaSl!*aWJ4e=`LheadEvs@d}aW6U|r@L?bq{953=A}VyxAKTY@{@h^)e$*aJHMW~ z9EG6wDCHfMO%botjhoTqB-^l7_FIYX_^&7bpCdBs%H*3dT~|#K+u@dT?gzJrw$7I_3h9BcVoFWTi7;na{r%w-D2Wg&i0+e` zPyqrtNdXj7Bm$cLeCHfMW>wE3>dN&ig8gVw_f5aDLR7 zB%F&N9&zlkZi`jkP#^`hRG>6kn<**@=Ji4B;5mPm*23fp>Ca5KMf9TB>Y|bl^@4h2 z1K$XEiIrZw()zJkQb1$zhx>pi&z`8Os9*0qbm()yH`W#7RBf)4 z%G4K+0y?MG7n|6yJ)?o>Xzh%%Dh0!8(M`&8;UB>P2FoK zI7DsJM&fz%6%DU^(MVMH&qW>?3#`0!qyYf0bYs!S34Z~>u81+Tw6Un>nQ1y1Y^0-& z;h!}zc)PKfW%dfvdRY4G@=Mxe!1Ht!dp?+%C>qlHog!)_m}>*f$+}p;gQ%wM_Ewf+=(Mf%HA`wGIFX8iPtD(Vb4Iiu6#RCQn@An_Yx&7`d<&OjQ$HDf$%A;yn=l*@496e^xh~a@?!X=sRjT<&% zbpOEECvt}e%Jd854jeeT|G?a_{ev~HOL9~xQ?=rlGWcJq%>UxrrK!;&VE@ez&A%1? zt8#!&-;fzj6myWkZXOu>^vM3Su2xhzs$V;*anbS-0!xR{<4Ot=I|w z_WSSZ%KvY5p--x0{?8}D{ZUbqoYuI4_2Z*vhr4<{nURq}AC-=JgQlfNl?tv*j~d|c z1e$km-KA?6a+ipy&K?ofb!?!aNWy{l(bubG*dNxL$l z{_e^*RWdWHRL=}#)~uINqh5_Vfvn5{b+h{S&CST{SEoj1?HaYRa&v2C^y}BJPXC$% z`q${&uX<)~^~{;mZLX+Vq@p|-#zC?jEfv*)yK#yW z|0?5ABvhrZqIhxljN)`Fio0JJCk#^hm!a6dXsMGnMs7gT5ntG0})pv}7& ze57SmdDZs{o-V;}Da~vZ)ih&0{v3s0DaEDs#$dXkFD-FjvGJoynck?-c;k}lXJHC@ zY3#W~|F(+yP22i=@YmK+1)BEtwczY_Q597U7N9%ZN4=sI+@LNUq6TWSZqlv}QSG{) zzNz{>JU-;?_>N9;I{_9wfL>WkNYI{>7YgFgC_efVza6M3 zHbGGy!$*zr!Z2LN;HRN{SGc0om6#Y*)*RQRsHiC_s)I%o@ceEktQ^YTXpI5jo79@9 z2c2Ar>pc9HqW-pcw_7|`9DjGlHE$*UXo*rWoyu9RLOyit-N1 zccQazq9T8+qRawCJhZ2xyjBO`glF%dd@+7qIx5N~1N#43qmDtL zt%IolI0n-l zXltUPPw?(L_`QM=J29HgXs8t4-%tf3#r+PH-$1>)F&o|RegVGiie(Pe`v2AT9q?5Y z+y67OJF_=jAaDaI^w4`#dVs_v5LyUC>0PQI2!t+d0MRHdAaVgwBF_T&1XPrWlt@s6 z&k}eb;8O@i1r-fVI{AIi?%tbAB+vKxe?I@6&+MF;bLPyMGc#w(?%vB-V+hgRV?r&E zK06AXxf5fj7TDR_-TxEtwpqcH*@+$-f6 z8;N}V;S=FsL|OHRqo%h}vmeloBTz_5WIBcnbhYaXHK9XoMR*%8Q#|IWt$l)TW&1zo zNi%bw6Ye&*(B(D*dj?@MjG?uFVdOPkk&R|7IGV9vn?p|!V>wE}wvJU{l~@H9laVIe zksgS=5j`y#<7Fb?p%7o7I-F}vGKD!L<~Zoc5?@0243{N?J>|nI)~M|r)WRE+^Rkr7ZYPlJ|dxKAf$khw&Gwy&=A^7 zuxCq!yY|-7sG$igONGZZ5K5Eybsam#*ghywfjSG+DjOZhSjA#;DH4uu=fY+t50RFo zTY(R;K|9bjy@wq~&8+JP*anq}6i$?Bl^81l2{V=ncOP?7HD7MX4U*T;vLYOWS(0oit9pxGV4ZhC=^K|*f_ai`VsKBO&MY6UBf`d71y z9UI{gIQ?d8bGz^Qq;g{@N0N45gv6tqra^tJt0s!Bjt-dtq-q0|)BxpnioAvXQj^~yvp3GAldY~DS>B&8%O#fw4N&n^u9YGA-?3em2H1_941W zDF_vZ+H?5dpwpAUPm0Fu))8|thUEg-@4o0DJwQw82VfWpcO(%r6NW<`hRA0q!;@!y1bIHwMgo3@7(sY%h>^O4$NXhB;t<2@K;=z&+sdU^O;Dhy&%Z1Oj6cayi z=eb~}t`+XYaa}ZNFwC6D69v0Fu8YfxA3zxtpO~mwgL8HttkoggdnkGktqAH0j7j@7$rD+9mI8MBXSC#bVasi?pGhJ}To4;XYDwr+b*E zHV?XY^VW@9*Z;hB-P>ZgXR^80^?~u0tBfk6`eMR=Mt!A1jc*0H)uJ!=IjZJy7B6i~ zad-T6I-kTQu_!)+g$u56t-7#XUG@~y`2@a(GciuQB<_lO+6rxtR?F1e=x^)$^ky>t ze{lUl^NBnPcY=RtRCg68$p4;h{%@o&unYIOYuH5WWK;PQn$)SDGvT;~KP6?~b8;(q z2iAdg3+fgmbaIu%*N(fYU)4v5sk|ItO*u_u`#TpZc5Ayq)t*h#C+Quvd-^@xJ8EM& z6;SBr;}3MpYlp;i{=GQNOKZRL_FBw;<^F~+iz|EzCud`8TXp2x8hs+5H=S5v&L8<) zy%gJ}C2`v+zDwJs&C#dv4st7BCrisMdNX~CUR91^r4gfhGsL`Nx2cEe7c_D|N!wl0 zFX?~kD`m3$T%J%N#tC&oeGb>uXli_}vel=mv(dun<+#t)qsB?3eX34c=_geS#3?lo zzvMz;igmXk;&npxF&4q4fOBQTq$nlcR*Q{Ra73PHBpQR@>KF};t%%nH)ZT~%N&MmZIo-| z67`stp&n8<^*80~>T8vxj;Q~r1l3=iQopN5)kO8P@w;)-c-lB;%rky6el#u^bB#;J zMdKIaH)EDD(RkMQ1Mae68rO|E#$BVdYre4zDa(zcMn1v?MxJrnIBT3YRv2#?w~duX z6_;7nRm%0Q@r-fC2zFgHel@r&!`Nel;r*mKu5HE+qqgg&QP)+^)xg!*rMZG!O}MTqRu6rCcu8OxLrnRM)Gn4Op6|z9-yo_9)Loc^JQhRqbh(&CbIA z2~X|^_+QyQ+!+tSn!Y}_X}`vv{aftqYkY^Dc~t-u`g|P=s>~X&hB(=d^hS^KL^KY; zy7@9IXO)u83apsT%MJbo;BVg_K`e-SPmT6ecO7F@c{?73m&?a_!dqR$Dmvip*fquXaz+1HWY%m+oCa@>jL>TF(a0E34 zrxn4rbm8BzX>2-<&>rFqcnjVL+Op%`;HNy5O0H&hU01SJoMfri!j88A9qG9}4`Xqb z+9LdA2bL4c!eBrnyvs&=YIxrs?+Fh&j~VI+wSrwg(vS=XryMKZ@ix$RaZX19&tOyx zwGI`N;s}<_Wq|@PJ8e!$7Vu|Y=>Jm zTWE<&T3N{!;q0g;t7GfflIINwoNZC$BX2%pzMgOatx6?)3dufa39LO%FGcY~ACS2DLHL^)o9dke;UDs`mXQ8;&7fIIaO>Y!0D3}MKP^)rSI4a9ZqWps)J zeCZIyNxrq1&*9)`T@>%~*4cyF@G}l2%XfRBlfVRL1Gh)av-tN>nw> z9xLb>hjIF73vZV`-I0Rw_3{ay4v}Xg^Iiy+g__%a=2P|zI#xET!V}S`No*r@8^mdZ zUBE!dwlZ7Y-O?cmS{3b<4Fzn(om?I0a2<5G9=r$OJT(L+C7k8L+5M`N-M_3MoN$5t zgpP0?wKS~c5HuB$g~2s|g=@s0gBZ^UQqps%m%iFL4d=3c`)tS)%GcXLff8>aAXZ}M6y*r&63p! zgEK({MVU&0e!LnQavog(Yq<5+kfcnGJ!ny-AZjH9FJ4{L^1N)ri#G9%-D1 zvowTcw!_&{)HBL29)|+$ing>S-fY|cZky;)L3Vm06hM=46B^gEoz|k-Om{L)M=`b% zmm?&LF&ahLO)YCu1`@EANnJ1kMcci4nUg!)$(;b(k>ck>{Ig+y{B00Wu8mu3@gaB= zpcM|D#+6SR!cB!F_K^J!N6rwR3bz?VSs^tX#YyaJ5R+N51*Kj=m`B-TR#+3Nwr#*G zcyQtqoA@;gi1`X9^JiC-%w;w#O$0F`oh4Z8DCT(Yk|~~w<~o$V9%Tz_9YU4z@uEuA zL~I?@M-)>L+Lc-cqiQ#ak6jph#L7>lH?-`YEyYzkz3lzrk*Rur3VqNrWE$GgFrRs)*=vO6ps`dEdq3YxAOOwgC0J%C2NiAvN3q?lQO?`PzW zu|upmKW6zuI4j9R{21=X@#roJ_fW)Wnjt?IvCf#e5)cNXXEec_)e}8<4Teqxrt@(0 z>J`8*hsetjUkK~5kkw)>;U0%y0}W2YXKyVTH`y{vg`qfrPr=+14+c|NJ%2|FM}aA9 z9xQx0t7hF%WIP~REyTh5hR#wzQK(rQ3a@10!q8~dQE1`d31!0}>_6Zm;6qVz6oYvf zVMWrBSeNlPOZ%VT+ATT-kn(xjEX6!$<}6;>8)Ni>But82w$c@=~#vS=eu@v}Tx?0|nBK2au#WDzem^S5|SWz$v_r}#;{yZ#=%ExW$%DU4mY@gl*>acs-LJln8hm(LhjW zvwuQQ!q-UgB1uH!&JgzH@xo^Kh$xPsVyF0gK198M1r539;nFPk9C~UlPsWi(vM8s= zDk-Ub`wPL$AlZ=Z(0_*S#y9g+97awqA90_!{glO=mjwez0`8+*F749)etP6vd^7pzCfe zrq;PU9hzCf*Xrh1{7Zh3bwiD)2OF#>{{spnC03P}^jcyC`$@0JtB5KX1Nr)6!eEby z4cZya*3>Qjml`=0BCRxJm-Ws3vQ9nVus(v>e1mwX*vUO2SdDs)}mz8f1SKtHTgh1DYz3hxjN(!zW1YM$e`~yYamkJqhBLewueAU9o}k z7Ow*#>T3-QO{_Eq$mJL)d-ypmTBPs|`~s_t z_tcZb5ty6%$F|A(oD|=~EpsN3tAP z)g%#b!oD>T6*1ZuYms7`qpZshRu-5S*ZO4lsL*dM4ISq>ELPOh526cF>n91Fku@y` zeVyTTVcHraT&z{m&Clg7o+v8o#W5zPhxJ+NH{4@Y9yE1}AL7k%sG5Y|BZ)^7^pd@# ztkmS& zrq-w7X*YpZ9OGg&RoMFNP@+k!4(s*wqxyJ6gz{^H=y8?FjEBI`dDoPqcRUgVI?k39mKO^hjlNeb-9Bzg)l4lE9*^U+(p*v_?pquoVu{p$u#HpTm39ETl3vZ#w0Fj?Ft)gz5|n92BTb2A^W zP0*gyj$w}+4_6-UE#8W?Vog;i)(OY#t+DOtjOAnkHV7M>zA@*%S_W2fGsg#*I5)Dj zVb(2ntwWoVd>(~m=K>6$?~Cn3H~G`7p_)}}EtAD*RAiy{0soUF@gMKEA7xKsmZ2)h^m{_OZ(l23wev2K{y71T8O05i0%B5UtsgWhOlxJHD9T|c*%R(Xxa49xRG9 z!aXI|VQ1Y;^ur^k0dP$%<&V>KHctOp%f*QeDhb}7TZ8#&IhUDpA=3eEtUjN?YxA(# zw`)38b;4BJ7yImo;plCK&$NDOKHGz}UmbacRgoT9R))w4Y70~1N&IeSf+&gerdS@w z&#|@qZQ0D3>!_y9#3eSAUt@2|=9WmKprs9R7;k0r?eaQi|1x5m%)n9gEXYJ6?bqk> zJF<D3aEGGvy2@uZuX!UgT%-@GwG5!sFUodJA=kKdk;>q5QhuK-E*j*!z4W z4oN=4a+Ir`INaFBe&*--KV=ZASW|HT2h5Y%tNcCrt}M;&@joDv z#&^gs*b_{*`on9O{j2km>QC$)=i%7i7U>CYfaO2zSWkmY1|`3asCbdzy%0$Z&$ zk#p7S{AqQ8HI|?9!Rl#VUBt>p@-sXGEyw4mo+{B)2LseJQhlcXn@8h}sS#hm(^br>D(Cmh`kWZn5uzCu67 zzvDx2Ahic79Llb;G5T&cN`H^_;d}8^;79#^9Oiwf-D5*|7MrGj%6701*oXW>mdQus zo&FnaEFN>z(`V|8k7Fr1emDn>8jeFX!N>6@bq_SCp+V88CeF}&&u)-^h)ektuiWBg}tkr`}It{Dtll5NUz4; z)a$X<`0TJco)JvNS@5HJXFXo;qIcE9c$}Ec=IS+ZQshC+s_WC)0xcB>SyZ#tyrftsbDJ5qP0rmU>Lf~PDw`sccmN)|RH#ZojS8=0KI_Tqlzb(W$fTbRO{^|s;) z?X0AYqnx($;e2rl_gh8!Qf?wwpnK1XkE~mlU?vfoVVu z>Y;k5LR<&c-ifVuDE{H6)a7M)#UHDs>L{VM$jx$-d`p&7&&k*1I{B)+D1Vo~;T@AJ zpw{Ip@+{rng^}_FIQ+hHq+BZ7s0q?`(-8hW zE25~c>fR^J|CWoWCI^%d(Ej7qIxq}YgF#@ssd9)MB*)9z(k<5k`;Ocwr@(tvhI|K( z?o$wJDd($ZR_A(AKJU1tsMa6Ajz?ih$eo1y9JsZ3+h~r|)br{?*<1EAWk1W!k)dGs zJd!gcAu=pasUd0=GK9*T$Q)||s;^otSId_n%2mX5 zKx?HJyc6U^yw3ClocV;>0M|y%#;~y6Y}Hz}MxARTKD&sDr`d7!_uaN*k(|Ef`50mt zvZW9EU`DUYH)JXZ1Ks;hZ0migM6ue(%))q7St~yGFLZ_69`@q`+P@I}S7?nt!(VZ_ z9Hf@{@k{-}jP|Dm=2@hM$=$&0lNE5s&!rI(|Ad+Pyykwr#LjP)c@jnG2AEb0oi}oY z=kzF?(|3ojiN{Mr5w^f1<}`%#wOU_I9gsM7&f? zZ^9nOi^dBZ*>A^gz)Q%x``~@tevEz6*E@ctC(&%2103k_$}U#5_?QIo0Ri#2BJnPW zHL!9^#FN%+L;slc)9}ovkD;66Q7Z;D$jBCf*uUKD#;8!8wEqJ=< z)!oym@ikE2M7RkhUF+kW^rEM$NpD<7gQhL=fCa0A8{T{xhc`7o%lT6p=e z(8l%aHL6>uW;J^ETyuMBKqvj+_cmng1B4eE;YDB|%Hqvp?4d|9J8X;hk&zxbad^tK zDZ?j>8l5s}S_-}q9Wyq?+j^C!jP}|pd_}U#6Jb`0v%j)?JeWefQ4Veoqlr?%X#~Rg z2#1Tk^^uMJYB<~SWZ1=v<2Y13g|%qu@Xuk62pnV;KXyOC2)N)5dW~TT61?Haj4f( zCWyrz^EP?O)7Cr(T=_vDE`U}SAagBrM`DP%_!+O}=66}lDuflQ;vI3iX2OS)c;Hl{ z9ff!&KMNFe5c_{0Osp;E@7lPHAr1yCxBIS(2euw^dI?!Z*1!bN zMn=hKIZzIkL*-1l2ov@aQ!bM$FxRccn&vIJRlYBG%8z9Z)-u0i6?9Er$JBFM-oyW5 zYKqoE_0)rf{1iLQngu%w<`v9hM@4sy7c42LU+@|~hjVjZj^={gUh#QBQ?XCPY0nlk z6y^^Fjd+j<68|YkC^#YZY1Mg6{sLc%hve(|C~Vy7Vu$dFwgf*Qoq?a<$q?5H;@Q6n zLiHE4rP_b+5U#OyN2{wp&5mm!1wHiR`WZZy{7FAm@OwcJw)Br<^U{KM=Xs*0)>V65 zdtduryR0qJm+1#^Qv0)h$J86j9+;f_$PhkKF21L5-LK~R#nwq%$ZeGb!E0vHPpi@NIiz_<3Kf34O1gaaShcB;GTGxe=Hq|T^w%59W4Di~Gqw<>3pGRhbp zBg}{}N*cjNxKYulVpK9{5Hhw5MxHL;Ohq$SVowb1DJ{Hv)_Ueup9-oJ_-XLd;b*|l zgr5aZ7iV7g7oJFy%}2rl_=WJ#U|6Sa)Z7cSr|~`J^YC=_Nx-+o@%W|-VO{vX4Chrnn! zfa&mD$P&TjA|fK1H-}BtT%O1liDOdVJ7<#%7*hJ=(SCz$B&?f093QJ-mb(HY+ZEPr zDblVD!FNQ6FM<(XiEu+QKEnlk6!?v0Wfq2!eNkI1B$7 z{9VM`BaB6+Rq(^$6A|AAK|ch;Er>USUk`X5!eHQP^~T3+@M++A58eym-bYvih0R34 zQ$W)eF#T2KJ@`8XW$Z%9-Dq8;7q5m7Xj~e;8lPRIPgn=$F(x;46708 zg*6CC>IFQkwGHEo9QHPpM(Jw-=b*chpz8paa|(VL@K~qd^?+-3wCP^~d<}}ls37?E6@x|W(P(b4Y z_^r5YgYR$E-i~iaJSDmi|1RPS1LE&tSg+jTjmq$Jly7V9RQzKCK<~Z`&jJ3<&Szfp ztT6D`3Za`luhieGxl2aU3c77TECXRJ4Mn4Jq$lf2Mw9HA29t-_a`<$3eEE4CwDBtezX(s)D)^V+SHpYZ*T9=a znPs4JWd4=e_7ndDv!c9KMq_vIS6*q~74ky&#`Pe{iZZ*};(@iy1GAccS4$KDou>as zb5D$b=C)deLN>fB#2ek6_<+!BVv zNeso*vde+@W4wOsz`FtOcHlRgz>+!e-Z&T+2R_soA7nak7T_$vmj1tO%wl%`fIYqhW1AQDog?^!w*U4Qn3(G_M zBKE0gK(HUJNtY#YAweTc|_ltAs)diy)T>4wUjH?uE$M>crfjgrn%-bXh!I zseUaGLB`nt0*fUGd`&|HIYjVH5e|U_`GEvJ4w}=C@U}d5J?FsU+afGLVO>O!1%hB7 z!QBFepY(=ek0Vtmpw9z%rf}4Q^7rgK5bsybbZ{{vfa0$wv`J?7; z^}9EBmnY0DO8$Fkn-Q^{Po>@fu_%FDX+J?I9o?TU8%#z3&@&nq;hy>n z(B*+n2N3)9ckfToUUWzRsW z2uJqqgpPCcddG*(A#?=L#|gdKLEFr;pe{mN6X00iH5dZ{11ozT^Q z&H_;3ET%WQY_xa4UQY>=kmrf&5azq90BmKX{(+=O;L-_b8;2jG0$}4dQBrl_G6`5% zjl~@B<8mpf25@-*g6CGV%EQjbX}%kTt_gHnKG3sc?HR7H^JE}d)B=7x;X4K>*=qe9 zLe~cRIH85p_59rPedyFn0cd~MT7y(8_a;KGwNz<3=Udj0_Th62@s6^n1Dr={)jH5! zUB}l$_;S&1l788tst+uAqAHEqnl6Cw)aan{5HGURMi0m&^saG-e7iD(X>7AtU zQqXAlbX!zZD--k)bZko(;U(~uraSEqf;=Li^IW>9MI8bw4t&}*w3!bN!5wpeRPhk? z7edpPiZ0t6WMN1Vn#TKa02S!OIS?%oLHk1TO5CkVV1VKo| zA5ddlArn89mfzP-Od}EJ|w>vbrXChU! z0y>A#dmQd|hXy*2(5->aCv?C2OexT5H-K&f^cn!c-JE{o&%K?{W?SI12!9r- zxwGRF5cbIdD_pdJ#!!OHH;AkYqFo)|4Iw?!;W|QNnRb=-1Qx4H8NW zLqh5TB-HT!@u??lEX6k=9^5!^p_YbuAPcE@*Bh3N&?&9#60CX>`n(T)BM|Kfgt{+8 z?h(kH0ic4XsdwUMDE)CHf#v?&+o(SeUw$mYCE}I^2szaDXAXw_LG~gbEgiK1v4fWU@1cX9Fi$|bmAohP{{TL%xRn3^ delta 338031 zcmagH2b`2e@;}_&&*bNs+1UikF5!8GRZu}zMMOlUk!04>Q}p!CO{fb7IMdyEK7fdr z!ABjlU=FAt=75;9V$O;==bYbfb$Fh|`~5$!ckIkOQ(awMRb5qGUETBE(j8tqWBY|w zpNIUI{X|HAv!VWv?dOEyF+9Y}G2xORGwmtZ-6JD(!H_(`jBRWYUgsis^n0Y0h(Ouy9z46&=PIOEvS9NTt)MT$Ty$ zWLP@Gc)h~~V~&$bF`mk0>QiW)W_TnVhoyN6-wBZxyy&FZpq$S{->}$^GpF83i*zQJ z%6P0FV_rIyW*M(9{Sf+&DQY__(w#G)D zad>Tpdl`@cuwp8kW~?cda?&Xb3XM{rBuA}MIj7YLc`74PoHNf6S)Kuu|miM#D4fi*&lry5LGGlg*U{UID-g8xQf)Sue}dg-x6s5u9;Yv{AYVoY-f+0d~ zjp-a@mMP&SllDLh1kOYz-BK~ z&snG7^eys|LpliI))&A5yyux={XC~nBe>X?;Zd$wUWb^)SUTl}ImpfvWiQ2C^zLLb z8J5X-BvJ?n-$6qFS;*x;2q}fb%A2xsPVihU@jH!%5C{H8QULEVPy|6E0KdUlAs{d> zopaI{FjzyPp|NM7Zce(72=UON83Tn)rHhaP#C0HDfYh#uPYM1Xh9<&>k-Xy~G$& zDc7w*>r9R7WSbneMK+Uja;#Ylb2#KclEM7Uv#}v_e3og*3};!`q~W;&sW5|y$?&02 zDj0|ck=;^hS*q-L&@Pc30Jd*f+>oVPTVP1a;6KzP2O$A(F2$gD_(u}t*{vW4pdkY3 z1^g#b#ShSirL&|8sZ>++Qf~PEP5s@JODcuYJGGforr?x?$7{hI&T2pwSg7m^8wfN- zrC&98kk1$K84LouGsGzTAIjup3%LO>GvHKh!KuN#SO2l-pnOZH-Uca}lL4AQ0R#sw zNGXr0if`3E; zh`?OKAM^w^ZADMOPxW6WgJhqAd!8OW7I_T;qTWkd}>R6b42o z75arBln*8f!AB@$p-_N9CiVbIivnhuNMnQ(qtQcy$vc!UbC!`B^ApAF*&@?76>|CI z{8kq)tk<9H%iba(X0(I12eq@GGveTO_G?ZY($2mpi15&M_IW|fY-jhnVpcnQDdQk$`wbov%6jKuXeW575{E$FLEK<*=j+Sx04v1>a!j*GtlG%t3;UoLhB3>SYzD=zkEXGe=Y+gXR0 zimvlwuXc8JM(o|rs;>A)JG^#ZODWOW!R`{GtAl-?6Ww74`+|#U z9qe{j?BBtjD~SU-*s~>ZU#(TU`4)0)(m&6er?6HzKvV%pAII4p^S`zMr!2Ya|A#&@uXN@AN1_Fzd&=wMelVqyooza%Dguq%a_+`(>j#gq}7DTgRLrw z-PQZQcCc^2y$%*WDa4)~?Cz47+QDve#a`%Ih`l@5A>tn$Y-LHbf?Flg-pTGPiH=To zM@e*cvfE3dtCRghba%2ZQ({^tdoeHe?_{@ud!6i7aIcfyQW8C#?Bt714;RECooq!3`Uey_F|(6>l@qf%*$rS|Cwo3G4nqSlu#-Ip{p)1Q!9X;C z{&liv^WtBfY*|VCyOUiH{-G80uajK|{&liz!M{$nG9xCUl`AH7vZW<4xszQ}5>q
    jNsE7UvIh#HwUd1a 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 { function(moduleArg = {}) { var moduleRtn; -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))}).then(onload,onerror)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module["locateFile"]){var f="wa-sqlite-jspi.wasm";if(!isDataURI(f)){return locateFile(f)}return f}return new URL("wa-sqlite-jspi.wasm",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){Asyncify.instrumentWasmImports(wasmImports);return{env:wasmImports,wasi_snapshot_preview1:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeHEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:"short"}).split(" ")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffsetDate.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _fd_sync=function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return Asyncify.handleSleep(wakeUp=>{var mount=stream.node.mount;if(!mount.type.syncfs){wakeUp(0);return}mount.type.syncfs(mount,false,err=>{if(err){wakeUp(29);return}wakeUp(0)})})}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}};_fd_sync.isAsync=true;var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify==="object"?Asyncify.handleAsync.bind(Asyncify):null;Module["handleAsync"]=handleAsync;const targets=new Map;Module["setCallback"]=(key,target)=>targets.set(key,target);Module["getCallback"]=key=>targets.get(key);Module["deleteCallback"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver==="function"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error("Synchronous WebAssembly cannot call async function")}const result=f.apply(receiver,args);if(typeof result?.then=="function"){console.error("unexpected Promise",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}_ipp_async.isAsync=true;function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}_ippipppp_async.isAsync=true;function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}_ippp_async.isAsync=true;function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}_ipppi_async.isAsync=true;function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}_ipppiii_async.isAsync=true;function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}_ipppiiip_async.isAsync=true;function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}_ipppip_async.isAsync=true;function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}_ipppj_async.isAsync=true;function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}_ipppp_async.isAsync=true;function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}_ippppi_async.isAsync=true;function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}_ippppij_async.isAsync=true;function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}_ippppip_async.isAsync=true;function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}_ipppppip_async.isAsync=true;function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}_vppippii_async.isAsync=true;function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}_vppp_async.isAsync=true;function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}_vpppip_async.isAsync=true;var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var sigToWasmTypes=sig=>{var typeNames={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;ioriginal(...args)}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{try{return await startAsync()}finally{}},handleSleep(startAsync){return Asyncify.handleAsync(()=>new Promise(startAsync))},makeAsyncFunction(original){return WebAssembly.promising(original)}};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var generateFuncType=(sig,target)=>{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i{if(typeof WebAssembly.Function=="function"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports["f"];return wrappedFunc};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr);if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>{wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx)};var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={__assert_fail:___assert_fail,__syscall_chmod:___syscall_chmod,__syscall_faccessat:___syscall_faccessat,__syscall_fchmod:___syscall_fchmod,__syscall_fchown32:___syscall_fchown32,__syscall_fcntl64:___syscall_fcntl64,__syscall_fstat64:___syscall_fstat64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_readlinkat:___syscall_readlinkat,__syscall_rmdir:___syscall_rmdir,__syscall_stat64:___syscall_stat64,__syscall_unlinkat:___syscall_unlinkat,__syscall_utimensat:___syscall_utimensat,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_tzset_js:__tzset_js,emscripten_date_now:_emscripten_date_now,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_read:_fd_read,fd_seek:_fd_seek,fd_sync:_fd_sync,fd_write:_fd_write,ipp:_ipp,ipp_async:_ipp_async,ippipppp:_ippipppp,ippipppp_async:_ippipppp_async,ippp:_ippp,ippp_async:_ippp_async,ipppi:_ipppi,ipppi_async:_ipppi_async,ipppiii:_ipppiii,ipppiii_async:_ipppiii_async,ipppiiip:_ipppiiip,ipppiiip_async:_ipppiiip_async,ipppip:_ipppip,ipppip_async:_ipppip_async,ipppj:_ipppj,ipppj_async:_ipppj_async,ipppp:_ipppp,ipppp_async:_ipppp_async,ippppi:_ippppi,ippppi_async:_ippppi_async,ippppij:_ippppij,ippppij_async:_ippppij_async,ippppip:_ippppip,ippppip_async:_ippppip_async,ipppppip:_ipppppip,ipppppip_async:_ipppppip_async,vppippii:_vppippii,vppippii_async:_vppippii_async,vppp:_vppp,vppp_async:_vppp_async,vpppip:_vpppip,vpppip_async:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _sqlite3_status64=Module["_sqlite3_status64"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module["_sqlite3_status64"]=wasmExports["sqlite3_status64"])(a0,a1,a2,a3);var _sqlite3_status=Module["_sqlite3_status"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module["_sqlite3_status"]=wasmExports["sqlite3_status"])(a0,a1,a2,a3);var _sqlite3_db_status=Module["_sqlite3_db_status"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module["_sqlite3_db_status"]=wasmExports["sqlite3_db_status"])(a0,a1,a2,a3,a4);var _sqlite3_msize=Module["_sqlite3_msize"]=a0=>(_sqlite3_msize=Module["_sqlite3_msize"]=wasmExports["sqlite3_msize"])(a0);var _sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=a0=>(_sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=wasmExports["sqlite3_vfs_find"])(a0);var _sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=(a0,a1)=>(_sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=wasmExports["sqlite3_vfs_register"])(a0,a1);var _sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=a0=>(_sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=wasmExports["sqlite3_vfs_unregister"])(a0);var _sqlite3_release_memory=Module["_sqlite3_release_memory"]=a0=>(_sqlite3_release_memory=Module["_sqlite3_release_memory"]=wasmExports["sqlite3_release_memory"])(a0);var _sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=wasmExports["sqlite3_soft_heap_limit64"])(a0,a1);var _sqlite3_memory_used=Module["_sqlite3_memory_used"]=()=>(_sqlite3_memory_used=Module["_sqlite3_memory_used"]=wasmExports["sqlite3_memory_used"])();var _sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=wasmExports["sqlite3_hard_heap_limit64"])(a0,a1);var _sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=a0=>(_sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=wasmExports["sqlite3_memory_highwater"])(a0);var _sqlite3_malloc=Module["_sqlite3_malloc"]=a0=>(_sqlite3_malloc=Module["_sqlite3_malloc"]=wasmExports["sqlite3_malloc"])(a0);var _sqlite3_malloc64=Module["_sqlite3_malloc64"]=(a0,a1)=>(_sqlite3_malloc64=Module["_sqlite3_malloc64"]=wasmExports["sqlite3_malloc64"])(a0,a1);var _sqlite3_free=Module["_sqlite3_free"]=a0=>(_sqlite3_free=Module["_sqlite3_free"]=wasmExports["sqlite3_free"])(a0);var _sqlite3_realloc=Module["_sqlite3_realloc"]=(a0,a1)=>(_sqlite3_realloc=Module["_sqlite3_realloc"]=wasmExports["sqlite3_realloc"])(a0,a1);var _sqlite3_realloc64=Module["_sqlite3_realloc64"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module["_sqlite3_realloc64"]=wasmExports["sqlite3_realloc64"])(a0,a1,a2);var _sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=wasmExports["sqlite3_str_vappendf"])(a0,a1,a2);var _sqlite3_str_append=Module["_sqlite3_str_append"]=(a0,a1,a2)=>(_sqlite3_str_append=Module["_sqlite3_str_append"]=wasmExports["sqlite3_str_append"])(a0,a1,a2);var _sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=wasmExports["sqlite3_str_appendchar"])(a0,a1,a2);var _sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=(a0,a1)=>(_sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=wasmExports["sqlite3_str_appendall"])(a0,a1);var _sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=wasmExports["sqlite3_str_appendf"])(a0,a1,a2);var _sqlite3_str_finish=Module["_sqlite3_str_finish"]=a0=>(_sqlite3_str_finish=Module["_sqlite3_str_finish"]=wasmExports["sqlite3_str_finish"])(a0);var _sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=a0=>(_sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=wasmExports["sqlite3_str_errcode"])(a0);var _sqlite3_str_length=Module["_sqlite3_str_length"]=a0=>(_sqlite3_str_length=Module["_sqlite3_str_length"]=wasmExports["sqlite3_str_length"])(a0);var _sqlite3_str_value=Module["_sqlite3_str_value"]=a0=>(_sqlite3_str_value=Module["_sqlite3_str_value"]=wasmExports["sqlite3_str_value"])(a0);var _sqlite3_str_reset=Module["_sqlite3_str_reset"]=a0=>(_sqlite3_str_reset=Module["_sqlite3_str_reset"]=wasmExports["sqlite3_str_reset"])(a0);var _sqlite3_str_new=Module["_sqlite3_str_new"]=a0=>(_sqlite3_str_new=Module["_sqlite3_str_new"]=wasmExports["sqlite3_str_new"])(a0);var _sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=(a0,a1)=>(_sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=wasmExports["sqlite3_vmprintf"])(a0,a1);var _sqlite3_mprintf=Module["_sqlite3_mprintf"]=(a0,a1)=>(_sqlite3_mprintf=Module["_sqlite3_mprintf"]=wasmExports["sqlite3_mprintf"])(a0,a1);var _sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=wasmExports["sqlite3_vsnprintf"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module["_sqlite3_snprintf"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module["_sqlite3_snprintf"]=wasmExports["sqlite3_snprintf"])(a0,a1,a2,a3);var _sqlite3_log=Module["_sqlite3_log"]=(a0,a1,a2)=>(_sqlite3_log=Module["_sqlite3_log"]=wasmExports["sqlite3_log"])(a0,a1,a2);var _sqlite3_randomness=Module["_sqlite3_randomness"]=(a0,a1)=>(_sqlite3_randomness=Module["_sqlite3_randomness"]=wasmExports["sqlite3_randomness"])(a0,a1);var _sqlite3_stricmp=Module["_sqlite3_stricmp"]=(a0,a1)=>(_sqlite3_stricmp=Module["_sqlite3_stricmp"]=wasmExports["sqlite3_stricmp"])(a0,a1);var _sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=wasmExports["sqlite3_strnicmp"])(a0,a1,a2);var _sqlite3_os_init=Module["_sqlite3_os_init"]=()=>(_sqlite3_os_init=Module["_sqlite3_os_init"]=wasmExports["sqlite3_os_init"])();var _sqlite3_os_end=Module["_sqlite3_os_end"]=()=>(_sqlite3_os_end=Module["_sqlite3_os_end"]=wasmExports["sqlite3_os_end"])();var _sqlite3_serialize=Module["_sqlite3_serialize"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module["_sqlite3_serialize"]=wasmExports["sqlite3_serialize"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=wasmExports["sqlite3_prepare_v2"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module["_sqlite3_step"]=a0=>(_sqlite3_step=Module["_sqlite3_step"]=wasmExports["sqlite3_step"])(a0);var _sqlite3_column_int64=Module["_sqlite3_column_int64"]=(a0,a1)=>(_sqlite3_column_int64=Module["_sqlite3_column_int64"]=wasmExports["sqlite3_column_int64"])(a0,a1);var _sqlite3_reset=Module["_sqlite3_reset"]=a0=>(_sqlite3_reset=Module["_sqlite3_reset"]=wasmExports["sqlite3_reset"])(a0);var _sqlite3_exec=Module["_sqlite3_exec"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module["_sqlite3_exec"]=wasmExports["sqlite3_exec"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module["_sqlite3_column_int"]=(a0,a1)=>(_sqlite3_column_int=Module["_sqlite3_column_int"]=wasmExports["sqlite3_column_int"])(a0,a1);var _sqlite3_finalize=Module["_sqlite3_finalize"]=a0=>(_sqlite3_finalize=Module["_sqlite3_finalize"]=wasmExports["sqlite3_finalize"])(a0);var _sqlite3_deserialize=Module["_sqlite3_deserialize"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module["_sqlite3_deserialize"]=wasmExports["sqlite3_deserialize"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=a0=>(_sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=wasmExports["sqlite3_database_file_object"])(a0);var _sqlite3_backup_init=Module["_sqlite3_backup_init"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module["_sqlite3_backup_init"]=wasmExports["sqlite3_backup_init"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module["_sqlite3_backup_step"]=(a0,a1)=>(_sqlite3_backup_step=Module["_sqlite3_backup_step"]=wasmExports["sqlite3_backup_step"])(a0,a1);var _sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=a0=>(_sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=wasmExports["sqlite3_backup_finish"])(a0);var _sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=a0=>(_sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=wasmExports["sqlite3_backup_remaining"])(a0);var _sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=a0=>(_sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=wasmExports["sqlite3_backup_pagecount"])(a0);var _sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=a0=>(_sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=wasmExports["sqlite3_clear_bindings"])(a0);var _sqlite3_value_blob=Module["_sqlite3_value_blob"]=a0=>(_sqlite3_value_blob=Module["_sqlite3_value_blob"]=wasmExports["sqlite3_value_blob"])(a0);var _sqlite3_value_text=Module["_sqlite3_value_text"]=a0=>(_sqlite3_value_text=Module["_sqlite3_value_text"]=wasmExports["sqlite3_value_text"])(a0);var _sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=a0=>(_sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=wasmExports["sqlite3_value_bytes"])(a0);var _sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=a0=>(_sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=wasmExports["sqlite3_value_bytes16"])(a0);var _sqlite3_value_double=Module["_sqlite3_value_double"]=a0=>(_sqlite3_value_double=Module["_sqlite3_value_double"]=wasmExports["sqlite3_value_double"])(a0);var _sqlite3_value_int=Module["_sqlite3_value_int"]=a0=>(_sqlite3_value_int=Module["_sqlite3_value_int"]=wasmExports["sqlite3_value_int"])(a0);var _sqlite3_value_int64=Module["_sqlite3_value_int64"]=a0=>(_sqlite3_value_int64=Module["_sqlite3_value_int64"]=wasmExports["sqlite3_value_int64"])(a0);var _sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=a0=>(_sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=wasmExports["sqlite3_value_subtype"])(a0);var _sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=(a0,a1)=>(_sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=wasmExports["sqlite3_value_pointer"])(a0,a1);var _sqlite3_value_text16=Module["_sqlite3_value_text16"]=a0=>(_sqlite3_value_text16=Module["_sqlite3_value_text16"]=wasmExports["sqlite3_value_text16"])(a0);var _sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=a0=>(_sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=wasmExports["sqlite3_value_text16be"])(a0);var _sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=a0=>(_sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=wasmExports["sqlite3_value_text16le"])(a0);var _sqlite3_value_type=Module["_sqlite3_value_type"]=a0=>(_sqlite3_value_type=Module["_sqlite3_value_type"]=wasmExports["sqlite3_value_type"])(a0);var _sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=a0=>(_sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=wasmExports["sqlite3_value_encoding"])(a0);var _sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=a0=>(_sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=wasmExports["sqlite3_value_nochange"])(a0);var _sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=a0=>(_sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=wasmExports["sqlite3_value_frombind"])(a0);var _sqlite3_value_dup=Module["_sqlite3_value_dup"]=a0=>(_sqlite3_value_dup=Module["_sqlite3_value_dup"]=wasmExports["sqlite3_value_dup"])(a0);var _sqlite3_value_free=Module["_sqlite3_value_free"]=a0=>(_sqlite3_value_free=Module["_sqlite3_value_free"]=wasmExports["sqlite3_value_free"])(a0);var _sqlite3_result_blob=Module["_sqlite3_result_blob"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module["_sqlite3_result_blob"]=wasmExports["sqlite3_result_blob"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=wasmExports["sqlite3_result_blob64"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module["_sqlite3_result_double"]=(a0,a1)=>(_sqlite3_result_double=Module["_sqlite3_result_double"]=wasmExports["sqlite3_result_double"])(a0,a1);var _sqlite3_result_error=Module["_sqlite3_result_error"]=(a0,a1,a2)=>(_sqlite3_result_error=Module["_sqlite3_result_error"]=wasmExports["sqlite3_result_error"])(a0,a1,a2);var _sqlite3_result_error16=Module["_sqlite3_result_error16"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module["_sqlite3_result_error16"]=wasmExports["sqlite3_result_error16"])(a0,a1,a2);var _sqlite3_result_int=Module["_sqlite3_result_int"]=(a0,a1)=>(_sqlite3_result_int=Module["_sqlite3_result_int"]=wasmExports["sqlite3_result_int"])(a0,a1);var _sqlite3_result_int64=Module["_sqlite3_result_int64"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module["_sqlite3_result_int64"]=wasmExports["sqlite3_result_int64"])(a0,a1,a2);var _sqlite3_result_null=Module["_sqlite3_result_null"]=a0=>(_sqlite3_result_null=Module["_sqlite3_result_null"]=wasmExports["sqlite3_result_null"])(a0);var _sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=wasmExports["sqlite3_result_pointer"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=(a0,a1)=>(_sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=wasmExports["sqlite3_result_subtype"])(a0,a1);var _sqlite3_result_text=Module["_sqlite3_result_text"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module["_sqlite3_result_text"]=wasmExports["sqlite3_result_text"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module["_sqlite3_result_text64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module["_sqlite3_result_text64"]=wasmExports["sqlite3_result_text64"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module["_sqlite3_result_text16"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module["_sqlite3_result_text16"]=wasmExports["sqlite3_result_text16"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=wasmExports["sqlite3_result_text16be"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=wasmExports["sqlite3_result_text16le"])(a0,a1,a2,a3);var _sqlite3_result_value=Module["_sqlite3_result_value"]=(a0,a1)=>(_sqlite3_result_value=Module["_sqlite3_result_value"]=wasmExports["sqlite3_result_value"])(a0,a1);var _sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=a0=>(_sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=wasmExports["sqlite3_result_error_toobig"])(a0);var _sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=wasmExports["sqlite3_result_zeroblob"])(a0,a1);var _sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=wasmExports["sqlite3_result_zeroblob64"])(a0,a1,a2);var _sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=(a0,a1)=>(_sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=wasmExports["sqlite3_result_error_code"])(a0,a1);var _sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=a0=>(_sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=wasmExports["sqlite3_result_error_nomem"])(a0);var _sqlite3_user_data=Module["_sqlite3_user_data"]=a0=>(_sqlite3_user_data=Module["_sqlite3_user_data"]=wasmExports["sqlite3_user_data"])(a0);var _sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=a0=>(_sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=wasmExports["sqlite3_context_db_handle"])(a0);var _sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=a0=>(_sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=wasmExports["sqlite3_vtab_nochange"])(a0);var _sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=wasmExports["sqlite3_vtab_in_first"])(a0,a1);var _sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=wasmExports["sqlite3_vtab_in_next"])(a0,a1);var _sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=(a0,a1)=>(_sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=wasmExports["sqlite3_aggregate_context"])(a0,a1);var _sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=(a0,a1)=>(_sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=wasmExports["sqlite3_get_auxdata"])(a0,a1);var _sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=wasmExports["sqlite3_set_auxdata"])(a0,a1,a2,a3);var _sqlite3_column_count=Module["_sqlite3_column_count"]=a0=>(_sqlite3_column_count=Module["_sqlite3_column_count"]=wasmExports["sqlite3_column_count"])(a0);var _sqlite3_data_count=Module["_sqlite3_data_count"]=a0=>(_sqlite3_data_count=Module["_sqlite3_data_count"]=wasmExports["sqlite3_data_count"])(a0);var _sqlite3_column_blob=Module["_sqlite3_column_blob"]=(a0,a1)=>(_sqlite3_column_blob=Module["_sqlite3_column_blob"]=wasmExports["sqlite3_column_blob"])(a0,a1);var _sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=(a0,a1)=>(_sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=wasmExports["sqlite3_column_bytes"])(a0,a1);var _sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=(a0,a1)=>(_sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=wasmExports["sqlite3_column_bytes16"])(a0,a1);var _sqlite3_column_double=Module["_sqlite3_column_double"]=(a0,a1)=>(_sqlite3_column_double=Module["_sqlite3_column_double"]=wasmExports["sqlite3_column_double"])(a0,a1);var _sqlite3_column_text=Module["_sqlite3_column_text"]=(a0,a1)=>(_sqlite3_column_text=Module["_sqlite3_column_text"]=wasmExports["sqlite3_column_text"])(a0,a1);var _sqlite3_column_value=Module["_sqlite3_column_value"]=(a0,a1)=>(_sqlite3_column_value=Module["_sqlite3_column_value"]=wasmExports["sqlite3_column_value"])(a0,a1);var _sqlite3_column_text16=Module["_sqlite3_column_text16"]=(a0,a1)=>(_sqlite3_column_text16=Module["_sqlite3_column_text16"]=wasmExports["sqlite3_column_text16"])(a0,a1);var _sqlite3_column_type=Module["_sqlite3_column_type"]=(a0,a1)=>(_sqlite3_column_type=Module["_sqlite3_column_type"]=wasmExports["sqlite3_column_type"])(a0,a1);var _sqlite3_column_name=Module["_sqlite3_column_name"]=(a0,a1)=>(_sqlite3_column_name=Module["_sqlite3_column_name"]=wasmExports["sqlite3_column_name"])(a0,a1);var _sqlite3_column_name16=Module["_sqlite3_column_name16"]=(a0,a1)=>(_sqlite3_column_name16=Module["_sqlite3_column_name16"]=wasmExports["sqlite3_column_name16"])(a0,a1);var _sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=wasmExports["sqlite3_bind_blob"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=wasmExports["sqlite3_bind_blob64"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module["_sqlite3_bind_double"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module["_sqlite3_bind_double"]=wasmExports["sqlite3_bind_double"])(a0,a1,a2);var _sqlite3_bind_int=Module["_sqlite3_bind_int"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module["_sqlite3_bind_int"]=wasmExports["sqlite3_bind_int"])(a0,a1,a2);var _sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=wasmExports["sqlite3_bind_int64"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module["_sqlite3_bind_null"]=(a0,a1)=>(_sqlite3_bind_null=Module["_sqlite3_bind_null"]=wasmExports["sqlite3_bind_null"])(a0,a1);var _sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=wasmExports["sqlite3_bind_pointer"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module["_sqlite3_bind_text"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module["_sqlite3_bind_text"]=wasmExports["sqlite3_bind_text"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=wasmExports["sqlite3_bind_text64"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=wasmExports["sqlite3_bind_text16"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module["_sqlite3_bind_value"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module["_sqlite3_bind_value"]=wasmExports["sqlite3_bind_value"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=wasmExports["sqlite3_bind_zeroblob"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=wasmExports["sqlite3_bind_zeroblob64"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=a0=>(_sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=wasmExports["sqlite3_bind_parameter_count"])(a0);var _sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=wasmExports["sqlite3_bind_parameter_name"])(a0,a1);var _sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=wasmExports["sqlite3_bind_parameter_index"])(a0,a1);var _sqlite3_db_handle=Module["_sqlite3_db_handle"]=a0=>(_sqlite3_db_handle=Module["_sqlite3_db_handle"]=wasmExports["sqlite3_db_handle"])(a0);var _sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=a0=>(_sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=wasmExports["sqlite3_stmt_readonly"])(a0);var _sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=a0=>(_sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=wasmExports["sqlite3_stmt_isexplain"])(a0);var _sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=(a0,a1)=>(_sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=wasmExports["sqlite3_stmt_explain"])(a0,a1);var _sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=a0=>(_sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=wasmExports["sqlite3_stmt_busy"])(a0);var _sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=(a0,a1)=>(_sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=wasmExports["sqlite3_next_stmt"])(a0,a1);var _sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=wasmExports["sqlite3_stmt_status"])(a0,a1,a2);var _sqlite3_sql=Module["_sqlite3_sql"]=a0=>(_sqlite3_sql=Module["_sqlite3_sql"]=wasmExports["sqlite3_sql"])(a0);var _sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=a0=>(_sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=wasmExports["sqlite3_expanded_sql"])(a0);var _sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=a0=>(_sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=wasmExports["sqlite3_value_numeric_type"])(a0);var _sqlite3_blob_open=Module["_sqlite3_blob_open"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module["_sqlite3_blob_open"]=wasmExports["sqlite3_blob_open"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module["_sqlite3_blob_close"]=a0=>(_sqlite3_blob_close=Module["_sqlite3_blob_close"]=wasmExports["sqlite3_blob_close"])(a0);var _sqlite3_blob_read=Module["_sqlite3_blob_read"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module["_sqlite3_blob_read"]=wasmExports["sqlite3_blob_read"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module["_sqlite3_blob_write"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module["_sqlite3_blob_write"]=wasmExports["sqlite3_blob_write"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=a0=>(_sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=wasmExports["sqlite3_blob_bytes"])(a0);var _sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=wasmExports["sqlite3_blob_reopen"])(a0,a1,a2);var _sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=wasmExports["sqlite3_set_authorizer"])(a0,a1,a2);var _sqlite3_strglob=Module["_sqlite3_strglob"]=(a0,a1)=>(_sqlite3_strglob=Module["_sqlite3_strglob"]=wasmExports["sqlite3_strglob"])(a0,a1);var _sqlite3_strlike=Module["_sqlite3_strlike"]=(a0,a1,a2)=>(_sqlite3_strlike=Module["_sqlite3_strlike"]=wasmExports["sqlite3_strlike"])(a0,a1,a2);var _sqlite3_errmsg=Module["_sqlite3_errmsg"]=a0=>(_sqlite3_errmsg=Module["_sqlite3_errmsg"]=wasmExports["sqlite3_errmsg"])(a0);var _sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=a0=>(_sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=wasmExports["sqlite3_auto_extension"])(a0);var _sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=a0=>(_sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=wasmExports["sqlite3_cancel_auto_extension"])(a0);var _sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=()=>(_sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=wasmExports["sqlite3_reset_auto_extension"])();var _sqlite3_prepare=Module["_sqlite3_prepare"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module["_sqlite3_prepare"]=wasmExports["sqlite3_prepare"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=wasmExports["sqlite3_prepare_v3"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module["_sqlite3_prepare16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module["_sqlite3_prepare16"]=wasmExports["sqlite3_prepare16"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=wasmExports["sqlite3_prepare16_v2"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=wasmExports["sqlite3_prepare16_v3"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module["_sqlite3_get_table"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module["_sqlite3_get_table"]=wasmExports["sqlite3_get_table"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module["_sqlite3_free_table"]=a0=>(_sqlite3_free_table=Module["_sqlite3_free_table"]=wasmExports["sqlite3_free_table"])(a0);var _sqlite3_create_module=Module["_sqlite3_create_module"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module["_sqlite3_create_module"]=wasmExports["sqlite3_create_module"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=wasmExports["sqlite3_create_module_v2"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=(a0,a1)=>(_sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=wasmExports["sqlite3_drop_modules"])(a0,a1);var _sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=(a0,a1)=>(_sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=wasmExports["sqlite3_declare_vtab"])(a0,a1);var _sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=a0=>(_sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=wasmExports["sqlite3_vtab_on_conflict"])(a0);var _sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=wasmExports["sqlite3_vtab_config"])(a0,a1,a2);var _sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=(a0,a1)=>(_sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=wasmExports["sqlite3_vtab_collation"])(a0,a1);var _sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=wasmExports["sqlite3_vtab_in"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=wasmExports["sqlite3_vtab_rhs_value"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=a0=>(_sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=wasmExports["sqlite3_vtab_distinct"])(a0);var _sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=wasmExports["sqlite3_keyword_name"])(a0,a1,a2);var _sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=()=>(_sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=wasmExports["sqlite3_keyword_count"])();var _sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=(a0,a1)=>(_sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=wasmExports["sqlite3_keyword_check"])(a0,a1);var _sqlite3_complete=Module["_sqlite3_complete"]=a0=>(_sqlite3_complete=Module["_sqlite3_complete"]=wasmExports["sqlite3_complete"])(a0);var _sqlite3_complete16=Module["_sqlite3_complete16"]=a0=>(_sqlite3_complete16=Module["_sqlite3_complete16"]=wasmExports["sqlite3_complete16"])(a0);var _sqlite3_libversion=Module["_sqlite3_libversion"]=()=>(_sqlite3_libversion=Module["_sqlite3_libversion"]=wasmExports["sqlite3_libversion"])();var _sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=()=>(_sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=wasmExports["sqlite3_libversion_number"])();var _sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=()=>(_sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=wasmExports["sqlite3_threadsafe"])();var _sqlite3_initialize=Module["_sqlite3_initialize"]=()=>(_sqlite3_initialize=Module["_sqlite3_initialize"]=wasmExports["sqlite3_initialize"])();var _sqlite3_shutdown=Module["_sqlite3_shutdown"]=()=>(_sqlite3_shutdown=Module["_sqlite3_shutdown"]=wasmExports["sqlite3_shutdown"])();var _sqlite3_config=Module["_sqlite3_config"]=(a0,a1)=>(_sqlite3_config=Module["_sqlite3_config"]=wasmExports["sqlite3_config"])(a0,a1);var _sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=a0=>(_sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=wasmExports["sqlite3_db_mutex"])(a0);var _sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=a0=>(_sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=wasmExports["sqlite3_db_release_memory"])(a0);var _sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=a0=>(_sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=wasmExports["sqlite3_db_cacheflush"])(a0);var _sqlite3_db_config=Module["_sqlite3_db_config"]=(a0,a1,a2)=>(_sqlite3_db_config=Module["_sqlite3_db_config"]=wasmExports["sqlite3_db_config"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=a0=>(_sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=wasmExports["sqlite3_last_insert_rowid"])(a0);var _sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=wasmExports["sqlite3_set_last_insert_rowid"])(a0,a1,a2);var _sqlite3_changes64=Module["_sqlite3_changes64"]=a0=>(_sqlite3_changes64=Module["_sqlite3_changes64"]=wasmExports["sqlite3_changes64"])(a0);var _sqlite3_changes=Module["_sqlite3_changes"]=a0=>(_sqlite3_changes=Module["_sqlite3_changes"]=wasmExports["sqlite3_changes"])(a0);var _sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=a0=>(_sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=wasmExports["sqlite3_total_changes64"])(a0);var _sqlite3_total_changes=Module["_sqlite3_total_changes"]=a0=>(_sqlite3_total_changes=Module["_sqlite3_total_changes"]=wasmExports["sqlite3_total_changes"])(a0);var _sqlite3_txn_state=Module["_sqlite3_txn_state"]=(a0,a1)=>(_sqlite3_txn_state=Module["_sqlite3_txn_state"]=wasmExports["sqlite3_txn_state"])(a0,a1);var _sqlite3_close=Module["_sqlite3_close"]=a0=>(_sqlite3_close=Module["_sqlite3_close"]=wasmExports["sqlite3_close"])(a0);var _sqlite3_close_v2=Module["_sqlite3_close_v2"]=a0=>(_sqlite3_close_v2=Module["_sqlite3_close_v2"]=wasmExports["sqlite3_close_v2"])(a0);var _sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=wasmExports["sqlite3_busy_handler"])(a0,a1,a2);var _sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=wasmExports["sqlite3_progress_handler"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=(a0,a1)=>(_sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=wasmExports["sqlite3_busy_timeout"])(a0,a1);var _sqlite3_interrupt=Module["_sqlite3_interrupt"]=a0=>(_sqlite3_interrupt=Module["_sqlite3_interrupt"]=wasmExports["sqlite3_interrupt"])(a0);var _sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=a0=>(_sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=wasmExports["sqlite3_is_interrupted"])(a0);var _sqlite3_create_function=Module["_sqlite3_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module["_sqlite3_create_function"]=wasmExports["sqlite3_create_function"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=wasmExports["sqlite3_create_function_v2"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=wasmExports["sqlite3_create_window_function"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module["_sqlite3_create_function16"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module["_sqlite3_create_function16"]=wasmExports["sqlite3_create_function16"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module["_sqlite3_overload_function"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module["_sqlite3_overload_function"]=wasmExports["sqlite3_overload_function"])(a0,a1,a2);var _sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=wasmExports["sqlite3_trace_v2"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=wasmExports["sqlite3_commit_hook"])(a0,a1,a2);var _sqlite3_update_hook=Module["_sqlite3_update_hook"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module["_sqlite3_update_hook"]=wasmExports["sqlite3_update_hook"])(a0,a1,a2);var _sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=wasmExports["sqlite3_rollback_hook"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=wasmExports["sqlite3_autovacuum_pages"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=wasmExports["sqlite3_wal_autocheckpoint"])(a0,a1);var _sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=wasmExports["sqlite3_wal_hook"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=wasmExports["sqlite3_wal_checkpoint_v2"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=wasmExports["sqlite3_wal_checkpoint"])(a0,a1);var _sqlite3_error_offset=Module["_sqlite3_error_offset"]=a0=>(_sqlite3_error_offset=Module["_sqlite3_error_offset"]=wasmExports["sqlite3_error_offset"])(a0);var _sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=a0=>(_sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=wasmExports["sqlite3_errmsg16"])(a0);var _sqlite3_errcode=Module["_sqlite3_errcode"]=a0=>(_sqlite3_errcode=Module["_sqlite3_errcode"]=wasmExports["sqlite3_errcode"])(a0);var _sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=a0=>(_sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=wasmExports["sqlite3_extended_errcode"])(a0);var _sqlite3_system_errno=Module["_sqlite3_system_errno"]=a0=>(_sqlite3_system_errno=Module["_sqlite3_system_errno"]=wasmExports["sqlite3_system_errno"])(a0);var _sqlite3_errstr=Module["_sqlite3_errstr"]=a0=>(_sqlite3_errstr=Module["_sqlite3_errstr"]=wasmExports["sqlite3_errstr"])(a0);var _sqlite3_limit=Module["_sqlite3_limit"]=(a0,a1,a2)=>(_sqlite3_limit=Module["_sqlite3_limit"]=wasmExports["sqlite3_limit"])(a0,a1,a2);var _sqlite3_open=Module["_sqlite3_open"]=(a0,a1)=>(_sqlite3_open=Module["_sqlite3_open"]=wasmExports["sqlite3_open"])(a0,a1);var _sqlite3_open_v2=Module["_sqlite3_open_v2"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module["_sqlite3_open_v2"]=wasmExports["sqlite3_open_v2"])(a0,a1,a2,a3);var _sqlite3_open16=Module["_sqlite3_open16"]=(a0,a1)=>(_sqlite3_open16=Module["_sqlite3_open16"]=wasmExports["sqlite3_open16"])(a0,a1);var _sqlite3_create_collation=Module["_sqlite3_create_collation"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module["_sqlite3_create_collation"]=wasmExports["sqlite3_create_collation"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=wasmExports["sqlite3_create_collation_v2"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=wasmExports["sqlite3_create_collation16"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=wasmExports["sqlite3_collation_needed"])(a0,a1,a2);var _sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=wasmExports["sqlite3_collation_needed16"])(a0,a1,a2);var _sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=(a0,a1)=>(_sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=wasmExports["sqlite3_get_clientdata"])(a0,a1);var _sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=wasmExports["sqlite3_set_clientdata"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=a0=>(_sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=wasmExports["sqlite3_get_autocommit"])(a0);var _sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=wasmExports["sqlite3_table_column_metadata"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module["_sqlite3_sleep"]=a0=>(_sqlite3_sleep=Module["_sqlite3_sleep"]=wasmExports["sqlite3_sleep"])(a0);var _sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=wasmExports["sqlite3_extended_result_codes"])(a0,a1);var _sqlite3_file_control=Module["_sqlite3_file_control"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module["_sqlite3_file_control"]=wasmExports["sqlite3_file_control"])(a0,a1,a2,a3);var _sqlite3_test_control=Module["_sqlite3_test_control"]=(a0,a1)=>(_sqlite3_test_control=Module["_sqlite3_test_control"]=wasmExports["sqlite3_test_control"])(a0,a1);var _sqlite3_create_filename=Module["_sqlite3_create_filename"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module["_sqlite3_create_filename"]=wasmExports["sqlite3_create_filename"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module["_sqlite3_free_filename"]=a0=>(_sqlite3_free_filename=Module["_sqlite3_free_filename"]=wasmExports["sqlite3_free_filename"])(a0);var _sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=(a0,a1)=>(_sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=wasmExports["sqlite3_uri_parameter"])(a0,a1);var _sqlite3_uri_key=Module["_sqlite3_uri_key"]=(a0,a1)=>(_sqlite3_uri_key=Module["_sqlite3_uri_key"]=wasmExports["sqlite3_uri_key"])(a0,a1);var _sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=wasmExports["sqlite3_uri_boolean"])(a0,a1,a2);var _sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=wasmExports["sqlite3_uri_int64"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module["_sqlite3_filename_database"]=a0=>(_sqlite3_filename_database=Module["_sqlite3_filename_database"]=wasmExports["sqlite3_filename_database"])(a0);var _sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=a0=>(_sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=wasmExports["sqlite3_filename_journal"])(a0);var _sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=a0=>(_sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=wasmExports["sqlite3_filename_wal"])(a0);var _sqlite3_db_name=Module["_sqlite3_db_name"]=(a0,a1)=>(_sqlite3_db_name=Module["_sqlite3_db_name"]=wasmExports["sqlite3_db_name"])(a0,a1);var _sqlite3_db_filename=Module["_sqlite3_db_filename"]=(a0,a1)=>(_sqlite3_db_filename=Module["_sqlite3_db_filename"]=wasmExports["sqlite3_db_filename"])(a0,a1);var _sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=(a0,a1)=>(_sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=wasmExports["sqlite3_db_readonly"])(a0,a1);var _sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=a0=>(_sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=wasmExports["sqlite3_compileoption_used"])(a0);var _sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=a0=>(_sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=wasmExports["sqlite3_compileoption_get"])(a0);var _sqlite3_sourceid=Module["_sqlite3_sourceid"]=()=>(_sqlite3_sourceid=Module["_sqlite3_sourceid"]=wasmExports["sqlite3_sourceid"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["malloc"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["free"])(a0);var _RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=a0=>(_RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=wasmExports["RegisterExtensionFunctions"])(a0);var _getSqliteFree=Module["_getSqliteFree"]=()=>(_getSqliteFree=Module["_getSqliteFree"]=wasmExports["getSqliteFree"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["main"])(a0,a1);var _libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=wasmExports["libauthorizer_set_authorizer"])(a0,a1,a2);var _libfunction_create_function=Module["_libfunction_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module["_libfunction_create_function"]=wasmExports["libfunction_create_function"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module["_libhook_commit_hook"]=(a0,a1,a2)=>(_libhook_commit_hook=Module["_libhook_commit_hook"]=wasmExports["libhook_commit_hook"])(a0,a1,a2);var _libhook_update_hook=Module["_libhook_update_hook"]=(a0,a1,a2)=>(_libhook_update_hook=Module["_libhook_update_hook"]=wasmExports["libhook_update_hook"])(a0,a1,a2);var _libprogress_progress_handler=Module["_libprogress_progress_handler"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module["_libprogress_progress_handler"]=wasmExports["libprogress_progress_handler"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module["_libvfs_vfs_register"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module["_libvfs_vfs_register"]=wasmExports["libvfs_vfs_register"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports["_emscripten_tempret_get"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"])();var _sqlite3_version=Module["_sqlite3_version"]=3232;Module["getTempRet0"]=getTempRet0;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["addFunction"]=addFunction;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["intArrayFromString"]=intArrayFromString;Module["intArrayToString"]=intArrayToString;Module["AsciiToString"]=AsciiToString;Module["UTF16ToString"]=UTF16ToString;Module["stringToUTF16"]=stringToUTF16;Module["UTF32ToString"]=UTF32ToString;Module["stringToUTF32"]=stringToUTF32;Module["writeArrayToMemory"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);Promise.resolve(ret).then(result=>{exitJS(result,true)}).catch(e=>{handleException(e)});return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["set_authorizer"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,"i32");const result=ccall("libauthorizer_set_authorizer","number",["number","number","number"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module["setCallback"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=["xFunc","xStep","xFinal"];const mapFunctionNameToKey=new Map;Module["create_function"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module["_sqlite3_malloc"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["commit_hook"]=function(db,xCommitHook){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,"i32");ccall("libhook_commit_hook","void",["number","number","number"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module["setCallback"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["progress_handler"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,"i32");ccall("libprogress_progress_handler","number",["number","number","number","number"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module["setCallback"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"];const mapVFSNameToKey=new Map;Module["vfs_register"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))}).then(onload,onerror)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module["locateFile"]){var f="wa-sqlite-jspi.wasm";if(!isDataURI(f)){return locateFile(f)}return f}return new URL("wa-sqlite-jspi.wasm",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){Asyncify.instrumentWasmImports(wasmImports);return{env:wasmImports,wasi_snapshot_preview1:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports["memory"];updateMemoryViews();wasmTable=wasmExports["__indirect_function_table"];addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeHEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:"short"}).split(" ")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffsetDate.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var _fd_sync=function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return Asyncify.handleSleep(wakeUp=>{var mount=stream.node.mount;if(!mount.type.syncfs){wakeUp(0);return}mount.type.syncfs(mount,false,err=>{if(err){wakeUp(29);return}wakeUp(0)})})}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}};_fd_sync.isAsync=true;var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify==="object"?Asyncify.handleAsync.bind(Asyncify):null;Module["handleAsync"]=handleAsync;const targets=new Map;Module["setCallback"]=(key,target)=>targets.set(key,target);Module["getCallback"]=key=>targets.get(key);Module["deleteCallback"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver==="function"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error("Synchronous WebAssembly cannot call async function")}const result=f.apply(receiver,args);if(typeof result?.then=="function"){console.error("unexpected Promise",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}_ipp_async.isAsync=true;function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}_ippipppp_async.isAsync=true;function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}_ippp_async.isAsync=true;function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}_ipppi_async.isAsync=true;function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}_ipppiii_async.isAsync=true;function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}_ipppiiip_async.isAsync=true;function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}_ipppip_async.isAsync=true;function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}_ipppj_async.isAsync=true;function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}_ipppp_async.isAsync=true;function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}_ippppi_async.isAsync=true;function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}_ippppij_async.isAsync=true;function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}_ippppip_async.isAsync=true;function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}_ipppppip_async.isAsync=true;function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}_vppippii_async.isAsync=true;function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}_vppp_async.isAsync=true;function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}_vpppip_async.isAsync=true;var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var sigToWasmTypes=sig=>{var typeNames={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;ioriginal(...args)}else{ret[x]=original}}return ret},asyncExports:null,isAsyncExport(func){return Asyncify.asyncExports?.has(func)},handleAsync:async startAsync=>{try{return await startAsync()}finally{}},handleSleep(startAsync){return Asyncify.handleAsync(()=>new Promise(startAsync))},makeAsyncFunction(original){return WebAssembly.promising(original)}};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var generateFuncType=(sig,target)=>{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i{if(typeof WebAssembly.Function=="function"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports["f"];return wrappedFunc};var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr);if(Asyncify.isAsyncExport(func)){wasmTableMirror[funcPtr]=func=Asyncify.makeAsyncFunction(func)}}return func};var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>{wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx)};var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={__assert_fail:___assert_fail,__syscall_chmod:___syscall_chmod,__syscall_faccessat:___syscall_faccessat,__syscall_fchmod:___syscall_fchmod,__syscall_fchown32:___syscall_fchown32,__syscall_fcntl64:___syscall_fcntl64,__syscall_fstat64:___syscall_fstat64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_readlinkat:___syscall_readlinkat,__syscall_rmdir:___syscall_rmdir,__syscall_stat64:___syscall_stat64,__syscall_unlinkat:___syscall_unlinkat,__syscall_utimensat:___syscall_utimensat,_localtime_js:__localtime_js,_mmap_js:__mmap_js,_munmap_js:__munmap_js,_tzset_js:__tzset_js,emscripten_date_now:_emscripten_date_now,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_read:_fd_read,fd_seek:_fd_seek,fd_sync:_fd_sync,fd_write:_fd_write,ipp:_ipp,ipp_async:_ipp_async,ippipppp:_ippipppp,ippipppp_async:_ippipppp_async,ippp:_ippp,ippp_async:_ippp_async,ipppi:_ipppi,ipppi_async:_ipppi_async,ipppiii:_ipppiii,ipppiii_async:_ipppiii_async,ipppiiip:_ipppiiip,ipppiiip_async:_ipppiiip_async,ipppip:_ipppip,ipppip_async:_ipppip_async,ipppj:_ipppj,ipppj_async:_ipppj_async,ipppp:_ipppp,ipppp_async:_ipppp_async,ippppi:_ippppi,ippppi_async:_ippppi_async,ippppij:_ippppij,ippppij_async:_ippppij_async,ippppip:_ippppip,ippppip_async:_ippppip_async,ipppppip:_ipppppip,ipppppip_async:_ipppppip_async,vppippii:_vppippii,vppippii_async:_vppippii_async,vppp:_vppp,vppp_async:_vppp_async,vpppip:_vpppip,vpppip_async:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _sqlite3_status64=Module["_sqlite3_status64"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module["_sqlite3_status64"]=wasmExports["sqlite3_status64"])(a0,a1,a2,a3);var _sqlite3_status=Module["_sqlite3_status"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module["_sqlite3_status"]=wasmExports["sqlite3_status"])(a0,a1,a2,a3);var _sqlite3_msize=Module["_sqlite3_msize"]=a0=>(_sqlite3_msize=Module["_sqlite3_msize"]=wasmExports["sqlite3_msize"])(a0);var _sqlite3_db_status=Module["_sqlite3_db_status"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module["_sqlite3_db_status"]=wasmExports["sqlite3_db_status"])(a0,a1,a2,a3,a4);var _sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=a0=>(_sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=wasmExports["sqlite3_vfs_find"])(a0);var _sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=(a0,a1)=>(_sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=wasmExports["sqlite3_vfs_register"])(a0,a1);var _sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=a0=>(_sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=wasmExports["sqlite3_vfs_unregister"])(a0);var _sqlite3_release_memory=Module["_sqlite3_release_memory"]=a0=>(_sqlite3_release_memory=Module["_sqlite3_release_memory"]=wasmExports["sqlite3_release_memory"])(a0);var _sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=wasmExports["sqlite3_soft_heap_limit64"])(a0,a1);var _sqlite3_memory_used=Module["_sqlite3_memory_used"]=()=>(_sqlite3_memory_used=Module["_sqlite3_memory_used"]=wasmExports["sqlite3_memory_used"])();var _sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=wasmExports["sqlite3_hard_heap_limit64"])(a0,a1);var _sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=a0=>(_sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=wasmExports["sqlite3_memory_highwater"])(a0);var _sqlite3_malloc=Module["_sqlite3_malloc"]=a0=>(_sqlite3_malloc=Module["_sqlite3_malloc"]=wasmExports["sqlite3_malloc"])(a0);var _sqlite3_malloc64=Module["_sqlite3_malloc64"]=(a0,a1)=>(_sqlite3_malloc64=Module["_sqlite3_malloc64"]=wasmExports["sqlite3_malloc64"])(a0,a1);var _sqlite3_free=Module["_sqlite3_free"]=a0=>(_sqlite3_free=Module["_sqlite3_free"]=wasmExports["sqlite3_free"])(a0);var _sqlite3_realloc=Module["_sqlite3_realloc"]=(a0,a1)=>(_sqlite3_realloc=Module["_sqlite3_realloc"]=wasmExports["sqlite3_realloc"])(a0,a1);var _sqlite3_realloc64=Module["_sqlite3_realloc64"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module["_sqlite3_realloc64"]=wasmExports["sqlite3_realloc64"])(a0,a1,a2);var _sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=wasmExports["sqlite3_str_vappendf"])(a0,a1,a2);var _sqlite3_str_append=Module["_sqlite3_str_append"]=(a0,a1,a2)=>(_sqlite3_str_append=Module["_sqlite3_str_append"]=wasmExports["sqlite3_str_append"])(a0,a1,a2);var _sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=wasmExports["sqlite3_str_appendchar"])(a0,a1,a2);var _sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=(a0,a1)=>(_sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=wasmExports["sqlite3_str_appendall"])(a0,a1);var _sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=wasmExports["sqlite3_str_appendf"])(a0,a1,a2);var _sqlite3_str_finish=Module["_sqlite3_str_finish"]=a0=>(_sqlite3_str_finish=Module["_sqlite3_str_finish"]=wasmExports["sqlite3_str_finish"])(a0);var _sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=a0=>(_sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=wasmExports["sqlite3_str_errcode"])(a0);var _sqlite3_str_length=Module["_sqlite3_str_length"]=a0=>(_sqlite3_str_length=Module["_sqlite3_str_length"]=wasmExports["sqlite3_str_length"])(a0);var _sqlite3_str_value=Module["_sqlite3_str_value"]=a0=>(_sqlite3_str_value=Module["_sqlite3_str_value"]=wasmExports["sqlite3_str_value"])(a0);var _sqlite3_str_reset=Module["_sqlite3_str_reset"]=a0=>(_sqlite3_str_reset=Module["_sqlite3_str_reset"]=wasmExports["sqlite3_str_reset"])(a0);var _sqlite3_str_new=Module["_sqlite3_str_new"]=a0=>(_sqlite3_str_new=Module["_sqlite3_str_new"]=wasmExports["sqlite3_str_new"])(a0);var _sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=(a0,a1)=>(_sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=wasmExports["sqlite3_vmprintf"])(a0,a1);var _sqlite3_mprintf=Module["_sqlite3_mprintf"]=(a0,a1)=>(_sqlite3_mprintf=Module["_sqlite3_mprintf"]=wasmExports["sqlite3_mprintf"])(a0,a1);var _sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=wasmExports["sqlite3_vsnprintf"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module["_sqlite3_snprintf"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module["_sqlite3_snprintf"]=wasmExports["sqlite3_snprintf"])(a0,a1,a2,a3);var _sqlite3_log=Module["_sqlite3_log"]=(a0,a1,a2)=>(_sqlite3_log=Module["_sqlite3_log"]=wasmExports["sqlite3_log"])(a0,a1,a2);var _sqlite3_randomness=Module["_sqlite3_randomness"]=(a0,a1)=>(_sqlite3_randomness=Module["_sqlite3_randomness"]=wasmExports["sqlite3_randomness"])(a0,a1);var _sqlite3_stricmp=Module["_sqlite3_stricmp"]=(a0,a1)=>(_sqlite3_stricmp=Module["_sqlite3_stricmp"]=wasmExports["sqlite3_stricmp"])(a0,a1);var _sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=wasmExports["sqlite3_strnicmp"])(a0,a1,a2);var _sqlite3_os_init=Module["_sqlite3_os_init"]=()=>(_sqlite3_os_init=Module["_sqlite3_os_init"]=wasmExports["sqlite3_os_init"])();var _sqlite3_os_end=Module["_sqlite3_os_end"]=()=>(_sqlite3_os_end=Module["_sqlite3_os_end"]=wasmExports["sqlite3_os_end"])();var _sqlite3_serialize=Module["_sqlite3_serialize"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module["_sqlite3_serialize"]=wasmExports["sqlite3_serialize"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=wasmExports["sqlite3_prepare_v2"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module["_sqlite3_step"]=a0=>(_sqlite3_step=Module["_sqlite3_step"]=wasmExports["sqlite3_step"])(a0);var _sqlite3_column_int64=Module["_sqlite3_column_int64"]=(a0,a1)=>(_sqlite3_column_int64=Module["_sqlite3_column_int64"]=wasmExports["sqlite3_column_int64"])(a0,a1);var _sqlite3_reset=Module["_sqlite3_reset"]=a0=>(_sqlite3_reset=Module["_sqlite3_reset"]=wasmExports["sqlite3_reset"])(a0);var _sqlite3_exec=Module["_sqlite3_exec"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module["_sqlite3_exec"]=wasmExports["sqlite3_exec"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module["_sqlite3_column_int"]=(a0,a1)=>(_sqlite3_column_int=Module["_sqlite3_column_int"]=wasmExports["sqlite3_column_int"])(a0,a1);var _sqlite3_finalize=Module["_sqlite3_finalize"]=a0=>(_sqlite3_finalize=Module["_sqlite3_finalize"]=wasmExports["sqlite3_finalize"])(a0);var _sqlite3_deserialize=Module["_sqlite3_deserialize"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module["_sqlite3_deserialize"]=wasmExports["sqlite3_deserialize"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=a0=>(_sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=wasmExports["sqlite3_database_file_object"])(a0);var _sqlite3_backup_init=Module["_sqlite3_backup_init"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module["_sqlite3_backup_init"]=wasmExports["sqlite3_backup_init"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module["_sqlite3_backup_step"]=(a0,a1)=>(_sqlite3_backup_step=Module["_sqlite3_backup_step"]=wasmExports["sqlite3_backup_step"])(a0,a1);var _sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=a0=>(_sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=wasmExports["sqlite3_backup_finish"])(a0);var _sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=a0=>(_sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=wasmExports["sqlite3_backup_remaining"])(a0);var _sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=a0=>(_sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=wasmExports["sqlite3_backup_pagecount"])(a0);var _sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=a0=>(_sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=wasmExports["sqlite3_clear_bindings"])(a0);var _sqlite3_value_blob=Module["_sqlite3_value_blob"]=a0=>(_sqlite3_value_blob=Module["_sqlite3_value_blob"]=wasmExports["sqlite3_value_blob"])(a0);var _sqlite3_value_text=Module["_sqlite3_value_text"]=a0=>(_sqlite3_value_text=Module["_sqlite3_value_text"]=wasmExports["sqlite3_value_text"])(a0);var _sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=a0=>(_sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=wasmExports["sqlite3_value_bytes"])(a0);var _sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=a0=>(_sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=wasmExports["sqlite3_value_bytes16"])(a0);var _sqlite3_value_double=Module["_sqlite3_value_double"]=a0=>(_sqlite3_value_double=Module["_sqlite3_value_double"]=wasmExports["sqlite3_value_double"])(a0);var _sqlite3_value_int=Module["_sqlite3_value_int"]=a0=>(_sqlite3_value_int=Module["_sqlite3_value_int"]=wasmExports["sqlite3_value_int"])(a0);var _sqlite3_value_int64=Module["_sqlite3_value_int64"]=a0=>(_sqlite3_value_int64=Module["_sqlite3_value_int64"]=wasmExports["sqlite3_value_int64"])(a0);var _sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=a0=>(_sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=wasmExports["sqlite3_value_subtype"])(a0);var _sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=(a0,a1)=>(_sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=wasmExports["sqlite3_value_pointer"])(a0,a1);var _sqlite3_value_text16=Module["_sqlite3_value_text16"]=a0=>(_sqlite3_value_text16=Module["_sqlite3_value_text16"]=wasmExports["sqlite3_value_text16"])(a0);var _sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=a0=>(_sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=wasmExports["sqlite3_value_text16be"])(a0);var _sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=a0=>(_sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=wasmExports["sqlite3_value_text16le"])(a0);var _sqlite3_value_type=Module["_sqlite3_value_type"]=a0=>(_sqlite3_value_type=Module["_sqlite3_value_type"]=wasmExports["sqlite3_value_type"])(a0);var _sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=a0=>(_sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=wasmExports["sqlite3_value_encoding"])(a0);var _sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=a0=>(_sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=wasmExports["sqlite3_value_nochange"])(a0);var _sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=a0=>(_sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=wasmExports["sqlite3_value_frombind"])(a0);var _sqlite3_value_dup=Module["_sqlite3_value_dup"]=a0=>(_sqlite3_value_dup=Module["_sqlite3_value_dup"]=wasmExports["sqlite3_value_dup"])(a0);var _sqlite3_value_free=Module["_sqlite3_value_free"]=a0=>(_sqlite3_value_free=Module["_sqlite3_value_free"]=wasmExports["sqlite3_value_free"])(a0);var _sqlite3_result_blob=Module["_sqlite3_result_blob"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module["_sqlite3_result_blob"]=wasmExports["sqlite3_result_blob"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=wasmExports["sqlite3_result_blob64"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module["_sqlite3_result_double"]=(a0,a1)=>(_sqlite3_result_double=Module["_sqlite3_result_double"]=wasmExports["sqlite3_result_double"])(a0,a1);var _sqlite3_result_error=Module["_sqlite3_result_error"]=(a0,a1,a2)=>(_sqlite3_result_error=Module["_sqlite3_result_error"]=wasmExports["sqlite3_result_error"])(a0,a1,a2);var _sqlite3_result_error16=Module["_sqlite3_result_error16"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module["_sqlite3_result_error16"]=wasmExports["sqlite3_result_error16"])(a0,a1,a2);var _sqlite3_result_int=Module["_sqlite3_result_int"]=(a0,a1)=>(_sqlite3_result_int=Module["_sqlite3_result_int"]=wasmExports["sqlite3_result_int"])(a0,a1);var _sqlite3_result_int64=Module["_sqlite3_result_int64"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module["_sqlite3_result_int64"]=wasmExports["sqlite3_result_int64"])(a0,a1,a2);var _sqlite3_result_null=Module["_sqlite3_result_null"]=a0=>(_sqlite3_result_null=Module["_sqlite3_result_null"]=wasmExports["sqlite3_result_null"])(a0);var _sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=wasmExports["sqlite3_result_pointer"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=(a0,a1)=>(_sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=wasmExports["sqlite3_result_subtype"])(a0,a1);var _sqlite3_result_text=Module["_sqlite3_result_text"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module["_sqlite3_result_text"]=wasmExports["sqlite3_result_text"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module["_sqlite3_result_text64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module["_sqlite3_result_text64"]=wasmExports["sqlite3_result_text64"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module["_sqlite3_result_text16"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module["_sqlite3_result_text16"]=wasmExports["sqlite3_result_text16"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=wasmExports["sqlite3_result_text16be"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=wasmExports["sqlite3_result_text16le"])(a0,a1,a2,a3);var _sqlite3_result_value=Module["_sqlite3_result_value"]=(a0,a1)=>(_sqlite3_result_value=Module["_sqlite3_result_value"]=wasmExports["sqlite3_result_value"])(a0,a1);var _sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=a0=>(_sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=wasmExports["sqlite3_result_error_toobig"])(a0);var _sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=wasmExports["sqlite3_result_zeroblob"])(a0,a1);var _sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=wasmExports["sqlite3_result_zeroblob64"])(a0,a1,a2);var _sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=(a0,a1)=>(_sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=wasmExports["sqlite3_result_error_code"])(a0,a1);var _sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=a0=>(_sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=wasmExports["sqlite3_result_error_nomem"])(a0);var _sqlite3_user_data=Module["_sqlite3_user_data"]=a0=>(_sqlite3_user_data=Module["_sqlite3_user_data"]=wasmExports["sqlite3_user_data"])(a0);var _sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=a0=>(_sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=wasmExports["sqlite3_context_db_handle"])(a0);var _sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=a0=>(_sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=wasmExports["sqlite3_vtab_nochange"])(a0);var _sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=wasmExports["sqlite3_vtab_in_first"])(a0,a1);var _sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=wasmExports["sqlite3_vtab_in_next"])(a0,a1);var _sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=(a0,a1)=>(_sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=wasmExports["sqlite3_aggregate_context"])(a0,a1);var _sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=(a0,a1)=>(_sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=wasmExports["sqlite3_get_auxdata"])(a0,a1);var _sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=wasmExports["sqlite3_set_auxdata"])(a0,a1,a2,a3);var _sqlite3_column_count=Module["_sqlite3_column_count"]=a0=>(_sqlite3_column_count=Module["_sqlite3_column_count"]=wasmExports["sqlite3_column_count"])(a0);var _sqlite3_data_count=Module["_sqlite3_data_count"]=a0=>(_sqlite3_data_count=Module["_sqlite3_data_count"]=wasmExports["sqlite3_data_count"])(a0);var _sqlite3_column_blob=Module["_sqlite3_column_blob"]=(a0,a1)=>(_sqlite3_column_blob=Module["_sqlite3_column_blob"]=wasmExports["sqlite3_column_blob"])(a0,a1);var _sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=(a0,a1)=>(_sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=wasmExports["sqlite3_column_bytes"])(a0,a1);var _sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=(a0,a1)=>(_sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=wasmExports["sqlite3_column_bytes16"])(a0,a1);var _sqlite3_column_double=Module["_sqlite3_column_double"]=(a0,a1)=>(_sqlite3_column_double=Module["_sqlite3_column_double"]=wasmExports["sqlite3_column_double"])(a0,a1);var _sqlite3_column_text=Module["_sqlite3_column_text"]=(a0,a1)=>(_sqlite3_column_text=Module["_sqlite3_column_text"]=wasmExports["sqlite3_column_text"])(a0,a1);var _sqlite3_column_value=Module["_sqlite3_column_value"]=(a0,a1)=>(_sqlite3_column_value=Module["_sqlite3_column_value"]=wasmExports["sqlite3_column_value"])(a0,a1);var _sqlite3_column_text16=Module["_sqlite3_column_text16"]=(a0,a1)=>(_sqlite3_column_text16=Module["_sqlite3_column_text16"]=wasmExports["sqlite3_column_text16"])(a0,a1);var _sqlite3_column_type=Module["_sqlite3_column_type"]=(a0,a1)=>(_sqlite3_column_type=Module["_sqlite3_column_type"]=wasmExports["sqlite3_column_type"])(a0,a1);var _sqlite3_column_name=Module["_sqlite3_column_name"]=(a0,a1)=>(_sqlite3_column_name=Module["_sqlite3_column_name"]=wasmExports["sqlite3_column_name"])(a0,a1);var _sqlite3_column_name16=Module["_sqlite3_column_name16"]=(a0,a1)=>(_sqlite3_column_name16=Module["_sqlite3_column_name16"]=wasmExports["sqlite3_column_name16"])(a0,a1);var _sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=wasmExports["sqlite3_bind_blob"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=wasmExports["sqlite3_bind_blob64"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module["_sqlite3_bind_double"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module["_sqlite3_bind_double"]=wasmExports["sqlite3_bind_double"])(a0,a1,a2);var _sqlite3_bind_int=Module["_sqlite3_bind_int"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module["_sqlite3_bind_int"]=wasmExports["sqlite3_bind_int"])(a0,a1,a2);var _sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=wasmExports["sqlite3_bind_int64"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module["_sqlite3_bind_null"]=(a0,a1)=>(_sqlite3_bind_null=Module["_sqlite3_bind_null"]=wasmExports["sqlite3_bind_null"])(a0,a1);var _sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=wasmExports["sqlite3_bind_pointer"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module["_sqlite3_bind_text"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module["_sqlite3_bind_text"]=wasmExports["sqlite3_bind_text"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=wasmExports["sqlite3_bind_text64"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=wasmExports["sqlite3_bind_text16"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module["_sqlite3_bind_value"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module["_sqlite3_bind_value"]=wasmExports["sqlite3_bind_value"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=wasmExports["sqlite3_bind_zeroblob"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=wasmExports["sqlite3_bind_zeroblob64"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=a0=>(_sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=wasmExports["sqlite3_bind_parameter_count"])(a0);var _sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=wasmExports["sqlite3_bind_parameter_name"])(a0,a1);var _sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=wasmExports["sqlite3_bind_parameter_index"])(a0,a1);var _sqlite3_db_handle=Module["_sqlite3_db_handle"]=a0=>(_sqlite3_db_handle=Module["_sqlite3_db_handle"]=wasmExports["sqlite3_db_handle"])(a0);var _sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=a0=>(_sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=wasmExports["sqlite3_stmt_readonly"])(a0);var _sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=a0=>(_sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=wasmExports["sqlite3_stmt_isexplain"])(a0);var _sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=(a0,a1)=>(_sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=wasmExports["sqlite3_stmt_explain"])(a0,a1);var _sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=a0=>(_sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=wasmExports["sqlite3_stmt_busy"])(a0);var _sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=(a0,a1)=>(_sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=wasmExports["sqlite3_next_stmt"])(a0,a1);var _sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=wasmExports["sqlite3_stmt_status"])(a0,a1,a2);var _sqlite3_sql=Module["_sqlite3_sql"]=a0=>(_sqlite3_sql=Module["_sqlite3_sql"]=wasmExports["sqlite3_sql"])(a0);var _sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=a0=>(_sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=wasmExports["sqlite3_expanded_sql"])(a0);var _sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=a0=>(_sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=wasmExports["sqlite3_value_numeric_type"])(a0);var _sqlite3_blob_open=Module["_sqlite3_blob_open"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module["_sqlite3_blob_open"]=wasmExports["sqlite3_blob_open"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module["_sqlite3_blob_close"]=a0=>(_sqlite3_blob_close=Module["_sqlite3_blob_close"]=wasmExports["sqlite3_blob_close"])(a0);var _sqlite3_blob_read=Module["_sqlite3_blob_read"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module["_sqlite3_blob_read"]=wasmExports["sqlite3_blob_read"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module["_sqlite3_blob_write"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module["_sqlite3_blob_write"]=wasmExports["sqlite3_blob_write"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=a0=>(_sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=wasmExports["sqlite3_blob_bytes"])(a0);var _sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=wasmExports["sqlite3_blob_reopen"])(a0,a1,a2);var _sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=wasmExports["sqlite3_set_authorizer"])(a0,a1,a2);var _sqlite3_strglob=Module["_sqlite3_strglob"]=(a0,a1)=>(_sqlite3_strglob=Module["_sqlite3_strglob"]=wasmExports["sqlite3_strglob"])(a0,a1);var _sqlite3_strlike=Module["_sqlite3_strlike"]=(a0,a1,a2)=>(_sqlite3_strlike=Module["_sqlite3_strlike"]=wasmExports["sqlite3_strlike"])(a0,a1,a2);var _sqlite3_errmsg=Module["_sqlite3_errmsg"]=a0=>(_sqlite3_errmsg=Module["_sqlite3_errmsg"]=wasmExports["sqlite3_errmsg"])(a0);var _sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=a0=>(_sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=wasmExports["sqlite3_auto_extension"])(a0);var _sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=a0=>(_sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=wasmExports["sqlite3_cancel_auto_extension"])(a0);var _sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=()=>(_sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=wasmExports["sqlite3_reset_auto_extension"])();var _sqlite3_prepare=Module["_sqlite3_prepare"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module["_sqlite3_prepare"]=wasmExports["sqlite3_prepare"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=wasmExports["sqlite3_prepare_v3"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module["_sqlite3_prepare16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module["_sqlite3_prepare16"]=wasmExports["sqlite3_prepare16"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=wasmExports["sqlite3_prepare16_v2"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=wasmExports["sqlite3_prepare16_v3"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module["_sqlite3_get_table"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module["_sqlite3_get_table"]=wasmExports["sqlite3_get_table"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module["_sqlite3_free_table"]=a0=>(_sqlite3_free_table=Module["_sqlite3_free_table"]=wasmExports["sqlite3_free_table"])(a0);var _sqlite3_create_module=Module["_sqlite3_create_module"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module["_sqlite3_create_module"]=wasmExports["sqlite3_create_module"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=wasmExports["sqlite3_create_module_v2"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=(a0,a1)=>(_sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=wasmExports["sqlite3_drop_modules"])(a0,a1);var _sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=(a0,a1)=>(_sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=wasmExports["sqlite3_declare_vtab"])(a0,a1);var _sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=a0=>(_sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=wasmExports["sqlite3_vtab_on_conflict"])(a0);var _sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=wasmExports["sqlite3_vtab_config"])(a0,a1,a2);var _sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=(a0,a1)=>(_sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=wasmExports["sqlite3_vtab_collation"])(a0,a1);var _sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=wasmExports["sqlite3_vtab_in"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=wasmExports["sqlite3_vtab_rhs_value"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=a0=>(_sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=wasmExports["sqlite3_vtab_distinct"])(a0);var _sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=wasmExports["sqlite3_keyword_name"])(a0,a1,a2);var _sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=()=>(_sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=wasmExports["sqlite3_keyword_count"])();var _sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=(a0,a1)=>(_sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=wasmExports["sqlite3_keyword_check"])(a0,a1);var _sqlite3_complete=Module["_sqlite3_complete"]=a0=>(_sqlite3_complete=Module["_sqlite3_complete"]=wasmExports["sqlite3_complete"])(a0);var _sqlite3_complete16=Module["_sqlite3_complete16"]=a0=>(_sqlite3_complete16=Module["_sqlite3_complete16"]=wasmExports["sqlite3_complete16"])(a0);var _sqlite3_libversion=Module["_sqlite3_libversion"]=()=>(_sqlite3_libversion=Module["_sqlite3_libversion"]=wasmExports["sqlite3_libversion"])();var _sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=()=>(_sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=wasmExports["sqlite3_libversion_number"])();var _sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=()=>(_sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=wasmExports["sqlite3_threadsafe"])();var _sqlite3_initialize=Module["_sqlite3_initialize"]=()=>(_sqlite3_initialize=Module["_sqlite3_initialize"]=wasmExports["sqlite3_initialize"])();var _sqlite3_shutdown=Module["_sqlite3_shutdown"]=()=>(_sqlite3_shutdown=Module["_sqlite3_shutdown"]=wasmExports["sqlite3_shutdown"])();var _sqlite3_config=Module["_sqlite3_config"]=(a0,a1)=>(_sqlite3_config=Module["_sqlite3_config"]=wasmExports["sqlite3_config"])(a0,a1);var _sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=a0=>(_sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=wasmExports["sqlite3_db_mutex"])(a0);var _sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=a0=>(_sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=wasmExports["sqlite3_db_release_memory"])(a0);var _sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=a0=>(_sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=wasmExports["sqlite3_db_cacheflush"])(a0);var _sqlite3_db_config=Module["_sqlite3_db_config"]=(a0,a1,a2)=>(_sqlite3_db_config=Module["_sqlite3_db_config"]=wasmExports["sqlite3_db_config"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=a0=>(_sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=wasmExports["sqlite3_last_insert_rowid"])(a0);var _sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=wasmExports["sqlite3_set_last_insert_rowid"])(a0,a1,a2);var _sqlite3_changes64=Module["_sqlite3_changes64"]=a0=>(_sqlite3_changes64=Module["_sqlite3_changes64"]=wasmExports["sqlite3_changes64"])(a0);var _sqlite3_changes=Module["_sqlite3_changes"]=a0=>(_sqlite3_changes=Module["_sqlite3_changes"]=wasmExports["sqlite3_changes"])(a0);var _sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=a0=>(_sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=wasmExports["sqlite3_total_changes64"])(a0);var _sqlite3_total_changes=Module["_sqlite3_total_changes"]=a0=>(_sqlite3_total_changes=Module["_sqlite3_total_changes"]=wasmExports["sqlite3_total_changes"])(a0);var _sqlite3_txn_state=Module["_sqlite3_txn_state"]=(a0,a1)=>(_sqlite3_txn_state=Module["_sqlite3_txn_state"]=wasmExports["sqlite3_txn_state"])(a0,a1);var _sqlite3_close=Module["_sqlite3_close"]=a0=>(_sqlite3_close=Module["_sqlite3_close"]=wasmExports["sqlite3_close"])(a0);var _sqlite3_close_v2=Module["_sqlite3_close_v2"]=a0=>(_sqlite3_close_v2=Module["_sqlite3_close_v2"]=wasmExports["sqlite3_close_v2"])(a0);var _sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=wasmExports["sqlite3_busy_handler"])(a0,a1,a2);var _sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=wasmExports["sqlite3_progress_handler"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=(a0,a1)=>(_sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=wasmExports["sqlite3_busy_timeout"])(a0,a1);var _sqlite3_interrupt=Module["_sqlite3_interrupt"]=a0=>(_sqlite3_interrupt=Module["_sqlite3_interrupt"]=wasmExports["sqlite3_interrupt"])(a0);var _sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=a0=>(_sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=wasmExports["sqlite3_is_interrupted"])(a0);var _sqlite3_create_function=Module["_sqlite3_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module["_sqlite3_create_function"]=wasmExports["sqlite3_create_function"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=wasmExports["sqlite3_create_function_v2"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=wasmExports["sqlite3_create_window_function"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module["_sqlite3_create_function16"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module["_sqlite3_create_function16"]=wasmExports["sqlite3_create_function16"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module["_sqlite3_overload_function"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module["_sqlite3_overload_function"]=wasmExports["sqlite3_overload_function"])(a0,a1,a2);var _sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=wasmExports["sqlite3_trace_v2"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=wasmExports["sqlite3_commit_hook"])(a0,a1,a2);var _sqlite3_update_hook=Module["_sqlite3_update_hook"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module["_sqlite3_update_hook"]=wasmExports["sqlite3_update_hook"])(a0,a1,a2);var _sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=wasmExports["sqlite3_rollback_hook"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=wasmExports["sqlite3_autovacuum_pages"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=wasmExports["sqlite3_wal_autocheckpoint"])(a0,a1);var _sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=wasmExports["sqlite3_wal_hook"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=wasmExports["sqlite3_wal_checkpoint_v2"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=wasmExports["sqlite3_wal_checkpoint"])(a0,a1);var _sqlite3_error_offset=Module["_sqlite3_error_offset"]=a0=>(_sqlite3_error_offset=Module["_sqlite3_error_offset"]=wasmExports["sqlite3_error_offset"])(a0);var _sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=a0=>(_sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=wasmExports["sqlite3_errmsg16"])(a0);var _sqlite3_errcode=Module["_sqlite3_errcode"]=a0=>(_sqlite3_errcode=Module["_sqlite3_errcode"]=wasmExports["sqlite3_errcode"])(a0);var _sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=a0=>(_sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=wasmExports["sqlite3_extended_errcode"])(a0);var _sqlite3_system_errno=Module["_sqlite3_system_errno"]=a0=>(_sqlite3_system_errno=Module["_sqlite3_system_errno"]=wasmExports["sqlite3_system_errno"])(a0);var _sqlite3_errstr=Module["_sqlite3_errstr"]=a0=>(_sqlite3_errstr=Module["_sqlite3_errstr"]=wasmExports["sqlite3_errstr"])(a0);var _sqlite3_limit=Module["_sqlite3_limit"]=(a0,a1,a2)=>(_sqlite3_limit=Module["_sqlite3_limit"]=wasmExports["sqlite3_limit"])(a0,a1,a2);var _sqlite3_open=Module["_sqlite3_open"]=(a0,a1)=>(_sqlite3_open=Module["_sqlite3_open"]=wasmExports["sqlite3_open"])(a0,a1);var _sqlite3_open_v2=Module["_sqlite3_open_v2"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module["_sqlite3_open_v2"]=wasmExports["sqlite3_open_v2"])(a0,a1,a2,a3);var _sqlite3_open16=Module["_sqlite3_open16"]=(a0,a1)=>(_sqlite3_open16=Module["_sqlite3_open16"]=wasmExports["sqlite3_open16"])(a0,a1);var _sqlite3_create_collation=Module["_sqlite3_create_collation"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module["_sqlite3_create_collation"]=wasmExports["sqlite3_create_collation"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=wasmExports["sqlite3_create_collation_v2"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=wasmExports["sqlite3_create_collation16"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=wasmExports["sqlite3_collation_needed"])(a0,a1,a2);var _sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=wasmExports["sqlite3_collation_needed16"])(a0,a1,a2);var _sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=(a0,a1)=>(_sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=wasmExports["sqlite3_get_clientdata"])(a0,a1);var _sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=wasmExports["sqlite3_set_clientdata"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=a0=>(_sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=wasmExports["sqlite3_get_autocommit"])(a0);var _sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=wasmExports["sqlite3_table_column_metadata"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module["_sqlite3_sleep"]=a0=>(_sqlite3_sleep=Module["_sqlite3_sleep"]=wasmExports["sqlite3_sleep"])(a0);var _sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=wasmExports["sqlite3_extended_result_codes"])(a0,a1);var _sqlite3_file_control=Module["_sqlite3_file_control"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module["_sqlite3_file_control"]=wasmExports["sqlite3_file_control"])(a0,a1,a2,a3);var _sqlite3_test_control=Module["_sqlite3_test_control"]=(a0,a1)=>(_sqlite3_test_control=Module["_sqlite3_test_control"]=wasmExports["sqlite3_test_control"])(a0,a1);var _sqlite3_create_filename=Module["_sqlite3_create_filename"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module["_sqlite3_create_filename"]=wasmExports["sqlite3_create_filename"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module["_sqlite3_free_filename"]=a0=>(_sqlite3_free_filename=Module["_sqlite3_free_filename"]=wasmExports["sqlite3_free_filename"])(a0);var _sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=(a0,a1)=>(_sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=wasmExports["sqlite3_uri_parameter"])(a0,a1);var _sqlite3_uri_key=Module["_sqlite3_uri_key"]=(a0,a1)=>(_sqlite3_uri_key=Module["_sqlite3_uri_key"]=wasmExports["sqlite3_uri_key"])(a0,a1);var _sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=wasmExports["sqlite3_uri_boolean"])(a0,a1,a2);var _sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=wasmExports["sqlite3_uri_int64"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module["_sqlite3_filename_database"]=a0=>(_sqlite3_filename_database=Module["_sqlite3_filename_database"]=wasmExports["sqlite3_filename_database"])(a0);var _sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=a0=>(_sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=wasmExports["sqlite3_filename_journal"])(a0);var _sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=a0=>(_sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=wasmExports["sqlite3_filename_wal"])(a0);var _sqlite3_db_name=Module["_sqlite3_db_name"]=(a0,a1)=>(_sqlite3_db_name=Module["_sqlite3_db_name"]=wasmExports["sqlite3_db_name"])(a0,a1);var _sqlite3_db_filename=Module["_sqlite3_db_filename"]=(a0,a1)=>(_sqlite3_db_filename=Module["_sqlite3_db_filename"]=wasmExports["sqlite3_db_filename"])(a0,a1);var _sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=(a0,a1)=>(_sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=wasmExports["sqlite3_db_readonly"])(a0,a1);var _sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=a0=>(_sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=wasmExports["sqlite3_compileoption_used"])(a0);var _sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=a0=>(_sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=wasmExports["sqlite3_compileoption_get"])(a0);var _sqlite3_sourceid=Module["_sqlite3_sourceid"]=()=>(_sqlite3_sourceid=Module["_sqlite3_sourceid"]=wasmExports["sqlite3_sourceid"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["malloc"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["free"])(a0);var _RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=a0=>(_RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=wasmExports["RegisterExtensionFunctions"])(a0);var _getSqliteFree=Module["_getSqliteFree"]=()=>(_getSqliteFree=Module["_getSqliteFree"]=wasmExports["getSqliteFree"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["main"])(a0,a1);var _libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=wasmExports["libauthorizer_set_authorizer"])(a0,a1,a2);var _libfunction_create_function=Module["_libfunction_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module["_libfunction_create_function"]=wasmExports["libfunction_create_function"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module["_libhook_commit_hook"]=(a0,a1,a2)=>(_libhook_commit_hook=Module["_libhook_commit_hook"]=wasmExports["libhook_commit_hook"])(a0,a1,a2);var _libhook_update_hook=Module["_libhook_update_hook"]=(a0,a1,a2)=>(_libhook_update_hook=Module["_libhook_update_hook"]=wasmExports["libhook_update_hook"])(a0,a1,a2);var _libprogress_progress_handler=Module["_libprogress_progress_handler"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module["_libprogress_progress_handler"]=wasmExports["libprogress_progress_handler"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module["_libvfs_vfs_register"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module["_libvfs_vfs_register"]=wasmExports["libvfs_vfs_register"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports["_emscripten_tempret_get"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"])();var _sqlite3_version=Module["_sqlite3_version"]=3232;Module["getTempRet0"]=getTempRet0;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["addFunction"]=addFunction;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["intArrayFromString"]=intArrayFromString;Module["intArrayToString"]=intArrayToString;Module["AsciiToString"]=AsciiToString;Module["UTF16ToString"]=UTF16ToString;Module["stringToUTF16"]=stringToUTF16;Module["UTF32ToString"]=UTF32ToString;Module["stringToUTF32"]=stringToUTF32;Module["writeArrayToMemory"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);Promise.resolve(ret).then(result=>{exitJS(result,true)}).catch(e=>{handleException(e)});return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["set_authorizer"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,"i32");const result=ccall("libauthorizer_set_authorizer","number",["number","number","number"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module["setCallback"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=["xFunc","xStep","xFinal"];const mapFunctionNameToKey=new Map;Module["create_function"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module["_sqlite3_malloc"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["commit_hook"]=function(db,xCommitHook){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,"i32");ccall("libhook_commit_hook","void",["number","number","number"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module["setCallback"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["progress_handler"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,"i32");ccall("libprogress_progress_handler","number",["number","number","number","number"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module["setCallback"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"];const mapVFSNameToKey=new Map;Module["vfs_register"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<DLWSLA< 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π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 ar91%{;{g*~dG+5e-h7G)ypwTT@c#k(s;yE0 delta 234966 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 qx2~WNzJU5lPYCcYfFC&ak!j z&HVht`#GHm0Y~yCC=4@hu`^_PO4#82mK-HDAnS)TD^et4Jw#d$r4Gd$G*SK+n$N{2 z7hw22<|>?=^*iOxdf&(E!=JML(CE%(l${s3Z*$>~Reqb^7rZY<`wfnndJR!{gwTCY zlq~r=6LQslbaYMFq1qqJF?Ux~`{5i2wyN4sKmq7j;nZiG?OXSS*AsXsaOscT22Qit<-K` zdIFz@jufjIAGXt75ryjZk^-%dr7^Wr4R{5~)kqC?hAEq{U=#7mGWV*2036X?CKOe& zlObP`03t1IBKJgx;HtWVhZd?i@|?H=j>yB*4X@!1Q6^9*45m5}hUJb`{X`V@r0vYQ z>S-iD0X7XFCty!g8tl%wHgr9`nV`;Fzg6G#c&657Z8$vd`$flu^YVV*Xi0cI@25r= zhmrMu6uC@}sP`w~(qC8ayMhy+*Hi!MFtEKp%H4KfwTbO_kGQZr_FMOOT^@0D#8v@}pR;)~ zpy%I0`;LA}gvp#SHFYdZPCwdcZvikaloW#KtWcK-MUPEr)cFp>r)G!w52TX*)2?%Nl_{+<1f zNXVCU_Qy7+$Kgeorg0&Za^hlqkxw)2yz^-2*WmATe|a&y)ZllC9u9rG_#-fVoZZFW zOAX_?`Z4aeYnPqY)n6HvSKD#X1#!Y;eR^~>GKgIZr)@6YnN5UWosniV6#g}Wz(HBS_j3sZXgZ8&Cec5lCL{VOVg zgv_wO%k{nevE?Uf>OPCedA{H6p5nS{9_`u3m5~h5oc@rCO0Jii9rOZx<2)u%opmDR{u!lSfCMM=c7d1NOkMi0 zCjC)*yBq&I#a89R`{ZiVhuYYs?~-l#4TZkYVZrRn#@iD)=H) z@H)N_2Nbj-3TDTJ7Ylx8#A9NWx2Q)Yo#%l87R_Qd>|gZ1=!}p(EE7)vHg$Z5@h*Na zJW=%B_~gx^A9}bFdTfFO!?6vatlo8zG5+LIor}gjQK1osQ`Xl&>U4k?MR`h`G>b#) zBmN`@hn-?J)s&bp7m)X8H^voalzg{vNPpij37GylO9z$RyRG4j(y)nSz*;OyZ3>e# zh41ZVTjXqpHY&Z-zPP6shEGbqca|BMN)BE|pwYg+AaaYyx3!EG5Cv^NX*(>Y)c-ack1g22$m;HRwN1HS2 zl;;W$vbZPMk?&Xw1oSi<*yQ{ATzo}1xykn$Y_<#vi~vqa3mfdky!mTiHFShCJ4;1Q z`9C-LfkO~0oY7wvo^O^C#N-J%v=VuMB81d~5d#d0`}<<26mK-cc2Xm!BZi&(`%&G# z4^Y`Pt_T;V5$guAB(_#NBjw2B3}s?cqq zAKoz+f5@f{VLhfJ8vHOEFwk$uI_j`}e2-LqKEO z_I?$h>2i_drV~k=!5ga?7&xQdLx`0VFq9>1`A+m21(G;H@It=n%%GF6nSz4=;Sy@u& zYmAbMYLXt4;a;<{94{p?nT=adF#x@RoYW;9i_AJm84rO`F~V69w+8t_sVYrGQln#0DB|NM!-K

    ~%ccw>$ejO)u2;1OjBv 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

    JQ&K# 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 E00bSJ>Hq)$ diff --git a/dist/wa-sqlite.mjs b/dist/wa-sqlite.mjs index 1bea1377..cae4604e 100644 --- a/dist/wa-sqlite.mjs +++ b/dist/wa-sqlite.mjs @@ -6,7 +6,7 @@ var Module = (() => { function(moduleArg = {}) { var moduleRtn; -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))}).then(onload,onerror)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module["locateFile"]){var f="wa-sqlite.wasm";if(!isDataURI(f)){return locateFile(f)}return f}return new URL("wa-sqlite.wasm",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["la"];updateMemoryViews();wasmTable=wasmExports["ef"];addOnInit(wasmExports["ma"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeHEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:"short"}).split(" ")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffsetDate.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify==="object"?Asyncify.handleAsync.bind(Asyncify):null;Module["handleAsync"]=handleAsync;const targets=new Map;Module["setCallback"]=(key,target)=>targets.set(key,target);Module["getCallback"]=key=>targets.get(key);Module["deleteCallback"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver==="function"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error("Synchronous WebAssembly cannot call async function")}const result=f.apply(receiver,args);if(typeof result?.then=="function"){console.error("unexpected Promise",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var sigToWasmTypes=sig=>{var typeNames={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i{if(typeof WebAssembly.Function=="function"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports["f"];return wrappedFunc};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>wasmTable.set(idx,func);var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={a:___assert_fail,Y:___syscall_chmod,$:___syscall_faccessat,Z:___syscall_fchmod,X:___syscall_fchown32,b:___syscall_fcntl64,W:___syscall_fstat64,y:___syscall_ftruncate64,Q:___syscall_getcwd,U:___syscall_lstat64,N:___syscall_mkdirat,S:___syscall_newfstatat,M:___syscall_openat,K:___syscall_readlinkat,J:___syscall_rmdir,V:___syscall_stat64,G:___syscall_unlinkat,F:___syscall_utimensat,w:__localtime_js,u:__mmap_js,v:__munmap_js,H:__tzset_js,n:_emscripten_date_now,m:_emscripten_get_now,D:_emscripten_resize_heap,O:_environ_get,P:_environ_sizes_get,o:_fd_close,E:_fd_fdstat_get,L:_fd_read,x:_fd_seek,R:_fd_sync,I:_fd_write,s:_ipp,t:_ipp_async,ga:_ippipppp,ka:_ippipppp_async,i:_ippp,j:_ippp_async,c:_ipppi,d:_ipppi_async,ca:_ipppiii,da:_ipppiii_async,ea:_ipppiiip,fa:_ipppiiip_async,g:_ipppip,h:_ipppip_async,z:_ipppj,A:_ipppj_async,e:_ipppp,f:_ipppp_async,aa:_ippppi,ba:_ippppi_async,B:_ippppij,C:_ippppij_async,p:_ippppip,q:_ippppip_async,ha:_ipppppip,ia:_ipppppip_async,ja:_vppippii,r:_vppippii_async,k:_vppp,l:_vppp_async,T:_vpppip,_:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["ma"])();var _sqlite3_status64=Module["_sqlite3_status64"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module["_sqlite3_status64"]=wasmExports["na"])(a0,a1,a2,a3);var _sqlite3_status=Module["_sqlite3_status"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module["_sqlite3_status"]=wasmExports["oa"])(a0,a1,a2,a3);var _sqlite3_db_status=Module["_sqlite3_db_status"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module["_sqlite3_db_status"]=wasmExports["pa"])(a0,a1,a2,a3,a4);var _sqlite3_msize=Module["_sqlite3_msize"]=a0=>(_sqlite3_msize=Module["_sqlite3_msize"]=wasmExports["qa"])(a0);var _sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=a0=>(_sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=wasmExports["ra"])(a0);var _sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=(a0,a1)=>(_sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=wasmExports["sa"])(a0,a1);var _sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=a0=>(_sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=wasmExports["ta"])(a0);var _sqlite3_release_memory=Module["_sqlite3_release_memory"]=a0=>(_sqlite3_release_memory=Module["_sqlite3_release_memory"]=wasmExports["ua"])(a0);var _sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=wasmExports["va"])(a0,a1);var _sqlite3_memory_used=Module["_sqlite3_memory_used"]=()=>(_sqlite3_memory_used=Module["_sqlite3_memory_used"]=wasmExports["wa"])();var _sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=wasmExports["xa"])(a0,a1);var _sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=a0=>(_sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=wasmExports["ya"])(a0);var _sqlite3_malloc=Module["_sqlite3_malloc"]=a0=>(_sqlite3_malloc=Module["_sqlite3_malloc"]=wasmExports["za"])(a0);var _sqlite3_malloc64=Module["_sqlite3_malloc64"]=(a0,a1)=>(_sqlite3_malloc64=Module["_sqlite3_malloc64"]=wasmExports["Aa"])(a0,a1);var _sqlite3_free=Module["_sqlite3_free"]=a0=>(_sqlite3_free=Module["_sqlite3_free"]=wasmExports["Ba"])(a0);var _sqlite3_realloc=Module["_sqlite3_realloc"]=(a0,a1)=>(_sqlite3_realloc=Module["_sqlite3_realloc"]=wasmExports["Ca"])(a0,a1);var _sqlite3_realloc64=Module["_sqlite3_realloc64"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module["_sqlite3_realloc64"]=wasmExports["Da"])(a0,a1,a2);var _sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=wasmExports["Ea"])(a0,a1,a2);var _sqlite3_str_append=Module["_sqlite3_str_append"]=(a0,a1,a2)=>(_sqlite3_str_append=Module["_sqlite3_str_append"]=wasmExports["Fa"])(a0,a1,a2);var _sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=wasmExports["Ga"])(a0,a1,a2);var _sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=(a0,a1)=>(_sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=wasmExports["Ha"])(a0,a1);var _sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=wasmExports["Ia"])(a0,a1,a2);var _sqlite3_str_finish=Module["_sqlite3_str_finish"]=a0=>(_sqlite3_str_finish=Module["_sqlite3_str_finish"]=wasmExports["Ja"])(a0);var _sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=a0=>(_sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=wasmExports["Ka"])(a0);var _sqlite3_str_length=Module["_sqlite3_str_length"]=a0=>(_sqlite3_str_length=Module["_sqlite3_str_length"]=wasmExports["La"])(a0);var _sqlite3_str_value=Module["_sqlite3_str_value"]=a0=>(_sqlite3_str_value=Module["_sqlite3_str_value"]=wasmExports["Ma"])(a0);var _sqlite3_str_reset=Module["_sqlite3_str_reset"]=a0=>(_sqlite3_str_reset=Module["_sqlite3_str_reset"]=wasmExports["Na"])(a0);var _sqlite3_str_new=Module["_sqlite3_str_new"]=a0=>(_sqlite3_str_new=Module["_sqlite3_str_new"]=wasmExports["Oa"])(a0);var _sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=(a0,a1)=>(_sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=wasmExports["Pa"])(a0,a1);var _sqlite3_mprintf=Module["_sqlite3_mprintf"]=(a0,a1)=>(_sqlite3_mprintf=Module["_sqlite3_mprintf"]=wasmExports["Qa"])(a0,a1);var _sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=wasmExports["Ra"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module["_sqlite3_snprintf"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module["_sqlite3_snprintf"]=wasmExports["Sa"])(a0,a1,a2,a3);var _sqlite3_log=Module["_sqlite3_log"]=(a0,a1,a2)=>(_sqlite3_log=Module["_sqlite3_log"]=wasmExports["Ta"])(a0,a1,a2);var _sqlite3_randomness=Module["_sqlite3_randomness"]=(a0,a1)=>(_sqlite3_randomness=Module["_sqlite3_randomness"]=wasmExports["Ua"])(a0,a1);var _sqlite3_stricmp=Module["_sqlite3_stricmp"]=(a0,a1)=>(_sqlite3_stricmp=Module["_sqlite3_stricmp"]=wasmExports["Va"])(a0,a1);var _sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=wasmExports["Wa"])(a0,a1,a2);var _sqlite3_os_init=Module["_sqlite3_os_init"]=()=>(_sqlite3_os_init=Module["_sqlite3_os_init"]=wasmExports["Xa"])();var _sqlite3_os_end=Module["_sqlite3_os_end"]=()=>(_sqlite3_os_end=Module["_sqlite3_os_end"]=wasmExports["Ya"])();var _sqlite3_serialize=Module["_sqlite3_serialize"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module["_sqlite3_serialize"]=wasmExports["Za"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=wasmExports["_a"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module["_sqlite3_step"]=a0=>(_sqlite3_step=Module["_sqlite3_step"]=wasmExports["$a"])(a0);var _sqlite3_column_int64=Module["_sqlite3_column_int64"]=(a0,a1)=>(_sqlite3_column_int64=Module["_sqlite3_column_int64"]=wasmExports["ab"])(a0,a1);var _sqlite3_reset=Module["_sqlite3_reset"]=a0=>(_sqlite3_reset=Module["_sqlite3_reset"]=wasmExports["bb"])(a0);var _sqlite3_exec=Module["_sqlite3_exec"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module["_sqlite3_exec"]=wasmExports["cb"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module["_sqlite3_column_int"]=(a0,a1)=>(_sqlite3_column_int=Module["_sqlite3_column_int"]=wasmExports["db"])(a0,a1);var _sqlite3_finalize=Module["_sqlite3_finalize"]=a0=>(_sqlite3_finalize=Module["_sqlite3_finalize"]=wasmExports["eb"])(a0);var _sqlite3_deserialize=Module["_sqlite3_deserialize"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module["_sqlite3_deserialize"]=wasmExports["fb"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=a0=>(_sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=wasmExports["gb"])(a0);var _sqlite3_backup_init=Module["_sqlite3_backup_init"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module["_sqlite3_backup_init"]=wasmExports["hb"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module["_sqlite3_backup_step"]=(a0,a1)=>(_sqlite3_backup_step=Module["_sqlite3_backup_step"]=wasmExports["ib"])(a0,a1);var _sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=a0=>(_sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=wasmExports["jb"])(a0);var _sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=a0=>(_sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=wasmExports["kb"])(a0);var _sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=a0=>(_sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=wasmExports["lb"])(a0);var _sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=a0=>(_sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=wasmExports["mb"])(a0);var _sqlite3_value_blob=Module["_sqlite3_value_blob"]=a0=>(_sqlite3_value_blob=Module["_sqlite3_value_blob"]=wasmExports["nb"])(a0);var _sqlite3_value_text=Module["_sqlite3_value_text"]=a0=>(_sqlite3_value_text=Module["_sqlite3_value_text"]=wasmExports["ob"])(a0);var _sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=a0=>(_sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=wasmExports["pb"])(a0);var _sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=a0=>(_sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=wasmExports["qb"])(a0);var _sqlite3_value_double=Module["_sqlite3_value_double"]=a0=>(_sqlite3_value_double=Module["_sqlite3_value_double"]=wasmExports["rb"])(a0);var _sqlite3_value_int=Module["_sqlite3_value_int"]=a0=>(_sqlite3_value_int=Module["_sqlite3_value_int"]=wasmExports["sb"])(a0);var _sqlite3_value_int64=Module["_sqlite3_value_int64"]=a0=>(_sqlite3_value_int64=Module["_sqlite3_value_int64"]=wasmExports["tb"])(a0);var _sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=a0=>(_sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=wasmExports["ub"])(a0);var _sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=(a0,a1)=>(_sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=wasmExports["vb"])(a0,a1);var _sqlite3_value_text16=Module["_sqlite3_value_text16"]=a0=>(_sqlite3_value_text16=Module["_sqlite3_value_text16"]=wasmExports["wb"])(a0);var _sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=a0=>(_sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=wasmExports["xb"])(a0);var _sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=a0=>(_sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=wasmExports["yb"])(a0);var _sqlite3_value_type=Module["_sqlite3_value_type"]=a0=>(_sqlite3_value_type=Module["_sqlite3_value_type"]=wasmExports["zb"])(a0);var _sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=a0=>(_sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=wasmExports["Ab"])(a0);var _sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=a0=>(_sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=wasmExports["Bb"])(a0);var _sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=a0=>(_sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=wasmExports["Cb"])(a0);var _sqlite3_value_dup=Module["_sqlite3_value_dup"]=a0=>(_sqlite3_value_dup=Module["_sqlite3_value_dup"]=wasmExports["Db"])(a0);var _sqlite3_value_free=Module["_sqlite3_value_free"]=a0=>(_sqlite3_value_free=Module["_sqlite3_value_free"]=wasmExports["Eb"])(a0);var _sqlite3_result_blob=Module["_sqlite3_result_blob"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module["_sqlite3_result_blob"]=wasmExports["Fb"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=wasmExports["Gb"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module["_sqlite3_result_double"]=(a0,a1)=>(_sqlite3_result_double=Module["_sqlite3_result_double"]=wasmExports["Hb"])(a0,a1);var _sqlite3_result_error=Module["_sqlite3_result_error"]=(a0,a1,a2)=>(_sqlite3_result_error=Module["_sqlite3_result_error"]=wasmExports["Ib"])(a0,a1,a2);var _sqlite3_result_error16=Module["_sqlite3_result_error16"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module["_sqlite3_result_error16"]=wasmExports["Jb"])(a0,a1,a2);var _sqlite3_result_int=Module["_sqlite3_result_int"]=(a0,a1)=>(_sqlite3_result_int=Module["_sqlite3_result_int"]=wasmExports["Kb"])(a0,a1);var _sqlite3_result_int64=Module["_sqlite3_result_int64"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module["_sqlite3_result_int64"]=wasmExports["Lb"])(a0,a1,a2);var _sqlite3_result_null=Module["_sqlite3_result_null"]=a0=>(_sqlite3_result_null=Module["_sqlite3_result_null"]=wasmExports["Mb"])(a0);var _sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=wasmExports["Nb"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=(a0,a1)=>(_sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=wasmExports["Ob"])(a0,a1);var _sqlite3_result_text=Module["_sqlite3_result_text"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module["_sqlite3_result_text"]=wasmExports["Pb"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module["_sqlite3_result_text64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module["_sqlite3_result_text64"]=wasmExports["Qb"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module["_sqlite3_result_text16"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module["_sqlite3_result_text16"]=wasmExports["Rb"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=wasmExports["Sb"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=wasmExports["Tb"])(a0,a1,a2,a3);var _sqlite3_result_value=Module["_sqlite3_result_value"]=(a0,a1)=>(_sqlite3_result_value=Module["_sqlite3_result_value"]=wasmExports["Ub"])(a0,a1);var _sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=a0=>(_sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=wasmExports["Vb"])(a0);var _sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=wasmExports["Wb"])(a0,a1);var _sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=wasmExports["Xb"])(a0,a1,a2);var _sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=(a0,a1)=>(_sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=wasmExports["Yb"])(a0,a1);var _sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=a0=>(_sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=wasmExports["Zb"])(a0);var _sqlite3_user_data=Module["_sqlite3_user_data"]=a0=>(_sqlite3_user_data=Module["_sqlite3_user_data"]=wasmExports["_b"])(a0);var _sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=a0=>(_sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=wasmExports["$b"])(a0);var _sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=a0=>(_sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=wasmExports["ac"])(a0);var _sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=wasmExports["bc"])(a0,a1);var _sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=wasmExports["cc"])(a0,a1);var _sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=(a0,a1)=>(_sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=wasmExports["dc"])(a0,a1);var _sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=(a0,a1)=>(_sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=wasmExports["ec"])(a0,a1);var _sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=wasmExports["fc"])(a0,a1,a2,a3);var _sqlite3_column_count=Module["_sqlite3_column_count"]=a0=>(_sqlite3_column_count=Module["_sqlite3_column_count"]=wasmExports["gc"])(a0);var _sqlite3_data_count=Module["_sqlite3_data_count"]=a0=>(_sqlite3_data_count=Module["_sqlite3_data_count"]=wasmExports["hc"])(a0);var _sqlite3_column_blob=Module["_sqlite3_column_blob"]=(a0,a1)=>(_sqlite3_column_blob=Module["_sqlite3_column_blob"]=wasmExports["ic"])(a0,a1);var _sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=(a0,a1)=>(_sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=wasmExports["jc"])(a0,a1);var _sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=(a0,a1)=>(_sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=wasmExports["kc"])(a0,a1);var _sqlite3_column_double=Module["_sqlite3_column_double"]=(a0,a1)=>(_sqlite3_column_double=Module["_sqlite3_column_double"]=wasmExports["lc"])(a0,a1);var _sqlite3_column_text=Module["_sqlite3_column_text"]=(a0,a1)=>(_sqlite3_column_text=Module["_sqlite3_column_text"]=wasmExports["mc"])(a0,a1);var _sqlite3_column_value=Module["_sqlite3_column_value"]=(a0,a1)=>(_sqlite3_column_value=Module["_sqlite3_column_value"]=wasmExports["nc"])(a0,a1);var _sqlite3_column_text16=Module["_sqlite3_column_text16"]=(a0,a1)=>(_sqlite3_column_text16=Module["_sqlite3_column_text16"]=wasmExports["oc"])(a0,a1);var _sqlite3_column_type=Module["_sqlite3_column_type"]=(a0,a1)=>(_sqlite3_column_type=Module["_sqlite3_column_type"]=wasmExports["pc"])(a0,a1);var _sqlite3_column_name=Module["_sqlite3_column_name"]=(a0,a1)=>(_sqlite3_column_name=Module["_sqlite3_column_name"]=wasmExports["qc"])(a0,a1);var _sqlite3_column_name16=Module["_sqlite3_column_name16"]=(a0,a1)=>(_sqlite3_column_name16=Module["_sqlite3_column_name16"]=wasmExports["rc"])(a0,a1);var _sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=wasmExports["sc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=wasmExports["tc"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module["_sqlite3_bind_double"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module["_sqlite3_bind_double"]=wasmExports["uc"])(a0,a1,a2);var _sqlite3_bind_int=Module["_sqlite3_bind_int"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module["_sqlite3_bind_int"]=wasmExports["vc"])(a0,a1,a2);var _sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=wasmExports["wc"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module["_sqlite3_bind_null"]=(a0,a1)=>(_sqlite3_bind_null=Module["_sqlite3_bind_null"]=wasmExports["xc"])(a0,a1);var _sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=wasmExports["yc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module["_sqlite3_bind_text"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module["_sqlite3_bind_text"]=wasmExports["zc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=wasmExports["Ac"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=wasmExports["Bc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module["_sqlite3_bind_value"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module["_sqlite3_bind_value"]=wasmExports["Cc"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=wasmExports["Dc"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=wasmExports["Ec"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=a0=>(_sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=wasmExports["Fc"])(a0);var _sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=wasmExports["Gc"])(a0,a1);var _sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=wasmExports["Hc"])(a0,a1);var _sqlite3_db_handle=Module["_sqlite3_db_handle"]=a0=>(_sqlite3_db_handle=Module["_sqlite3_db_handle"]=wasmExports["Ic"])(a0);var _sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=a0=>(_sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=wasmExports["Jc"])(a0);var _sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=a0=>(_sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=wasmExports["Kc"])(a0);var _sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=(a0,a1)=>(_sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=wasmExports["Lc"])(a0,a1);var _sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=a0=>(_sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=wasmExports["Mc"])(a0);var _sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=(a0,a1)=>(_sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=wasmExports["Nc"])(a0,a1);var _sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=wasmExports["Oc"])(a0,a1,a2);var _sqlite3_sql=Module["_sqlite3_sql"]=a0=>(_sqlite3_sql=Module["_sqlite3_sql"]=wasmExports["Pc"])(a0);var _sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=a0=>(_sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=wasmExports["Qc"])(a0);var _sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=a0=>(_sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=wasmExports["Rc"])(a0);var _sqlite3_blob_open=Module["_sqlite3_blob_open"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module["_sqlite3_blob_open"]=wasmExports["Sc"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module["_sqlite3_blob_close"]=a0=>(_sqlite3_blob_close=Module["_sqlite3_blob_close"]=wasmExports["Tc"])(a0);var _sqlite3_blob_read=Module["_sqlite3_blob_read"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module["_sqlite3_blob_read"]=wasmExports["Uc"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module["_sqlite3_blob_write"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module["_sqlite3_blob_write"]=wasmExports["Vc"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=a0=>(_sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=wasmExports["Wc"])(a0);var _sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=wasmExports["Xc"])(a0,a1,a2);var _sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=wasmExports["Yc"])(a0,a1,a2);var _sqlite3_strglob=Module["_sqlite3_strglob"]=(a0,a1)=>(_sqlite3_strglob=Module["_sqlite3_strglob"]=wasmExports["Zc"])(a0,a1);var _sqlite3_strlike=Module["_sqlite3_strlike"]=(a0,a1,a2)=>(_sqlite3_strlike=Module["_sqlite3_strlike"]=wasmExports["_c"])(a0,a1,a2);var _sqlite3_errmsg=Module["_sqlite3_errmsg"]=a0=>(_sqlite3_errmsg=Module["_sqlite3_errmsg"]=wasmExports["$c"])(a0);var _sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=a0=>(_sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=wasmExports["ad"])(a0);var _sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=a0=>(_sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=wasmExports["bd"])(a0);var _sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=()=>(_sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=wasmExports["cd"])();var _sqlite3_prepare=Module["_sqlite3_prepare"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module["_sqlite3_prepare"]=wasmExports["dd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=wasmExports["ed"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module["_sqlite3_prepare16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module["_sqlite3_prepare16"]=wasmExports["fd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=wasmExports["gd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=wasmExports["hd"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module["_sqlite3_get_table"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module["_sqlite3_get_table"]=wasmExports["id"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module["_sqlite3_free_table"]=a0=>(_sqlite3_free_table=Module["_sqlite3_free_table"]=wasmExports["jd"])(a0);var _sqlite3_create_module=Module["_sqlite3_create_module"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module["_sqlite3_create_module"]=wasmExports["kd"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=wasmExports["ld"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=(a0,a1)=>(_sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=wasmExports["md"])(a0,a1);var _sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=(a0,a1)=>(_sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=wasmExports["nd"])(a0,a1);var _sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=a0=>(_sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=wasmExports["od"])(a0);var _sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=wasmExports["pd"])(a0,a1,a2);var _sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=(a0,a1)=>(_sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=wasmExports["qd"])(a0,a1);var _sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=wasmExports["rd"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=wasmExports["sd"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=a0=>(_sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=wasmExports["td"])(a0);var _sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=wasmExports["ud"])(a0,a1,a2);var _sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=()=>(_sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=wasmExports["vd"])();var _sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=(a0,a1)=>(_sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=wasmExports["wd"])(a0,a1);var _sqlite3_complete=Module["_sqlite3_complete"]=a0=>(_sqlite3_complete=Module["_sqlite3_complete"]=wasmExports["xd"])(a0);var _sqlite3_complete16=Module["_sqlite3_complete16"]=a0=>(_sqlite3_complete16=Module["_sqlite3_complete16"]=wasmExports["yd"])(a0);var _sqlite3_libversion=Module["_sqlite3_libversion"]=()=>(_sqlite3_libversion=Module["_sqlite3_libversion"]=wasmExports["zd"])();var _sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=()=>(_sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=wasmExports["Ad"])();var _sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=()=>(_sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=wasmExports["Bd"])();var _sqlite3_initialize=Module["_sqlite3_initialize"]=()=>(_sqlite3_initialize=Module["_sqlite3_initialize"]=wasmExports["Cd"])();var _sqlite3_shutdown=Module["_sqlite3_shutdown"]=()=>(_sqlite3_shutdown=Module["_sqlite3_shutdown"]=wasmExports["Dd"])();var _sqlite3_config=Module["_sqlite3_config"]=(a0,a1)=>(_sqlite3_config=Module["_sqlite3_config"]=wasmExports["Ed"])(a0,a1);var _sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=a0=>(_sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=wasmExports["Fd"])(a0);var _sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=a0=>(_sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=wasmExports["Gd"])(a0);var _sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=a0=>(_sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=wasmExports["Hd"])(a0);var _sqlite3_db_config=Module["_sqlite3_db_config"]=(a0,a1,a2)=>(_sqlite3_db_config=Module["_sqlite3_db_config"]=wasmExports["Id"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=a0=>(_sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=wasmExports["Jd"])(a0);var _sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=wasmExports["Kd"])(a0,a1,a2);var _sqlite3_changes64=Module["_sqlite3_changes64"]=a0=>(_sqlite3_changes64=Module["_sqlite3_changes64"]=wasmExports["Ld"])(a0);var _sqlite3_changes=Module["_sqlite3_changes"]=a0=>(_sqlite3_changes=Module["_sqlite3_changes"]=wasmExports["Md"])(a0);var _sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=a0=>(_sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=wasmExports["Nd"])(a0);var _sqlite3_total_changes=Module["_sqlite3_total_changes"]=a0=>(_sqlite3_total_changes=Module["_sqlite3_total_changes"]=wasmExports["Od"])(a0);var _sqlite3_txn_state=Module["_sqlite3_txn_state"]=(a0,a1)=>(_sqlite3_txn_state=Module["_sqlite3_txn_state"]=wasmExports["Pd"])(a0,a1);var _sqlite3_close=Module["_sqlite3_close"]=a0=>(_sqlite3_close=Module["_sqlite3_close"]=wasmExports["Qd"])(a0);var _sqlite3_close_v2=Module["_sqlite3_close_v2"]=a0=>(_sqlite3_close_v2=Module["_sqlite3_close_v2"]=wasmExports["Rd"])(a0);var _sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=wasmExports["Sd"])(a0,a1,a2);var _sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=wasmExports["Td"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=(a0,a1)=>(_sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=wasmExports["Ud"])(a0,a1);var _sqlite3_interrupt=Module["_sqlite3_interrupt"]=a0=>(_sqlite3_interrupt=Module["_sqlite3_interrupt"]=wasmExports["Vd"])(a0);var _sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=a0=>(_sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=wasmExports["Wd"])(a0);var _sqlite3_create_function=Module["_sqlite3_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module["_sqlite3_create_function"]=wasmExports["Xd"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=wasmExports["Yd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=wasmExports["Zd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module["_sqlite3_create_function16"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module["_sqlite3_create_function16"]=wasmExports["_d"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module["_sqlite3_overload_function"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module["_sqlite3_overload_function"]=wasmExports["$d"])(a0,a1,a2);var _sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=wasmExports["ae"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=wasmExports["be"])(a0,a1,a2);var _sqlite3_update_hook=Module["_sqlite3_update_hook"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module["_sqlite3_update_hook"]=wasmExports["ce"])(a0,a1,a2);var _sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=wasmExports["de"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=wasmExports["ee"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=wasmExports["fe"])(a0,a1);var _sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=wasmExports["ge"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=wasmExports["he"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=wasmExports["ie"])(a0,a1);var _sqlite3_error_offset=Module["_sqlite3_error_offset"]=a0=>(_sqlite3_error_offset=Module["_sqlite3_error_offset"]=wasmExports["je"])(a0);var _sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=a0=>(_sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=wasmExports["ke"])(a0);var _sqlite3_errcode=Module["_sqlite3_errcode"]=a0=>(_sqlite3_errcode=Module["_sqlite3_errcode"]=wasmExports["le"])(a0);var _sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=a0=>(_sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=wasmExports["me"])(a0);var _sqlite3_system_errno=Module["_sqlite3_system_errno"]=a0=>(_sqlite3_system_errno=Module["_sqlite3_system_errno"]=wasmExports["ne"])(a0);var _sqlite3_errstr=Module["_sqlite3_errstr"]=a0=>(_sqlite3_errstr=Module["_sqlite3_errstr"]=wasmExports["oe"])(a0);var _sqlite3_limit=Module["_sqlite3_limit"]=(a0,a1,a2)=>(_sqlite3_limit=Module["_sqlite3_limit"]=wasmExports["pe"])(a0,a1,a2);var _sqlite3_open=Module["_sqlite3_open"]=(a0,a1)=>(_sqlite3_open=Module["_sqlite3_open"]=wasmExports["qe"])(a0,a1);var _sqlite3_open_v2=Module["_sqlite3_open_v2"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module["_sqlite3_open_v2"]=wasmExports["re"])(a0,a1,a2,a3);var _sqlite3_open16=Module["_sqlite3_open16"]=(a0,a1)=>(_sqlite3_open16=Module["_sqlite3_open16"]=wasmExports["se"])(a0,a1);var _sqlite3_create_collation=Module["_sqlite3_create_collation"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module["_sqlite3_create_collation"]=wasmExports["te"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=wasmExports["ue"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=wasmExports["ve"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=wasmExports["we"])(a0,a1,a2);var _sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=wasmExports["xe"])(a0,a1,a2);var _sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=(a0,a1)=>(_sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=wasmExports["ye"])(a0,a1);var _sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=wasmExports["ze"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=a0=>(_sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=wasmExports["Ae"])(a0);var _sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=wasmExports["Be"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module["_sqlite3_sleep"]=a0=>(_sqlite3_sleep=Module["_sqlite3_sleep"]=wasmExports["Ce"])(a0);var _sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=wasmExports["De"])(a0,a1);var _sqlite3_file_control=Module["_sqlite3_file_control"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module["_sqlite3_file_control"]=wasmExports["Ee"])(a0,a1,a2,a3);var _sqlite3_test_control=Module["_sqlite3_test_control"]=(a0,a1)=>(_sqlite3_test_control=Module["_sqlite3_test_control"]=wasmExports["Fe"])(a0,a1);var _sqlite3_create_filename=Module["_sqlite3_create_filename"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module["_sqlite3_create_filename"]=wasmExports["Ge"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module["_sqlite3_free_filename"]=a0=>(_sqlite3_free_filename=Module["_sqlite3_free_filename"]=wasmExports["He"])(a0);var _sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=(a0,a1)=>(_sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=wasmExports["Ie"])(a0,a1);var _sqlite3_uri_key=Module["_sqlite3_uri_key"]=(a0,a1)=>(_sqlite3_uri_key=Module["_sqlite3_uri_key"]=wasmExports["Je"])(a0,a1);var _sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=wasmExports["Ke"])(a0,a1,a2);var _sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=wasmExports["Le"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module["_sqlite3_filename_database"]=a0=>(_sqlite3_filename_database=Module["_sqlite3_filename_database"]=wasmExports["Me"])(a0);var _sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=a0=>(_sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=wasmExports["Ne"])(a0);var _sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=a0=>(_sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=wasmExports["Oe"])(a0);var _sqlite3_db_name=Module["_sqlite3_db_name"]=(a0,a1)=>(_sqlite3_db_name=Module["_sqlite3_db_name"]=wasmExports["Pe"])(a0,a1);var _sqlite3_db_filename=Module["_sqlite3_db_filename"]=(a0,a1)=>(_sqlite3_db_filename=Module["_sqlite3_db_filename"]=wasmExports["Qe"])(a0,a1);var _sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=(a0,a1)=>(_sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=wasmExports["Re"])(a0,a1);var _sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=a0=>(_sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=wasmExports["Se"])(a0);var _sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=a0=>(_sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=wasmExports["Te"])(a0);var _sqlite3_sourceid=Module["_sqlite3_sourceid"]=()=>(_sqlite3_sourceid=Module["_sqlite3_sourceid"]=wasmExports["Ue"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["Ve"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["We"])(a0);var _RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=a0=>(_RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=wasmExports["Xe"])(a0);var _getSqliteFree=Module["_getSqliteFree"]=()=>(_getSqliteFree=Module["_getSqliteFree"]=wasmExports["Ye"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["Ze"])(a0,a1);var _libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=wasmExports["_e"])(a0,a1,a2);var _libfunction_create_function=Module["_libfunction_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module["_libfunction_create_function"]=wasmExports["$e"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module["_libhook_commit_hook"]=(a0,a1,a2)=>(_libhook_commit_hook=Module["_libhook_commit_hook"]=wasmExports["af"])(a0,a1,a2);var _libhook_update_hook=Module["_libhook_update_hook"]=(a0,a1,a2)=>(_libhook_update_hook=Module["_libhook_update_hook"]=wasmExports["bf"])(a0,a1,a2);var _libprogress_progress_handler=Module["_libprogress_progress_handler"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module["_libprogress_progress_handler"]=wasmExports["cf"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module["_libvfs_vfs_register"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module["_libvfs_vfs_register"]=wasmExports["df"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["ff"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports["gf"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["hf"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["jf"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["kf"])();var _sqlite3_version=Module["_sqlite3_version"]=3232;Module["getTempRet0"]=getTempRet0;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["addFunction"]=addFunction;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["intArrayFromString"]=intArrayFromString;Module["intArrayToString"]=intArrayToString;Module["AsciiToString"]=AsciiToString;Module["UTF16ToString"]=UTF16ToString;Module["stringToUTF16"]=stringToUTF16;Module["UTF32ToString"]=UTF32ToString;Module["stringToUTF32"]=stringToUTF32;Module["writeArrayToMemory"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["set_authorizer"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,"i32");const result=ccall("libauthorizer_set_authorizer","number",["number","number","number"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module["setCallback"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=["xFunc","xStep","xFinal"];const mapFunctionNameToKey=new Map;Module["create_function"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module["_sqlite3_malloc"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["commit_hook"]=function(db,xCommitHook){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,"i32");ccall("libhook_commit_hook","void",["number","number","number"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module["setCallback"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["progress_handler"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,"i32");ccall("libprogress_progress_handler","number",["number","number","number","number"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module["setCallback"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"];const mapVFSNameToKey=new Map;Module["vfs_register"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))}).then(onload,onerror)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);function findWasmBinary(){if(Module["locateFile"]){var f="wa-sqlite.wasm";if(!isDataURI(f)){return locateFile(f)}return f}return new URL("wa-sqlite.wasm",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),error=>{try{resolve(getBinarySync(binaryFile))}catch(e){reject(e)}})})}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{a:wasmImports}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["la"];updateMemoryViews();wasmTable=wasmExports["ef"];addOnInit(wasmExports["ma"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}if(!wasmBinaryFile)wasmBinaryFile=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr];case"i8":return HEAP8[ptr];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr]=value;break;case"i8":HEAP8[ptr]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":abort("to do setValue(i64) use WASM_BIGINT");case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var stackRestore=val=>__emscripten_stack_restore(val);var stackSave=()=>_emscripten_stack_get_current();var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else abort("initRandomDevice")};var randomFill=view=>(randomFill=initRandomFill())(view);var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var zeroMemory=(address,size)=>{HEAPU8.fill(0,address,address+size);return address};var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;return zeroMemory(ptr,size)};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw FS.genericErrors[44]},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp},unlink(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=Module["preloadPlugins"]||[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:class{constructor(errno){this.name="ErrnoError";this.errno=errno}},genericErrors:{},filesystems:null,syncFSRequests:0,FSStream:class{constructor(){this.shared={}}get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev;this.readMode=292|73;this.writeMode=146}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;iFS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""});FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS}},init(input,output,error){FS.init.initialized=true;Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit(){FS.init.initialized=false;for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat(func,path,buf){var stat=func(path);HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+24>>2]=tempI64[0],HEAP32[buf+28>>2]=tempI64[1];HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAPU32[buf+48>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];return 0},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret}var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function ___syscall_ftruncate64(fd,length_low,length_high){var length=convertI32PairToI53Checked(length_low,length_high);try{if(isNaN(length))return 61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(sizeHEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);if(!times){var atime=Date.now();var mtime=atime}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>2];atime=seconds*1e3+nanoseconds/(1e3*1e3);times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>2];mtime=seconds*1e3+nanoseconds/(1e3*1e3)}FS.utime(path,atime,mtime);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time_low,time_high,tmPtr){var time=convertI32PairToI53Checked(time_low,time_high);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mmap_js(len,prot,flags,fd,offset_low,offset_high,allocated,addr){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>2]=res.allocated;HEAPU32[addr>>2]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function __munmap_js(addr,len,prot,flags,fd,offset_low,offset_high){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=date=>date.toLocaleTimeString(undefined,{hour12:false,timeZoneName:"short"}).split(" ")[1];var winterName=extractZone(winter);var summerName=extractZone(summer);if(summerOffsetDate.now();var _emscripten_get_now;_emscripten_get_now=()=>performance.now();var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToAscii=(str,buffer)=>{for(var i=0;i{var bufSize=0;getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(string=>bufSize+=string.length+1);HEAPU32[penviron_buf_size>>2]=bufSize;return 0};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf]=type;HEAP16[pbuf+2>>1]=flags;tempI64=[rightsBase>>>0,(tempDouble=rightsBase,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+8>>2]=tempI64[0],HEAP32[pbuf+12>>2]=tempI64[1];tempI64=[rightsInheriting>>>0,(tempDouble=rightsInheriting,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[pbuf+16>>2]=tempI64[0],HEAP32[pbuf+20>>2]=tempI64[1];return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var adapters_support=function(){const handleAsync=typeof Asyncify==="object"?Asyncify.handleAsync.bind(Asyncify):null;Module["handleAsync"]=handleAsync;const targets=new Map;Module["setCallback"]=(key,target)=>targets.set(key,target);Module["getCallback"]=key=>targets.get(key);Module["deleteCallback"]=key=>targets.delete(key);adapters_support=function(isAsync,key,...args){const receiver=targets.get(key);let methodName=null;const f=typeof receiver==="function"?receiver:receiver[methodName=UTF8ToString(args.shift())];if(isAsync){if(handleAsync){return handleAsync(()=>f.apply(receiver,args))}throw new Error("Synchronous WebAssembly cannot call async function")}const result=f.apply(receiver,args);if(typeof result?.then=="function"){console.error("unexpected Promise",f);throw new Error(`${methodName} unexpectedly returned a Promise`)}return result}};function _ipp(...args){return adapters_support(false,...args)}function _ipp_async(...args){return adapters_support(true,...args)}function _ippipppp(...args){return adapters_support(false,...args)}function _ippipppp_async(...args){return adapters_support(true,...args)}function _ippp(...args){return adapters_support(false,...args)}function _ippp_async(...args){return adapters_support(true,...args)}function _ipppi(...args){return adapters_support(false,...args)}function _ipppi_async(...args){return adapters_support(true,...args)}function _ipppiii(...args){return adapters_support(false,...args)}function _ipppiii_async(...args){return adapters_support(true,...args)}function _ipppiiip(...args){return adapters_support(false,...args)}function _ipppiiip_async(...args){return adapters_support(true,...args)}function _ipppip(...args){return adapters_support(false,...args)}function _ipppip_async(...args){return adapters_support(true,...args)}function _ipppj(...args){return adapters_support(false,...args)}function _ipppj_async(...args){return adapters_support(true,...args)}function _ipppp(...args){return adapters_support(false,...args)}function _ipppp_async(...args){return adapters_support(true,...args)}function _ippppi(...args){return adapters_support(false,...args)}function _ippppi_async(...args){return adapters_support(true,...args)}function _ippppij(...args){return adapters_support(false,...args)}function _ippppij_async(...args){return adapters_support(true,...args)}function _ippppip(...args){return adapters_support(false,...args)}function _ippppip_async(...args){return adapters_support(true,...args)}function _ipppppip(...args){return adapters_support(false,...args)}function _ipppppip_async(...args){return adapters_support(true,...args)}function _vppippii(...args){return adapters_support(false,...args)}function _vppippii_async(...args){return adapters_support(true,...args)}function _vppp(...args){return adapters_support(false,...args)}function _vppp_async(...args){return adapters_support(true,...args)}function _vpppip(...args){return adapters_support(false,...args)}function _vpppip_async(...args){return adapters_support(true,...args)}var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var sigToWasmTypes=sig=>{var typeNames={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i{if(typeof WebAssembly.Function=="function"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports["f"];return wrappedFunc};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>wasmTable.set(idx,func);var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var getTempRet0=val=>__emscripten_tempret_get();var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var AsciiToString=ptr=>{var str="";while(1){var ch=HEAPU8[ptr++];if(!ch)return str;str+=String.fromCharCode(ch)}};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();adapters_support();var wasmImports={a:___assert_fail,Y:___syscall_chmod,$:___syscall_faccessat,Z:___syscall_fchmod,X:___syscall_fchown32,b:___syscall_fcntl64,W:___syscall_fstat64,y:___syscall_ftruncate64,Q:___syscall_getcwd,U:___syscall_lstat64,N:___syscall_mkdirat,S:___syscall_newfstatat,M:___syscall_openat,K:___syscall_readlinkat,J:___syscall_rmdir,V:___syscall_stat64,G:___syscall_unlinkat,F:___syscall_utimensat,w:__localtime_js,u:__mmap_js,v:__munmap_js,H:__tzset_js,n:_emscripten_date_now,m:_emscripten_get_now,D:_emscripten_resize_heap,O:_environ_get,P:_environ_sizes_get,o:_fd_close,E:_fd_fdstat_get,L:_fd_read,x:_fd_seek,R:_fd_sync,I:_fd_write,s:_ipp,t:_ipp_async,ga:_ippipppp,ka:_ippipppp_async,i:_ippp,j:_ippp_async,c:_ipppi,d:_ipppi_async,ca:_ipppiii,da:_ipppiii_async,ea:_ipppiiip,fa:_ipppiiip_async,g:_ipppip,h:_ipppip_async,z:_ipppj,A:_ipppj_async,e:_ipppp,f:_ipppp_async,aa:_ippppi,ba:_ippppi_async,B:_ippppij,C:_ippppij_async,p:_ippppip,q:_ippppip_async,ha:_ipppppip,ia:_ipppppip_async,ja:_vppippii,r:_vppippii_async,k:_vppp,l:_vppp_async,T:_vpppip,_:_vpppip_async};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["ma"])();var _sqlite3_status64=Module["_sqlite3_status64"]=(a0,a1,a2,a3)=>(_sqlite3_status64=Module["_sqlite3_status64"]=wasmExports["na"])(a0,a1,a2,a3);var _sqlite3_status=Module["_sqlite3_status"]=(a0,a1,a2,a3)=>(_sqlite3_status=Module["_sqlite3_status"]=wasmExports["oa"])(a0,a1,a2,a3);var _sqlite3_msize=Module["_sqlite3_msize"]=a0=>(_sqlite3_msize=Module["_sqlite3_msize"]=wasmExports["pa"])(a0);var _sqlite3_db_status=Module["_sqlite3_db_status"]=(a0,a1,a2,a3,a4)=>(_sqlite3_db_status=Module["_sqlite3_db_status"]=wasmExports["qa"])(a0,a1,a2,a3,a4);var _sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=a0=>(_sqlite3_vfs_find=Module["_sqlite3_vfs_find"]=wasmExports["ra"])(a0);var _sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=(a0,a1)=>(_sqlite3_vfs_register=Module["_sqlite3_vfs_register"]=wasmExports["sa"])(a0,a1);var _sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=a0=>(_sqlite3_vfs_unregister=Module["_sqlite3_vfs_unregister"]=wasmExports["ta"])(a0);var _sqlite3_release_memory=Module["_sqlite3_release_memory"]=a0=>(_sqlite3_release_memory=Module["_sqlite3_release_memory"]=wasmExports["ua"])(a0);var _sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=(a0,a1)=>(_sqlite3_soft_heap_limit64=Module["_sqlite3_soft_heap_limit64"]=wasmExports["va"])(a0,a1);var _sqlite3_memory_used=Module["_sqlite3_memory_used"]=()=>(_sqlite3_memory_used=Module["_sqlite3_memory_used"]=wasmExports["wa"])();var _sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=(a0,a1)=>(_sqlite3_hard_heap_limit64=Module["_sqlite3_hard_heap_limit64"]=wasmExports["xa"])(a0,a1);var _sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=a0=>(_sqlite3_memory_highwater=Module["_sqlite3_memory_highwater"]=wasmExports["ya"])(a0);var _sqlite3_malloc=Module["_sqlite3_malloc"]=a0=>(_sqlite3_malloc=Module["_sqlite3_malloc"]=wasmExports["za"])(a0);var _sqlite3_malloc64=Module["_sqlite3_malloc64"]=(a0,a1)=>(_sqlite3_malloc64=Module["_sqlite3_malloc64"]=wasmExports["Aa"])(a0,a1);var _sqlite3_free=Module["_sqlite3_free"]=a0=>(_sqlite3_free=Module["_sqlite3_free"]=wasmExports["Ba"])(a0);var _sqlite3_realloc=Module["_sqlite3_realloc"]=(a0,a1)=>(_sqlite3_realloc=Module["_sqlite3_realloc"]=wasmExports["Ca"])(a0,a1);var _sqlite3_realloc64=Module["_sqlite3_realloc64"]=(a0,a1,a2)=>(_sqlite3_realloc64=Module["_sqlite3_realloc64"]=wasmExports["Da"])(a0,a1,a2);var _sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=(a0,a1,a2)=>(_sqlite3_str_vappendf=Module["_sqlite3_str_vappendf"]=wasmExports["Ea"])(a0,a1,a2);var _sqlite3_str_append=Module["_sqlite3_str_append"]=(a0,a1,a2)=>(_sqlite3_str_append=Module["_sqlite3_str_append"]=wasmExports["Fa"])(a0,a1,a2);var _sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=(a0,a1,a2)=>(_sqlite3_str_appendchar=Module["_sqlite3_str_appendchar"]=wasmExports["Ga"])(a0,a1,a2);var _sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=(a0,a1)=>(_sqlite3_str_appendall=Module["_sqlite3_str_appendall"]=wasmExports["Ha"])(a0,a1);var _sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=(a0,a1,a2)=>(_sqlite3_str_appendf=Module["_sqlite3_str_appendf"]=wasmExports["Ia"])(a0,a1,a2);var _sqlite3_str_finish=Module["_sqlite3_str_finish"]=a0=>(_sqlite3_str_finish=Module["_sqlite3_str_finish"]=wasmExports["Ja"])(a0);var _sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=a0=>(_sqlite3_str_errcode=Module["_sqlite3_str_errcode"]=wasmExports["Ka"])(a0);var _sqlite3_str_length=Module["_sqlite3_str_length"]=a0=>(_sqlite3_str_length=Module["_sqlite3_str_length"]=wasmExports["La"])(a0);var _sqlite3_str_value=Module["_sqlite3_str_value"]=a0=>(_sqlite3_str_value=Module["_sqlite3_str_value"]=wasmExports["Ma"])(a0);var _sqlite3_str_reset=Module["_sqlite3_str_reset"]=a0=>(_sqlite3_str_reset=Module["_sqlite3_str_reset"]=wasmExports["Na"])(a0);var _sqlite3_str_new=Module["_sqlite3_str_new"]=a0=>(_sqlite3_str_new=Module["_sqlite3_str_new"]=wasmExports["Oa"])(a0);var _sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=(a0,a1)=>(_sqlite3_vmprintf=Module["_sqlite3_vmprintf"]=wasmExports["Pa"])(a0,a1);var _sqlite3_mprintf=Module["_sqlite3_mprintf"]=(a0,a1)=>(_sqlite3_mprintf=Module["_sqlite3_mprintf"]=wasmExports["Qa"])(a0,a1);var _sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=(a0,a1,a2,a3)=>(_sqlite3_vsnprintf=Module["_sqlite3_vsnprintf"]=wasmExports["Ra"])(a0,a1,a2,a3);var _sqlite3_snprintf=Module["_sqlite3_snprintf"]=(a0,a1,a2,a3)=>(_sqlite3_snprintf=Module["_sqlite3_snprintf"]=wasmExports["Sa"])(a0,a1,a2,a3);var _sqlite3_log=Module["_sqlite3_log"]=(a0,a1,a2)=>(_sqlite3_log=Module["_sqlite3_log"]=wasmExports["Ta"])(a0,a1,a2);var _sqlite3_randomness=Module["_sqlite3_randomness"]=(a0,a1)=>(_sqlite3_randomness=Module["_sqlite3_randomness"]=wasmExports["Ua"])(a0,a1);var _sqlite3_stricmp=Module["_sqlite3_stricmp"]=(a0,a1)=>(_sqlite3_stricmp=Module["_sqlite3_stricmp"]=wasmExports["Va"])(a0,a1);var _sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=(a0,a1,a2)=>(_sqlite3_strnicmp=Module["_sqlite3_strnicmp"]=wasmExports["Wa"])(a0,a1,a2);var _sqlite3_os_init=Module["_sqlite3_os_init"]=()=>(_sqlite3_os_init=Module["_sqlite3_os_init"]=wasmExports["Xa"])();var _sqlite3_os_end=Module["_sqlite3_os_end"]=()=>(_sqlite3_os_end=Module["_sqlite3_os_end"]=wasmExports["Ya"])();var _sqlite3_serialize=Module["_sqlite3_serialize"]=(a0,a1,a2,a3)=>(_sqlite3_serialize=Module["_sqlite3_serialize"]=wasmExports["Za"])(a0,a1,a2,a3);var _sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare_v2=Module["_sqlite3_prepare_v2"]=wasmExports["_a"])(a0,a1,a2,a3,a4);var _sqlite3_step=Module["_sqlite3_step"]=a0=>(_sqlite3_step=Module["_sqlite3_step"]=wasmExports["$a"])(a0);var _sqlite3_column_int64=Module["_sqlite3_column_int64"]=(a0,a1)=>(_sqlite3_column_int64=Module["_sqlite3_column_int64"]=wasmExports["ab"])(a0,a1);var _sqlite3_reset=Module["_sqlite3_reset"]=a0=>(_sqlite3_reset=Module["_sqlite3_reset"]=wasmExports["bb"])(a0);var _sqlite3_exec=Module["_sqlite3_exec"]=(a0,a1,a2,a3,a4)=>(_sqlite3_exec=Module["_sqlite3_exec"]=wasmExports["cb"])(a0,a1,a2,a3,a4);var _sqlite3_column_int=Module["_sqlite3_column_int"]=(a0,a1)=>(_sqlite3_column_int=Module["_sqlite3_column_int"]=wasmExports["db"])(a0,a1);var _sqlite3_finalize=Module["_sqlite3_finalize"]=a0=>(_sqlite3_finalize=Module["_sqlite3_finalize"]=wasmExports["eb"])(a0);var _sqlite3_deserialize=Module["_sqlite3_deserialize"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_deserialize=Module["_sqlite3_deserialize"]=wasmExports["fb"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=a0=>(_sqlite3_database_file_object=Module["_sqlite3_database_file_object"]=wasmExports["gb"])(a0);var _sqlite3_backup_init=Module["_sqlite3_backup_init"]=(a0,a1,a2,a3)=>(_sqlite3_backup_init=Module["_sqlite3_backup_init"]=wasmExports["hb"])(a0,a1,a2,a3);var _sqlite3_backup_step=Module["_sqlite3_backup_step"]=(a0,a1)=>(_sqlite3_backup_step=Module["_sqlite3_backup_step"]=wasmExports["ib"])(a0,a1);var _sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=a0=>(_sqlite3_backup_finish=Module["_sqlite3_backup_finish"]=wasmExports["jb"])(a0);var _sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=a0=>(_sqlite3_backup_remaining=Module["_sqlite3_backup_remaining"]=wasmExports["kb"])(a0);var _sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=a0=>(_sqlite3_backup_pagecount=Module["_sqlite3_backup_pagecount"]=wasmExports["lb"])(a0);var _sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=a0=>(_sqlite3_clear_bindings=Module["_sqlite3_clear_bindings"]=wasmExports["mb"])(a0);var _sqlite3_value_blob=Module["_sqlite3_value_blob"]=a0=>(_sqlite3_value_blob=Module["_sqlite3_value_blob"]=wasmExports["nb"])(a0);var _sqlite3_value_text=Module["_sqlite3_value_text"]=a0=>(_sqlite3_value_text=Module["_sqlite3_value_text"]=wasmExports["ob"])(a0);var _sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=a0=>(_sqlite3_value_bytes=Module["_sqlite3_value_bytes"]=wasmExports["pb"])(a0);var _sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=a0=>(_sqlite3_value_bytes16=Module["_sqlite3_value_bytes16"]=wasmExports["qb"])(a0);var _sqlite3_value_double=Module["_sqlite3_value_double"]=a0=>(_sqlite3_value_double=Module["_sqlite3_value_double"]=wasmExports["rb"])(a0);var _sqlite3_value_int=Module["_sqlite3_value_int"]=a0=>(_sqlite3_value_int=Module["_sqlite3_value_int"]=wasmExports["sb"])(a0);var _sqlite3_value_int64=Module["_sqlite3_value_int64"]=a0=>(_sqlite3_value_int64=Module["_sqlite3_value_int64"]=wasmExports["tb"])(a0);var _sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=a0=>(_sqlite3_value_subtype=Module["_sqlite3_value_subtype"]=wasmExports["ub"])(a0);var _sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=(a0,a1)=>(_sqlite3_value_pointer=Module["_sqlite3_value_pointer"]=wasmExports["vb"])(a0,a1);var _sqlite3_value_text16=Module["_sqlite3_value_text16"]=a0=>(_sqlite3_value_text16=Module["_sqlite3_value_text16"]=wasmExports["wb"])(a0);var _sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=a0=>(_sqlite3_value_text16be=Module["_sqlite3_value_text16be"]=wasmExports["xb"])(a0);var _sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=a0=>(_sqlite3_value_text16le=Module["_sqlite3_value_text16le"]=wasmExports["yb"])(a0);var _sqlite3_value_type=Module["_sqlite3_value_type"]=a0=>(_sqlite3_value_type=Module["_sqlite3_value_type"]=wasmExports["zb"])(a0);var _sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=a0=>(_sqlite3_value_encoding=Module["_sqlite3_value_encoding"]=wasmExports["Ab"])(a0);var _sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=a0=>(_sqlite3_value_nochange=Module["_sqlite3_value_nochange"]=wasmExports["Bb"])(a0);var _sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=a0=>(_sqlite3_value_frombind=Module["_sqlite3_value_frombind"]=wasmExports["Cb"])(a0);var _sqlite3_value_dup=Module["_sqlite3_value_dup"]=a0=>(_sqlite3_value_dup=Module["_sqlite3_value_dup"]=wasmExports["Db"])(a0);var _sqlite3_value_free=Module["_sqlite3_value_free"]=a0=>(_sqlite3_value_free=Module["_sqlite3_value_free"]=wasmExports["Eb"])(a0);var _sqlite3_result_blob=Module["_sqlite3_result_blob"]=(a0,a1,a2,a3)=>(_sqlite3_result_blob=Module["_sqlite3_result_blob"]=wasmExports["Fb"])(a0,a1,a2,a3);var _sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=(a0,a1,a2,a3,a4)=>(_sqlite3_result_blob64=Module["_sqlite3_result_blob64"]=wasmExports["Gb"])(a0,a1,a2,a3,a4);var _sqlite3_result_double=Module["_sqlite3_result_double"]=(a0,a1)=>(_sqlite3_result_double=Module["_sqlite3_result_double"]=wasmExports["Hb"])(a0,a1);var _sqlite3_result_error=Module["_sqlite3_result_error"]=(a0,a1,a2)=>(_sqlite3_result_error=Module["_sqlite3_result_error"]=wasmExports["Ib"])(a0,a1,a2);var _sqlite3_result_error16=Module["_sqlite3_result_error16"]=(a0,a1,a2)=>(_sqlite3_result_error16=Module["_sqlite3_result_error16"]=wasmExports["Jb"])(a0,a1,a2);var _sqlite3_result_int=Module["_sqlite3_result_int"]=(a0,a1)=>(_sqlite3_result_int=Module["_sqlite3_result_int"]=wasmExports["Kb"])(a0,a1);var _sqlite3_result_int64=Module["_sqlite3_result_int64"]=(a0,a1,a2)=>(_sqlite3_result_int64=Module["_sqlite3_result_int64"]=wasmExports["Lb"])(a0,a1,a2);var _sqlite3_result_null=Module["_sqlite3_result_null"]=a0=>(_sqlite3_result_null=Module["_sqlite3_result_null"]=wasmExports["Mb"])(a0);var _sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=(a0,a1,a2,a3)=>(_sqlite3_result_pointer=Module["_sqlite3_result_pointer"]=wasmExports["Nb"])(a0,a1,a2,a3);var _sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=(a0,a1)=>(_sqlite3_result_subtype=Module["_sqlite3_result_subtype"]=wasmExports["Ob"])(a0,a1);var _sqlite3_result_text=Module["_sqlite3_result_text"]=(a0,a1,a2,a3)=>(_sqlite3_result_text=Module["_sqlite3_result_text"]=wasmExports["Pb"])(a0,a1,a2,a3);var _sqlite3_result_text64=Module["_sqlite3_result_text64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_result_text64=Module["_sqlite3_result_text64"]=wasmExports["Qb"])(a0,a1,a2,a3,a4,a5);var _sqlite3_result_text16=Module["_sqlite3_result_text16"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16=Module["_sqlite3_result_text16"]=wasmExports["Rb"])(a0,a1,a2,a3);var _sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16be=Module["_sqlite3_result_text16be"]=wasmExports["Sb"])(a0,a1,a2,a3);var _sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=(a0,a1,a2,a3)=>(_sqlite3_result_text16le=Module["_sqlite3_result_text16le"]=wasmExports["Tb"])(a0,a1,a2,a3);var _sqlite3_result_value=Module["_sqlite3_result_value"]=(a0,a1)=>(_sqlite3_result_value=Module["_sqlite3_result_value"]=wasmExports["Ub"])(a0,a1);var _sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=a0=>(_sqlite3_result_error_toobig=Module["_sqlite3_result_error_toobig"]=wasmExports["Vb"])(a0);var _sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=(a0,a1)=>(_sqlite3_result_zeroblob=Module["_sqlite3_result_zeroblob"]=wasmExports["Wb"])(a0,a1);var _sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=(a0,a1,a2)=>(_sqlite3_result_zeroblob64=Module["_sqlite3_result_zeroblob64"]=wasmExports["Xb"])(a0,a1,a2);var _sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=(a0,a1)=>(_sqlite3_result_error_code=Module["_sqlite3_result_error_code"]=wasmExports["Yb"])(a0,a1);var _sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=a0=>(_sqlite3_result_error_nomem=Module["_sqlite3_result_error_nomem"]=wasmExports["Zb"])(a0);var _sqlite3_user_data=Module["_sqlite3_user_data"]=a0=>(_sqlite3_user_data=Module["_sqlite3_user_data"]=wasmExports["_b"])(a0);var _sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=a0=>(_sqlite3_context_db_handle=Module["_sqlite3_context_db_handle"]=wasmExports["$b"])(a0);var _sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=a0=>(_sqlite3_vtab_nochange=Module["_sqlite3_vtab_nochange"]=wasmExports["ac"])(a0);var _sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=(a0,a1)=>(_sqlite3_vtab_in_first=Module["_sqlite3_vtab_in_first"]=wasmExports["bc"])(a0,a1);var _sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=(a0,a1)=>(_sqlite3_vtab_in_next=Module["_sqlite3_vtab_in_next"]=wasmExports["cc"])(a0,a1);var _sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=(a0,a1)=>(_sqlite3_aggregate_context=Module["_sqlite3_aggregate_context"]=wasmExports["dc"])(a0,a1);var _sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=(a0,a1)=>(_sqlite3_get_auxdata=Module["_sqlite3_get_auxdata"]=wasmExports["ec"])(a0,a1);var _sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_auxdata=Module["_sqlite3_set_auxdata"]=wasmExports["fc"])(a0,a1,a2,a3);var _sqlite3_column_count=Module["_sqlite3_column_count"]=a0=>(_sqlite3_column_count=Module["_sqlite3_column_count"]=wasmExports["gc"])(a0);var _sqlite3_data_count=Module["_sqlite3_data_count"]=a0=>(_sqlite3_data_count=Module["_sqlite3_data_count"]=wasmExports["hc"])(a0);var _sqlite3_column_blob=Module["_sqlite3_column_blob"]=(a0,a1)=>(_sqlite3_column_blob=Module["_sqlite3_column_blob"]=wasmExports["ic"])(a0,a1);var _sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=(a0,a1)=>(_sqlite3_column_bytes=Module["_sqlite3_column_bytes"]=wasmExports["jc"])(a0,a1);var _sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=(a0,a1)=>(_sqlite3_column_bytes16=Module["_sqlite3_column_bytes16"]=wasmExports["kc"])(a0,a1);var _sqlite3_column_double=Module["_sqlite3_column_double"]=(a0,a1)=>(_sqlite3_column_double=Module["_sqlite3_column_double"]=wasmExports["lc"])(a0,a1);var _sqlite3_column_text=Module["_sqlite3_column_text"]=(a0,a1)=>(_sqlite3_column_text=Module["_sqlite3_column_text"]=wasmExports["mc"])(a0,a1);var _sqlite3_column_value=Module["_sqlite3_column_value"]=(a0,a1)=>(_sqlite3_column_value=Module["_sqlite3_column_value"]=wasmExports["nc"])(a0,a1);var _sqlite3_column_text16=Module["_sqlite3_column_text16"]=(a0,a1)=>(_sqlite3_column_text16=Module["_sqlite3_column_text16"]=wasmExports["oc"])(a0,a1);var _sqlite3_column_type=Module["_sqlite3_column_type"]=(a0,a1)=>(_sqlite3_column_type=Module["_sqlite3_column_type"]=wasmExports["pc"])(a0,a1);var _sqlite3_column_name=Module["_sqlite3_column_name"]=(a0,a1)=>(_sqlite3_column_name=Module["_sqlite3_column_name"]=wasmExports["qc"])(a0,a1);var _sqlite3_column_name16=Module["_sqlite3_column_name16"]=(a0,a1)=>(_sqlite3_column_name16=Module["_sqlite3_column_name16"]=wasmExports["rc"])(a0,a1);var _sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_blob=Module["_sqlite3_bind_blob"]=wasmExports["sc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_bind_blob64=Module["_sqlite3_bind_blob64"]=wasmExports["tc"])(a0,a1,a2,a3,a4,a5);var _sqlite3_bind_double=Module["_sqlite3_bind_double"]=(a0,a1,a2)=>(_sqlite3_bind_double=Module["_sqlite3_bind_double"]=wasmExports["uc"])(a0,a1,a2);var _sqlite3_bind_int=Module["_sqlite3_bind_int"]=(a0,a1,a2)=>(_sqlite3_bind_int=Module["_sqlite3_bind_int"]=wasmExports["vc"])(a0,a1,a2);var _sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_int64=Module["_sqlite3_bind_int64"]=wasmExports["wc"])(a0,a1,a2,a3);var _sqlite3_bind_null=Module["_sqlite3_bind_null"]=(a0,a1)=>(_sqlite3_bind_null=Module["_sqlite3_bind_null"]=wasmExports["xc"])(a0,a1);var _sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_pointer=Module["_sqlite3_bind_pointer"]=wasmExports["yc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text=Module["_sqlite3_bind_text"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text=Module["_sqlite3_bind_text"]=wasmExports["zc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=(a0,a1,a2,a3,a4,a5,a6)=>(_sqlite3_bind_text64=Module["_sqlite3_bind_text64"]=wasmExports["Ac"])(a0,a1,a2,a3,a4,a5,a6);var _sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_bind_text16=Module["_sqlite3_bind_text16"]=wasmExports["Bc"])(a0,a1,a2,a3,a4);var _sqlite3_bind_value=Module["_sqlite3_bind_value"]=(a0,a1,a2)=>(_sqlite3_bind_value=Module["_sqlite3_bind_value"]=wasmExports["Cc"])(a0,a1,a2);var _sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=(a0,a1,a2)=>(_sqlite3_bind_zeroblob=Module["_sqlite3_bind_zeroblob"]=wasmExports["Dc"])(a0,a1,a2);var _sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=(a0,a1,a2,a3)=>(_sqlite3_bind_zeroblob64=Module["_sqlite3_bind_zeroblob64"]=wasmExports["Ec"])(a0,a1,a2,a3);var _sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=a0=>(_sqlite3_bind_parameter_count=Module["_sqlite3_bind_parameter_count"]=wasmExports["Fc"])(a0);var _sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=(a0,a1)=>(_sqlite3_bind_parameter_name=Module["_sqlite3_bind_parameter_name"]=wasmExports["Gc"])(a0,a1);var _sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=(a0,a1)=>(_sqlite3_bind_parameter_index=Module["_sqlite3_bind_parameter_index"]=wasmExports["Hc"])(a0,a1);var _sqlite3_db_handle=Module["_sqlite3_db_handle"]=a0=>(_sqlite3_db_handle=Module["_sqlite3_db_handle"]=wasmExports["Ic"])(a0);var _sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=a0=>(_sqlite3_stmt_readonly=Module["_sqlite3_stmt_readonly"]=wasmExports["Jc"])(a0);var _sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=a0=>(_sqlite3_stmt_isexplain=Module["_sqlite3_stmt_isexplain"]=wasmExports["Kc"])(a0);var _sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=(a0,a1)=>(_sqlite3_stmt_explain=Module["_sqlite3_stmt_explain"]=wasmExports["Lc"])(a0,a1);var _sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=a0=>(_sqlite3_stmt_busy=Module["_sqlite3_stmt_busy"]=wasmExports["Mc"])(a0);var _sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=(a0,a1)=>(_sqlite3_next_stmt=Module["_sqlite3_next_stmt"]=wasmExports["Nc"])(a0,a1);var _sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=(a0,a1,a2)=>(_sqlite3_stmt_status=Module["_sqlite3_stmt_status"]=wasmExports["Oc"])(a0,a1,a2);var _sqlite3_sql=Module["_sqlite3_sql"]=a0=>(_sqlite3_sql=Module["_sqlite3_sql"]=wasmExports["Pc"])(a0);var _sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=a0=>(_sqlite3_expanded_sql=Module["_sqlite3_expanded_sql"]=wasmExports["Qc"])(a0);var _sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=a0=>(_sqlite3_value_numeric_type=Module["_sqlite3_value_numeric_type"]=wasmExports["Rc"])(a0);var _sqlite3_blob_open=Module["_sqlite3_blob_open"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_blob_open=Module["_sqlite3_blob_open"]=wasmExports["Sc"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_blob_close=Module["_sqlite3_blob_close"]=a0=>(_sqlite3_blob_close=Module["_sqlite3_blob_close"]=wasmExports["Tc"])(a0);var _sqlite3_blob_read=Module["_sqlite3_blob_read"]=(a0,a1,a2,a3)=>(_sqlite3_blob_read=Module["_sqlite3_blob_read"]=wasmExports["Uc"])(a0,a1,a2,a3);var _sqlite3_blob_write=Module["_sqlite3_blob_write"]=(a0,a1,a2,a3)=>(_sqlite3_blob_write=Module["_sqlite3_blob_write"]=wasmExports["Vc"])(a0,a1,a2,a3);var _sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=a0=>(_sqlite3_blob_bytes=Module["_sqlite3_blob_bytes"]=wasmExports["Wc"])(a0);var _sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=(a0,a1,a2)=>(_sqlite3_blob_reopen=Module["_sqlite3_blob_reopen"]=wasmExports["Xc"])(a0,a1,a2);var _sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=(a0,a1,a2)=>(_sqlite3_set_authorizer=Module["_sqlite3_set_authorizer"]=wasmExports["Yc"])(a0,a1,a2);var _sqlite3_strglob=Module["_sqlite3_strglob"]=(a0,a1)=>(_sqlite3_strglob=Module["_sqlite3_strglob"]=wasmExports["Zc"])(a0,a1);var _sqlite3_strlike=Module["_sqlite3_strlike"]=(a0,a1,a2)=>(_sqlite3_strlike=Module["_sqlite3_strlike"]=wasmExports["_c"])(a0,a1,a2);var _sqlite3_errmsg=Module["_sqlite3_errmsg"]=a0=>(_sqlite3_errmsg=Module["_sqlite3_errmsg"]=wasmExports["$c"])(a0);var _sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=a0=>(_sqlite3_auto_extension=Module["_sqlite3_auto_extension"]=wasmExports["ad"])(a0);var _sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=a0=>(_sqlite3_cancel_auto_extension=Module["_sqlite3_cancel_auto_extension"]=wasmExports["bd"])(a0);var _sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=()=>(_sqlite3_reset_auto_extension=Module["_sqlite3_reset_auto_extension"]=wasmExports["cd"])();var _sqlite3_prepare=Module["_sqlite3_prepare"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare=Module["_sqlite3_prepare"]=wasmExports["dd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare_v3=Module["_sqlite3_prepare_v3"]=wasmExports["ed"])(a0,a1,a2,a3,a4,a5);var _sqlite3_prepare16=Module["_sqlite3_prepare16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16=Module["_sqlite3_prepare16"]=wasmExports["fd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_prepare16_v2=Module["_sqlite3_prepare16_v2"]=wasmExports["gd"])(a0,a1,a2,a3,a4);var _sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_prepare16_v3=Module["_sqlite3_prepare16_v3"]=wasmExports["hd"])(a0,a1,a2,a3,a4,a5);var _sqlite3_get_table=Module["_sqlite3_get_table"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_get_table=Module["_sqlite3_get_table"]=wasmExports["id"])(a0,a1,a2,a3,a4,a5);var _sqlite3_free_table=Module["_sqlite3_free_table"]=a0=>(_sqlite3_free_table=Module["_sqlite3_free_table"]=wasmExports["jd"])(a0);var _sqlite3_create_module=Module["_sqlite3_create_module"]=(a0,a1,a2,a3)=>(_sqlite3_create_module=Module["_sqlite3_create_module"]=wasmExports["kd"])(a0,a1,a2,a3);var _sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_module_v2=Module["_sqlite3_create_module_v2"]=wasmExports["ld"])(a0,a1,a2,a3,a4);var _sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=(a0,a1)=>(_sqlite3_drop_modules=Module["_sqlite3_drop_modules"]=wasmExports["md"])(a0,a1);var _sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=(a0,a1)=>(_sqlite3_declare_vtab=Module["_sqlite3_declare_vtab"]=wasmExports["nd"])(a0,a1);var _sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=a0=>(_sqlite3_vtab_on_conflict=Module["_sqlite3_vtab_on_conflict"]=wasmExports["od"])(a0);var _sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=(a0,a1,a2)=>(_sqlite3_vtab_config=Module["_sqlite3_vtab_config"]=wasmExports["pd"])(a0,a1,a2);var _sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=(a0,a1)=>(_sqlite3_vtab_collation=Module["_sqlite3_vtab_collation"]=wasmExports["qd"])(a0,a1);var _sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=(a0,a1,a2)=>(_sqlite3_vtab_in=Module["_sqlite3_vtab_in"]=wasmExports["rd"])(a0,a1,a2);var _sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=(a0,a1,a2)=>(_sqlite3_vtab_rhs_value=Module["_sqlite3_vtab_rhs_value"]=wasmExports["sd"])(a0,a1,a2);var _sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=a0=>(_sqlite3_vtab_distinct=Module["_sqlite3_vtab_distinct"]=wasmExports["td"])(a0);var _sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=(a0,a1,a2)=>(_sqlite3_keyword_name=Module["_sqlite3_keyword_name"]=wasmExports["ud"])(a0,a1,a2);var _sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=()=>(_sqlite3_keyword_count=Module["_sqlite3_keyword_count"]=wasmExports["vd"])();var _sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=(a0,a1)=>(_sqlite3_keyword_check=Module["_sqlite3_keyword_check"]=wasmExports["wd"])(a0,a1);var _sqlite3_complete=Module["_sqlite3_complete"]=a0=>(_sqlite3_complete=Module["_sqlite3_complete"]=wasmExports["xd"])(a0);var _sqlite3_complete16=Module["_sqlite3_complete16"]=a0=>(_sqlite3_complete16=Module["_sqlite3_complete16"]=wasmExports["yd"])(a0);var _sqlite3_libversion=Module["_sqlite3_libversion"]=()=>(_sqlite3_libversion=Module["_sqlite3_libversion"]=wasmExports["zd"])();var _sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=()=>(_sqlite3_libversion_number=Module["_sqlite3_libversion_number"]=wasmExports["Ad"])();var _sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=()=>(_sqlite3_threadsafe=Module["_sqlite3_threadsafe"]=wasmExports["Bd"])();var _sqlite3_initialize=Module["_sqlite3_initialize"]=()=>(_sqlite3_initialize=Module["_sqlite3_initialize"]=wasmExports["Cd"])();var _sqlite3_shutdown=Module["_sqlite3_shutdown"]=()=>(_sqlite3_shutdown=Module["_sqlite3_shutdown"]=wasmExports["Dd"])();var _sqlite3_config=Module["_sqlite3_config"]=(a0,a1)=>(_sqlite3_config=Module["_sqlite3_config"]=wasmExports["Ed"])(a0,a1);var _sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=a0=>(_sqlite3_db_mutex=Module["_sqlite3_db_mutex"]=wasmExports["Fd"])(a0);var _sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=a0=>(_sqlite3_db_release_memory=Module["_sqlite3_db_release_memory"]=wasmExports["Gd"])(a0);var _sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=a0=>(_sqlite3_db_cacheflush=Module["_sqlite3_db_cacheflush"]=wasmExports["Hd"])(a0);var _sqlite3_db_config=Module["_sqlite3_db_config"]=(a0,a1,a2)=>(_sqlite3_db_config=Module["_sqlite3_db_config"]=wasmExports["Id"])(a0,a1,a2);var _sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=a0=>(_sqlite3_last_insert_rowid=Module["_sqlite3_last_insert_rowid"]=wasmExports["Jd"])(a0);var _sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=(a0,a1,a2)=>(_sqlite3_set_last_insert_rowid=Module["_sqlite3_set_last_insert_rowid"]=wasmExports["Kd"])(a0,a1,a2);var _sqlite3_changes64=Module["_sqlite3_changes64"]=a0=>(_sqlite3_changes64=Module["_sqlite3_changes64"]=wasmExports["Ld"])(a0);var _sqlite3_changes=Module["_sqlite3_changes"]=a0=>(_sqlite3_changes=Module["_sqlite3_changes"]=wasmExports["Md"])(a0);var _sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=a0=>(_sqlite3_total_changes64=Module["_sqlite3_total_changes64"]=wasmExports["Nd"])(a0);var _sqlite3_total_changes=Module["_sqlite3_total_changes"]=a0=>(_sqlite3_total_changes=Module["_sqlite3_total_changes"]=wasmExports["Od"])(a0);var _sqlite3_txn_state=Module["_sqlite3_txn_state"]=(a0,a1)=>(_sqlite3_txn_state=Module["_sqlite3_txn_state"]=wasmExports["Pd"])(a0,a1);var _sqlite3_close=Module["_sqlite3_close"]=a0=>(_sqlite3_close=Module["_sqlite3_close"]=wasmExports["Qd"])(a0);var _sqlite3_close_v2=Module["_sqlite3_close_v2"]=a0=>(_sqlite3_close_v2=Module["_sqlite3_close_v2"]=wasmExports["Rd"])(a0);var _sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=(a0,a1,a2)=>(_sqlite3_busy_handler=Module["_sqlite3_busy_handler"]=wasmExports["Sd"])(a0,a1,a2);var _sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=(a0,a1,a2,a3)=>(_sqlite3_progress_handler=Module["_sqlite3_progress_handler"]=wasmExports["Td"])(a0,a1,a2,a3);var _sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=(a0,a1)=>(_sqlite3_busy_timeout=Module["_sqlite3_busy_timeout"]=wasmExports["Ud"])(a0,a1);var _sqlite3_interrupt=Module["_sqlite3_interrupt"]=a0=>(_sqlite3_interrupt=Module["_sqlite3_interrupt"]=wasmExports["Vd"])(a0);var _sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=a0=>(_sqlite3_is_interrupted=Module["_sqlite3_is_interrupted"]=wasmExports["Wd"])(a0);var _sqlite3_create_function=Module["_sqlite3_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function=Module["_sqlite3_create_function"]=wasmExports["Xd"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_create_function_v2=Module["_sqlite3_create_function_v2"]=wasmExports["Yd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(_sqlite3_create_window_function=Module["_sqlite3_create_window_function"]=wasmExports["Zd"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _sqlite3_create_function16=Module["_sqlite3_create_function16"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_sqlite3_create_function16=Module["_sqlite3_create_function16"]=wasmExports["_d"])(a0,a1,a2,a3,a4,a5,a6,a7);var _sqlite3_overload_function=Module["_sqlite3_overload_function"]=(a0,a1,a2)=>(_sqlite3_overload_function=Module["_sqlite3_overload_function"]=wasmExports["$d"])(a0,a1,a2);var _sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=(a0,a1,a2,a3)=>(_sqlite3_trace_v2=Module["_sqlite3_trace_v2"]=wasmExports["ae"])(a0,a1,a2,a3);var _sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=(a0,a1,a2)=>(_sqlite3_commit_hook=Module["_sqlite3_commit_hook"]=wasmExports["be"])(a0,a1,a2);var _sqlite3_update_hook=Module["_sqlite3_update_hook"]=(a0,a1,a2)=>(_sqlite3_update_hook=Module["_sqlite3_update_hook"]=wasmExports["ce"])(a0,a1,a2);var _sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=(a0,a1,a2)=>(_sqlite3_rollback_hook=Module["_sqlite3_rollback_hook"]=wasmExports["de"])(a0,a1,a2);var _sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=(a0,a1,a2,a3)=>(_sqlite3_autovacuum_pages=Module["_sqlite3_autovacuum_pages"]=wasmExports["ee"])(a0,a1,a2,a3);var _sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=(a0,a1)=>(_sqlite3_wal_autocheckpoint=Module["_sqlite3_wal_autocheckpoint"]=wasmExports["fe"])(a0,a1);var _sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=(a0,a1,a2)=>(_sqlite3_wal_hook=Module["_sqlite3_wal_hook"]=wasmExports["ge"])(a0,a1,a2);var _sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=(a0,a1,a2,a3,a4)=>(_sqlite3_wal_checkpoint_v2=Module["_sqlite3_wal_checkpoint_v2"]=wasmExports["he"])(a0,a1,a2,a3,a4);var _sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=(a0,a1)=>(_sqlite3_wal_checkpoint=Module["_sqlite3_wal_checkpoint"]=wasmExports["ie"])(a0,a1);var _sqlite3_error_offset=Module["_sqlite3_error_offset"]=a0=>(_sqlite3_error_offset=Module["_sqlite3_error_offset"]=wasmExports["je"])(a0);var _sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=a0=>(_sqlite3_errmsg16=Module["_sqlite3_errmsg16"]=wasmExports["ke"])(a0);var _sqlite3_errcode=Module["_sqlite3_errcode"]=a0=>(_sqlite3_errcode=Module["_sqlite3_errcode"]=wasmExports["le"])(a0);var _sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=a0=>(_sqlite3_extended_errcode=Module["_sqlite3_extended_errcode"]=wasmExports["me"])(a0);var _sqlite3_system_errno=Module["_sqlite3_system_errno"]=a0=>(_sqlite3_system_errno=Module["_sqlite3_system_errno"]=wasmExports["ne"])(a0);var _sqlite3_errstr=Module["_sqlite3_errstr"]=a0=>(_sqlite3_errstr=Module["_sqlite3_errstr"]=wasmExports["oe"])(a0);var _sqlite3_limit=Module["_sqlite3_limit"]=(a0,a1,a2)=>(_sqlite3_limit=Module["_sqlite3_limit"]=wasmExports["pe"])(a0,a1,a2);var _sqlite3_open=Module["_sqlite3_open"]=(a0,a1)=>(_sqlite3_open=Module["_sqlite3_open"]=wasmExports["qe"])(a0,a1);var _sqlite3_open_v2=Module["_sqlite3_open_v2"]=(a0,a1,a2,a3)=>(_sqlite3_open_v2=Module["_sqlite3_open_v2"]=wasmExports["re"])(a0,a1,a2,a3);var _sqlite3_open16=Module["_sqlite3_open16"]=(a0,a1)=>(_sqlite3_open16=Module["_sqlite3_open16"]=wasmExports["se"])(a0,a1);var _sqlite3_create_collation=Module["_sqlite3_create_collation"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation=Module["_sqlite3_create_collation"]=wasmExports["te"])(a0,a1,a2,a3,a4);var _sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=(a0,a1,a2,a3,a4,a5)=>(_sqlite3_create_collation_v2=Module["_sqlite3_create_collation_v2"]=wasmExports["ue"])(a0,a1,a2,a3,a4,a5);var _sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_collation16=Module["_sqlite3_create_collation16"]=wasmExports["ve"])(a0,a1,a2,a3,a4);var _sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=(a0,a1,a2)=>(_sqlite3_collation_needed=Module["_sqlite3_collation_needed"]=wasmExports["we"])(a0,a1,a2);var _sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=(a0,a1,a2)=>(_sqlite3_collation_needed16=Module["_sqlite3_collation_needed16"]=wasmExports["xe"])(a0,a1,a2);var _sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=(a0,a1)=>(_sqlite3_get_clientdata=Module["_sqlite3_get_clientdata"]=wasmExports["ye"])(a0,a1);var _sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=(a0,a1,a2,a3)=>(_sqlite3_set_clientdata=Module["_sqlite3_set_clientdata"]=wasmExports["ze"])(a0,a1,a2,a3);var _sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=a0=>(_sqlite3_get_autocommit=Module["_sqlite3_get_autocommit"]=wasmExports["Ae"])(a0);var _sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8)=>(_sqlite3_table_column_metadata=Module["_sqlite3_table_column_metadata"]=wasmExports["Be"])(a0,a1,a2,a3,a4,a5,a6,a7,a8);var _sqlite3_sleep=Module["_sqlite3_sleep"]=a0=>(_sqlite3_sleep=Module["_sqlite3_sleep"]=wasmExports["Ce"])(a0);var _sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=(a0,a1)=>(_sqlite3_extended_result_codes=Module["_sqlite3_extended_result_codes"]=wasmExports["De"])(a0,a1);var _sqlite3_file_control=Module["_sqlite3_file_control"]=(a0,a1,a2,a3)=>(_sqlite3_file_control=Module["_sqlite3_file_control"]=wasmExports["Ee"])(a0,a1,a2,a3);var _sqlite3_test_control=Module["_sqlite3_test_control"]=(a0,a1)=>(_sqlite3_test_control=Module["_sqlite3_test_control"]=wasmExports["Fe"])(a0,a1);var _sqlite3_create_filename=Module["_sqlite3_create_filename"]=(a0,a1,a2,a3,a4)=>(_sqlite3_create_filename=Module["_sqlite3_create_filename"]=wasmExports["Ge"])(a0,a1,a2,a3,a4);var _sqlite3_free_filename=Module["_sqlite3_free_filename"]=a0=>(_sqlite3_free_filename=Module["_sqlite3_free_filename"]=wasmExports["He"])(a0);var _sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=(a0,a1)=>(_sqlite3_uri_parameter=Module["_sqlite3_uri_parameter"]=wasmExports["Ie"])(a0,a1);var _sqlite3_uri_key=Module["_sqlite3_uri_key"]=(a0,a1)=>(_sqlite3_uri_key=Module["_sqlite3_uri_key"]=wasmExports["Je"])(a0,a1);var _sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=(a0,a1,a2)=>(_sqlite3_uri_boolean=Module["_sqlite3_uri_boolean"]=wasmExports["Ke"])(a0,a1,a2);var _sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=(a0,a1,a2,a3)=>(_sqlite3_uri_int64=Module["_sqlite3_uri_int64"]=wasmExports["Le"])(a0,a1,a2,a3);var _sqlite3_filename_database=Module["_sqlite3_filename_database"]=a0=>(_sqlite3_filename_database=Module["_sqlite3_filename_database"]=wasmExports["Me"])(a0);var _sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=a0=>(_sqlite3_filename_journal=Module["_sqlite3_filename_journal"]=wasmExports["Ne"])(a0);var _sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=a0=>(_sqlite3_filename_wal=Module["_sqlite3_filename_wal"]=wasmExports["Oe"])(a0);var _sqlite3_db_name=Module["_sqlite3_db_name"]=(a0,a1)=>(_sqlite3_db_name=Module["_sqlite3_db_name"]=wasmExports["Pe"])(a0,a1);var _sqlite3_db_filename=Module["_sqlite3_db_filename"]=(a0,a1)=>(_sqlite3_db_filename=Module["_sqlite3_db_filename"]=wasmExports["Qe"])(a0,a1);var _sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=(a0,a1)=>(_sqlite3_db_readonly=Module["_sqlite3_db_readonly"]=wasmExports["Re"])(a0,a1);var _sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=a0=>(_sqlite3_compileoption_used=Module["_sqlite3_compileoption_used"]=wasmExports["Se"])(a0);var _sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=a0=>(_sqlite3_compileoption_get=Module["_sqlite3_compileoption_get"]=wasmExports["Te"])(a0);var _sqlite3_sourceid=Module["_sqlite3_sourceid"]=()=>(_sqlite3_sourceid=Module["_sqlite3_sourceid"]=wasmExports["Ue"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["Ve"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["We"])(a0);var _RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=a0=>(_RegisterExtensionFunctions=Module["_RegisterExtensionFunctions"]=wasmExports["Xe"])(a0);var _getSqliteFree=Module["_getSqliteFree"]=()=>(_getSqliteFree=Module["_getSqliteFree"]=wasmExports["Ye"])();var _main=Module["_main"]=(a0,a1)=>(_main=Module["_main"]=wasmExports["Ze"])(a0,a1);var _libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=(a0,a1,a2)=>(_libauthorizer_set_authorizer=Module["_libauthorizer_set_authorizer"]=wasmExports["_e"])(a0,a1,a2);var _libfunction_create_function=Module["_libfunction_create_function"]=(a0,a1,a2,a3,a4,a5,a6,a7)=>(_libfunction_create_function=Module["_libfunction_create_function"]=wasmExports["$e"])(a0,a1,a2,a3,a4,a5,a6,a7);var _libhook_commit_hook=Module["_libhook_commit_hook"]=(a0,a1,a2)=>(_libhook_commit_hook=Module["_libhook_commit_hook"]=wasmExports["af"])(a0,a1,a2);var _libhook_update_hook=Module["_libhook_update_hook"]=(a0,a1,a2)=>(_libhook_update_hook=Module["_libhook_update_hook"]=wasmExports["bf"])(a0,a1,a2);var _libprogress_progress_handler=Module["_libprogress_progress_handler"]=(a0,a1,a2,a3)=>(_libprogress_progress_handler=Module["_libprogress_progress_handler"]=wasmExports["cf"])(a0,a1,a2,a3);var _libvfs_vfs_register=Module["_libvfs_vfs_register"]=(a0,a1,a2,a3,a4,a5)=>(_libvfs_vfs_register=Module["_libvfs_vfs_register"]=wasmExports["df"])(a0,a1,a2,a3,a4,a5);var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["ff"])(a0,a1);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports["gf"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["hf"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["jf"])(a0);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["kf"])();var _sqlite3_version=Module["_sqlite3_version"]=3232;Module["getTempRet0"]=getTempRet0;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["addFunction"]=addFunction;Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;Module["stringToUTF8"]=stringToUTF8;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["intArrayFromString"]=intArrayFromString;Module["intArrayToString"]=intArrayToString;Module["AsciiToString"]=AsciiToString;Module["UTF16ToString"]=UTF16ToString;Module["stringToUTF16"]=stringToUTF16;Module["UTF32ToString"]=UTF32ToString;Module["stringToUTF32"]=stringToUTF32;Module["writeArrayToMemory"]=writeArrayToMemory;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["set_authorizer"]=function(db,xAuthorizer,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xAuthorizer instanceof AsyncFunction?1:0,"i32");const result=ccall("libauthorizer_set_authorizer","number",["number","number","number"],[db,xAuthorizer?1:0,pAsyncFlags]);if(!result&&xAuthorizer){Module["setCallback"](pAsyncFlags,(_,iAction,p3,p4,p5,p6)=>xAuthorizer(pApp,iAction,p3,p4,p5,p6))}return result}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;const FUNC_METHODS=["xFunc","xStep","xFinal"];const mapFunctionNameToKey=new Map;Module["create_function"]=function(db,zFunctionName,nArg,eTextRep,pApp,xFunc,xStep,xFinal){const pAsyncFlags=Module["_sqlite3_malloc"](4);const target={xFunc:xFunc,xStep:xStep,xFinal:xFinal};setValue(pAsyncFlags,FUNC_METHODS.reduce((mask,method,i)=>{if(target[method]instanceof AsyncFunction){return mask|1<xUpdateHook(iUpdateType,dbName,tblName,lo32,hi32))}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["commit_hook"]=function(db,xCommitHook){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xCommitHook instanceof AsyncFunction?1:0,"i32");ccall("libhook_commit_hook","void",["number","number","number"],[db,xCommitHook?1:0,pAsyncFlags]);if(xCommitHook){Module["setCallback"](pAsyncFlags,_=>xCommitHook())}}})();(function(){const AsyncFunction=Object.getPrototypeOf(async function(){}).constructor;let pAsyncFlags=0;Module["progress_handler"]=function(db,nOps,xProgress,pApp){if(pAsyncFlags){Module["deleteCallback"](pAsyncFlags);Module["_sqlite3_free"](pAsyncFlags);pAsyncFlags=0}pAsyncFlags=Module["_sqlite3_malloc"](4);setValue(pAsyncFlags,xProgress instanceof AsyncFunction?1:0,"i32");ccall("libprogress_progress_handler","number",["number","number","number","number"],[db,nOps,xProgress?1:0,pAsyncFlags]);if(xProgress){Module["setCallback"](pAsyncFlags,_=>xProgress(pApp))}}})();(function(){const VFS_METHODS=["xOpen","xDelete","xAccess","xFullPathname","xRandomness","xSleep","xCurrentTime","xGetLastError","xCurrentTimeInt64","xClose","xRead","xWrite","xTruncate","xSync","xFileSize","xLock","xUnlock","xCheckReservedLock","xFileControl","xSectorSize","xDeviceCharacteristics","xShmMap","xShmLock","xShmBarrier","xShmUnmap"];const mapVFSNameToKey=new Map;Module["vfs_register"]=function(vfs,makeDefault){let methodMask=0;let asyncMask=0;VFS_METHODS.forEach((method,i)=>{if(vfs[method]){methodMask|=1<~D@B9Cw*_rOHu6pXZ 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 -u?O}Yc?yfPh47ouaSYr+*$Fz_h! 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

    KEn4$GJ z+Q)nO>k+>fiJrhriN8=XXNELQ5-imQ^460IS%ET?T*wa~QEU>%t^XCP&hr9j^yJyqKM3r7aGDSj=YzyUdH5b{% zB&mP+B0IM8C(C^R4Sjl9VhS!e6krAoc8QoGePdAH`C?mB<|$@&sJogU;oNff-j%X9Q4Ll68 zBPYBt4F7Pw1}k~JSn1YZV!Lwy4-u{#~Im)2#&S9G}I^1T93##M%V@d5)cmuO5OueGlIwZDqVQgC@zCTBN_4 zu#Px(fhS*E6=4Dx85xW=O;%4p(3g491H`*0G#r_LMcgr1)x$uXqjf(==8mhIxvP8# zr)d?DBaf8V^Kf&Q%-nj`)~4zZN_}ljR=rieLaRXNNLwB4@dTa|I8y0Zf^-t83{wZt zi@M|^@S*pNQ)CuW(J7DCP>MPJOUZJQC$Aj7YvQ+okL+HF>_v%S*b-3T{%{%i{FXcT zGFw~wUBKNCkgiQ-l>~U9LZhP;yAV{tN zi_!kcSGFc_Pihu)=i#z0mR9*(>v=hxvp(^e;WD+#^73~oR;rOHryjDm$KToj)!epC0@ z6}DUF!E*T$Q4ILgnZP<5KR~ud{v(P2uq34RAFk?3TT|!d4xD?Gv7Vx9f17 z?Naxa6}jsb^vs8H{-$F}{>2}B5X2@rRz%rTspRVUcZ<6m03`?6OJ|*vI~U%~?nRs` z@;?bdc={Ctr|4L41llhYB2y6b<79#B7VUHZTusDX;MQM}oJ-v;-@Hj=R=ljd;fHoI;#~3@4E3!A3AD}8^ zE=@%jx_&pdoB%nI3>$-I%;h>a z@J2hC@}1Y*XxkmPdyqa)nyp-~m<;kMd|~VfSMpMNq0eZ$a>s^;wO}xoAKV(M}@n!6mHU}Xe+U@z)_HIiJX0t2G5|_g^P~D&(FiHs=u${cEu1&p) zbrn_+Z&>Uey~%d%$YJ?|SZ(NJZE8^58|H;!7$}L^e%^(Tk8|ZK?B3(xV4FlOF>0%( z8m=5NCAI_xp}dOvF!6>vgZQo0a1jh5llbj!4SYc~j*w30(urK!1dQJFM9R%yf!|Cq zUA3vUD5~Dk-Yd0>Dw|V=3VYK>H>!RLN-VjGQ55Fi)bNwglpy}{IqGaar=40?Uyp;t zE5q@ZH|Qa}6i@@-RWTJm078_pWDF8UldxSeeki2tac%M#sWsQ)!lpv!+5O zIEcru6hD$tZ^x{X#-3b#c6|_okV|g1gUq#e>r~6DH`~t5uh&=Qr1BFkZH=qCg>cek z7s5=*`k_1E+sY^1fLm-K>n{%nZnr$|j=sef3y(b~O}{tz?;)Zgv?_TojGubXt+>T@ zIcCih0PYi73B}cQXRTd{|eS8OkK{cq+RN zDmndj+p+pU5v7Fg2=GUwIIy7KkR`YLGFxnq^_pGArBCG1L3-c-qWGlXW-mk1cS~=# zy(@Z)L_)5|xmRwtEksQVmF|PvZI|?s(Z5}zRTwKChYWBIjujD&+1J-eN6TpC4P{me zC9r`6d{t#>5fO|LkwloY(c50*fcpbMOtzdEG_=N3v?fUc`9f!GK(^kVM3uzDqr3o! zB_HumFH;vpFSRLh8EHzf3v(xm@={2-*ePGkcRYWtaxRg-gjp-#)o0WyaJ|q`G@zL8 zbbg_zZ9_6aDhIv1T}x5R#LVtlnpdFdG46aZnL@9C_4DoKJCswDnmwV=0SEE^ zFV5ZrzN%si_}%54Jv%u`*z`aGoD)Ka5Fk`hvk?#x3xbLT5e2;h(p79E2p187i;YnM z#fk_P)N52MfDIKDv7w+MqM}$RN>zFPHTxuh*YA7p_wM~k&YnFpduGj=HLFj0kd|au zN%gR&r&8K`!s`TcS&f)VRzMu`lOyDEh=~#?Ja!yQ$Fg~P@Ds52p1$P?Z+KZY(F!j;Ol>_j7SuA#acCscEgaVOX8BHicQ$ucCawev7 z`D28pMoDGz&()(*y<|fnIr*}5=AjGB zh97d~0bOoV(k08i#wyM{aZuD3EcfbOmVi`Azlg@=(J}0XL5PERp2){mk=+u~%88y# z^v#p6<;l;m+~L~QE9G~Cyu_+tCt@U|PBOyD{8lk39PP|yS;*( zh$Oj1cKZS@Ia(#I^JtDrXpx!Xt0`lbkl8kO#~lGNwq}w>B{ZtLsvyy~fCTvHK9X=N z`m3i&G>{|7f+9zf4E81(mU=>R>KS5QQ-0QDlVJvDcPZnCCKSk6q{4kTM!TUEZKGti zEU>7D%>A6^cqL^To6vZrA)uhNN+Q$+1>ADoh2PNo7;>$?;~B5(vD{N(Cxd7qIe&8b z9koQpG8;gu!wndFy(MX2+6tcynJ?yEpWwg5*DBdh@HuT5ph0uDlG&tL66J^u8Igv9 z+Z=pmC*h48O8O68aZ0xlhiUkvBL`5xiQgPI7g$dYx@qi&X%4Cy+_5Y7teDZugP?Nw zyfH)8FZ|bQSSDD~+3mv@*?Ey2$A$C7`L!3HCM-kFLYAK(oNiXJ$Y$k)1oAe0M)IoUps27M*@p81z_p(pY^I293F&;LOaH8FEFSbzWx={4o-lu=!$2(WSxEt ziLG6nWK+Rj37G6)PQ}m9dJFA>`=jt76hm-9!F`#D$j8Wy3gG*=)A~7YUUh_p>>@ie z>GKcNf$+2e&wESBVSea&uh@(6#l+N#;uoO!I8hE;0SouJet3mKx zHhYZi5lq#sUPQrsvmWuH*A#xEwb6yRxfS=lh!z@S+50bf=M!_(`epA1BB7pm*=wCe zC{wcb>Epq_a$kS{G67S*uJ?-9%WkTNyn-{|Mt$uo=%**^yIz4){Z#+{ig$(mu^ze7 zyAqGUEi1iabIfQGP)`saVYAIDG~ZKo|5a#tH&jesmlYUKhXR z^|8OvSM%iEWC#6&kM)CZd6%C34WWIZi4GLk83G6RbP!d**9$EpyWEeof^v?LLnrvg z;{}MH%i%4mK(GX%Ji4_{(G&|hElw%53Nf3usyno(JTZ_axgC%@&ka9HeF;T6Cl zlus;t^#5R{ld?GA@6|is_L_9Q4+Ck2v9Tqd^z01IsNj6j^h)be(P80NZ@MbRX#A?BfVIM)Ey>t=BPch7H}z2zT;b zq3o@}V8c_o+*P)0E#Uh=uV3rE)8uQkuFTkc+~W8?z%e8$kPOs|a*rY}Q6R2<7qie< z{mZ*v-P}Va2{q%ABtljcW5>wH>IU!e_FkE}cx5UhG-MEBJ%G**>VEHe|872?uwCZn z_7Wr${jVH}Mn)EWq!)4<7JPGXf!_Zf`h^k^oq`)kEZA0#0TF<7oA>dF|4L2~SA->5 zV2=MH+X@co^WOJTJqZ#o3@rU>lF(DaZnkg5zui8fOgL|YA1LfhcZ1nQ` zUV%MDfBinbw;Qy-&THCkCJF&zU5)B9L=}dDFL7F=^%Yw%zR&()`W>P<{+E8vA1f$z*z z{obcuLv_9E4yma}l!- z9lDg*rbSxc_ZjTKcO}$Xsr8!Aye3$MP0BQ3-ZL5W!OyUP&is%;i%w&@ZvVMgn0ezz z@{Cesy1wvp?`I}^>PD~YaX+wpva|7uPx39{mCqOQO@GyX2;op8QiVfb1`fMD4FG-QDS7`VxokM@dLf~3-2%cYW>ca(5%n( z&M!F`pVP%(dGqb=dhJ)G-`o(Po|Cz2W`5qvDY`H&lJaMAPB)dkSBt`URB4&RJTfsa2K!WM_9sTUrUhgoEpJkjxV}g&s@)*8f{}PL*C|e4$f`@I+ z1HddQoLIP5hLRD4NQVM4R@@Gr(#LM`TGwMS!tLLp6-h4$Pcp6GN`1o?c!i(!lUsYWQ=5ntxox_g>W%~GUyx!F|ailP87Se!H-~Nqv zLQAp(AOuB;?l^pmwZxV4G;L)wQSu6+KTX?Py>4|YKwTtdaW0i34$GBm==&L4S46M6d!5Lq#X@7(=ncHG0aoUTqX)`dhDc z4Ow{Gz^6)o_VKq~asGB=l@5O*G)1_|p_~WN61s#Dq`vdI)!r_C4VMwV)WyuR*+`Hnt+5bVVsJ!24h)2VvZ zAhf7|=-TIaZJe9py5~8BQv9KBPd~nTj#r|GpX+UhgXw>s*R*9z=I#J1As4@=#U=8F z?gLL4jPcP7QK0Z$ed7f09Xxz+F_H%1oUexm)6o^2@3n6BG1qluR+SlZ3@w0K0m^3y zZ{)X+llJoS3DdahJg=quZFI_6!=^(o+!u#puU0RX??s4`h2lSaAB57 zDF?m@K@l7H2>BidE+1?S)M>;s#n@1sQl=?%O{PPK0wE5;-}}Jr@VC)PUX#QMq!)>( zpksa7NnU=<&8q}zoJzA`Q{@_sLQ6mJomX&~;2l6n24osGzY2p>qaV!;PV%mGWl3>m zNq0(kQEKepg8Vl`+PFSd1;2R-*Fd*tWFrsu>!R<`$(N4t8pdDUkpU}o@fdG({%7)& zEn|hXVS&Qh2^enXIQ+ zN~H)d4*roMz4@J3Zua%O5RxHolrjDAkKT0W#oKhzcCUTKUE4+edq%(clXp+zD=a&q zQ60C|V}Hi}w_Jbxvv*U+KWtK=7}DpX<|A%Yv@U-@F*%SR7O)18&|nUxkz}@cf%3Vv zzU>#dgdgYq>P@Qg9eJ8K)A>9;Q6reuay|1`j;7^$>92@oKkA*oLK#2OYKPaX){iz( z6;@a%MhS!YJ{&-g9p13`A^ZXVt(WfbTE)LwCOk(Wo=L;5NIYwjQFOTS~Jzfhs@3e=*yLGQ@FH7!=iMlGNC7V=$ps(HI zJ!Q|veVB`>Mj-=VjU%#YAe0 ze@n5hv)}7BVC{#H33CJ9EGH%7BfIo0gUOPT%H%^p8_M=H0w(Re!c3R2r(& ziiy$@W;@xlVAO1V^8qicci${w!5}p#WF!R|DB7B{o>_f+fLR^KkM-n3B+sRkvKU0EygVknrq+ib=U=U_Sak^J zvaAo0*>aL~FjNK?>ISy@mx~@l=fzY~KVqwtGxK%*j;)Tb`R;l#g>B}bJVD&q-SDe?~Y|2Wyal3_@4 z{KeVCImsH(1d}vAcEmPY14bollmAQpHtgiAlyR(nRX-S0$JMBsLM=L|#Uvirzs1x* zXWHw!Z(KEDSB;IUt_TQ^#?|pyMSqN|l0LV_lDQ%TWrfq39d9U=`vfWCC>vcYcELzQaCg_el) z6hkb6`}HiPZUA|!`RYur8z1hg6Zo^lSH1bO!&mL>8+1X2I>lb7$7ZPJ-mh}bjM4XG zsKUJ0(29t9+6v#^U}CAn2}#H~DT%(wQ01MLyS;*iW~GdGTNha!Fqcdk;gcr9qrj5p zCX7e;(xsX8C3NSuOw}@{`~eeX4#UE&ocHT@GS%>`=L~Nvm>Ha-yC>B3_4Y#;5Hs=S z5dQ~w5=jioUf-|RCsf!fUkqt%;9T~s9U7mzB+H$2A{RrBN)di2Y3}Ibved~0_0G&v zt>a5p;P$OoWT{T5FL!0Bf*QGEt~DDa`T>n>nypGpK9nFL1_al`DIzB=K6&A4(r{T( zeYs?SN!=c^UoNZmASYbE`mBK`b&t zZ}^S3FY@SAQ8ux3Nj4s?xm6#ir@A<=-KtCKt3rq8bL*=;O7cm7d;07=(D)QR zCr{;7HW$v4|7h+>^Oy6;qPJB4lBXI}KbL5)Y^OfO0>O|@^Yc}n$9LuTvH7ZgeO?Jr zO&4JooVMd3B79-E`BObEAJTTNUYf7+(f_Z>R|O6^C4S0hYt66d(mmN7{VdRMli3|K3z}&YU8* zWXYm$)t#Dg?wqU3o2g^Vb~S-MPPY$x!kJVkBf!50U98K5vn4Z)*8%vIRS+XgNkm># z!ZHN&(Znq)$eLV`h|Jls;8PRHa-aAH8a?Jpr+yDB1*1~cRMt-#W=&2d3PG}1DM*^Y z1S&LCvIn6uFpFVUIw;T37dBV7wAf`cM{&Lq6Mw?9!VL%Q#3#O!NvuAi#STP^%tD;H zzR>kssK(6ixE88sy~EK%a4eGwvctD6T*n{7&whRjRid{2fEgH6`J{zv)ZHjb8I31W zEev{A8>@kFR{-~u;l>}BQ1F*AT5#J>xVjw6Cr;NP)@1JHYu8e>EL%)|PuX;lSs|SD zxf9?+mP59Sobaw~qFa)p^+pE^>ts9==pzZY#UIkFhI79V8d1HP2}prCqRF(V$hFKG zd%@HU{2pdx_9m+bc0=fEFjFFEdyx$M^OmaAnVO;VTdDIfCrxUlE^H}EEU_9O>fVTM z>qLl5H4>DjsztmJ>xzRn)=^RvJFV4~MbXz9a?wjzhLJOz*^<37vt{_f7v^mC!-|b& z3IM1YV0^f>x+Lev-_!3F$U9xXjhe~lA8MltxiDVlO))0XZ zy@pdN{Hw%f*r#Ue@>Xsw-K|K~tPY1Je2Jv)bqHn1%G4JWsjg){#1KuF6Ou3p+qh(Q zO^PURQ~^z6CuSQ;2HN1aC>4^JBQc{B7!&1A5jrSTj^rwsTjD7ii@HWbspd8@s}&tc9{6ggG$1!n-ZjH{GC<^1h}V}kU@ zm1vL!oMs4nL6;$<5eG1SZ>wB(j>@)nv4B6C8-QV9oZba)UNlXNwCQOIoOqRV^CaiZ z5i0}V`oBxlS7yk0d3bFAKJ=}d#pNOLC*L56AO(^XG{a5YFWLy1ub;BnHLK8=vZMc< zp=TDWv#L$wvJsrySoGE-B+~HLVpWh_>~ZWS=vK~qY9}%*TAETQ(1U+y{JolI$${er zAKKjFF-Z?^r_L^b5D4EP?TGsbXMGS6f^eR&4)U~Kf7wn=Kngvhy}G+vWlj>=;p}F8 zu)Qj%_5;c>sF5r=oaH{CglB|L5T+g%Y!PaNGp}*$3BUO; zUFwIME!fTQt#{J}>?>(@W92i%)QCm}IZ-HK40jMB2n7?Na1wR~%q4^>C)C9qRZiV^ z?1E~M3D#)ClPsMT-n&_!*-;HA>CTFd>I`qr&2~8FW?i$B>fLbf4mlKx&8^C7osd)k z!g_OMxqN87zN!;Kz!`c$C)G4w{*z6t=9`^VarTR#1BV8{^ut{`)>-wBQ+*E>7I^4zceE-F72LD0q7?!Fm=yJYx~SriFw~l05$onWmUJKMk(@p)c+pGLOP5iU zjG0o%mI+#|Zr(gbbyN4Hd0kaq`$nDHRW(a&$Vk+*?a8d}AlRkbWf6iWs;e`z)pX_UYzi) z;7wxeEnRdR>5B`3-}U*&se1awV^x+j+tyEYQ!DWWnQ)An&YuIvs7dnFUA3&6L%vR< z*9WkRyl68wMqje!SR~TfnrqCvA_>u1cW1#J`tIY@0QvjtajMV2y+&&Y9Tb<$bPy6{ zth?bz++enyc-RpUBi`fCy`n$3ZmQ(2lmjIs1tD@G?0h=z1&2y=7T$ck>U{jGnWB>n zPZvx!`;|=)UraZWQ>J;a-Nsu8O`#Xm;z%~R08ProEIDmF;^gd7)jMl}$uuL(C<7i) zs@fDWo~r2v&187hs%BsA$n+(QI=IE`$YOn8sp`_DYOEHj6Ek5UDQ?h`=At`9j&Vwp zHX8{rkX-|#OTtW~dZ_9V(b_6hc}c$1ke(yTH;I;F$}omal)Xvrdb}i5R|D zLl;FM)u3f!>~j%^g;kU_kWobQap($>2$w_1>fNjLH7BS$2QgxJ-B{Eh)9lV5r$D}F zg?T6D1;4u({|{qMM*(IFV-phT4e@U<@*_Y&{@qWTAj7Qm>iznli@J zmRGUx$f8*piOyAhAx;mDobSmt1XK05c1IS`?uZ3!t#|fRb?ffkW7;g{Rtc~tsL$7& zaPJ=7sF!Lodft39kia#il}}EhsOs~q>R?gU$pVKz>^6M`aZ|nWDfaj3=?IK)$&?9wP!ygK&N}MlEc3Eq@NT*^`ogzv-IVT~0(rso|fzU+o8e$>bHR>_<% zWISouez9AR>aFt2USD;%Ec)#yx>ijGt@H)#Rb~?pzkq#BLlaVb3_bt7tXm>xHMSC+ zs+zMH7o?#c6II=Ao1cr;MZjQ%l~1umE4poCogbaTym{o)^b`zWiKE))o-Ly9lAe`lhkIU1%KC14qpO-{XNq1TG=p~BMttA5+A3qp<#LPc113h?1 z-_lp*)%ZEx1#}{M@w0we%I8P8h@-riR=ta}fF(BYLhP8fG9yl0zEo~&w> zom+q|MmQM^+1x;gysu2!;lC`@5~Y;l^G&kH+`3fRc#*=xK&#Qc# zAJVP3*rSXm^GbBA$#7rgD-fWJC-bV1SB2sJ%2#r6)kQp-cU^ebB|K314y-HV$-L^$ ztM1{!%2z^R%6K&IN_husQ29>CNg0pkT~FTi4FA;APElvT4t{!y`d9NEY?g4h5NC-M z`^`?|3Oa!^o8`r>$`@Pp+*4KKnveg)+w|UyerM|9KI&4$(>wbZA^EpHYPd2&G9ITF zo}}trcw2_(r?9z$y8MP6HpqyW7YJrL>EsvFg|iZmB?%P(Sz{%but}6NWW6jLS~p|4Z>e# zhVeWU9{lz4@ImCS%A@APy5?!>n8Ytq0CVbKVmRkCb!N9H=Vo7#m>E{k7h|FuNV>~l zgCzDtTqM<@3v-Ol*$sBXZ^TM@bO`&|cA6SO$W@=yRkwzN;UIgF;OBRucgfHhE>+?7 z`F3ETw;?g0UUa%@H@NasNQCk!_OHnm3NU~D#AwQm!c+zK<8`$RaX%(ktEk{}PEi9k zC}Y8j$->1F~g6l7AuT%7E;D9+1s|u&^yoI_Uu+@QGg?oAi3osK9{G^jD_XW3K|{B?DAxt6$TK!wBks8|G9meEx`GelS3_O{7PJr2Dx}3`CDOPoFtZ zb*(~vOzHRBHL0wFi4ej z+@9WibNp~Y1YaRP)G+rHrbJ`DTg)cW{>5*RHQlYV&QW(_$a?4;)uHU4_M~hME4U1o z&Di2m>6Kw6P`jmxL|z(phWBSKa8HJA2-uPaJ4x*a>PKsqjP;lLavr&hF~M-_0yYy@ z_K2&`K38SeH#>szUN|}drk=TNdJa68$|wy+>B;9}M_svH-*>L6Q+rS_#fT4P9V~J= z+riKUy3KPcRnxqwOcxyfJ05;If8KejNoCVo|I`$hCe=K<5=Vc+<#K_Zex7Pt*{Fma zmUJf{^-=jGgdukSk?D!U8)D(D5xE(pr~FH`Y!M;K(3EQgKG7Dj`tH3)HQMWhkIvU8 zpRbywKUg!fhux#B2WW!$e#`l)7O3#>`3N;b^;_qwyy{0JL=NAJh4(Dbzn`zps8jW= zh^P(47J~RwF?g`LPT}_V`7m{Q18G`Gsqc@4Uq{IDM9fjwIg|AV6Or1hx-qRk8m>0m zM}6@#jPeV0@?WaB)lpTAE=*<@%#9s2zYT8q!vcNl*{Ws7**5aIA@n({BOtc z4ED~9qcTi~Yus@4g8%FE?#wvqTW_$o3-mFUsSZ`3i^(MPwU?>(uqTgSriRp?i=74O zAaPX7XG!3-KsOt4L`#Dw`qB}q8!hi2p}Md?H;zy(YR}C$y6wwuxc2|!4Db5e3?FvG zr|17)XL#4qGkl2Xn+1CGsQ($~s+qd_T5e7h_E!Ae!(vJEy{1$ zRp^a-H;=IO(JLNAGKzf3ScfB#`T;kb2S|sjWZF<*8I`Aj>d4`$$h+5Z-0K{@d?5Sw zs0G&VU#`x`-4eJ`>XoBa-KIBXB&y1Gl5t{}TSdqs#4Ep~6m$BY zqt#g_jF!*YFkeQ^EL@oQnv2r_C*0i>GARCVY$aVWAS0f}B*m(*VU=Wj-WYXu@~~gQ z5j%WtcDOJiN9*)gV^!NKSVahW(pXHe_vvM0RsK;s{BAe=YJvW2tm^o;26^LDb5dUP z9H+YTXUaI$uGM`64;p8ry8$m6xdC}cf$3H^{5WD3*4kzRSM?ZSdad!G_b~PA zs8%EaA2~tIBM!rvh=}ljK69cvv*Baz2$HkQa8cYGNeEwvg{v0o$s<)>v!^}b2GTSL z@hqGP`^!J!&7vg{gWrFRntmmfQN3GgHgoOoq`IY~(OLtO} z2Gg#>mt~J$a}~PmJ^Ih9RI{U+A8^9==If4=)C%`OFQJEAt(sN-XqdVA`1`wx?S&wf zmfeb!9wtoh;iW&Hep-gCu+w@*D$(KdeJqQ6n5!9uTh0He!^m5Wbnw$XoWxO z4%e!#-3Ji}2>9ZS?L*oPJ#2fD)18>}Z6^GB-IGT-hSHf~_=5 z7hbOl3%TTu?_te?iGq!?!+lW+zy64R1xxg(>s4OaL#8Hl;C6nI@IhMebZ1mcZ=nF=?XiMZxl>n(JA6Ij`^1K#-=OdJl?=issO)Yu_GJJvk0i9YCt`Zc6K*! zt5;2o*8-y7blu6SeUE!GqLyaP=4Jr~U?QNZ8U#Ds#D!)Mc&~7%S7!L6yntH=^p44@ zAaRPY!Z>+KL4z_?uTy}EEoqG;Siis$+KF2ZK4%y(pwAQ0{mA6SJwqt?Bv5aXaF3Jp zd1b0mT@hKi?@7{*0F5{V6)zIBAh(pMOPzOe^no%psqQwC-L4_^1<9d$*3YV!Fb~^q z(>Il?Q!_uMTM@6;%++6)tFih}xymXN$Vh;aeAxuunX!xvesH2FdDr}+kdP>s;1{le zk*v#!uq=hh(#s5(TfBSqC?|a%>8%ODC3h6Z4PF`Y7srDiV3CC$;Ki1*+)@HDWXYiX zfV@n^Z8&XD+~BD$UW*Q~^)&P*hE0h)^}={`+d8{M+<`cQp+Q(%@z6t-CyUldU=fOw z4@Uk^v7u55!e=Fbm1z?rl3r5wiiFDTy^?y1iyg*@jWSE(WH4HZ*pZYAB!uY~m7nA& zVq-EO%nt6AM>!Y6#+|DT{-auWvjZ89!O*^J;24& z!&MlU=s|Lh8wi=@6mbw3*;%zktNRG2*lBaHCu*>E#A>b_Ie zX>Fb{jzAQ0@m9!#G3Ci4V!YT}c>`T9uaVK>3>8iFK@NbpsEIWZlk<}QL zYj0K?@WGAOy=TO{|j;{=bcHTjfAxUy?o*Ll}QB`msDPOd0qeN&3uquuyNB&f!n!r+uU9 z)BL$O7YW8nol+nsT9?}~dx|k!tl7*4j{!SXE!?|AkGoOT%*D*i){_j3yf*={7`|Pc zB^TVNTKR9f%peimqTjz!^>#KN(sgI3a_5)V^j$Ml!~DqD>*p~RW9%hNHQ%^GW@FI( zaE9uE16iG$RL6`-tbI1b;aolNCN;L(QX8*51A;_8QxX;6onjtFQ+c~UnhDQ!@F*CD z&CoT#hp!S1!o7OjWHq4d$VO6G8cAc*sJrFJ%;jE!=TW6ayT));6ha5m7q_r!cE}AO z6b58A11X7Xtx_-we=dg53{Fh!mO!30px{q*CCMW41s$}LR$k~(w9s`JA~a2+GvsT^ z7zm}~(Bu6>`mUL(eI2oM$+r`%gc%4xe#p~z+@VI{C+N&mEvrA|CC=h&PzmXh6zKZc zdHC)vI;bz62hX`e&*BdWNaZ8XuaZ#RSLUhwvz|O)r)(O4A#~lQ>b{tD2aJ9oN<;>} zEpUQ)t^o)G;JLH_0?18Mj8RrET_FW(S;3yTZl|$ZZqX-emFhGD087w;oIL_)?ly4= zTH!%(lK=V^h{l;>E9@*KJj`(PFEdpEjBWLsRn1hT*9-cBxa=tOs)EHpS-e0*RP1%L z>Sf};X5XwPmX)NfM1MdxsLtp2vFoeH1aV}?5LjY{LMh+tWP)%(rzzL`vzPj8Y>@;Rm{AsQR>zwT76vZogS z&FMDeMVz4*-Kpv}6Z~Tff=f_W+yRAW0ooNVk_@fQRw0eF{_;+IJ0J11bC>FAchV=` zr7o?>Z9A7sxERPM)2H@U-TrR%tG!qk%tuSId9OZszM5z+(kthySBa6Cwm=<2?tLg% ztTcElLv8{vSj#b=E)6$)BCiXmK(c=M2{{3vQXyS6y4ZmCiw;+fE+$AUAd$%cgmsuS&R8mBvtSYc@VU^n zv@emVf&mD7`2H(uy6+`_4YlgeIY*t zXNkz?hqwaKL%8pVnm}|R+1TboB5+xqdM7AGCyHgsm>wQh8TTU15 z6NyV|lhBGZk8-0CXK9`2k~z*Abjq}aEi#u3aZ+%)8s$X7r7w9~W?rwRE;@VjzQD!Y zB|L&$kc8hLqlE$*r%f{qIi-b@A|vBh{3V1*+zDjte20$kxsmBD&7i3;Y~~z*c8cU4 z%`dUsal9z=eX`8JBt0*7GRJphqmgr*OY4xmWbTr!ia)u4fc?n>`9YUuKnyb$3zsL} zqmElD07|+eaDRw}bx)Md*arp@TUuZ7t0l}V%r!%lxu$EExdI_mEO`{@fzEO{%jy!P z@7NNwjIA3uU<0l=;xZ=m(#4j@=<}#BwZux;Uj|<1}ZAa9gAWGeC99daPTt z>IS3O#xx~Y+4QidrmvzMw3y5TW`C8zXQR?Fv6A?`r5w=E7O)BsIlv^TMQ>qUPvk~y z@C{@sP$T$E7g748QI23)(*V-Z1y7%SmK+?$GtU(l%aZ>=HC9pX{lds(XeN&=u*cgj;#O*w zDtHvNl!%>5Y@D_krDxE>j{BfRbV*kv2uYL^ceRfUT{7gEA$u}}bQgjn;h*%ukp2{~ zqnROKlJBr`@>v#KhT(!qc1S8On`$O25~?PlKR5-FzQGNa7;`K;0YS~o-@J!I4xf6L z_Ye=MBGy}wHnJq5jpa-gfU{W*olDnRI}^J)dugA z$7Pcd{ei=qT;C{IAVxB)Ah=pT|A1=48T$PLXl$<5)gDx}OF;CmiGL9aB^BB7&p5#{ zi6f+-Io@XG5MOF^e(Ycgk=v{XJ*ZmL`rRB(vKVYND$~ZLb5s9IK&kpNKRozR<#(wj{zjvU36|q5S#B~~;BhIgDzZ9jBx7z*^K%oi3(UT?Ba}r#I?4Ydv&(!`T~jBT z%nZq4A}-8kn!#j!_oJ$-f30k3ZkW^?A5~3qu9Yg{H$Bjlt7W+{Xeqr#1;s|*vzeM2v%B3h{H|d{fefVo_mmw4UORy}$E2hGb zGdT*E>Z_KiRs$kj0`?cmY8oFwK_G)XGB!T+XmnX=6}m|oXaLodt0XoHR^cSF)nLdD zXGEbcU#ME-0%Yzj;Gl@4FzM8&gY|unVQ`tKH$A2v%O3=@!kb)9lWh5s&uN0s2fAMn z_o2t}N4#CHdt9B>w~z~=fw)R0lGTAX#tsI@0&yn83!3dI+f>p^e#74^pi4}$+)+x& za}Mj5i~#QIu}`SuPiJAnLRRRAeO#PW>3s~50ym?548_1NQRZHvc$^u$wh zD92S#s)CHekM}>R3Tw&WWKeQmlKqQYCh+O}{7IE6#Fjy!X-Vb~`P`jAvoIK*rbvb0 zjc&ADwafyd9E;TPgBkkF<*HGO$0eYVG1G$?bpdA@OM=w>81CJ2!m&~!gX@LMRc;Z3 zFeq@R$+C0AWT_TJjrjZmW{U}6nf_+E>T4J3qNh}D{cAa(*gl~vsRUyMgxCa9Byha& zDdMJ1xoBtzjGMB%jCPiSTAf|@ujR-)!QP&0}iAZz~3y1~;bS?^H< zRl^wZb-DM`_#=Z8H|w*WMv08J8c~`vD95pEIXf7w@H?EP7{bldP<_wS>a@JW9of>6 z(Nn+7{aGTT`Om19zLCqpOg;Az)eKh?(N0I1mZ3-bjYm|+OxZEOjvb@pOH{GvF(z_T zbbp4RKCa%=BlvOr?}lJn0sWZ`Kx{;J>Y=9}QXmo>AdgaV(F5FSSB9sNssjD|EeOC_*?#~dOD*Lde1UNs=8-YN^gHwt!SNLrEN8dgf!y+ zK}E*l-_IQJ`&oU@bE>ehx!h9pl@7Wv##>6LQD6#PZqDTB;6l)EpF@b5qw75n(VL^s zd|r*<&&ubC8=Rx}Mui<-FopNLK%^lpHoTxN%KmK^_(D>AIe@0<6IWmyeO1p{p^i~= z_?&dSZiVVBx%7nv*ajaoCC>4$e_g>5b+ImfQ7v))vs-U`kwD2$ZqxCX)LHfcef~=* zxHjLWr@W-@{;OW`TMVzFyn1OdkA3}8}%QqzD>7!S+#Vw z?bK(#j1N8COiKT~>t)rj_kqXkaPbeq745Kkqtgj4&dPxald*+Uxs_?zk4L>Dvj7rJ z3+Hy03Pog8Z|!aR&zDsXXWnidzJhfA#0)*+6?Lq9Yso9>B(@=GR2dX6<#vEJ!vY4K|XAPqB=ce!o@FKrRr3|^SV{4e%)>6 z1QC^WC1dua%a+wAJ*)1>!kYn{Gv;AiKekHcMK`Cq-1@w36$jra{l_ZRvFugjVniw1 z5a_wq^TrH3_O9DQTo2^q#XvK{-n$_qNh3IfRnoqDI7a3#^E60G8shASlA5G*H@ zC}!OLBLMPMx_{{3tfbtmo9(t?03hW#x6U{4mR?z0%XD zBsR}wM8E9dIlbXk)rf%EeXpwV)o&Cjwp%csQ^$~+gZkRn)NA$~y7YBbzea}HgTeDv zji1*w-%#W1gZkfZpv4=cAAbX-9$q{jy`fU%t=#hl_%bu58@;LWYd-7~Lj(F@3qMZLUd;aU>M2QFUt^n2vH#eDe7o%fP+N`s_98xWqwo!qaTJ zqpQEG^7M)|xOhCQe_5k0XgB?P$abwTQnv<^U_T^)Jqw?&;7M$CF2}7|x#{2{>IS}b z{adQ;*-Tq#B+CsUr*0(}96;fe3PBY_2$p*}G0Q>lj)3r#XC@bji3eDuC(LQURj{0x zbiVy9)zG`KouT&C-d2MLZsia*hLWIf^yjjG)pX5jnisKv`EiGsTm-=hX@##p5J}K( zu#PLHv9AiQ{%NuLZh9sW6gIxCGWDR)qcSR_Bxb}y1blZzJ+Dt# zBOv`xh-6`Y+rbn1lhvw8e7&@q_bQn)zI|IY&VQ$Mcv};q){b0`SjfK4V@(R*Au8ly z-S-`JJNWt4JK(_{z3&~>uif{Hurmb<5P@ac+lcJ!hO;(Cg+dq5eFV#dD11vzCs?4b zSgTq|ey01^s`hz*Z8n7vp2HOnQAU^g*R_yg)<5%I)x6E)tN-35od*Y4ZX_jHW?50W zyO+{+ddRz~N3cYE-l`CR(&cpI%#7=e@2ZnemPL{)9l6nRfw@4qYHdYMM1BNO1%hrs zP1HI3phNgU5gsLVuDn_YGYAHZdr$SK@s#jxd`}MHEGEEid;LAt#<@AJe|t|2&3=Ts zY2Q~);)~wLs{XLP@qN{#_Ulgx?n@dmfnni^c`_Bf>V4IslrbEIb`a8|Hd#UdE@OK= z^RX0b9L13`s3|m)UDk4)I;V|6NJlWvWN(hJk7>vbVj3Z)_P=A=JL^=2P6|ERs7qf} z9ZISY4t0Rw(q;+jMB(^fo1_TQ_K`dgW_JMtJP`1Q-m#9z`aSxz4^+J#N0ACQU|-41 z44eg&%NR;`+a|-8a4zs(?#OVmB)*4@ipqxSM?X;YeYALq&9?36Cw@{5^ba4Xfe^*x z*27=kp>JBR`uOWBuPy#;y-H>n&vF1dSUVrW-wf96KE!kf)9|4hN_M0rAL6TVvHtl( zPLXqUy^mlZ?$(cd#JXLaAWf+1rmKIf)^Nal{;|3sZ&czD+p$p`GGU9@upt;@(gW55 zK2dG*2L-da_1@;?6yk@I5H>gRgAfP91)r$gHs8jC+Vv0{u=$@Ae2cEmoKu#y4Q zVzL|Gx`6{|P(|!B>vZ_<{(v5J3>-AR~InqXIe-lT*V13LcRZ_Od#t0KBv|T~Nl;xB%#g8fj zdCe8w;mo2`CD)1)2^IRxS`^Hz6@DRZHQ~Z-LMUaz4kq_rB7-n>&XLWP{zep;6GWVq z!kL-j-1$Oa7jJ`+6>pQwlvo%{m2e52y(aV`I^QildXu{AsQb=s3wI+~5(kG?zpE?a zDm*cXvv%sDFI3TxRd6{hR4aGTP|TyTK#KrNMd2u(5z-E0mhNCsXE$k@hfmCqAt7L% zY4lscG_f~I$9(3p0(Th~Hxy*_h+P-FrB{5RPN?&-IiR~)P$Lm}%~8GXV_oY@bz0fS zT(rJ^89+e!D?z^I`Wopgyo>9BVi7+r&s;epWbSm)4omu#fkv3Ig3*E7wkRj%K#5X*4qA>)>ushlq!mnwypec!m3wp-Sz)^(&hGf2a+{ncAq;D*FbmVdl}b8-JJXJUX_p zdxbY0GV-Y*!ou*y^u3!^y>_^Y$r_5N+gB97vBf6ZhJ+zDjf4Xys+C{3K%pTNviiej z)#RevNl!0f#3(fAyLduyNv<}$+w8RL-ojS)fJr|AjUGC4@LkA*J+4&9QzQ^It64FB0&H^ zGTzF~6_py~hr^)mcM-cUPW!_Ql^qbnr>lp=L7V@T^_Tv_=qRa1wwR=Qz0u7a>EBPs zLknVe!%)Q12a;u7jGJlVHOGmGlNij}#LynkX4MtnLG%adZQrQ_{*9FB$0AGU-F;W{|^8+ILqk7d3ssVq#`hg&fsk+0Ds(W6)Y0 zNTbkYXrJrrf5L^~bFF_;%g|T${8=^5kR9+`%=XLlxYJZkJ@seR!k@N?d_LifMf#ba z)ktt5`3r2tRQL$iooP=qL}vXk=p0PSexMqx6*w z0i5yw2p82$PvF3>s(>xfV24^slBX|ss51L|GE~Act<+0)!sETB-`c6#=B~^T-h~sd zSm+>hn2R`oEIVtLs?+-!53e|<)B%s=qA=WRWnC-T9hsfrJ)$1n1sWnSkW89 z8k22}ntIeORhlHsRH6=XQewA7swE#jeXC*9I6HM=m~8m~6yY2Nd}Ao$jeGKgUj zede}`>vzLrc74`MBtEmTa);AQpJB!%Vrujf>5#5%F;Ct-99l z@EWh_%YIiUm%W<7c`jl5YtaK>3$?f^IMMs4$FLj+N90fPA5n+CEa^L3WLytm2c-ab z(E1Tmga?llSqTLz^1usrB5tuTiFV?HV_bazROs+?p_^@%!@ z>;e;Q&hMT2@q?;yo%OqIRKM)#UqlTBeCTG%9{v46)ggY*E1CH1H2OmwQ)`+4SX8nu zr*ybVsLSno^dD+Q{mqAL`sN+^KZxw(193$91|%d@zD4F zqD%i&1M3>yzL7EoXJpF!A2r6(KUJez&v~YPl92;!ioL{>`n^BZJtjSvA{WMlztjop z@s-kMx_y?jg0Z>A8~3DP}OvunU-_Wu_b$;n(6OiB>Tltki!Vf|_o- zqX5TDNd)5s)9*Oh??6eJU&6o7_(S@=;2plSy&MdOxuWRsK~h;#)AY{y$)HTxFXCex zC#m}_0>>1gAh+ltw%^*}?`+#|kx0LAiBh0c3+LRAUBjRaQu8cp`LgAhR1I~2EetHsf()>oV`iv7c7MY$)>A<=@vH~ z>vFj8E9tq8>o?5l2X)$ICmvOfU*=BMrLLb_(^%Ts*SNxgcCz)99_jkUH4u!~K-|Rz zmg|9B{?(7Ueo@))-^uj=7xPWya50jf@RyN>jvH_Sb{3iXr9R`t`Lu_X!n&G5w=4-A z(rlb;YOt8Rv|{#6L0Pa2zaGR=70 zH+RaJBf$?}`+gf?B!UdTzWt(ZmEkAL){DN+H(G~9IDf0eCX#cQEwaKx9V4EHo%ke1DH4`F;-(!f z1$VjhcoZ5WL$$V|J7$dH(umf_xHHbU0hEBN zH~=&rqF#?I#4^PRuTlyOlABS)4W7>{Ep)#+6`P zxBSq>3xz@>JR5sJrH0UNrT-vnNza9lEGmdx%2xFy?V{As)k(EpHqrM zPfC8=BDRgb2g&}Dl|FZtN&YM`3kqfiPy30wX%|^8Y``5@*o@#12u_+Q0?A~+ln)hY zON!m2s=o~JK3rXrxJ1=2J6v4ZdzN&ARAK7tS(*NE*&jz{NXB82Qu@c(u#{Ddo#TykUgC!oxAN+w_MC zzeA7~7b5Eox0vcWS-vDQ?VaVf${4g5FF5KB)r+%`VDHmwvix&9?QG4kF!n)XdK44H zf)^!7g?Fl?{1?JwWN*gz87W010iVqMGd(EV@9E6kukXqBFX|TTj?2KPNm{v9RDrom zQ4bW9&TyFF%?8AM!=!>L#}98*}^xZKv7=+~tNYg#2U$COH!>jBRapBRo4+ zHsKWwEuy1%@TESjnx7)?+PG?dvAgv~?u4l3zshxGM^~B<_;a1l-qZ2wehZ|Tw({pc z73Wm<$J#_myj{aTKJ}j{FA+*g@^NsrU*cqNq(?3&YrN;nH|V<(es^8Jrr#-fy~$)B ziZ-9|fW*OKM=;y$hb%5R8C%nDS@2wD#Qi*?A{7&Uh91T|TI7oF2{#Dq7i;>x?9;VV z%Wuk!#Vu<2=M8S1E$&@VE(?NFEJvzm@-qjJ4QVC5Wad}aF?MUfses;Z8FBUR z(krryXimmt*=I4pMIOwC{84%%U+O5kPMkUr4lXrQu8MSoS>&ySl(rFnJy+Pxv-!RMfLCEL!Nxf5On1s4~K(zcO|PtrUJ7njZk z1ZyFLRJNUvGhd%q$8W@XU0cWRp;y)M>vt&z+?Cbg7R=RLZdk@Ij&$LOgponv-jFaV zK?)Df3RH;cYqI>Jiez27qrcKze<~{f*K++C`J`Sp^fUWCR%h4qPY>j}F*ztD z2^IjUrJt8z~2e_S$Y=v*&GUcSMNe4Z_IqbVDt>BZ3Wi}j%i2lP+% z{qA-@-6GF#n<1v#;E~MGsyI8(S2j9>A^CpO`jLwm*TET$oM62{es0~+_vZWU>?iaG z`F=nCG;H9X?A^(w4~Y-;mKW(mCafmlJDE?74^PuB%LbUDK{aMB>h6? zKun*@Ip)m%Q!h;V4WYU(CjF*)_s7jON-_xnE3K1Z7tVq4C^r5~5_P=zR-H`wxn=vA zkbQ zHW(8vT(L`ki>m<>Xk78?$ZO^E}^)EBvQn6Xk%a27%@uL0RKW(9U{-XjrU)zf(#Zhs=H)bGIH8GWd zkz>}ZjX@T+A$&1af=|pL39%klL#1-$T#5|iGEIG`hN@k_T{J!jKvxDgfvJFU1GutD zkOWPX{-}m(W-6CaIYwpp>&!@tsz!n}#;SEBX1JB>QH2}koMg0>bV{WDHTDS7x3a(y z<^vp1ntgkCwGCPaARAg#6!hGGK){5VVMk}3C|l%oHhXv-?d*;mm5Irc&{ZtMb7SeQ zZHzVOFic{I9@2`J<%C=r55X4hK9`^D0g(U_i_-zjvj1_nJp3fcl;Gx3$N`6M+(-nB zgyXKC&Tiu8W{PnM9t$r@-L{F}pm~&a%3L2Ltd|KU5szLmjV6tgBE?zMp4h~1+wc<{ z8lA*5wuAZou*n9J74^8PiGMdnf%BXC^)N*H3eVSnJeXh5uBb*5q55X*Sv=0=lX+c8>yF1{1y1BG)Zn3I@r z*cBx${6)4irJ??$rQfpVj@u3G5^C;*`%td@uu0c!<+pQoY|_13agMHjOpj{Ctrzb- zrsuZuYZt!xflo>zS|ORkTb$`Kqc_qo0@+0VJD80{^VU&)S)#PIf-X)Thltim%W!X5r{C zSng~BH|WJ4DXT+xwBgReEMcpm%jgDK4Pl3I!HMf{XW?)^n=GKxIrq~`S?$@XbMx7T zGEyB4(m%SZk!s!wX2XY(1F+TDV;#IT-y3eT;)8Vqyj+8#Jx)BmH^B&ZL_5J`A{&Rq2`XHHDNIu~2%Q+nTA z)loc@+TNn-*AovNbn!MlG7gqQ=&Kb_`=VRa3Hh($8IWGo|E;m=7A$S2=+AD!6uL*d zx2jI{O#OfC?u=V8JuTAPi9XcF&kf{fvdM%d6D;}FI;m@%Ov;=dmZA9mTq%H9FRgo?8+^dENhlsSH@ z#(x7-b9!mbXj>%D?$hgxUdf49j~%YRywPu_%jfv5dmarYsr(P1PWLga1sxT&?9ac$ z{<*v6|Jz+!1@vjh7W5N z4Z8Okr=5~)(!Z!l|718IIVla3NkwK!Pa2@Vzs~P<+W*fEBltF#u398d8jw8ow1LTi zXPnuqqSf_&b61~R?oZbpr}!)LhEEzheEemX4<9{o=qT`g=%tqr9n!wIeaCj~+Uea> z{5=EZp-sDXZQ8d>w(HofxI?!NU6Lj3F6mk_{Nka-?S^&f(5`cbP9;N!b}Ak=Y*?4! z9WNQ);o@QK+YN2su48dY@$gI9cWyVdUB}MDN;(z~?b@!SU5Bp2iYvC=;D_EZ|1WcE zGA=oE)cD~;hh3c7~QRQ>^D{|Jbq#RxEB=b}!3zaxCkLOi6s? zo@m)FPghwn{{K5cSlO0sjk97IJde+`$y&d8o1JK; zhu`V9aOVC{G51ctxt(zrZ|~;6`Fhn|{t3m8@^c*jHL~LN5GHdbV>yxMmdBrGH5o#O z;gX-QecSRsD_r@LF1g#^?mYQRMQXmk$Zn{9{uY*{$0+Zy?W-o{-w^% z`}FR6{eBHM?z0n0=4b7MJ=iW!jy&z+>EJ#+c#)sqaQ=QuWh&MlN|(x0Ql5V2X~ll6 z7y142XB{9uStkA`g$v|Cs{F;nvIF|iB7cPU|I~ISa6VVva08@{Z9BpOXHJ|2YG1pF8k;roQ@PCrrF{)a3f7tIxN( zf7D-c`DdcjHsEvM3*g_tmjIthUQ!bK>v8YAXmN>7UT^LjrqtCJEA{+PrG5pnQgMT7 zN`2IxJA2@%J(POz45iL#rBu#YO4WpB+A4KMe+LET`_DGrEY@u z4)L%Q9CQ$dMfSgdKH!azmluVhAdN~Xv>$jGLDkZgx`aaAVYrrf5@31CxScukkM9@ZfUjr7>Vu#i|Pet|Mf3`I(CH*q_hmgAlYg`C_0c9_s zo4En0+MvYwRic;$?F%z-Znw0`aB6Gx}fMJT6hhx3i`#g zr~>iB@I3+4fbT|xKTh7Y#8076TPi--QmO4IzbA+8qwI%u$iqsXM$u>xj4xv9&b0Ur zG;U6Xn)H5Xx1h{2lzRjrStBqVt?3AV9TZtk{2)*W9L8c9RQ@CtcBK*RkaZRDYVw<9 zGWt;N(W**~rrabq&$T_qktS|4Z%z})bqrD4v1axl-I;w z$J-3~PkD2rn|Lm|>k(XT8PuJ`?HNN0!I{c!$H+{qR7$2&KX$-QsBs^)G*I0&R&s+XsQfsdmdkh<4}K}?TQrBKpp>f&D@E2e_+-A_M|`Vx%coSSmR_r2lh^}K zd(+RzyVFYEqHCeILpyq5pm*`f4L~p8vx}9=q|qhxhLOh8!(VocWiR!bRo7V@O`2q7 zHRSO|n~w&_q3zhLrCy85O-heURV6dCQf6$;Qtz}Vb1w6)gYw(&vXaYXRvM70Dpj(o zR8f2;#Y%3zmlpp3{0PYL6Yw+e3-BvY4D18=!2FK8tz^@J&Sm+_DkhP(6D2K_3=GE< zLPyvSF~Qx#^XJc3q=iwaDi7ee7^AtBy2u3QA8%nm1NU0EO(6~xd60iblSDdh=ULQ9 zqEp4r$PqF0gB(-)1!-AL|9 zm_C)|v;bnKIc=4yI;s|pqJBBvKvcC+4cs8bI1d<1yf1dpkhJSDIHk=GSik!Hbg?9c zQE7TUmEKRK-(-fBhDslTvnIp>h-MdUt3|ODB-~f%+uF1!WG+i-CLpWDR;%WS)kvK7l zPWhO%@hGpf#~hifn>46ansHOW5bUUsyytACnu<3)h^RfR9L*d?k0jRAXHun-0uqgv z_YZW>^OaF*PN;iaZdInK7K|NuXIV{2wA5__kCy&l9G0e~zH73v`7BehoF@F!iLHfZf`5TxRh4x7fD-*+E2Sel?>WG&aMwxF~ zFtMiLe^($pF7Wz(O1%m3uL^+zQs8EU??YfuDmVsh2eZafl-N*>tq+1l$weq6bK&R2 zyD-v7D*c20mPUw-BH(K*SwLUNq%yKHzBS)Uu6R}#JZ~dT+LIC=pMz;*R_ul!y}i-A zg;sLTRefwXqF6a8lfk@uRUgk!Z=eoIkI%9F!8vU(J92cpexT#0Zwk|sa)b2bAf5F& zLfLA|M3YqvE=$0sN37&QYd5JK)Kko}r2a8+IMOE2@{Jiv&2Ak)KP(_{20EVrSY&4! zJC;c&K-Q{7xXERc$E&dusfL7YTU5AX(aNpQ@zj(xXK`%b^Ili0aB-~Fa<8TJ+v3=; z<=iAJC|EgjId?YQPabDAi|t$ComMI97`UCGGE~;X|FDt=O73~Fk5+hIB&*;_EBTZ1 zE6;g>%dttv{y1{@$f4g49*T{7(Yrpn(0e8Fv{%VgGDBGXZ#5s7w8*EHg!$GG9S_px zZK|gmP|Et{AFlKSH9=+Q8&tZbZOuK>AT(3gDMydf3$(JXvL3RITFveI?KO7esMFPX z)_Kcm@Amv3!Z3K&xmyXJ>sKSEd1Wc`zvoB)H`Y7V-V?$>b(vbJCh4nf*O7MKNYM5s zJzjmOCETyiR%ffeNqv)e43|*b`Y;R!oCD5f)+Ak3&zF)>iv72cX05hY!_`eqa3(n2 z?PJa{e!JUOYN_COm}ynBtJ#~asrpN6i>_$@qPy8y|55sre89F0hKX82KyBi;QQHfg z@nBDdspBQT)zf*r_H}!J4ua9I+ppUZnuQ*=tMq&JDsoXP@)CGtbR+-*rDXsgcjk=jL5PyGXmpyQa{*ZF)sIMh1rAU2{QX zJ9%%L?SB4t(~-2~?l4*KUl5t>{|1=I`rHhT%ppuha-B$2l9KtSxhv9{AnZAjoXBuO z(@3kx^Q4=Db>ori?dFZhzX+fE;ke;Xg$=bwIcM8loVVQj?4O-$Tw_L9ue$5qJFU;$ z4(4k2Y?E!qn%ko0cC*kt?k;feHW%6j=5+Ii^OXC9`Opk7pO}A}-e#Ej+WcZJFyqbl zkzXR)`J;s0kr|QiBHu>#My5yhMShO_5cw%`Q)GPPw#cu9{gG(oP~_&w(MUyaX5?OS z?u%@V6cf*i?1+35*%jFnxj*uBl&#U0Q5V zZR#zLyc}ub{Sj&AHTPP2Z9Lmc^4fU^d0FQSFXFZEI(n_Vm67gVrgx5)*u9 z$Dyf@)ln@~E3R2Lh%I@;tI;`?P4s?M)vu*cmH4SZRxLyC=(4hnm*>sNa< zBA=;xJS~?It4yNv&uq;L)p@`hYPDLU-c)a?wQ7(WqH3sNTmebt>c`o-yB4ScSD;*B z>>CQlmag(nyD*O{{-Vu9>TRMkR43h8pR4XtccZw69{tc}rkbVtsLra3>dHeIXJLt< zP%q*??~Bz4b&VRQu2tiitgqwh(?qUmr1;9!`a(@nQ@MC{x^AgE>ed)7NF&ZyAa%Y9 zT0Kv74%=Ah8>oAb-IWqz_-?wo%J%J8qg08+3e!||X4D$0Ybd0fZ>ZSoZ+PiRdsxLj zkq!!)ymPge?xrKN$WQnB6Y^26+DRL3KtQTrjZ`=}RJKsvgw@jEtEsx^uDVdoR3D(y zN2;O954$zgTKaqt*W*&vBEL&BRC*}nM%4oiZ&tUc>7fJlRkfM)96g6SJVEzPm8Q4v zUg+y0_CK4tGJ(Ko-4I(<-H0ZIp`b!F+t*f1G*8V@AE`#Fsc-pSqREq}T<9|tQ?!^= z+&%Wv)l$LR==84Yt-5hl)1#srX=ow58DX zQqvG1f{qa@Evks6Di<)&j)Aie(?bz_k+0r}u#J_D z`$~64l|K|_`;ubRn_HmBQ-7XC{ZGV>vgmE z72gpT&R{O7jsW)Gj4&Cq535ITlHNSBn4v}8g$U2Xvu2fg)VeplS{>Wz_IixpBfqH> zoKoC0FhTG;3DE&oiE5^WW@)g_YY;2VwNvd? z2S#cR`;Y;&TPu^-dCvV>KwX!fO;HjCuwQnUdBmbsR(~mh*d@DdUR}|`VD4D6{@CK z^U zs|$?YO9u7t$1~ADx}h6+TBobI#Ig>gt9vj&Mybvk0|%ly`HOtu3n@WX@Y|Yhm6gA( z%m~x`8Un)9u;f(g3Cw#Ru}n8(sVh*cLZecZ&^I<=omVF+E?WZ~f>Cg9D5Wrz(wli? za;ZdVWFeDSP-AJ6ONACP`-mK&j3K^1)K7+DTq~hXLZe`;f5Am>nh`G~rWFS1R*6OZ zLYQS@3ltT<5y}PXLO*VV_XLy2qujQMt1a@{C#2$)i~OLWGUpaDOGQPP*sixPPEv^w zR5rLY?_yu2hf!$}3R(V6NLm`NKw8>})Wg_RI3^JXExnhyI_R&s{Oal)T_Z|i(W#X` zlLopSPz|-EPt(2CL8_3jO|4T^^r3{74yHsi-AY%~fl7x^siHot4#U@snSMKQ75%+3 z{yf--mVQOp1xz9@P{}Y6N2jS;`cHL;s{W*>-{GE6Hy{IOrSDZuxL5U_YOdc?3m9{0 zSg9`Kyt)2KRUtoBS2;nY%KBF>?*6JS1~#hsD3hvFb!AE)#ve9v5%?#DQg?sxIgCp0 zsm4)s-k9JJjr7-;>1#+EQQ(Jtj4;w!`RR5_K*JXk?hL}GaztxUniey<)OW2O2_rDKl=iR;pL^_jZf zhj|0N`UkCO24+-Ey%mUVv z@{?5aQb$Xt!pUj|>qAw)Vdqn2PcYesWCQW>bPrfGgO+7ed2OFqonAYQN{ z7WOp1Whs7vxm0#9ExR{tne^o}xLnzQsUEtAKHis-s!X2i=ikF`BCW2HmxG1pc*C0c z>1YpK7bGAGLl6RDJQc(%{Q~j4UMHk_=>C3skpKIiXqTT@F1Dt~tH2kFmKS-=V?&F) zd9l?Sy{luJHhP0gf10q{Q}o_!rjUlZq0Vu0t*-9ZdY8`SS+iX04j{)JVC7mpt!4UY z-N*#I^{lV;b{=)QfZ4LxZl_OILFmp9+-FPfIOiU$JA(KJLZ;Kh=|s58pKtGG&b?bL z)6I4BsNU!j>8@5wOX5KM)y@E3y6b5Turm2o#6xsXD-d{&RhB@bzScAKCFV{xM-uKJ z%=N?VIP4~!%Qcou+$J<@dDQ7?{iw(4*1k!^ zEOXSIJWkirUG5xJ&*xEAA1O2}KS@oqw;=vKsU;l~$#fbIX zeNJQRe)XMGOV_pPG6ssB3$2K{&{}Nov;#{W(SK`E*dVb=E4ANQruRGI0b88QR3JA= zr&%j?6)VN6Xbp&3qfAe$z%JoZ@{g(l|05Cz{;tenQ&xL(t*7*pT3jpFxYq63wSwx7 zI8oKtO45$1=LVJLT5Gj9_8^)R&9Ew1b=(~5j519nEm?x@x3PsxRSmIJiMv^kF*1CT z+|_utRN7a+$>{0Lt2N)~?qVx-v3o=}MTww6T~BQ(>Hh+rGs;!Xoe%ABoLbXa(>|~R z{l$1QlxuC)7XXr~L+1>0XX^n7@99rLuC-qcuwHX}T5Z(lq0b);XMw-Z19hA_PCdR{ z(~zMVZLTkJ?_;2>(Yx(TYqDOf_o_P9qX_?mDQANo>|V#CqnC$5*N46lwCU@=`*Ya) zqULM5Idf(U!liDiZ=>bTq)^S#s)$*2fYmd~{MOd0#c02a$GVq?#@c^sVA&^BG9dRWb!jkuun{s7BSGMiS#UORO&rnWZ3ciDBF=)3OgI>)NxlqFb%ZgFlh zKk?hc?7&h-^k&_GtGolO`F2mbV4yqD4NThG5;epdMzLCs*5B!&p*z1;mZhR6e%we-FW&!7wJvILiDspGwW7Bxmi)E1|?v(>qV zWVX4%p2H()2f&4rYn|?#&U-M~PF-i1UhiCt^Oa?(m;LcEQFpdFQ^J9ac^jVp25)T zVU)R6pR2Fa7qM_{Q!=p?>cP%WoC(T8{F-~JsVXY-c3CZwzR$G|=wf?0mgt}kyZ3Sm z`~@rg0Bb+4wBK3J0`;IShvVL;m+Hs;X(iV>>Z{eL%qe>dXa8?-9iW0fJ?a~c$ydt; zt%lP?KdN`ypXh;BFTKuQXP?FY+4L|yOs@64%4X`BqaW5KVc(xw<|q++R2&L6UEQikyJi3Ln){x#1QlW%g>t~)A zXO7<#;v|*!W^;374sCmldEj64??-y4%5!EoeasnrdZ4$7 zaIJ2+6XBVk<<9H8RJlUWbX=@4!+hr~4VR)D${Y#3tTw!jG1(3Lz?{GrP27>4Z>?ZS zl$&n+(<2oX>5X~SbMl;SE}sbwJ?G>t%1pc^#z|dAf}CTN z#dlceMy;0+oXvScuGNecFxUE1Oi!MiXy)>o+cJHPJd|9Rw z{h@DBt;|hjwldfHhK9_xU(vs-0s7k$=Z|RO{?y7~f7*w;80QfNmg#Iw5cjk0tNL=M zqbv9_#>B(U5oaG8^doAc-A6y6=Gm3#vf1_s=V@M~KNGH}v1G1w7I#LP`t!jBeuJW? z+L`BC-8faxwd9`e2;x&s95Qdrav!rFwa@2-Y^K|ft9|qAZ@EsIqeeLM@qk5Cx0BMc z04di|T~0MBqW;c2$EwN+Wq-m0gxoS6E7!VAFXOarGonWTf5H18XVke?8WmR2y{%vL zb?P@LRdl);zy;e}i*rMhsWQ3VJCGCpEOG{MT6_-SsP3erxz?5XIrSXdk6f#{^}Ko> z23dd(`a)*7!#MGr!Ijrw0qVh(&N^_8(-(4;D3>oB&F8fCN&6{#uo~+N$NcJOg9N}OMywiFsev_GL33; zty}e7_(d%S-g;*q7nd41tK8n!KY1qjNx~w+BZP&7>)eMqziw|0<=)ptgm%91uW}r9 zmGiy5i3>M064~$igZUPBx{6Lmrw#U%&P)Z^GdSlDS~|&`%Thap)9o_|@|?vx_E0lZ ztzqxi)csA>b*s3Q-Bfp+c}5xQTDJklFVAJC9y(j^RtxpBZu@Ypla{u(_NhztLG_f| z!B=SvR$AsTE^mJ4 z+;IkX0Rok-))7ShLyzZrS3kF^d%nAl8xVcnY>J|PS^;NY>kLA6B!|F=znlyKAbdC|+tty%gieXUak3)*xjof_rpdkRD9eeUDV&{OTW|d7_Do)te#NP+ezfb*u)696C%WEQ<6JT38h zzsh*dACyWAFZ$`0Dk_;}5rua6q=Jb;{u3>c&$!Qq${Sa@GJ(eat8AjL@mHlq6N>p1 z<9?-irm@6IekJK~BVnKGxKn^2>~kf=QxZQwXkr>CSy|yf=ag2yZS|A%dLzjXiYe&OzNKX*TMKXN~Gqnq5#Zf&=Q+dn~(EpB7?9rtZ_19>~# zkKM1`?QUx`(Ohrr1e-W+qJ{pu(s#fwB^vv21NTlsgQ(lUy~pip#<@Y5Lj2!F2}cXl z>;z^0w^G7&eL@Wh{eO*l7=bBf1Pno#007?(w_h!OE9)G&owap#oRdC3%<9grfxE9%6==`R;u85mY%q+5ubW z#*p3H9nbSsR}-RFo5h5#W*WmH2-8d#w+n4?kAOuch4KB5pg@k zsizk7g!`nM2V-J*DNH?oLauPkj|=lDRZL|+J^gQd$EBT7N=xYfiKTa({P6@4cDGAZv4JNb!nE6ols$Ew(pW%YQ74c+N| zBNyt=2O4pg=~Cj3+?<|EEN{#WAsz@Mar>hgcQSf|-wd3?ZZ(@zrgOpN$l;M^c}{m5 zk3r9F9Xz|cm`9{n59Vp%p-QbokmY#B_}mjG+;HjmDc4>$W}+HBW_)b*F7J$Jn<7d< zD8*IwQ143b+e|8>dQ0pd||O6)*1@D*-EKbi1)VU0cHr5c_Ny# zE72^7&*V93@*9jFHF?U!QRBvpojhU6WZq@H;>yXf3Ez5^qDvmMlN&`G<1{Ph*01Qc zOLe+bcXe&oMnLWC;AO$fQzYi$cq%x9{>+1R8SzZwo2h{OCKmlZT4{%OJvsTcxX%?) z9cUPP9{E2Y$laog*%D=$~#VZDr*ls-0bls9~Q~SP&m54PHx;f6nzH%S%ZE* zb2wZaE5q0UN1avhYQBJ9L|mZ~kNC?W6+!z(XvD=rdrn-y&-ZC_7uv~|5Ep=a;q^}o zsI7T$|CuObt_Fx4Yf6UcR6D1nZ^>#-TY8l|rTUb-SW=rSQG-fG>f80tx|r)x?Mn8R z{CMnG$p@-EC#{9nUsjKj9;%o9wbjEOZr^5Krr)&J+C58NX@o?ulXQDHO&Hgm!7ANX_7(tX1%Vn6f?JE?>2A(pQ{-D9q1 zzajgn=H}E&zRlTcqmq|PW|Z8dwp!=gy5#PX79~scZmzw@OLVX#ylK5#($0Fz%C>JS zX=O#fDrv2gtR(B-CA~{Nx8AZ((~b0yT*{LP{oNdldZf$<&d|mQONfMU@F6RWOqds5nuo~It z*-zLn*4U$fKL@77`At7g(nb+g;9 zW9pa&<{Wd8IqV*B%b6OciK%CfvhLP3r_6J zzq!lIGxwS0<|Q+V-NhT`EwjQDnfJ`U%tz)$v&y_~)|gkKX0>_KtTpS*2D8zuH}9KG z=1TULkC;W~OY@BxXRb9bnAgk}v(>CLN6kCtQ?uFZG`mf5q*|nAq+X;xpP7BxylOr+ zRU;K5l_FL63xyhy@{yECdZbpQZlrcZ2BA{-vK+_}U+rY|%jwV1p4c&V;0JF;bP`;X zfhoXL;0EAE;3hzhFjCV%ZU$}vrUNs8D3Axt1ZDxVfm<2zd5_!4v+P@V8TAf8j={Z^ z+T4>D+K8J09hjVk@cPfs{m5Jh)3eNN-?yiF-m+PdsZ?)bIkI_q^bIDepP}zyg1O6| z`;^K;h#b9`mp3D56!Fw^Vn=`WYWjEdWr_;k?F=4c8_gu=jN+{vmc`$gYtLhnyNA4k zm+-A^-9X#4SrYsfd3xw(RF-0s_rH6N2tVo z;2(ra3K6=YtPq&mxM(z(;loa9%c2 z&t4i05(`Nb;aQ^T!{AlJiXQ>LGOTzJc%$wC|D)ia;dLVPG4NL@EBIpY0aQ#%7l6+^ zE0DPad_M1aiTuYy+!kC$#m~G;Cxm~1?+)=Nz+cV?ggyyAovoBq@D%v3R4n{YgV(2J zf-eO>loQ~~z`MXN`OkoFVX-Gt&+_w6AeSzQr_X&3tOU1{jOY1T4h-{KAEZ~1o}77{ z{sQUQ3F#LZ!tBz;S!R%6gAz>AO%z7(U^-n&C@z%<2e|p=?>8-KaCMh?0 ztDS7Oi8EE!0b-9~5M>lZ*&b~pn}3QZAZ~0^ zH7yha`A04t^YRp?KT`Jr`2g>^ZiBbyJn#nqIUWQa0_FoTU;)4m@kC(-c*v^13tRE| z{~+vSS@SYE+xWYzxnCTYh5vG#O0$!N9q4$J{ z5#p=CSBLmhZJEwO{LO4;m=NFGhSyI+d@cA|aNqu)^7k^Uzv47wSyxUALypnZx<14! z(C)$z@7R$y^I@(y1rg(bn}9Z>FzKaQs6Cp{vSH-ajtsAH>n^ zq1dm9cL3i2JAqxmZs1$sJ3x-_fjwCCYdg95Z{P=jgMb{r1BZaaz#qU7;7{N$Htg_M z5e0Pb4gNdoe1nFBOo@i`iU=5c;{H=ZW|%DPAPx@{qR) zc}Zu#xLINf5^`n8MM7@Oq#=i2Ix3a# z5PB8p#X|qGzE3_beePb!sgM_dr0fl)mo{xhoV+%XT&mkPAy=jJ9wFb*>O|quth^tf zSA(7plJa5VcoyB33ONn(Dk0BH=zPCvn}l2)@(v;AhvZV-4#&xJe@q~YZ~3JQevDE) zo#HEmo*mltuQ?*ZeG^Wd_R!^Q$coWL^h8lvPSw zC0TVSR|Jx>FFUYysXcZGxh~{lArI>kOacjA&A%&I^`I{RN%=E$)6%|NA>{gy*MijC z#eynFoGh^%!mvj;H?ztf00}IT_bXWqpydm4W;P%D`jtf>ATE`>(;%)AWOjX(wE-lc zZIY~p&~|{NOt0@(;;$8cCmt4ZBgk`$Ax{h4GpNO?ZEQIF7 zkDTl*`TIkz7ElF*t0J2OIY0q~t%9qH$Z8paa1H39vOa;3t2I+@c(j7hI)Er|b8$s5 zHK2fstWz(03@YNm4F<0B*Iq-xijPTx4 z`aiy}L3-XF&@-Ut3vyYi%6bBXSzso;0am4(xK{{VQBm9`$$Gz(Wt*^chnyLLuyE%j z>p&?>-Vs=`AfFRJR0$7vQ~2^=yr!kX(*t^T2tA3p!IHJ1lw}iGy>rR#6+&;~!9|GT z00mI_uyFMud0q&8iRDg=906Apwt_!lJD+qvAP49VG};uf`KA?NMZz@z%0OTcAc_yz z7;upcsw@_+T#^?ga9wmV*Mh&`lJbM(B0^l4+!K!mOS)SVSLs0BOjg2AHJTvs> z1cspg!Eh7_N43O_SAvKkFcb^JC7gQ7ks!iP4~1bt2@HF?`{}k};*ESl94}$jC;a4`eeI}fnk*}Yzmc# zGsG<~3_FD3%agPWRN^ip40CUTVdF`LLqhE9^dz^BaIAnM<&%)3)OJPW@^B@6E94dB zPi$sZah#lYJMveQkKJFBMqUa3QpwnUW-LcqEzYq?GJfmoTh`AwEEy$T1G`)WN5Nb& zuILfiMKX#cV{(t6&Y-{YwG%c=3|A}+JF1<)z$>A_Aq)%dK7~WuNd9@igc`$p+Hj`G(6w$@3@n;h|JE8c=d~4GF4`Lxj_y7O^ delta 231757 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 Date: Fri, 5 Dec 2025 02:22:39 +0000 Subject: [PATCH 008/104] Create OPFSWriteAheadVFS.js. --- demo/demo-worker.js | 4 + src/examples/LazyLock.js | 59 +++++ src/examples/Lock.js | 65 ++++++ src/examples/OPFSWriteAheadVFS.js | 360 ++++++++++++++++++++++++++++++ 4 files changed, 488 insertions(+) create mode 100644 src/examples/LazyLock.js create mode 100644 src/examples/Lock.js create mode 100644 src/examples/OPFSWriteAheadVFS.js diff --git a/demo/demo-worker.js b/demo/demo-worker.js index f6285d0a..5a68825a 100644 --- a/demo/demo-worker.js +++ b/demo/demo-worker.js @@ -61,6 +61,10 @@ const BUILDS = new Map([ name: 'OPFSPermutedVFS', vfsModule: '../src/examples/OPFSPermutedVFS.js', }, + { + name: 'OPFSWriteAheadVFS', + vfsModule: '../src/examples/OPFSWriteAheadVFS.js', + }, { name: 'AccessHandlePoolVFS', vfsModule: '../src/examples/AccessHandlePoolVFS.js', diff --git a/src/examples/LazyLock.js b/src/examples/LazyLock.js new file mode 100644 index 00000000..2ea35530 --- /dev/null +++ b/src/examples/LazyLock.js @@ -0,0 +1,59 @@ +import { Lock } from './Lock.js'; + +const BROADCAST_INTERVAL_MS = 25; + +export class LazyLock extends Lock { + #channel; + #isAcquiring = false; + #hasReleaseRequest = false; + + /** + * @param {string} name + */ + constructor(name) { + super(name); + this.#channel = new BroadcastChannel(name); + this.#channel.onmessage = (event) => { + if (this.mode || this.#isAcquiring) { + // We're using the lock so postpone the release. + this.#hasReleaseRequest = true; + } else { + super.release(); + } + } + } + + async acquire(mode, timeout = -1) { + this.#isAcquiring = true; + try { + if (mode === this.mode) { + // We never had to release the lock. + return true; + } + + // Release the lock if held in a different mode. + super.release(); + + // Poll for the lock. This isn't necessary but if it works it avoids + // the BroadcastChannel traffic. + if (await super.acquire(mode, 0)) { + return true; + } + + // Request the lock. + const pResult = super.acquire(mode, timeout) + this.#channel.postMessage(); + + return await pResult; + } finally { + this.#isAcquiring = false; + } + } + + release() { + // Release the lock only if someone else wants it. + if (this.#hasReleaseRequest) { + super.release(); + } + } +} \ No newline at end of file diff --git a/src/examples/Lock.js b/src/examples/Lock.js new file mode 100644 index 00000000..977ebd24 --- /dev/null +++ b/src/examples/Lock.js @@ -0,0 +1,65 @@ +// This is a convenience wrapper for the Web Locks API. +export class Lock { + name; + /** @type {LockMode?} */ mode = null; + + #releaser = null; + + /** + * @param {string} name + */ + constructor(name) { + this.name = name; + } + + /** + * @param {'shared'|'exclusive'} mode + * @param {number} timeout -1 for infinite, 0 for poll, >0 for milliseconds + * @return {Promise} true if lock acquired, false on timeout + */ + async acquire(mode, timeout = -1) { + if (this.#releaser) { + throw new Error(`Lock ${this.name} is already acquired`); + } + return new Promise((resolve, reject) => { + /** @type {LockOptions} */ + const options = { mode, ifAvailable: timeout === 0 }; + let timeoutId; + if (timeout > 0) { + const abortController = new AbortController(); + timeoutId = setTimeout(() => { + abortController.abort(); + }, timeout); + options.signal = abortController.signal; + } + + navigator.locks.request(this.name, options, lock => { + if (timeoutId) clearTimeout(timeoutId); + if (lock === null) { + // Polling (with timeout = 0) did not acquire the lock. + return resolve(false); + } + + // Lock acquired. The lock is released when this returned + // Promise is resolved. + this.mode = mode; + return new Promise(releaser => { + this.#releaser = releaser; + resolve(true); + }) + }).catch(e => { + if (e.name === 'AbortError') { + // Timeout expired while waiting for the lock. + return resolve(false); + } + return reject(e); + }); + }); + } + + release() { + this.#releaser?.(); + this.#releaser = null; + this.mode = null; + } +} diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js new file mode 100644 index 00000000..5ceacfbf --- /dev/null +++ b/src/examples/OPFSWriteAheadVFS.js @@ -0,0 +1,360 @@ +import { FacadeVFS } from "../FacadeVFS.js"; +import * as VFS from '../VFS.js'; +import { LazyLock } from "./LazyLock.js"; + +/** + * @typedef FileEntry + * @property {string} zName + * @property {number} flags + * @property {FileSystemSyncAccessHandle} accessHandle + * + * Main database file properties: + * @property {string} [writeHint] + * @property {LazyLock} [accessLock] + * @property {number} [timeout] + * + * Main journal file properties: + * @property {FileEntry} [dbFile] + */ + +/** + * Cache the OPFS root directory handle. + * @type {FileSystemDirectoryHandle} + */ +let dirHandle = null; + +export class OPFSWriteAheadVFS extends FacadeVFS { + lastError = null; + // log = console.log; + + /** @type {Map} */ mapIdToFile = new Map(); + /** @type {Map} */ mapPathToFile = new Map(); + + static async create(name, module, options) { + const vfs = new OPFSWriteAheadVFS(name, module); + await vfs.isReady(); + return vfs; + } + + constructor(name, module) { + super(name, module); + } + + /** + * @param {string?} zName + * @param {number} fileId + * @param {number} flags + * @param {DataView} pOutFlags + * @returns {Promise} + */ + async jOpen(zName, fileId, flags, pOutFlags) { + try { + // For simplicity, everything goes into the OPFS root directory. + dirHandle = dirHandle ?? await navigator.storage.getDirectory(); + const fileHandle = await dirHandle.getFileHandle( + zName, + { create: (flags & VFS.SQLITE_OPEN_CREATE) === VFS.SQLITE_OPEN_CREATE }); + + // Open a synchronous access handle with concurrent access. + // @ts-ignore + const accessHandle = await fileHandle.createSyncAccessHandle({ + mode: 'readwrite-unsafe' + }); + + /** @type {FileEntry} */ const file = { + zName, + flags, + accessHandle, + }; + + if (flags & VFS.SQLITE_OPEN_MAIN_DB) { + file.accessLock = new LazyLock(`${zName}-access`); + file.timeout = -1; + file.writeHint = null; + } else if (flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { + const dbFilename = zName.slice(0, -"-journal".length); + const dbFile = this.mapPathToFile.get(dbFilename); + if (!dbFile) { + throw new Error(`database file not found for journal ${zName}`); + } + file.dbFile = dbFile; + } + this.mapIdToFile.set(fileId, file); + this.mapPathToFile.set(zName, file); + pOutFlags.setInt32(0, flags, true); + return VFS.SQLITE_OK; + } catch (e) { + this.lastError = e; + return VFS.SQLITE_CANTOPEN; + } + } + + /** + * @param {string} zName + * @param {number} syncDir + * @returns {Promise} + */ + async jDelete(zName, syncDir) { + try { + dirHandle = dirHandle ?? await navigator.storage.getDirectory(); + await dirHandle.removeEntry(zName, { recursive: false }); + return VFS.SQLITE_OK; + } catch (e) { + return VFS.SQLITE_IOERR_DELETE; + } + } + + /** + * @param {string} zName + * @param {number} flags + * @param {DataView} pResOut + * @returns {Promise} + */ + async jAccess(zName, flags, pResOut) { + try { + dirHandle = dirHandle ?? await navigator.storage.getDirectory(); + const fileHandle = await dirHandle.getFileHandle(zName, { create: false }); + pResOut.setInt32(0, 1, true); + return VFS.SQLITE_OK; + } catch (e) { + if (e.name === 'NotFoundError') { + pResOut.setInt32(0, 0, true); + return VFS.SQLITE_OK; + } + this.lastError = e; + return VFS.SQLITE_IOERR_ACCESS; + } + } + + /** + * @param {number} fileId + * @returns {number} + */ + jClose(fileId) { + try { + const file = this.mapIdToFile.get(fileId); + this.mapIdToFile.delete(fileId); + this.mapPathToFile.delete(file?.zName); + file?.accessHandle.close(); + return VFS.SQLITE_OK; + } catch (e) { + return VFS.SQLITE_IOERR_CLOSE; + } + } + + /** + * @param {number} fileId + * @param {Uint8Array} pData + * @param {number} iOffset + * @returns {number} + */ + jRead(fileId, pData, iOffset) { + try { + const file = this.mapIdToFile.get(fileId); + + // On Chrome (at least), passing pData to accessHandle.read() is + // an error because pData is a Proxy of a Uint8Array. Calling + // subarray() produces a real Uint8Array and that works. + const bytesRead = file.accessHandle.read(pData.subarray(), { at: iOffset }); + if (bytesRead < pData.byteLength) { + pData.fill(0, bytesRead); + return VFS.SQLITE_IOERR_SHORT_READ; + } + return VFS.SQLITE_OK; + } catch (e) { + return VFS.SQLITE_IOERR_READ; + } + } + + /** + * @param {number} fileId + * @param {Uint8Array} pData + * @param {number} iOffset + * @returns {number} + */ + jWrite(fileId, pData, iOffset) { + try { + const file = this.mapIdToFile.get(fileId); + + // On Chrome (at least), passing pData to accessHandle.write() is + // an error because pData is a Proxy of a Uint8Array. Calling + // subarray() produces a real Uint8Array and that works. + file.accessHandle.write(pData.subarray(), { at: iOffset }); + return VFS.SQLITE_OK; + } catch (e) { + this.lastError = e; + return VFS.SQLITE_IOERR_WRITE; + } + } + + /** + * @param {number} fileId + * @param {number} iSize + * @returns {number} + */ + jTruncate(fileId, iSize) { + try { + const file = this.mapIdToFile.get(fileId); + file.accessHandle.truncate(iSize); + return VFS.SQLITE_OK; + } catch (e) { + this.lastError = e; + return VFS.SQLITE_IOERR_TRUNCATE; + } + } + + /** + * @param {number} fileId + * @param {number} flags + * @returns {number} + */ + jSync(fileId, flags) { + try { + const file = this.mapIdToFile.get(fileId); + file.accessHandle.flush(); + return VFS.SQLITE_OK; + } catch (e) { + this.lastError = e; + return VFS.SQLITE_IOERR_FSYNC; + } + } + + /** + * @param {number} fileId + * @param {DataView} pSize64 + * @returns {number} + */ + jFileSize(fileId, pSize64) { + try { + const file = this.mapIdToFile.get(fileId); + const size = file.accessHandle.getSize(); + pSize64.setBigInt64(0, BigInt(size), true); + return VFS.SQLITE_OK; + } catch (e) { + this.lastError = e; + return VFS.SQLITE_IOERR_FSTAT; + } + } + + /** + * @param {number} pFile + * @param {number} lockType + * @returns {number|Promise} + */ + jLock(pFile, lockType) { + return VFS.SQLITE_OK; + } + + /** + * @param {number} pFile + * @param {number} lockType + * @returns {number} + */ + jUnlock(pFile, lockType) { + return VFS.SQLITE_OK; + } + + /** + * @param {number} pFile + * @param {DataView} pResOut + * @returns {number} + */ + jCheckReservedLock(pFile, pResOut) { + pResOut.setInt32(0, 0, true); + return VFS.SQLITE_OK; + } + + /** + * @param {number} pFile + * @param {number} op + * @param {DataView} pArg + * @returns {number} + */ + jFileControl(pFile, op, pArg) { + try { + const file = this.mapIdToFile.get(pFile); + switch (op) { + case VFS.SQLITE_FCNTL_PRAGMA: + const key = extractString(pArg, pArg.getUint32(4, true)); + const valueAddress = pArg.getUint32(8, true); + const value = valueAddress ? extractString(pArg, valueAddress) : null; + switch (key.toLowerCase()) { + case 'experimental_pragma_20251114': + // After entering the SHARED locking state on the next + // transaction, SQLite intends to immediately (barring a hot + // journal) transition to RESERVED if value is '1', or + // EXCLUSIVE if value is '2'. + file.writeHint = value; + break; + case 'busy_timeout': + // Override SQLite's handling of busy timeouts with our + // blocking lock timeouts. + if (value !== null) { + file.timeout = parseInt(value); + } else { + // Return current timeout. + const s = file.timeout.toString(); + const ptr = this._module._sqlite3_malloc64(s.length + 1); + this._module.stringToUTF8(s, ptr, s.length + 1); + pArg.setUint32(0, ptr, true); + } + return VFS.SQLITE_OK; + case 'locking_mode': + switch (value?.toLowerCase()) { + case 'exclusive': + // Set the write hint to prevent deadlock if the first + // statement in exclusive mode is a read. Because of the + // way SQLite exclusive mode works (not actually exclusive + // until a write occurs), starting with a read is like + // BEGIN DEFERRED. + file.writeHint = '1'; + break; + case 'normal': + // The only reason for this is if + // PRAGMA locking_mode=EXCLUSIVE is followed by + // PRAGMA locking_mode=NORMAL with no database operations + // in between. Leaving this out wouldn't cause an error, + // only a potential loss of concurrency for one transaction. + file.writeHint = null; + break; + } + break; + case 'vfs_logging': + // This is a trace feature for debugging only. + if (value !== null) { + this.log = parseInt(value) !== 0 ? console.log : null; + } + return VFS.SQLITE_OK; + } + } + } catch (e) { + this.lastError = e; + return VFS.SQLITE_IOERR; + } + return VFS.SQLITE_NOTFOUND; + } + + /** + * @param {Uint8Array} zBuf + * @returns {number} + */ + jGetLastError(zBuf) { + if (this.lastError) { + console.error(this.lastError); + const outputArray = zBuf.subarray(0, zBuf.byteLength - 1); + const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray); + zBuf[written] = 0; + } + return VFS.SQLITE_OK + } +} + +/** + * @param {DataView} dataView + * @param {number} p + * @returns {string} + */ +function extractString(dataView, p) { + const chars = new Uint8Array(dataView.buffer, p); + return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0))); +} \ No newline at end of file From 73caf2c0f364cbcacac1ad3077530943cd25168c Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 5 Dec 2025 16:31:09 +0000 Subject: [PATCH 009/104] Implement jOpen() retry. --- src/examples/LazyLock.js | 7 +- src/examples/OPFSWriteAheadVFS.js | 162 +++++++++++++++++++++++------- 2 files changed, 130 insertions(+), 39 deletions(-) diff --git a/src/examples/LazyLock.js b/src/examples/LazyLock.js index 2ea35530..463e3f84 100644 --- a/src/examples/LazyLock.js +++ b/src/examples/LazyLock.js @@ -51,9 +51,14 @@ export class LazyLock extends Lock { } release() { + super.release(); + this.#hasReleaseRequest = false; + } + + releaseLazy() { // Release the lock only if someone else wants it. if (this.#hasReleaseRequest) { - super.release(); + this.release(); } } } \ No newline at end of file diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 5ceacfbf..9aa347ba 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -1,20 +1,22 @@ import { FacadeVFS } from "../FacadeVFS.js"; import * as VFS from '../VFS.js'; +import { Lock } from "./Lock.js"; import { LazyLock } from "./LazyLock.js"; /** * @typedef FileEntry * @property {string} zName * @property {number} flags - * @property {FileSystemSyncAccessHandle} accessHandle + * @property {FileSystemSyncAccessHandle} [accessHandle] * * Main database file properties: + * @property {*} [retryResult] + * @property {FileSystemSyncAccessHandle} [journalHandle] + * * @property {string} [writeHint] - * @property {LazyLock} [accessLock] + * @property {LazyLock} [readLock] + * @property {Lock} [writeLock] * @property {number} [timeout] - * - * Main journal file properties: - * @property {FileEntry} [dbFile] */ /** @@ -45,42 +47,52 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @param {number} fileId * @param {number} flags * @param {DataView} pOutFlags - * @returns {Promise} + * @returns {number} */ - async jOpen(zName, fileId, flags, pOutFlags) { + jOpen(zName, fileId, flags, pOutFlags) { try { - // For simplicity, everything goes into the OPFS root directory. - dirHandle = dirHandle ?? await navigator.storage.getDirectory(); - const fileHandle = await dirHandle.getFileHandle( - zName, - { create: (flags & VFS.SQLITE_OPEN_CREATE) === VFS.SQLITE_OPEN_CREATE }); - - // Open a synchronous access handle with concurrent access. - // @ts-ignore - const accessHandle = await fileHandle.createSyncAccessHandle({ - mode: 'readwrite-unsafe' - }); - - /** @type {FileEntry} */ const file = { + const file = this.mapPathToFile.get(zName) ?? { zName, flags, - accessHandle, + retryResult: null, }; + this.mapPathToFile.set(zName, file); if (flags & VFS.SQLITE_OPEN_MAIN_DB) { - file.accessLock = new LazyLock(`${zName}-access`); + // Open database and journal files with a retry operation. + if (file.retryResult === null) { + // This is the initial open attempt. Start the asynchronous task + // and return SQLITE_BUSY to force a retry. + this._module.retryOps.push(this.#retryOpen(zName, flags, fileId, pOutFlags)); + return VFS.SQLITE_BUSY; + } else if (file.retryResult instanceof Error) { + throw file.retryResult; + } + + // Initialize database file state. + file.accessHandle = file.retryResult.accessHandle; + file.journalHandle = file.retryResult.journalHandle; + file.retryResult = null; + + file.readLock = new LazyLock(`${zName}-read`); + file.writeLock = new Lock(`${zName}-write`); file.timeout = -1; file.writeHint = null; } else if (flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { + // A journal file is managed with its main database so look that up. const dbFilename = zName.slice(0, -"-journal".length); const dbFile = this.mapPathToFile.get(dbFilename); if (!dbFile) { throw new Error(`database file not found for journal ${zName}`); } - file.dbFile = dbFile; + + // Initialize journal file state. + file.accessHandle = dbFile.journalHandle; + } else { + throw new Error(`unsupported file type 0x${flags.toString(16)} for ${zName}`); } + this.mapIdToFile.set(fileId, file); - this.mapPathToFile.set(zName, file); pOutFlags.setInt32(0, flags, true); return VFS.SQLITE_OK; } catch (e) { @@ -92,12 +104,20 @@ export class OPFSWriteAheadVFS extends FacadeVFS { /** * @param {string} zName * @param {number} syncDir - * @returns {Promise} + * @returns {number} */ - async jDelete(zName, syncDir) { + jDelete(zName, syncDir) { try { - dirHandle = dirHandle ?? await navigator.storage.getDirectory(); - await dirHandle.removeEntry(zName, { recursive: false }); + const file = this.mapPathToFile.get(zName); + if (!file) throw new Error(`file not found: ${zName}`); + if (file.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { + // The actual OPFS journal file is managed with the main database. + // We don't actually delete it, just truncate it to zero length. + file.accessHandle.truncate(0); + file.accessHandle.flush(); + } else { + throw new Error(`Unexpected delete: ${zName}`); + } return VFS.SQLITE_OK; } catch (e) { return VFS.SQLITE_IOERR_DELETE; @@ -108,19 +128,18 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @param {string} zName * @param {number} flags * @param {DataView} pResOut - * @returns {Promise} + * @returns {number} */ - async jAccess(zName, flags, pResOut) { + jAccess(zName, flags, pResOut) { try { - dirHandle = dirHandle ?? await navigator.storage.getDirectory(); - const fileHandle = await dirHandle.getFileHandle(zName, { create: false }); - pResOut.setInt32(0, 1, true); - return VFS.SQLITE_OK; - } catch (e) { - if (e.name === 'NotFoundError') { + if (this.mapPathToFile.has(zName)) { + pResOut.setInt32(0, 1, true); + return VFS.SQLITE_OK; + } else { pResOut.setInt32(0, 0, true); return VFS.SQLITE_OK; } + } catch (e) { this.lastError = e; return VFS.SQLITE_IOERR_ACCESS; } @@ -133,9 +152,20 @@ export class OPFSWriteAheadVFS extends FacadeVFS { jClose(fileId) { try { const file = this.mapIdToFile.get(fileId); + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + file.accessHandle.close(); + this.mapPathToFile.delete(file?.zName); + + file.journalHandle.close(); + const journalPath = this.#getJournalPathFromDbPath(file.zName); + this.mapPathToFile.delete(journalPath); + } else if (file.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { + // The actual OPFS journal file is managed with the main database + // file, so don't close the access handle here. + } + + // Disassociate fileId from file entry. this.mapIdToFile.delete(fileId); - this.mapPathToFile.delete(file?.zName); - file?.accessHandle.close(); return VFS.SQLITE_OK; } catch (e) { return VFS.SQLITE_IOERR_CLOSE; @@ -347,6 +377,62 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK } + + /** + * Get OPFS synchronous access handle. + * @param {FileSystemDirectoryHandle} dirHandle + * @param {string} filename + * @param {number} flags + * @returns {Promise} + */ + async #getAccessHandle(dirHandle, filename, flags) { + const fileHandle = await dirHandle.getFileHandle( + filename, + { create: (flags & VFS.SQLITE_OPEN_CREATE) === VFS.SQLITE_OPEN_CREATE }); + + // Open a synchronous access handle with concurrent access. + // @ts-ignore + const accessHandle = await fileHandle.createSyncAccessHandle({ + mode: 'readwrite-unsafe' + }); + return accessHandle; + } + + /** + * @param {string} dbPath + * @returns {string} + */ + #getJournalPathFromDbPath(dbPath) { + return `${dbPath}-journal`; + } + + /** + * Handle asynchronous jOpen() tasks. + * @param {string} zName + * @param {number} flags + * @param {number} fileId + * @param {DataView} pOutFlags + * @returns {Promise} + */ + async #retryOpen(zName, flags, fileId, pOutFlags) { + const file = this.mapPathToFile.get(zName); + try { + // For simplicity, everything goes into the OPFS root directory. + dirHandle = dirHandle ?? await navigator.storage.getDirectory(); + + const accessHandle = await this.#getAccessHandle(dirHandle, zName, flags); + + const journalPath = this.#getJournalPathFromDbPath(zName); + const journalHandle = await this.#getAccessHandle(dirHandle, journalPath, flags); + + file.retryResult = { accessHandle, journalHandle }; + + // TODO: Load write-ahead overlay. + } catch (e) { + file.retryResult = e; + return; + } + } } /** From 72ad4a5ca6b9fa1f9bc727587b7f0e1ed15d8da2 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 5 Dec 2025 16:40:24 +0000 Subject: [PATCH 010/104] Advertise batch atomic write support. --- src/examples/OPFSWriteAheadVFS.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 9aa347ba..fcd3c1cd 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -356,6 +356,13 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK; } + break; + + case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: + case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: + case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: + // TODO + return VFS.SQLITE_OK; } } catch (e) { this.lastError = e; @@ -364,6 +371,16 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_NOTFOUND; } + /** + * @param {number} pFile + * @returns {number} + */ + jDeviceCharacteristics(pFile) { + return 0 + | VFS.SQLITE_IOCAP_BATCH_ATOMIC + | VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; + } + /** * @param {Uint8Array} zBuf * @returns {number} From f194b80b88f5903e65cdc932cc5630422507c560 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 5 Dec 2025 16:47:17 +0000 Subject: [PATCH 011/104] Treat an empty journal as non-existent. --- src/examples/OPFSWriteAheadVFS.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index fcd3c1cd..05a5be7f 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -132,13 +132,19 @@ export class OPFSWriteAheadVFS extends FacadeVFS { */ jAccess(zName, flags, pResOut) { try { - if (this.mapPathToFile.has(zName)) { - pResOut.setInt32(0, 1, true); - return VFS.SQLITE_OK; + const file = this.mapPathToFile.get(zName); + if (file) { + if ((file.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) && + file.accessHandle.getSize() === 0) { + // Treat an empty journal file as non-existent. + pResOut.setInt32(0, 0, true); + } else { + pResOut.setInt32(0, 1, true); + } } else { pResOut.setInt32(0, 0, true); - return VFS.SQLITE_OK; } + return VFS.SQLITE_OK; } catch (e) { this.lastError = e; return VFS.SQLITE_IOERR_ACCESS; From a20b1e251a7ef866a7b937d1639d2e44cb541354 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 5 Dec 2025 18:30:00 +0000 Subject: [PATCH 012/104] Implement jLock() retry. --- src/examples/LazyLock.js | 58 +++++++++++++----- src/examples/Lock.js | 22 ++++--- src/examples/OPFSWriteAheadVFS.js | 98 ++++++++++++++++++++++++++++++- 3 files changed, 152 insertions(+), 26 deletions(-) diff --git a/src/examples/LazyLock.js b/src/examples/LazyLock.js index 463e3f84..54b662f7 100644 --- a/src/examples/LazyLock.js +++ b/src/examples/LazyLock.js @@ -1,10 +1,8 @@ import { Lock } from './Lock.js'; -const BROADCAST_INTERVAL_MS = 25; - export class LazyLock extends Lock { #channel; - #isAcquiring = false; + #isBusy = false; #hasReleaseRequest = false; /** @@ -14,49 +12,77 @@ export class LazyLock extends Lock { super(name); this.#channel = new BroadcastChannel(name); this.#channel.onmessage = (event) => { - if (this.mode || this.#isAcquiring) { + if (this.#isBusy) { // We're using the lock so postpone the release. this.#hasReleaseRequest = true; } else { - super.release(); + this.release(); } } } + close() { + super.close + this.#channel.onmessage = null; + this.#channel.close(); + } + + /** + * @param {LockMode} mode + * @param {number} timeout + * @returns {Promise} + */ async acquire(mode, timeout = -1) { - this.#isAcquiring = true; + this.#isBusy = true; try { if (mode === this.mode) { // We never had to release the lock. return true; } - // Release the lock if held in a different mode. - super.release(); - - // Poll for the lock. This isn't necessary but if it works it avoids - // the BroadcastChannel traffic. - if (await super.acquire(mode, 0)) { - return true; + if (this.mode) { + // Release the lock to acquire it in a different mode. + super.release(); + } else { + // Poll for the lock. This isn't necessary but if it works it avoids + // the BroadcastChannel traffic. + if (await super.acquire(mode, 0)) { + return true; + } } // Request the lock. const pResult = super.acquire(mode, timeout) - this.#channel.postMessage(); + this.#channel.postMessage({}); return await pResult; - } finally { - this.#isAcquiring = false; + } catch (e) { + this.release(); + throw e; + } + } + + /** + * @param {LockMode} mode + * @returns {boolean} + */ + acquireIfHeld(mode) { + if (mode === this.mode) { + this.#isBusy = true; + return true; } + return false; } release() { super.release(); + this.#isBusy = false; this.#hasReleaseRequest = false; } releaseLazy() { // Release the lock only if someone else wants it. + this.#isBusy = false; if (this.#hasReleaseRequest) { this.release(); } diff --git a/src/examples/Lock.js b/src/examples/Lock.js index 977ebd24..b3b62fa7 100644 --- a/src/examples/Lock.js +++ b/src/examples/Lock.js @@ -1,17 +1,23 @@ // This is a convenience wrapper for the Web Locks API. export class Lock { - name; - /** @type {LockMode?} */ mode = null; - + #name; + /** @type {LockMode?} */ #mode = null; #releaser = null; /** * @param {string} name */ constructor(name) { - this.name = name; + this.#name = name; } + get name() { return this.#name; } + get mode() { return this.#mode; } + + close() { + this.release(); + } + /** * @param {'shared'|'exclusive'} mode * @param {number} timeout -1 for infinite, 0 for poll, >0 for milliseconds @@ -19,7 +25,7 @@ export class Lock { */ async acquire(mode, timeout = -1) { if (this.#releaser) { - throw new Error(`Lock ${this.name} is already acquired`); + throw new Error(`Lock ${this.#name} is already acquired`); } return new Promise((resolve, reject) => { /** @type {LockOptions} */ @@ -33,7 +39,7 @@ export class Lock { options.signal = abortController.signal; } - navigator.locks.request(this.name, options, lock => { + navigator.locks.request(this.#name, options, lock => { if (timeoutId) clearTimeout(timeoutId); if (lock === null) { // Polling (with timeout = 0) did not acquire the lock. @@ -42,7 +48,7 @@ export class Lock { // Lock acquired. The lock is released when this returned // Promise is resolved. - this.mode = mode; + this.#mode = mode; return new Promise(releaser => { this.#releaser = releaser; resolve(true); @@ -60,6 +66,6 @@ export class Lock { release() { this.#releaser?.(); this.#releaser = null; - this.mode = null; + this.#mode = null; } } diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 05a5be7f..95a98246 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -14,6 +14,7 @@ import { LazyLock } from "./LazyLock.js"; * @property {FileSystemSyncAccessHandle} [journalHandle] * * @property {string} [writeHint] + * @property {number} [lockState] * @property {LazyLock} [readLock] * @property {Lock} [writeLock] * @property {number} [timeout] @@ -74,6 +75,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.journalHandle = file.retryResult.journalHandle; file.retryResult = null; + file.lockState = VFS.SQLITE_LOCK_NONE; file.readLock = new LazyLock(`${zName}-read`); file.writeLock = new Lock(`${zName}-write`); file.timeout = -1; @@ -165,6 +167,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.journalHandle.close(); const journalPath = this.#getJournalPathFromDbPath(file.zName); this.mapPathToFile.delete(journalPath); + + file.readLock.close(); + file.writeLock.close(); } else if (file.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { // The actual OPFS journal file is managed with the main database // file, so don't close the access handle here. @@ -278,7 +283,50 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {number|Promise} */ jLock(pFile, lockType) { - return VFS.SQLITE_OK; + try { + const file = this.mapIdToFile.get(pFile); + if (file.lockState === VFS.SQLITE_LOCK_NONE && lockType === VFS.SQLITE_LOCK_SHARED) { + // We do all our locking work in this transition. + if (file.retryResult === null) { + // Manage some special cases. + if (file.accessHandle.getSize() === 0) { + // The database has not been created. We will need a write lock. + file.writeHint = '2'; + } + if (file.journalHandle.getSize() > 0) { + // There is a hot journal. We will need a write lock. + file.writeHint = '2'; + } + + if (file.writeHint || file.readLock.mode !== 'shared') { + // Asynchronous lock acquisition is needed. Set retryResult to + // non-null so when SQLite calls jUnlock() it knows not to reset + // any locks we have in progress. + file.retryResult = {}; + this._module.retryOps.push(this.#retryLock(pFile, lockType)); + return VFS.SQLITE_BUSY; + } + + // This is a read transaction and we can get the shared + // lock synchronously. + file.readLock.acquireIfHeld('shared'); + } else if (file.retryResult instanceof Error) { + throw file.retryResult; + } + file.retryResult = null; + } else if (lockType >= VFS.SQLITE_LOCK_RESERVED && !file.writeLock.mode) { + // This is a write transaction but we don't already have the write + // lock. This happens when the write hint was not used, which this + // VFS treats as an error. + // TODO: Arrange for the write hint to be set on unlock. + return VFS.SQLITE_BUSY; + } + file.lockState = lockType; + return VFS.SQLITE_OK; + } catch (e) { + this.lastError = e; + return VFS.SQLITE_IOERR_LOCK; + } } /** @@ -287,7 +335,26 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {number} */ jUnlock(pFile, lockType) { - return VFS.SQLITE_OK; + try { + const file = this.mapIdToFile.get(pFile); + + // If retryResult is non-null, an asynchronous lock operation is in + // progress. In that case, don't change any locks. + if (!file.retryResult && lockType === VFS.SQLITE_LOCK_NONE) { + // In this VFS, this is the only unlock transition that matters. + file.writeLock.release(); + if (file.readLock.mode === 'exclusive') { + file.readLock.release(); + } else { + file.readLock.releaseLazy(); + } + file.writeHint = null; + } + file.lockState = lockType; + } catch (e) { + this.lastError = e; + return VFS.SQLITE_IOERR_UNLOCK; + } } /** @@ -314,6 +381,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const key = extractString(pArg, pArg.getUint32(4, true)); const valueAddress = pArg.getUint32(8, true); const value = valueAddress ? extractString(pArg, valueAddress) : null; + console.log(`PRAGMA ${key} ${value}`); switch (key.toLowerCase()) { case 'experimental_pragma_20251114': // After entering the SHARED locking state on the next @@ -429,6 +497,32 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return `${dbPath}-journal`; } + /** + * Handle asynchronous jLock() tasks. + * @param {number} pFile + * @param {number} lockType + */ + async #retryLock(pFile, lockType) { + const file = this.mapIdToFile.get(pFile); + try { + if (file.writeHint === '1') { + // TODO: replace this temporary code. + await file.readLock.acquire('exclusive', file.timeout); + await file.writeLock.acquire('exclusive', file.timeout); + } else if (file.writeHint === '2') { + // TODO: replace this temporary code. + await file.readLock.acquire('exclusive', file.timeout); + await file.writeLock.acquire('exclusive', file.timeout); + } else { + await file.readLock.acquire('shared', file.timeout); + } + file.retryResult = {}; + } catch (e) { + file.retryResult = e; + return; + } + } + /** * Handle asynchronous jOpen() tasks. * @param {string} zName From 27519f593e7d2b4da2a528580a40f1871bb06c27 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 6 Dec 2025 00:03:05 +0000 Subject: [PATCH 013/104] Comments and minor improvements. --- src/examples/OPFSWriteAheadVFS.js | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 95a98246..eb4a960f 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -319,6 +319,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // lock. This happens when the write hint was not used, which this // VFS treats as an error. // TODO: Arrange for the write hint to be set on unlock. + console.error('Multi-statement write transaction cannot use BEGIN DEFERRED') return VFS.SQLITE_BUSY; } file.lockState = lockType; @@ -378,10 +379,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const file = this.mapIdToFile.get(pFile); switch (op) { case VFS.SQLITE_FCNTL_PRAGMA: - const key = extractString(pArg, pArg.getUint32(4, true)); + const key = this._module.UTF8ToString(pArg.getUint32(4, true)); const valueAddress = pArg.getUint32(8, true); - const value = valueAddress ? extractString(pArg, valueAddress) : null; - console.log(`PRAGMA ${key} ${value}`); + const value = valueAddress ? this._module.UTF8ToString(valueAddress) : null; + this.log?.(`PRAGMA ${key} ${value}`); switch (key.toLowerCase()) { case 'experimental_pragma_20251114': // After entering the SHARED locking state on the next @@ -434,6 +435,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: + return VFS.SQLITE_OK; case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: // TODO return VFS.SQLITE_OK; @@ -535,6 +537,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const file = this.mapPathToFile.get(zName); try { // For simplicity, everything goes into the OPFS root directory. + // TODO: Support OPFS subdirectories. dirHandle = dirHandle ?? await navigator.storage.getDirectory(); const accessHandle = await this.#getAccessHandle(dirHandle, zName, flags); @@ -551,13 +554,3 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } } } - -/** - * @param {DataView} dataView - * @param {number} p - * @returns {string} - */ -function extractString(dataView, p) { - const chars = new Uint8Array(dataView.buffer, p); - return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0))); -} \ No newline at end of file From 66f163a3cad395f4e42dab32b2e7830159e52bf6 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 7 Dec 2025 17:21:15 +0000 Subject: [PATCH 014/104] Refactor writeHint handling. --- src/examples/OPFSWriteAheadVFS.js | 57 ++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index eb4a960f..a035f7d2 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -8,12 +8,12 @@ import { LazyLock } from "./LazyLock.js"; * @property {string} zName * @property {number} flags * @property {FileSystemSyncAccessHandle} [accessHandle] - * + * Main database file properties: * @property {*} [retryResult] * @property {FileSystemSyncAccessHandle} [journalHandle] * - * @property {string} [writeHint] + * @property {'reserved'|'exclusive'} [writeHint] * @property {number} [lockState] * @property {LazyLock} [readLock] * @property {Lock} [writeLock] @@ -291,11 +291,11 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Manage some special cases. if (file.accessHandle.getSize() === 0) { // The database has not been created. We will need a write lock. - file.writeHint = '2'; + file.writeHint = 'exclusive'; } if (file.journalHandle.getSize() > 0) { // There is a hot journal. We will need a write lock. - file.writeHint = '2'; + file.writeHint = 'exclusive'; } if (file.writeHint || file.readLock.mode !== 'shared') { @@ -389,7 +389,16 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // transaction, SQLite intends to immediately (barring a hot // journal) transition to RESERVED if value is '1', or // EXCLUSIVE if value is '2'. - file.writeHint = value; + switch (value) { + case '1': + file.writeHint = 'reserved'; + break; + case '2': + file.writeHint = 'exclusive'; + break; + default: + throw new Error(`unexpected write hint value: ${value}`); + } break; case 'busy_timeout': // Override SQLite's handling of busy timeouts with our @@ -412,7 +421,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // way SQLite exclusive mode works (not actually exclusive // until a write occurs), starting with a read is like // BEGIN DEFERRED. - file.writeHint = '1'; + file.writeHint = 'reserved'; break; case 'normal': // The only reason for this is if @@ -452,9 +461,16 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {number} */ jDeviceCharacteristics(pFile) { - return 0 - | VFS.SQLITE_IOCAP_BATCH_ATOMIC - | VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; + // Allow batch atomic writes with write-ahead. Disallow when writing + // directly to the file. + let value = VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; + const file = this.mapIdToFile.get(pFile); + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + if (file.writeHint !== 'exclusive') { + value |= VFS.SQLITE_IOCAP_BATCH_ATOMIC; + } + } + return value } /** @@ -507,16 +523,19 @@ export class OPFSWriteAheadVFS extends FacadeVFS { async #retryLock(pFile, lockType) { const file = this.mapIdToFile.get(pFile); try { - if (file.writeHint === '1') { - // TODO: replace this temporary code. - await file.readLock.acquire('exclusive', file.timeout); - await file.writeLock.acquire('exclusive', file.timeout); - } else if (file.writeHint === '2') { - // TODO: replace this temporary code. - await file.readLock.acquire('exclusive', file.timeout); - await file.writeLock.acquire('exclusive', file.timeout); - } else { - await file.readLock.acquire('shared', file.timeout); + switch (file.writeHint) { + case 'reserved': + // TODO: Take only the writeLock when using write-ahead. + await file.readLock.acquire('exclusive', file.timeout); + await file.writeLock.acquire('exclusive', file.timeout); + break; + case 'exclusive': + await file.readLock.acquire('exclusive', file.timeout); + await file.writeLock.acquire('exclusive'); + break; + default: + await file.readLock.acquire('shared', file.timeout); + break; } file.retryResult = {}; } catch (e) { From 9f8e769984971a82acc281bef067ca116f7e8c39 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 7 Dec 2025 19:15:36 +0000 Subject: [PATCH 015/104] Create WriteAhead manager. --- src/examples/OPFSWriteAheadVFS.js | 138 +++++++++---- src/examples/WriteAhead.js | 319 ++++++++++++++++++++++++++++++ 2 files changed, 421 insertions(+), 36 deletions(-) create mode 100644 src/examples/WriteAhead.js diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index a035f7d2..d1397a90 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -2,6 +2,7 @@ import { FacadeVFS } from "../FacadeVFS.js"; import * as VFS from '../VFS.js'; import { Lock } from "./Lock.js"; import { LazyLock } from "./LazyLock.js"; +import { WriteAhead } from "./WriteAhead.js"; /** * @typedef FileEntry @@ -18,6 +19,8 @@ import { LazyLock } from "./LazyLock.js"; * @property {LazyLock} [readLock] * @property {Lock} [writeLock] * @property {number} [timeout] + * + * @property {WriteAhead} [writeAhead] */ /** @@ -28,7 +31,7 @@ let dirHandle = null; export class OPFSWriteAheadVFS extends FacadeVFS { lastError = null; - // log = console.log; + log = console.log; /** @type {Map} */ mapIdToFile = new Map(); /** @type {Map} */ mapPathToFile = new Map(); @@ -73,11 +76,12 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Initialize database file state. file.accessHandle = file.retryResult.accessHandle; file.journalHandle = file.retryResult.journalHandle; + file.writeAhead = file.retryResult.writeAhead; file.retryResult = null; file.lockState = VFS.SQLITE_LOCK_NONE; - file.readLock = new LazyLock(`${zName}-read`); - file.writeLock = new Lock(`${zName}-write`); + file.readLock = new LazyLock(`${zName}#read`); + file.writeLock = new Lock(`${zName}#write`); file.timeout = -1; file.writeHint = null; } else if (flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { @@ -193,10 +197,29 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { const file = this.mapIdToFile.get(fileId); - // On Chrome (at least), passing pData to accessHandle.read() is - // an error because pData is a Proxy of a Uint8Array. Calling - // subarray() produces a real Uint8Array and that works. - const bytesRead = file.accessHandle.read(pData.subarray(), { at: iOffset }); + let bytesRead = null; + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + // Try reading from the OPFS write-ahead overlay first. A read on + // the database file is always a complete page, except when reading + // from the 100-byte header. + const pageOffset = iOffset < 100 ? iOffset : 0; + const page = file.writeAhead.read(iOffset - pageOffset); + if (page) { + const readData = page.subarray(pageOffset, pageOffset + pData.byteLength); + pData.set(readData); + bytesRead = readData.byteLength; + } + } + + if (bytesRead === null) { + // Read directly from the OPFS file. + + // On Chrome (at least), passing pData to accessHandle.read() is + // an error because pData is a Proxy of a Uint8Array. Calling + // subarray() produces a real Uint8Array and that works. + bytesRead = file.accessHandle.read(pData.subarray(), { at: iOffset }); + } + if (bytesRead < pData.byteLength) { pData.fill(0, bytesRead); return VFS.SQLITE_IOERR_SHORT_READ; @@ -217,6 +240,14 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { const file = this.mapIdToFile.get(fileId); + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + if (file.writeHint !== 'exclusive') { + // Write to the write-ahead overlay. + file.writeAhead.write(iOffset, pData.subarray()); + return VFS.SQLITE_OK; + } + } + // On Chrome (at least), passing pData to accessHandle.write() is // an error because pData is a Proxy of a Uint8Array. Calling // subarray() produces a real Uint8Array and that works. @@ -268,7 +299,13 @@ export class OPFSWriteAheadVFS extends FacadeVFS { jFileSize(fileId, pSize64) { try { const file = this.mapIdToFile.get(fileId); - const size = file.accessHandle.getSize(); + + let size; + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + size = file.writeAhead.getFileSize() || file.accessHandle.getSize(); + } else { + size = file.accessHandle.getSize(); + } pSize64.setBigInt64(0, BigInt(size), true); return VFS.SQLITE_OK; } catch (e) { @@ -313,7 +350,11 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } else if (file.retryResult instanceof Error) { throw file.retryResult; } + file.retryResult = null; + if (file.writeHint === null) { + file.writeAhead.isolateForRead(); + } } else if (lockType >= VFS.SQLITE_LOCK_RESERVED && !file.writeLock.mode) { // This is a write transaction but we don't already have the write // lock. This happens when the write hint was not used, which this @@ -350,6 +391,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.readLock.releaseLazy(); } file.writeHint = null; + + file.writeAhead.rejoin(); } file.lockState = lockType; } catch (e) { @@ -391,7 +434,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // EXCLUSIVE if value is '2'. switch (value) { case '1': - file.writeHint = 'reserved'; + if (file.writeHint !== 'exclusive') { + file.writeHint = 'reserved'; + } break; case '2': file.writeHint = 'exclusive'; @@ -448,6 +493,12 @@ export class OPFSWriteAheadVFS extends FacadeVFS { case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: // TODO return VFS.SQLITE_OK; + + case VFS.SQLITE_FCNTL_SYNC: + if (file.writeHint === 'reserved') { + file.writeAhead.commit(); + } + break; } } catch (e) { this.lastError = e; @@ -487,26 +538,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_OK } - /** - * Get OPFS synchronous access handle. - * @param {FileSystemDirectoryHandle} dirHandle - * @param {string} filename - * @param {number} flags - * @returns {Promise} - */ - async #getAccessHandle(dirHandle, filename, flags) { - const fileHandle = await dirHandle.getFileHandle( - filename, - { create: (flags & VFS.SQLITE_OPEN_CREATE) === VFS.SQLITE_OPEN_CREATE }); - - // Open a synchronous access handle with concurrent access. - // @ts-ignore - const accessHandle = await fileHandle.createSyncAccessHandle({ - mode: 'readwrite-unsafe' - }); - return accessHandle; - } - /** * @param {string} dbPath * @returns {string} @@ -525,13 +556,18 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { switch (file.writeHint) { case 'reserved': - // TODO: Take only the writeLock when using write-ahead. - await file.readLock.acquire('exclusive', file.timeout); + // This transaction will be write-ahead. We only need + // writeLock, not readLock. await file.writeLock.acquire('exclusive', file.timeout); + await file.writeAhead.isolateForWrite(); break; case 'exclusive': + // This transaction will write directly to the database. await file.readLock.acquire('exclusive', file.timeout); await file.writeLock.acquire('exclusive'); + + // Transfer everything in write-ahead to the OPFS file. + await file.writeAhead.flush(); break; default: await file.readLock.acquire('shared', file.timeout); @@ -559,14 +595,44 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // TODO: Support OPFS subdirectories. dirHandle = dirHandle ?? await navigator.storage.getDirectory(); - const accessHandle = await this.#getAccessHandle(dirHandle, zName, flags); + // Open the main database OPFS file. + let created = false; + let accessHandle; + try { + const fileHandle = await dirHandle.getFileHandle(zName); + // @ts-ignore + accessHandle = await fileHandle.createSyncAccessHandle({ + mode: 'readwrite-unsafe' + }); + } catch (e) { + if (e.name === 'NotFoundError' && (flags & VFS.SQLITE_OPEN_CREATE)) { + const fileHandle = await dirHandle.getFileHandle(zName, { create: true }); + // @ts-ignore + accessHandle = await fileHandle.createSyncAccessHandle({ + mode: 'readwrite-unsafe' + }); + created = true; + } else { + throw e; + } + } + // Pre-open the journal OPFS file here. const journalPath = this.#getJournalPathFromDbPath(zName); - const journalHandle = await this.#getAccessHandle(dirHandle, journalPath, flags); - - file.retryResult = { accessHandle, journalHandle }; + const fileHandle = await dirHandle.getFileHandle(journalPath, { create: true }); + // @ts-ignore + const journalHandle = await fileHandle.createSyncAccessHandle({ + mode: 'readwrite-unsafe' + }); + + // Create the write-ahead manager. + const writeAhead= new WriteAhead( + zName, + (offset, data) => accessHandle.write(data, { at: offset }), + { create: created }); + await writeAhead.ready(); - // TODO: Load write-ahead overlay. + file.retryResult = { accessHandle, journalHandle, writeAhead }; } catch (e) { file.retryResult = e; return; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js new file mode 100644 index 00000000..a95c3c54 --- /dev/null +++ b/src/examples/WriteAhead.js @@ -0,0 +1,319 @@ +import { Lock } from './Lock.js'; + +/** + * @typedef Transaction + * @property {number} id + * @property {Map} pages address to page data mapping + * @property {number} fileSize + */ + +/** + * @typedef WriteAheadOptions + * @property {boolean} [create=false] true if database is being created + */ + +export class WriteAhead { + #zName; + #writeFn; + #options = { + create: false + }; + + #ready; + /** @type {'read'|'write'|'flush'} */ #state = null + + #txId = 0; + /** @type {Lock} */ #txLock = null; + #txFileSize = 0; + + /** @type {Map} */ #waOverlay = new Map(); + /** @type {Map} */ #txOverlay = new Map(); + #mapIdToTx = new Map(); + + #broadcastChannel; + + /** @type {IDBDatabase} */ #idbDb; + + /** + * @param {string} zName + * @param {(offset: number, data: Uint8Array) => void} writeFn + * @param {WriteAheadOptions} options + */ + constructor(zName, writeFn, options) { + this.#zName = zName; + this.#writeFn = writeFn; + this.#options = Object.assign(this.#options, options); + + this.#broadcastChannel = new BroadcastChannel(`${zName}#wa`); + this.#broadcastChannel.onmessage = (event) => { + /** @type {{type: string, tx: Transaction}} */ + if (event.data.type === 'tx') { + // New transaction from another connection. + /** @type {Transaction} */ const tx = event.data.tx; + this.#mapIdToTx.set(tx.id, tx); + + if (this.#state === null) { + this.#advanceTxId(); + } + } + + // TODO: handle checkpoint notification + }; + + this.#ready = (async () => { + // Disable checkpointing by other connections until we're ready. + await this.#updateTxLock(0); + + // Load all the write-ahead transactions from storage. + await this.initTxRepo(zName); + const { txList, emptyId } = await this.#loadTxList(0); + if (txList.length > 0) { + for (const tx of txList) { + this.#mapIdToTx.set(tx.id, tx); + } + + this.#txId = txList[0].id - 1; + this.#advanceTxId(); + } else { + this.#txId = emptyId; + } + + // Update our tx lock to reflect the current txId. + await this.#updateTxLock(this.#txId); + })(); + } + + ready() { + return this.#ready; + } + + close() { + this.#broadcastChannel.onmessage = null; + this.#broadcastChannel.close(); + } + + isolateForRead() { + this.#state = 'read'; + } + + async isolateForWrite() { + this.#state = 'write'; + + // Ensure that we have all previous transactions. + const { txList, emptyId } = await this.#loadTxList(this.#txId); + if (txList.length > 0) { + for (const tx of txList) { + this.#mapIdToTx.set(tx.id, tx); + + // This transaction wasn't already seen. It may just be a + // race condition, but it could have been a page crash + // between writing to IndexedDB and broadcasting. In case + // of the latter, broadcast the transaction again. + this.#broadcastChannel.postMessage({ type: 'tx', tx }); + } + + this.#advanceTxId(); + } else { + this.#txId = emptyId; + } + } + + rejoin() { + this.#state = null; + this.#advanceTxId(); + } + + /** + * @param {number} offset + * @return {Uint8Array?} + */ + read(offset) { + return this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; + } + + /** + * @param {number} offset + * @param {Uint8Array} data + */ + write(offset, data) { + this.#txOverlay.set(offset, data); + } + + truncate(newSize) { + } + + getFileSize() { + return this.#txFileSize; + } + + commit() { + if (this.#txOverlay.size === 0) return; + + // Get the file size from the page 1 header. + const page1 = this.#txOverlay.get(0); + const dataView = new DataView(page1.buffer, page1.byteOffset, 100); + const pageSize = dataView.getUint16(16); + const pageCount = dataView.getUint32(28); + const fileSize = (pageSize === 1 ? 65536 : pageSize) * pageCount; + + // Create a new transaction. + const tx = { + id: this.#txId + 1, + pages: this.#txOverlay, + fileSize + }; + + // Incorporate the transaction into the local view. + this.#mapIdToTx.set(tx.id, tx); + this.#txOverlay = new Map(); + this.#advanceTxId(); + + // Persist the transaction to storage, then send to other connections. + this.#storeTx(tx).then(() => { + this.#broadcastChannel.postMessage({ type: 'tx', tx }); + }, e => { + // TODO: handle error + console.error('IndexedDB write failed', e); + }); + } + + rollback() { + // Discard transaction pages. + this.#txOverlay = new Map(); + } + + async flush() { + this.#state = 'flush'; + try { + } finally { + this.#state = null; + } + } + + /** + * Advance the local view of the database. + */ + #advanceTxId() { + let tx; + while (tx = this.#mapIdToTx.get(this.#txId + 1)) { + // Move transaction pages to the write-ahead overlay. + for (const [offset, data] of tx.pages) { + this.#waOverlay.set(offset, data); + } + this.#txId = tx.id; + this.#txFileSize = tx.fileSize; + } + + this.#updateTxLock(this.#txId); + } + + async initTxRepo(zName) { + // Delete existing IndexedDB database for a new SQLite database. + if (this.#options.create) { + await idbWrap(indexedDB.deleteDatabase(zName)); + } + + // Open IndexedDB database. + const idbRequest = indexedDB.open(zName, 1); + idbRequest.onupgradeneeded = (event) => { + const db = idbRequest.result; + const store = db.createObjectStore('txStore'); + + // Insert the initial marker. + store.put({ id: 1 }, 1); + }; + + this.#idbDb = await idbWrap(idbRequest); + } + + /** + * Load transactions from persistent storage starting from txId + 1. + * @param {number} txId + * @returns {Promise<{ txList: Transaction[], emptyId: number}>} + */ + async #loadTxList(txId) { + const idbTx = this.#idbDb.transaction('txStore', 'readonly'); + const idbTxStore = idbTx.objectStore('txStore'); + + // Get all transactions with id > txId. + const request = idbTxStore.getAll(IDBKeyRange.lowerBound(txId, true)); + /** @type {Transaction[]} */ const txList = await idbWrap(request); + + // The last object in the store is the end marker, which contains + // no data. Its purpose is to provide the txId when write-ahead + // is empty. + const marker = txList.pop(); + return { txList, emptyId: marker.id - 1 }; + } + + /** + * Copy a new transaction to persistent storage. + * @param {Transaction} tx + */ + async #storeTx(tx) { + const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); + const idbTxStore = idbTx.objectStore('txStore'); + + const results = [ + idbTxStore.put(tx, tx.id), // overwrite the current end marker + idbTxStore.put({ id: tx.id + 1 }, tx.id + 1), // new end marker + idbTx + ].map(idbWrap); + idbTx.commit(); + return Promise.all(results); + } + + /** + * Update the lock that publishes our current txId. + * @param {number} txId + */ + async #updateTxLock(txId) { + // Our view of the database, i.e. the txId, is encoded into the name + // of a lock so other connections can see it. When our txId changes, + // we acquire a new lock and release the old one. We must not release + // the old lock until the new one is in place. + const oldLock = this.#txLock; + const newLockName = `${this.#zName}-txId-#${txId}#`; + if (oldLock?.name !== newLockName) { + this.#txLock = new Lock(newLockName); + await this.#txLock.acquire('shared'); + oldLock?.release(); + } + } + + /** + * Find the globally lowest txId held by any connection. + * @returns {Promise} + */ + async #getLowestUsedTxId() { + const txLockRegex = new RegExp(`^(.*)-txId-#(\\d+)#$`); + const { held } = await navigator.locks.query(); + return held + .map(lock => lock.name.match(txLockRegex)) + .filter(match => match !== null) + .map(match => parseInt(match[2])) + .reduce((min, txId) => Math.min(min, txId), this.#txId); + } +} + +/** + * Convert IndexedDB callbacks to Promises. + * @param {IDBRequest|IDBTransaction} request + * @returns + */ +function idbWrap(request) { + return new Promise((resolve, reject) => { + if (request instanceof IDBTransaction) { + request.oncomplete = () => { + resolve(); + }; + } else { + request.onsuccess = () => { + resolve(request.result); + }; + } + request.onerror = () => { + reject(request.error); + }; + }); +} \ No newline at end of file From 78cb837add29f8cd1ac83ccd47f01680069513d9 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 7 Dec 2025 23:50:47 +0000 Subject: [PATCH 016/104] Implement write-ahead flush (full checkpoint). --- src/examples/OPFSWriteAheadVFS.js | 1 + src/examples/WriteAhead.js | 104 ++++++++++++++++++++++++++---- 2 files changed, 91 insertions(+), 14 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index d1397a90..68489856 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -629,6 +629,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const writeAhead= new WriteAhead( zName, (offset, data) => accessHandle.write(data, { at: offset }), + () => accessHandle.flush(), { create: created }); await writeAhead.ready(); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index a95c3c54..0303cc97 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -15,12 +15,13 @@ import { Lock } from './Lock.js'; export class WriteAhead { #zName; #writeFn; + #syncFn; #options = { create: false }; #ready; - /** @type {'read'|'write'|'flush'} */ #state = null + /** @type {'read'|'write'} */ #state = null #txId = 0; /** @type {Lock} */ #txLock = null; @@ -28,7 +29,7 @@ export class WriteAhead { /** @type {Map} */ #waOverlay = new Map(); /** @type {Map} */ #txOverlay = new Map(); - #mapIdToTx = new Map(); + /** @type {Map} */ #mapIdToTx = new Map(); #broadcastChannel; @@ -37,27 +38,31 @@ export class WriteAhead { /** * @param {string} zName * @param {(offset: number, data: Uint8Array) => void} writeFn + * @param {() => void} syncFn * @param {WriteAheadOptions} options */ - constructor(zName, writeFn, options) { + constructor(zName, writeFn, syncFn, options) { this.#zName = zName; this.#writeFn = writeFn; + this.#syncFn = syncFn; this.#options = Object.assign(this.#options, options); this.#broadcastChannel = new BroadcastChannel(`${zName}#wa`); this.#broadcastChannel.onmessage = (event) => { - /** @type {{type: string, tx: Transaction}} */ if (event.data.type === 'tx') { // New transaction from another connection. /** @type {Transaction} */ const tx = event.data.tx; this.#mapIdToTx.set(tx.id, tx); if (this.#state === null) { + // Not in an isolated state, so advance our view of the database. this.#advanceTxId(); } + } else if (event.data.type === 'ckpt') { + // Checkpoint notification from another connection. + /** @type {number} */ const ckptId = event.data.ckptId; + this.#handleCheckpoint(ckptId); } - - // TODO: handle checkpoint notification }; this.#ready = (async () => { @@ -65,8 +70,8 @@ export class WriteAhead { await this.#updateTxLock(0); // Load all the write-ahead transactions from storage. - await this.initTxRepo(zName); - const { txList, emptyId } = await this.#loadTxList(0); + await this.#repoInit(zName); + const { txList, emptyId } = await this.#repoLoad(0); if (txList.length > 0) { for (const tx of txList) { this.#mapIdToTx.set(tx.id, tx); @@ -93,14 +98,20 @@ export class WriteAhead { } isolateForRead() { + if (this.#state !== null) { + throw new Error('Already in isolated state'); + } this.#state = 'read'; } async isolateForWrite() { + if (this.#state !== null) { + throw new Error('Already in isolated state'); + } this.#state = 'write'; // Ensure that we have all previous transactions. - const { txList, emptyId } = await this.#loadTxList(this.#txId); + const { txList, emptyId } = await this.#repoLoad(this.#txId); if (txList.length > 0) { for (const tx of txList) { this.#mapIdToTx.set(tx.id, tx); @@ -169,7 +180,7 @@ export class WriteAhead { this.#advanceTxId(); // Persist the transaction to storage, then send to other connections. - this.#storeTx(tx).then(() => { + this.#repoStore(tx).then(() => { this.#broadcastChannel.postMessage({ type: 'tx', tx }); }, e => { // TODO: handle error @@ -183,8 +194,16 @@ export class WriteAhead { } async flush() { - this.#state = 'flush'; + if (this.#state !== null) { + throw new Error('Already in isolated state'); + } + try { + // Make sure we have every transaction. + await this.isolateForWrite(); + this.rejoin(); + + await this.#checkpoint(this.#txId); } finally { this.#state = null; } @@ -207,7 +226,53 @@ export class WriteAhead { this.#updateTxLock(this.#txId); } - async initTxRepo(zName) { + /** + * + * @param {number} [ckptId] + */ + async #checkpoint(ckptId) { + await navigator.locks.request(`${this.#zName}-ckpt`, async () => { + // If the txId checkpoint is not specified, find the lowest txId + // in use by any connection. + if (ckptId === undefined) { + ckptId = await this.#getLowestUsedTxId(); + } + + // Starting at ckptId and going backwards (earlier), write transaction + // pages to the main database file. Do not overwrite a page written + // by a later transaction. + const writtenOffsets = new Set(); + let tx = { id: ckptId + 1 }; + while (tx = this.#mapIdToTx.get(tx.id - 1)) { + for (const [offset, data] of tx.pages) { + if (!writtenOffsets.has(offset)) { + this.#writeFn(offset, data); + writtenOffsets.add(offset); + } + } + } + this.#syncFn(); + + // Notify other connections of the checkpoint. + this.#broadcastChannel.postMessage({ type: 'ckpt', ckptId }); + + // Remove checkpointed transactions from write-ahead. + this.#repoDeleteUpTo(ckptId); + }); + } + + #handleCheckpoint(ckptId) { + // Removed checkpointed pages from the write-ahead overlay. + let tx = { id: ckptId + 1 }; + while (tx = this.#mapIdToTx.get(tx.id - 1)) { + for (const offset of tx.pages.keys()) { + this.#waOverlay.delete(offset); + } + this.#mapIdToTx.delete(tx.id); + } + } + + async #repoInit(zName) { // Delete existing IndexedDB database for a new SQLite database. if (this.#options.create) { await idbWrap(indexedDB.deleteDatabase(zName)); @@ -226,12 +291,23 @@ export class WriteAhead { this.#idbDb = await idbWrap(idbRequest); } + async #repoDeleteUpTo(txId) { + const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); + const results = Promise.all([ + idbTx.objectStore('txStore').delete(IDBKeyRange.upperBound(txId)), + idbTx + ].map(idbWrap)); + idbTx.commit(); + + return results; + } + /** * Load transactions from persistent storage starting from txId + 1. * @param {number} txId * @returns {Promise<{ txList: Transaction[], emptyId: number}>} */ - async #loadTxList(txId) { + async #repoLoad(txId) { const idbTx = this.#idbDb.transaction('txStore', 'readonly'); const idbTxStore = idbTx.objectStore('txStore'); @@ -250,7 +326,7 @@ export class WriteAhead { * Copy a new transaction to persistent storage. * @param {Transaction} tx */ - async #storeTx(tx) { + async #repoStore(tx) { const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); const idbTxStore = idbTx.objectStore('txStore'); From bd7afa6271b889c98b72a19ae28d385935372d29 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 8 Dec 2025 00:32:03 +0000 Subject: [PATCH 017/104] Fix incorrect retention of view into WebAssembly memory. --- src/examples/OPFSWriteAheadVFS.js | 4 ++-- src/examples/WriteAhead.js | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 68489856..2073d85f 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -243,7 +243,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { if (file.writeHint !== 'exclusive') { // Write to the write-ahead overlay. - file.writeAhead.write(iOffset, pData.subarray()); + file.writeAhead.write(iOffset, pData); return VFS.SQLITE_OK; } } @@ -491,7 +491,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: return VFS.SQLITE_OK; case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: - // TODO + // file.writeAhead.rollback(); return VFS.SQLITE_OK; case VFS.SQLITE_FCNTL_SYNC: diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 0303cc97..cd6bfb10 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -147,7 +147,8 @@ export class WriteAhead { * @param {Uint8Array} data */ write(offset, data) { - this.#txOverlay.set(offset, data); + // Make a copy of the data to avoid external mutation. + this.#txOverlay.set(offset, data.slice()); } truncate(newSize) { From fb203ef4e146cff56af9ee65cf584de03467bafc Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 8 Dec 2025 00:47:41 +0000 Subject: [PATCH 018/104] Minor improvements. --- src/examples/OPFSWriteAheadVFS.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 2073d85f..81c6ebea 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -199,8 +199,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { let bytesRead = null; if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - // Try reading from the OPFS write-ahead overlay first. A read on - // the database file is always a complete page, except when reading + // Try reading from the write-ahead overlays first. A read on the + // database file is always a complete page, except when reading // from the 100-byte header. const pageOffset = iOffset < 100 ? iOffset : 0; const page = file.writeAhead.read(iOffset - pageOffset); @@ -239,9 +239,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { jWrite(fileId, pData, iOffset) { try { const file = this.mapIdToFile.get(fileId); - if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.writeHint !== 'exclusive') { + if (file.writeHint === 'reserved') { // Write to the write-ahead overlay. file.writeAhead.write(iOffset, pData); return VFS.SQLITE_OK; @@ -267,6 +266,12 @@ export class OPFSWriteAheadVFS extends FacadeVFS { jTruncate(fileId, iSize) { try { const file = this.mapIdToFile.get(fileId); + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + if (file.writeHint !== 'exclusive') { + file.writeAhead.truncate(iSize); + return VFS.SQLITE_OK; + } + } file.accessHandle.truncate(iSize); return VFS.SQLITE_OK; } catch (e) { @@ -283,6 +288,12 @@ export class OPFSWriteAheadVFS extends FacadeVFS { jSync(fileId, flags) { try { const file = this.mapIdToFile.get(fileId); + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + if (file.writeHint === 'reserved') { + // Write-ahead sync is handled on SQLITE_FCNTL_SYNC. + return VFS.SQLITE_OK; + } + } file.accessHandle.flush(); return VFS.SQLITE_OK; } catch (e) { From fcbfcdf25c86518345d5f5992b5313b2ab8ad21d Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 8 Dec 2025 15:44:04 +0000 Subject: [PATCH 019/104] Fixes for VACUUM. --- src/examples/OPFSWriteAheadVFS.js | 34 ++++++++++++------------------- src/sqlite-api.js | 9 ++++---- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 81c6ebea..1719d76e 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -15,6 +15,7 @@ import { WriteAhead } from "./WriteAhead.js"; * @property {FileSystemSyncAccessHandle} [journalHandle] * * @property {'reserved'|'exclusive'} [writeHint] + * @property {'normal'|'exclusive'|null} [lockingMode] * @property {number} [lockState] * @property {LazyLock} [readLock] * @property {Lock} [writeLock] @@ -31,7 +32,7 @@ let dirHandle = null; export class OPFSWriteAheadVFS extends FacadeVFS { lastError = null; - log = console.log; + log = null; /** @type {Map} */ mapIdToFile = new Map(); /** @type {Map} */ mapPathToFile = new Map(); @@ -80,6 +81,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.retryResult = null; file.lockState = VFS.SQLITE_LOCK_NONE; + file.lockingMode = null; file.readLock = new LazyLock(`${zName}#read`); file.writeLock = new Lock(`${zName}#write`); file.timeout = -1; @@ -340,8 +342,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (file.accessHandle.getSize() === 0) { // The database has not been created. We will need a write lock. file.writeHint = 'exclusive'; - } - if (file.journalHandle.getSize() > 0) { + } else if (file.lockingMode === 'exclusive') { + // PRAGMA locking_mode=EXCLUSIVE was set. + file.writeHint = 'exclusive'; + } else if (file.journalHandle.getSize() > 0) { // There is a hot journal. We will need a write lock. file.writeHint = 'exclusive'; } @@ -370,14 +374,14 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // This is a write transaction but we don't already have the write // lock. This happens when the write hint was not used, which this // VFS treats as an error. - // TODO: Arrange for the write hint to be set on unlock. - console.error('Multi-statement write transaction cannot use BEGIN DEFERRED') - return VFS.SQLITE_BUSY; + // TODO: Arrange for the write hint to be set on unlock? + throw new Error('Multi-statement write transaction cannot use BEGIN DEFERRED'); } file.lockState = lockType; return VFS.SQLITE_OK; } catch (e) { this.lastError = e; + console.error(e.message); return VFS.SQLITE_IOERR_LOCK; } } @@ -471,21 +475,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_OK; case 'locking_mode': switch (value?.toLowerCase()) { - case 'exclusive': - // Set the write hint to prevent deadlock if the first - // statement in exclusive mode is a read. Because of the - // way SQLite exclusive mode works (not actually exclusive - // until a write occurs), starting with a read is like - // BEGIN DEFERRED. - file.writeHint = 'reserved'; - break; case 'normal': - // The only reason for this is if - // PRAGMA locking_mode=EXCLUSIVE is followed by - // PRAGMA locking_mode=NORMAL with no database operations - // in between. Leaving this out wouldn't cause an error, - // only a potential loss of concurrency for one transaction. - file.writeHint = null; + case 'exclusive': + file.lockingMode = value.toLowerCase(); break; } break; @@ -502,7 +494,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: return VFS.SQLITE_OK; case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: - // file.writeAhead.rollback(); + file.writeAhead.rollback(); return VFS.SQLITE_OK; case VFS.SQLITE_FCNTL_SYNC: diff --git a/src/sqlite-api.js b/src/sqlite-api.js index a13e68bf..d1ff06cd 100644 --- a/src/sqlite-api.js +++ b/src/sqlite-api.js @@ -869,7 +869,7 @@ export function Factory(Module) { // succeed. async function retry(f) { let rc; - do { + for (let retryCount = 0; retryCount < 2; ++retryCount) { // Wait for all pending retry operations to complete. This is // normally empty on the first loop iteration. if (Module.retryOps.length) { @@ -881,9 +881,10 @@ export function Factory(Module) { } rc = await f(); - - // Retry on failure with new pending retry operations. - } while (rc && Module.retryOps.length); + if (rc === SQLite.SQLITE_OK || Module.retryOps.length === 0) { + return rc; + } + } return rc; } From de213c8b4ae651e6d1ec9a5044260f8979b66163 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 8 Dec 2025 17:39:32 +0000 Subject: [PATCH 020/104] Comments and minor code improvements. --- src/examples/WriteAhead.js | 82 +++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 9 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index cd6bfb10..3ac99d4c 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -88,6 +88,9 @@ export class WriteAhead { })(); } + /** + * @returns {Promise} + */ ready() { return this.#ready; } @@ -97,6 +100,12 @@ export class WriteAhead { this.#broadcastChannel.close(); } + /** + * Freeze our view of the database. + * The view includes the transactions received so far but is not + * guaranteed to be completely up to date (this allows this method + * to be synchronous). Unfreeze the view with rejoin(). + */ isolateForRead() { if (this.#state !== null) { throw new Error('Already in isolated state'); @@ -104,6 +113,12 @@ export class WriteAhead { this.#state = 'read'; } + /** + * Freeze our view of the database for writing. + * The view includes all transactions. + * Unfreeze the view with + * rejoin(). + */ async isolateForWrite() { if (this.#state !== null) { throw new Error('Already in isolated state'); @@ -120,6 +135,10 @@ export class WriteAhead { // race condition, but it could have been a page crash // between writing to IndexedDB and broadcasting. In case // of the latter, broadcast the transaction again. + // TODO: To avoid redundant broadcasts, consider scheduling + // a broadcast after a short delay and canceling if another + // broadcast is seen in the meantime. Alternatively, remove + // this code and schedule periodic checks. this.#broadcastChannel.postMessage({ type: 'tx', tx }); } @@ -131,6 +150,7 @@ export class WriteAhead { rejoin() { this.#state = null; + this.#txOverlay = new Map(); this.#advanceTxId(); } @@ -139,6 +159,12 @@ export class WriteAhead { * @return {Uint8Array?} */ read(offset) { + if (offset && this.#state === null) { + throw new Error('Not in isolated state'); + } + + // Look for the page in any write transaction in progress. + // Otherwise look in the write-ahead overlay. return this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; } @@ -147,11 +173,19 @@ export class WriteAhead { * @param {Uint8Array} data */ write(offset, data) { + if (this.#state !== 'write') { + throw new Error('Not in write isolated state'); + } + // Make a copy of the data to avoid external mutation. this.#txOverlay.set(offset, data.slice()); } + /** + * @param {number} newSize + */ truncate(newSize) { + // Nothing needed. Size is tracked from page 1 header in commit(). } getFileSize() { @@ -194,6 +228,10 @@ export class WriteAhead { this.#txOverlay = new Map(); } + /** + * Flush the write-ahead transactions to the main database file. + * There must be no other connections reading or writing. + */ async flush() { if (this.#state !== null) { throw new Error('Already in isolated state'); @@ -204,6 +242,7 @@ export class WriteAhead { await this.isolateForWrite(); this.rejoin(); + // Perform a full checkpoint. Write-ahead will be empty afterwards. await this.#checkpoint(this.#txId); } finally { this.#state = null; @@ -216,7 +255,7 @@ export class WriteAhead { #advanceTxId() { let tx; while (tx = this.#mapIdToTx.get(this.#txId + 1)) { - // Move transaction pages to the write-ahead overlay. + // Add transaction pages to the write-ahead overlay. for (const [offset, data] of tx.pages) { this.#waOverlay.set(offset, data); } @@ -228,10 +267,11 @@ export class WriteAhead { } /** - * + * Move pages from write-ahead to main database file. * @param {number} [ckptId] */ async #checkpoint(ckptId) { + // Allow only one connection to checkpoint at a time. await navigator.locks.request(`${this.#zName}-ckpt`, async () => { // If the txId checkpoint is not specified, find the lowest txId // in use by any connection. @@ -252,27 +292,42 @@ export class WriteAhead { } } } - this.#syncFn(); - // Notify other connections of the checkpoint. - this.#broadcastChannel.postMessage({ type: 'ckpt', ckptId }); + if (writtenOffsets.size > 0) { + this.#syncFn(); - // Remove checkpointed transactions from write-ahead. - this.#repoDeleteUpTo(ckptId); + // Notify other connections of the checkpoint. + this.#broadcastChannel.postMessage({ type: 'ckpt', ckptId }); + + // Remove checkpointed transactions from write-ahead. + this.#repoDeleteUpTo(ckptId); + } }); } + /** + * After a checkpoint, remove checkpointed pages from write-ahead. + * The checkpoint may be been done locally or by another connection. + * @param {number} ckptId + */ #handleCheckpoint(ckptId) { - // Removed checkpointed pages from the write-ahead overlay. + // Loop backwards from ckptId. let tx = { id: ckptId + 1 }; while (tx = this.#mapIdToTx.get(tx.id - 1)) { + // Remove pages from write-ahead overlay. for (const offset of tx.pages.keys()) { this.#waOverlay.delete(offset); } + + // Remove transaction. this.#mapIdToTx.delete(tx.id); } } + /** + * Initialize persistent write-ahead storage. + * @param {string} zName + */ async #repoInit(zName) { // Delete existing IndexedDB database for a new SQLite database. if (this.#options.create) { @@ -292,6 +347,11 @@ export class WriteAhead { this.#idbDb = await idbWrap(idbRequest); } + /** + * Delete transactions through txId from persistent storage. + * @param {number} txId + * @returns + */ async #repoDeleteUpTo(txId) { const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); const results = Promise.all([ @@ -363,11 +423,15 @@ export class WriteAhead { * @returns {Promise} */ async #getLowestUsedTxId() { + // * Get all held locks. + // * Find those that match the txId lock name pattern. + // * Extract the txId from the lock name. + // * Return the lowest txId found. const txLockRegex = new RegExp(`^(.*)-txId-#(\\d+)#$`); const { held } = await navigator.locks.query(); return held .map(lock => lock.name.match(txLockRegex)) - .filter(match => match !== null) + .filter(match => match !== null && match[1] === this.#zName) .map(match => parseInt(match[2])) .reduce((min, txId) => Math.min(min, txId), this.#txId); } From 4cc68a27369de6aa0e54fa3fe07dd26b28bd0949 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 8 Dec 2025 22:49:49 +0000 Subject: [PATCH 021/104] Change the txId lock name encoding. --- src/examples/WriteAhead.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 3ac99d4c..76e068db 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -410,7 +410,7 @@ export class WriteAhead { // we acquire a new lock and release the old one. We must not release // the old lock until the new one is in place. const oldLock = this.#txLock; - const newLockName = `${this.#zName}-txId-#${txId}#`; + const newLockName = `${this.#zName}-txId<${txId}>`; if (oldLock?.name !== newLockName) { this.#txLock = new Lock(newLockName); await this.#txLock.acquire('shared'); @@ -427,7 +427,7 @@ export class WriteAhead { // * Find those that match the txId lock name pattern. // * Extract the txId from the lock name. // * Return the lowest txId found. - const txLockRegex = new RegExp(`^(.*)-txId-#(\\d+)#$`); + const txLockRegex = new RegExp(`^(.*)-txId<(\\d+)>$`); const { held } = await navigator.locks.query(); return held .map(lock => lock.name.match(txLockRegex)) From a22c35ac6b96ebbc4849ecedf846e88877b18221 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 8 Dec 2025 22:53:06 +0000 Subject: [PATCH 022/104] Debug logging. --- src/examples/Lock.js | 4 +++- src/examples/OPFSWriteAheadVFS.js | 2 +- src/examples/WriteAhead.js | 31 +++++++++++++++++++++++++++++-- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/examples/Lock.js b/src/examples/Lock.js index b3b62fa7..0802c7f8 100644 --- a/src/examples/Lock.js +++ b/src/examples/Lock.js @@ -17,7 +17,7 @@ export class Lock { close() { this.release(); } - + /** * @param {'shared'|'exclusive'} mode * @param {number} timeout -1 for infinite, 0 for poll, >0 for milliseconds @@ -51,6 +51,7 @@ export class Lock { this.#mode = mode; return new Promise(releaser => { this.#releaser = releaser; + console.log(`Lock acquire ${this.#name} ${mode}`); resolve(true); }) }).catch(e => { @@ -65,6 +66,7 @@ export class Lock { release() { this.#releaser?.(); + if (this.#releaser) console.log(`Lock release ${this.#name} ${this.#mode}`); this.#releaser = null; this.#mode = null; } diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 1719d76e..43b9b7d2 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -32,7 +32,7 @@ let dirHandle = null; export class OPFSWriteAheadVFS extends FacadeVFS { lastError = null; - log = null; + log = console.log; /** @type {Map} */ mapIdToFile = new Map(); /** @type {Map} */ mapPathToFile = new Map(); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 76e068db..194860c3 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -33,6 +33,8 @@ export class WriteAhead { #broadcastChannel; + log = console.log; + /** @type {IDBDatabase} */ #idbDb; /** @@ -107,6 +109,7 @@ export class WriteAhead { * to be synchronous). Unfreeze the view with rejoin(). */ isolateForRead() { + this.log?.('isolateForRead'); if (this.#state !== null) { throw new Error('Already in isolated state'); } @@ -120,6 +123,7 @@ export class WriteAhead { * rejoin(). */ async isolateForWrite() { + this.log?.('isolateForWrite'); if (this.#state !== null) { throw new Error('Already in isolated state'); } @@ -149,6 +153,7 @@ export class WriteAhead { } rejoin() { + this.log?.('rejoin'); this.#state = null; this.#txOverlay = new Map(); this.#advanceTxId(); @@ -165,7 +170,10 @@ export class WriteAhead { // Look for the page in any write transaction in progress. // Otherwise look in the write-ahead overlay. - return this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; + // return this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; + const result = this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; + this.log?.(`read offset=${offset} ->`, result); + return result; } /** @@ -173,6 +181,7 @@ export class WriteAhead { * @param {Uint8Array} data */ write(offset, data) { + this.log?.(`write offset=${offset}`, data); if (this.#state !== 'write') { throw new Error('Not in write isolated state'); } @@ -189,10 +198,12 @@ export class WriteAhead { } getFileSize() { + this.log?.(`getFileSize -> ${this.#txFileSize}`); return this.#txFileSize; } commit() { + this.log?.('commit'); if (this.#txOverlay.size === 0) return; // Get the file size from the page 1 header. @@ -224,6 +235,7 @@ export class WriteAhead { } rollback() { + this.log?.('rollback'); // Discard transaction pages. this.#txOverlay = new Map(); } @@ -233,6 +245,7 @@ export class WriteAhead { * There must be no other connections reading or writing. */ async flush() { + this.log?.('flush'); if (this.#state !== null) { throw new Error('Already in isolated state'); } @@ -253,6 +266,7 @@ export class WriteAhead { * Advance the local view of the database. */ #advanceTxId() { + this.log?.('#advanceTxId'); let tx; while (tx = this.#mapIdToTx.get(this.#txId + 1)) { // Add transaction pages to the write-ahead overlay. @@ -278,6 +292,7 @@ export class WriteAhead { if (ckptId === undefined) { ckptId = await this.#getLowestUsedTxId(); } + this.log?.(`#checkpoint ckptId=${ckptId}`); // Starting at ckptId and going backwards (earlier), write transaction // pages to the main database file. Do not overwrite a page written @@ -329,6 +344,7 @@ export class WriteAhead { * @param {string} zName */ async #repoInit(zName) { + this.log?.('#repoInit'); // Delete existing IndexedDB database for a new SQLite database. if (this.#options.create) { await idbWrap(indexedDB.deleteDatabase(zName)); @@ -353,6 +369,7 @@ export class WriteAhead { * @returns */ async #repoDeleteUpTo(txId) { + this.log?.(`#repoDeleteUpTo txId=${txId}`); const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); const results = Promise.all([ idbTx.objectStore('txStore').delete(IDBKeyRange.upperBound(txId)), @@ -369,6 +386,7 @@ export class WriteAhead { * @returns {Promise<{ txList: Transaction[], emptyId: number}>} */ async #repoLoad(txId) { + this.log?.(`#repoLoad txId=${txId}`); const idbTx = this.#idbDb.transaction('txStore', 'readonly'); const idbTxStore = idbTx.objectStore('txStore'); @@ -388,6 +406,7 @@ export class WriteAhead { * @param {Transaction} tx */ async #repoStore(tx) { + this.log?.(`#repoStore txId=${tx.id}`, tx); const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); const idbTxStore = idbTx.objectStore('txStore'); @@ -405,6 +424,7 @@ export class WriteAhead { * @param {number} txId */ async #updateTxLock(txId) { + this.log?.(`#updateTxLock txId=${txId}`); // Our view of the database, i.e. the txId, is encoded into the name // of a lock so other connections can see it. When our txId changes, // we acquire a new lock and release the old one. We must not release @@ -429,11 +449,18 @@ export class WriteAhead { // * Return the lowest txId found. const txLockRegex = new RegExp(`^(.*)-txId<(\\d+)>$`); const { held } = await navigator.locks.query(); - return held + // return held + // .map(lock => lock.name.match(txLockRegex)) + // .filter(match => match !== null && match[1] === this.#zName) + // .map(match => parseInt(match[2])) + // .reduce((min, txId) => Math.min(min, txId), this.#txId); + const result = held .map(lock => lock.name.match(txLockRegex)) .filter(match => match !== null && match[1] === this.#zName) .map(match => parseInt(match[2])) .reduce((min, txId) => Math.min(min, txId), this.#txId); + this.log?.(`#getLowestUsedTxId -> ${result}`); + return result; } } From 0544781cda1dd446916e4d16bcffb69a6011057e Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 9 Dec 2025 00:43:08 +0000 Subject: [PATCH 023/104] Fix bug where handling a checkpoint could remove a newer page. --- src/examples/WriteAhead.js | 59 +++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 194860c3..0bec222c 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -49,24 +49,6 @@ export class WriteAhead { this.#syncFn = syncFn; this.#options = Object.assign(this.#options, options); - this.#broadcastChannel = new BroadcastChannel(`${zName}#wa`); - this.#broadcastChannel.onmessage = (event) => { - if (event.data.type === 'tx') { - // New transaction from another connection. - /** @type {Transaction} */ const tx = event.data.tx; - this.#mapIdToTx.set(tx.id, tx); - - if (this.#state === null) { - // Not in an isolated state, so advance our view of the database. - this.#advanceTxId(); - } - } else if (event.data.type === 'ckpt') { - // Checkpoint notification from another connection. - /** @type {number} */ const ckptId = event.data.ckptId; - this.#handleCheckpoint(ckptId); - } - }; - this.#ready = (async () => { // Disable checkpointing by other connections until we're ready. await this.#updateTxLock(0); @@ -85,6 +67,12 @@ export class WriteAhead { this.#txId = emptyId; } + // Listen for transactions and checkpoints from other connections. + this.#broadcastChannel = new BroadcastChannel(`${zName}#wa`); + this.#broadcastChannel.onmessage = (event) => { + this.#handleMessage(event); + }; + // Update our tx lock to reflect the current txId. await this.#updateTxLock(this.#txId); })(); @@ -232,6 +220,11 @@ export class WriteAhead { // TODO: handle error console.error('IndexedDB write failed', e); }); + + // Automatic checkpoint. + // TODO: This doesn't have to be done here. It could be done periodically, + // or based on some heuristic, e.g. number of transactions or pages. + this.#checkpoint(); } rollback() { @@ -326,12 +319,17 @@ export class WriteAhead { * @param {number} ckptId */ #handleCheckpoint(ckptId) { + this.log?.(`#handleCheckpoint ckptId=${ckptId}`); // Loop backwards from ckptId. let tx = { id: ckptId + 1 }; while (tx = this.#mapIdToTx.get(tx.id - 1)) { // Remove pages from write-ahead overlay. - for (const offset of tx.pages.keys()) { - this.#waOverlay.delete(offset); + for (const [offset, page] of tx.pages.entries()) { + // Be sure not to remove a newer version of the page. + const overlayPage = this.#waOverlay.get(offset); + if (overlayPage === page) { + this.#waOverlay.delete(offset); + } } // Remove transaction. @@ -339,6 +337,27 @@ export class WriteAhead { } } + /** + * @param {MessageEvent} event + */ + #handleMessage(event) { + this.log?.('#handleMessage', event.data); + if (event.data.type === 'tx') { + // New transaction from another connection. + /** @type {Transaction} */ const tx = event.data.tx; + this.#mapIdToTx.set(tx.id, tx); + + if (this.#state === null) { + // Not in an isolated state, so advance our view of the database. + this.#advanceTxId(); + } + } else if (event.data.type === 'ckpt') { + // Checkpoint notification from another connection. + /** @type {number} */ const ckptId = event.data.ckptId; + this.#handleCheckpoint(ckptId); + } + } + /** * Initialize persistent write-ahead storage. * @param {string} zName From 03148621836b9557e22966445a27e79af914194e Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 9 Dec 2025 01:05:06 +0000 Subject: [PATCH 024/104] Comments and fixes. --- src/examples/OPFSWriteAheadVFS.js | 1 - src/examples/WriteAhead.js | 14 ++++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 43b9b7d2..04b18571 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -374,7 +374,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // This is a write transaction but we don't already have the write // lock. This happens when the write hint was not used, which this // VFS treats as an error. - // TODO: Arrange for the write hint to be set on unlock? throw new Error('Multi-statement write transaction cannot use BEGIN DEFERRED'); } file.lockState = lockType; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 0bec222c..0ccf43b9 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -49,6 +49,7 @@ export class WriteAhead { this.#syncFn = syncFn; this.#options = Object.assign(this.#options, options); + // All the asynchronous initialization is done here. this.#ready = (async () => { // Disable checkpointing by other connections until we're ready. await this.#updateTxLock(0); @@ -106,9 +107,7 @@ export class WriteAhead { /** * Freeze our view of the database for writing. - * The view includes all transactions. - * Unfreeze the view with - * rejoin(). + * The view includes all transactions. Unfreeze the view with rejoin(). */ async isolateForWrite() { this.log?.('isolateForWrite'); @@ -174,7 +173,7 @@ export class WriteAhead { throw new Error('Not in write isolated state'); } - // Make a copy of the data to avoid external mutation. + // Save a copy of the data to avoid external mutation. this.#txOverlay.set(offset, data.slice()); } @@ -187,7 +186,9 @@ export class WriteAhead { getFileSize() { this.log?.(`getFileSize -> ${this.#txFileSize}`); - return this.#txFileSize; + // If the overlay is empty, the last file size may no longer be valid + // if direct changes were made to the main database file. + return this.#waOverlay.size ? this.#txFileSize : null; } commit() { @@ -304,8 +305,9 @@ export class WriteAhead { if (writtenOffsets.size > 0) { this.#syncFn(); - // Notify other connections of the checkpoint. + // Notify other connections and ourselves of the checkpoint. this.#broadcastChannel.postMessage({ type: 'ckpt', ckptId }); + this.#handleCheckpoint(ckptId); // Remove checkpointed transactions from write-ahead. this.#repoDeleteUpTo(ckptId); From 6ded95ca92cae60b435a4b18737a3a3af92cd95d Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 9 Dec 2025 01:10:50 +0000 Subject: [PATCH 025/104] Revert "Debug logging." This reverts commit 45f34088fb936ebb60da4c475ab539b67778d639. --- src/examples/Lock.js | 4 +--- src/examples/OPFSWriteAheadVFS.js | 2 +- src/examples/WriteAhead.js | 33 ++----------------------------- 3 files changed, 4 insertions(+), 35 deletions(-) diff --git a/src/examples/Lock.js b/src/examples/Lock.js index 0802c7f8..b3b62fa7 100644 --- a/src/examples/Lock.js +++ b/src/examples/Lock.js @@ -17,7 +17,7 @@ export class Lock { close() { this.release(); } - + /** * @param {'shared'|'exclusive'} mode * @param {number} timeout -1 for infinite, 0 for poll, >0 for milliseconds @@ -51,7 +51,6 @@ export class Lock { this.#mode = mode; return new Promise(releaser => { this.#releaser = releaser; - console.log(`Lock acquire ${this.#name} ${mode}`); resolve(true); }) }).catch(e => { @@ -66,7 +65,6 @@ export class Lock { release() { this.#releaser?.(); - if (this.#releaser) console.log(`Lock release ${this.#name} ${this.#mode}`); this.#releaser = null; this.#mode = null; } diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 04b18571..3d729306 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -32,7 +32,7 @@ let dirHandle = null; export class OPFSWriteAheadVFS extends FacadeVFS { lastError = null; - log = console.log; + log = null; /** @type {Map} */ mapIdToFile = new Map(); /** @type {Map} */ mapPathToFile = new Map(); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 0ccf43b9..84d8ee29 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -33,8 +33,6 @@ export class WriteAhead { #broadcastChannel; - log = console.log; - /** @type {IDBDatabase} */ #idbDb; /** @@ -98,7 +96,6 @@ export class WriteAhead { * to be synchronous). Unfreeze the view with rejoin(). */ isolateForRead() { - this.log?.('isolateForRead'); if (this.#state !== null) { throw new Error('Already in isolated state'); } @@ -110,7 +107,6 @@ export class WriteAhead { * The view includes all transactions. Unfreeze the view with rejoin(). */ async isolateForWrite() { - this.log?.('isolateForWrite'); if (this.#state !== null) { throw new Error('Already in isolated state'); } @@ -140,7 +136,6 @@ export class WriteAhead { } rejoin() { - this.log?.('rejoin'); this.#state = null; this.#txOverlay = new Map(); this.#advanceTxId(); @@ -157,10 +152,7 @@ export class WriteAhead { // Look for the page in any write transaction in progress. // Otherwise look in the write-ahead overlay. - // return this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; - const result = this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; - this.log?.(`read offset=${offset} ->`, result); - return result; + return this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; } /** @@ -168,7 +160,6 @@ export class WriteAhead { * @param {Uint8Array} data */ write(offset, data) { - this.log?.(`write offset=${offset}`, data); if (this.#state !== 'write') { throw new Error('Not in write isolated state'); } @@ -185,14 +176,12 @@ export class WriteAhead { } getFileSize() { - this.log?.(`getFileSize -> ${this.#txFileSize}`); // If the overlay is empty, the last file size may no longer be valid // if direct changes were made to the main database file. return this.#waOverlay.size ? this.#txFileSize : null; } commit() { - this.log?.('commit'); if (this.#txOverlay.size === 0) return; // Get the file size from the page 1 header. @@ -229,7 +218,6 @@ export class WriteAhead { } rollback() { - this.log?.('rollback'); // Discard transaction pages. this.#txOverlay = new Map(); } @@ -239,7 +227,6 @@ export class WriteAhead { * There must be no other connections reading or writing. */ async flush() { - this.log?.('flush'); if (this.#state !== null) { throw new Error('Already in isolated state'); } @@ -260,7 +247,6 @@ export class WriteAhead { * Advance the local view of the database. */ #advanceTxId() { - this.log?.('#advanceTxId'); let tx; while (tx = this.#mapIdToTx.get(this.#txId + 1)) { // Add transaction pages to the write-ahead overlay. @@ -286,7 +272,6 @@ export class WriteAhead { if (ckptId === undefined) { ckptId = await this.#getLowestUsedTxId(); } - this.log?.(`#checkpoint ckptId=${ckptId}`); // Starting at ckptId and going backwards (earlier), write transaction // pages to the main database file. Do not overwrite a page written @@ -321,7 +306,6 @@ export class WriteAhead { * @param {number} ckptId */ #handleCheckpoint(ckptId) { - this.log?.(`#handleCheckpoint ckptId=${ckptId}`); // Loop backwards from ckptId. let tx = { id: ckptId + 1 }; while (tx = this.#mapIdToTx.get(tx.id - 1)) { @@ -343,7 +327,6 @@ export class WriteAhead { * @param {MessageEvent} event */ #handleMessage(event) { - this.log?.('#handleMessage', event.data); if (event.data.type === 'tx') { // New transaction from another connection. /** @type {Transaction} */ const tx = event.data.tx; @@ -365,7 +348,6 @@ export class WriteAhead { * @param {string} zName */ async #repoInit(zName) { - this.log?.('#repoInit'); // Delete existing IndexedDB database for a new SQLite database. if (this.#options.create) { await idbWrap(indexedDB.deleteDatabase(zName)); @@ -390,7 +372,6 @@ export class WriteAhead { * @returns */ async #repoDeleteUpTo(txId) { - this.log?.(`#repoDeleteUpTo txId=${txId}`); const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); const results = Promise.all([ idbTx.objectStore('txStore').delete(IDBKeyRange.upperBound(txId)), @@ -407,7 +388,6 @@ export class WriteAhead { * @returns {Promise<{ txList: Transaction[], emptyId: number}>} */ async #repoLoad(txId) { - this.log?.(`#repoLoad txId=${txId}`); const idbTx = this.#idbDb.transaction('txStore', 'readonly'); const idbTxStore = idbTx.objectStore('txStore'); @@ -427,7 +407,6 @@ export class WriteAhead { * @param {Transaction} tx */ async #repoStore(tx) { - this.log?.(`#repoStore txId=${tx.id}`, tx); const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); const idbTxStore = idbTx.objectStore('txStore'); @@ -445,7 +424,6 @@ export class WriteAhead { * @param {number} txId */ async #updateTxLock(txId) { - this.log?.(`#updateTxLock txId=${txId}`); // Our view of the database, i.e. the txId, is encoded into the name // of a lock so other connections can see it. When our txId changes, // we acquire a new lock and release the old one. We must not release @@ -470,18 +448,11 @@ export class WriteAhead { // * Return the lowest txId found. const txLockRegex = new RegExp(`^(.*)-txId<(\\d+)>$`); const { held } = await navigator.locks.query(); - // return held - // .map(lock => lock.name.match(txLockRegex)) - // .filter(match => match !== null && match[1] === this.#zName) - // .map(match => parseInt(match[2])) - // .reduce((min, txId) => Math.min(min, txId), this.#txId); - const result = held + return held .map(lock => lock.name.match(txLockRegex)) .filter(match => match !== null && match[1] === this.#zName) .map(match => parseInt(match[2])) .reduce((min, txId) => Math.min(min, txId), this.#txId); - this.log?.(`#getLowestUsedTxId -> ${result}`); - return result; } } From d974eab12025597d9f8064a27734166ec83b3fe5 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 9 Dec 2025 04:08:53 +0000 Subject: [PATCH 026/104] Fix exclusive locking_mode crash on read. --- src/examples/WriteAhead.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 84d8ee29..6629e3f9 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -146,10 +146,8 @@ export class WriteAhead { * @return {Uint8Array?} */ read(offset) { - if (offset && this.#state === null) { - throw new Error('Not in isolated state'); - } - + if (this.#state === null) return null; + // Look for the page in any write transaction in progress. // Otherwise look in the write-ahead overlay. return this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; From c07d3e829dbf484d8ec522cbec9688adf71d6deb Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 9 Dec 2025 23:39:47 +0000 Subject: [PATCH 027/104] Add OPFSWriteAheadVFS to contention test. --- demo/contention/contention-worker.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/demo/contention/contention-worker.js b/demo/contention/contention-worker.js index e2c26459..2694b89c 100644 --- a/demo/contention/contention-worker.js +++ b/demo/contention/contention-worker.js @@ -54,9 +54,13 @@ const BUILDS = new Map([ name: 'OPFSPermutedVFS', vfsModule: '../../src/examples/OPFSPermutedVFS.js', }, + { + name: 'OPFSWriteAheadVFS', + vfsModule: '../../src/examples/OPFSWriteAheadVFS.js', + }, { name: 'AccessHandlePoolVFS', - vfsModule: '../src/examples/AccessHandlePoolVFS.js', + vfsModule: '../../src/examples/AccessHandlePoolVFS.js', }, { name: 'FLOOR', From 16e57030e5467583f253d1c27cbf26b6e40e92ce Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 9 Dec 2025 23:40:45 +0000 Subject: [PATCH 028/104] Fix race condition in #retryOpen(). --- src/examples/OPFSWriteAheadVFS.js | 95 ++++++++++++++++++------------- src/examples/WriteAhead.js | 1 + 2 files changed, 57 insertions(+), 39 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 3d729306..c269e1fd 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -104,6 +104,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { pOutFlags.setInt32(0, flags, true); return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); this.lastError = e; return VFS.SQLITE_CANTOPEN; } @@ -128,6 +129,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); + this.lastError = e; return VFS.SQLITE_IOERR_DELETE; } } @@ -154,6 +157,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); this.lastError = e; return VFS.SQLITE_IOERR_ACCESS; } @@ -166,7 +170,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { jClose(fileId) { try { const file = this.mapIdToFile.get(fileId); - if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + if (file?.flags & VFS.SQLITE_OPEN_MAIN_DB) { + file.writeAhead.close(); file.accessHandle.close(); this.mapPathToFile.delete(file?.zName); @@ -176,7 +181,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.readLock.close(); file.writeLock.close(); - } else if (file.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { + } else if (file?.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { // The actual OPFS journal file is managed with the main database // file, so don't close the access handle here. } @@ -185,6 +190,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { this.mapIdToFile.delete(fileId); return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); + this.lastError = e; return VFS.SQLITE_IOERR_CLOSE; } } @@ -228,6 +235,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); + this.lastError = e; return VFS.SQLITE_IOERR_READ; } } @@ -255,6 +264,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.accessHandle.write(pData.subarray(), { at: iOffset }); return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); this.lastError = e; return VFS.SQLITE_IOERR_WRITE; } @@ -277,6 +287,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.accessHandle.truncate(iSize); return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); this.lastError = e; return VFS.SQLITE_IOERR_TRUNCATE; } @@ -299,6 +310,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.accessHandle.flush(); return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); this.lastError = e; return VFS.SQLITE_IOERR_FSYNC; } @@ -322,6 +334,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { pSize64.setBigInt64(0, BigInt(size), true); return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); this.lastError = e; return VFS.SQLITE_IOERR_FSTAT; } @@ -379,8 +392,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.lockState = lockType; return VFS.SQLITE_OK; } catch (e) { + console.error(e.stack); this.lastError = e; - console.error(e.message); return VFS.SQLITE_IOERR_LOCK; } } @@ -410,6 +423,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } file.lockState = lockType; } catch (e) { + console.error(e.stack); this.lastError = e; return VFS.SQLITE_IOERR_UNLOCK; } @@ -503,6 +517,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { break; } } catch (e) { + console.error(e.stack); this.lastError = e; return VFS.SQLITE_IOERR; } @@ -523,7 +538,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { value |= VFS.SQLITE_IOCAP_BATCH_ATOMIC; } } - return value + return value; } /** @@ -593,49 +608,51 @@ export class OPFSWriteAheadVFS extends FacadeVFS { async #retryOpen(zName, flags, fileId, pOutFlags) { const file = this.mapPathToFile.get(zName); try { - // For simplicity, everything goes into the OPFS root directory. - // TODO: Support OPFS subdirectories. - dirHandle = dirHandle ?? await navigator.storage.getDirectory(); - - // Open the main database OPFS file. - let created = false; - let accessHandle; - try { - const fileHandle = await dirHandle.getFileHandle(zName); - // @ts-ignore - accessHandle = await fileHandle.createSyncAccessHandle({ - mode: 'readwrite-unsafe' - }); - } catch (e) { - if (e.name === 'NotFoundError' && (flags & VFS.SQLITE_OPEN_CREATE)) { - const fileHandle = await dirHandle.getFileHandle(zName, { create: true }); + await navigator.locks.request(`${zName}#open`, async lock => { + // For simplicity, everything goes into the OPFS root directory. + // TODO: Support OPFS subdirectories. + dirHandle = dirHandle ?? await navigator.storage.getDirectory(); + + // Open the main database OPFS file. + let created = false; + let accessHandle; + try { + const fileHandle = await dirHandle.getFileHandle(zName); // @ts-ignore accessHandle = await fileHandle.createSyncAccessHandle({ mode: 'readwrite-unsafe' }); - created = true; - } else { - throw e; + } catch (e) { + if (e.name === 'NotFoundError' && (flags & VFS.SQLITE_OPEN_CREATE)) { + const fileHandle = await dirHandle.getFileHandle(zName, { create: true }); + // @ts-ignore + accessHandle = await fileHandle.createSyncAccessHandle({ + mode: 'readwrite-unsafe' + }); + created = true; + } else { + throw e; + } } - } - // Pre-open the journal OPFS file here. - const journalPath = this.#getJournalPathFromDbPath(zName); - const fileHandle = await dirHandle.getFileHandle(journalPath, { create: true }); - // @ts-ignore - const journalHandle = await fileHandle.createSyncAccessHandle({ - mode: 'readwrite-unsafe' - }); + // Pre-open the journal OPFS file here. + const journalPath = this.#getJournalPathFromDbPath(zName); + const fileHandle = await dirHandle.getFileHandle(journalPath, { create: true }); + // @ts-ignore + const journalHandle = await fileHandle.createSyncAccessHandle({ + mode: 'readwrite-unsafe' + }); - // Create the write-ahead manager. - const writeAhead= new WriteAhead( - zName, - (offset, data) => accessHandle.write(data, { at: offset }), - () => accessHandle.flush(), - { create: created }); - await writeAhead.ready(); + // Create the write-ahead manager. + const writeAhead= new WriteAhead( + zName, + (offset, data) => accessHandle.write(data, { at: offset }), + () => accessHandle.flush(), + { create: created }); + await writeAhead.ready(); - file.retryResult = { accessHandle, journalHandle, writeAhead }; + file.retryResult = { accessHandle, journalHandle, writeAhead }; + }); } catch (e) { file.retryResult = e; return; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 6629e3f9..94a67cb1 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -85,6 +85,7 @@ export class WriteAhead { } close() { + this.#txLock?.release(); this.#broadcastChannel.onmessage = null; this.#broadcastChannel.close(); } From eb57bf389e82178833796036880b2bcb2862af2f Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Wed, 10 Dec 2025 06:18:15 +0000 Subject: [PATCH 029/104] Simplify batch atomic enabling. --- src/examples/OPFSWriteAheadVFS.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index c269e1fd..8a5487c7 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -504,7 +504,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { break; case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: + // Allow batch atomic writes when write-ahead is in use. + return file.writeHint === 'reserved' ? VFS.SQLITE_OK : VFS.SQLITE_NOTFOUND; case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: + // Commit will happen on SQLITE_FCNTL_SYNC. return VFS.SQLITE_OK; case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: file.writeAhead.rollback(); @@ -529,16 +532,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {number} */ jDeviceCharacteristics(pFile) { - // Allow batch atomic writes with write-ahead. Disallow when writing - // directly to the file. - let value = VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; - const file = this.mapIdToFile.get(pFile); - if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.writeHint !== 'exclusive') { - value |= VFS.SQLITE_IOCAP_BATCH_ATOMIC; - } - } - return value; + return 0 + | VFS.SQLITE_IOCAP_BATCH_ATOMIC + | VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; } /** From 91fd6fa93c7c362828b1d48233d810879c5fe755 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 15 Dec 2025 19:08:52 +0000 Subject: [PATCH 030/104] Allow databases in subdirectories. --- src/examples/OPFSWriteAheadVFS.js | 47 ++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 8a5487c7..e7cc1cd0 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -4,6 +4,8 @@ import { Lock } from "./Lock.js"; import { LazyLock } from "./LazyLock.js"; import { WriteAhead } from "./WriteAhead.js"; +const TEMPORARY_FILE_DIR_ROOT = '.writeahead-tmp'; + /** * @typedef FileEntry * @property {string} zName @@ -25,10 +27,9 @@ import { WriteAhead } from "./WriteAhead.js"; */ /** - * Cache the OPFS root directory handle. - * @type {FileSystemDirectoryHandle} + * @typedef OPFSWriteAheadOptions + * @property {number} [nTmpFiles] */ -let dirHandle = null; export class OPFSWriteAheadVFS extends FacadeVFS { lastError = null; @@ -36,9 +37,13 @@ export class OPFSWriteAheadVFS extends FacadeVFS { /** @type {Map} */ mapIdToFile = new Map(); /** @type {Map} */ mapPathToFile = new Map(); + /** @type {OPFSWriteAheadOptions} */ options = { + nTmpFiles: 4 + }; static async create(name, module, options) { const vfs = new OPFSWriteAheadVFS(name, module); + Object.assign(vfs.options, options); await vfs.isReady(); return vfs; } @@ -176,7 +181,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { this.mapPathToFile.delete(file?.zName); file.journalHandle.close(); - const journalPath = this.#getJournalPathFromDbPath(file.zName); + const journalPath = this.#getJournalNameFromDbName(file.zName); this.mapPathToFile.delete(journalPath); file.readLock.close(); @@ -552,11 +557,11 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } /** - * @param {string} dbPath + * @param {string} dbName * @returns {string} */ - #getJournalPathFromDbPath(dbPath) { - return `${dbPath}-journal`; + #getJournalNameFromDbName(dbName) { + return `${dbName}-journal`; } /** @@ -605,22 +610,32 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const file = this.mapPathToFile.get(zName); try { await navigator.locks.request(`${zName}#open`, async lock => { - // For simplicity, everything goes into the OPFS root directory. - // TODO: Support OPFS subdirectories. - dirHandle = dirHandle ?? await navigator.storage.getDirectory(); + // Parse the path components. + const directoryNames = zName.split('/').filter(d => d); + const dbName = directoryNames.pop(); + + // Get the OPFS directory handle. + let dirHandle = await navigator.storage.getDirectory(); + const create = !!(flags & VFS.SQLITE_OPEN_CREATE); + for (const directoryName of directoryNames) { + dirHandle = await dirHandle.getDirectoryHandle(directoryName, { create }); + } - // Open the main database OPFS file. + // Open the main database OPFS file. We need to know whether the file + // was created or not so we know whether to remove any existing + // IndexedDB database with the same name. This will not be necessary + // if the write-ahead data is moved to OPFS entirely. let created = false; let accessHandle; try { - const fileHandle = await dirHandle.getFileHandle(zName); + const fileHandle = await dirHandle.getFileHandle(dbName); // @ts-ignore accessHandle = await fileHandle.createSyncAccessHandle({ mode: 'readwrite-unsafe' }); } catch (e) { - if (e.name === 'NotFoundError' && (flags & VFS.SQLITE_OPEN_CREATE)) { - const fileHandle = await dirHandle.getFileHandle(zName, { create: true }); + if (e.name === 'NotFoundError' && create) { + const fileHandle = await dirHandle.getFileHandle(dbName, { create }); // @ts-ignore accessHandle = await fileHandle.createSyncAccessHandle({ mode: 'readwrite-unsafe' @@ -632,8 +647,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } // Pre-open the journal OPFS file here. - const journalPath = this.#getJournalPathFromDbPath(zName); - const fileHandle = await dirHandle.getFileHandle(journalPath, { create: true }); + const journalName = this.#getJournalNameFromDbName(dbName); + const fileHandle = await dirHandle.getFileHandle(journalName, { create: true }); // @ts-ignore const journalHandle = await fileHandle.createSyncAccessHandle({ mode: 'readwrite-unsafe' From 301d019d69b5a77c236149bddeeb5ba268c184d6 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 16 Dec 2025 00:26:04 +0000 Subject: [PATCH 031/104] Add temporary file support. --- src/examples/OPFSWriteAheadVFS.js | 117 ++++++++++++++++++++++++++---- 1 file changed, 104 insertions(+), 13 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index e7cc1cd0..6430a423 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -4,7 +4,9 @@ import { Lock } from "./Lock.js"; import { LazyLock } from "./LazyLock.js"; import { WriteAhead } from "./WriteAhead.js"; -const TEMPORARY_FILE_DIR_ROOT = '.writeahead-tmp'; +const LIBRARY_FILES_ROOT = '.wa-sqlite'; + +const finalizationRegistry = new FinalizationRegistry(f => f()); /** * @typedef FileEntry @@ -37,10 +39,15 @@ export class OPFSWriteAheadVFS extends FacadeVFS { /** @type {Map} */ mapIdToFile = new Map(); /** @type {Map} */ mapPathToFile = new Map(); + + /** @type {Map} */ boundTempFiles = new Map(); + /** @type {Set} */ unboundTempFiles = new Set(); /** @type {OPFSWriteAheadOptions} */ options = { nTmpFiles: 4 }; + _ready; + static async create(name, module, options) { const vfs = new OPFSWriteAheadVFS(name, module); Object.assign(vfs.options, options); @@ -50,6 +57,53 @@ export class OPFSWriteAheadVFS extends FacadeVFS { constructor(name, module) { super(name, module); + this._ready = (async () => { + // Ensure the library files root directory exists. + let dirHandle = await navigator.storage.getDirectory(); + dirHandle = await dirHandle.getDirectoryHandle(LIBRARY_FILES_ROOT, { create: true }); + + // Clean up any stale session directories. + // @ts-ignore + for await (const name of dirHandle.keys()) { + if (name.startsWith('.session-')) { + // Acquire a lock on the session directory to ensure it is not in use. + await navigator.locks.request(name, { ifAvailable: true }, async lock => { + if (lock) { + // This directory is not in use. + try { + await dirHandle.removeEntry(name, { recursive: true }); + } catch (e) { + // Ignore errors, will try again next time. + } + } + }); + } + } + + // Create our session directory. + const dirName = `.session-${Math.random().toString(16).slice(2)}`; + await new Promise(resolve => { + navigator.locks.request(dirName, () => { + resolve(); + return new Promise(release => { + finalizationRegistry.register(this, release); + }); + }); + }); + dirHandle = await dirHandle.getDirectoryHandle(dirName, { create: true }); + + // Create temporary files. + for (let i = 0; i < this.options.nTmpFiles; i++) { + const fileHandle= await dirHandle.getFileHandle(i.toString(), { create: true }); + const accessHandle = await fileHandle.createSyncAccessHandle(); + finalizationRegistry.register(this, () => accessHandle.close()); + this.unboundTempFiles.add(accessHandle); + } + })(); + } + + isReady() { + return Promise.all([super.isReady(), this._ready]).then(() => true); } /** @@ -61,6 +115,12 @@ export class OPFSWriteAheadVFS extends FacadeVFS { */ jOpen(zName, fileId, flags, pOutFlags) { try { + if (zName === null) { + // Generate a temporary filename. This will only be used as a + // key to map to a pre-opened temporary file access handle. + zName = Math.random().toString(16).slice(2); + } + const file = this.mapPathToFile.get(zName) ?? { zName, flags, @@ -102,7 +162,14 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Initialize journal file state. file.accessHandle = dbFile.journalHandle; } else { - throw new Error(`unsupported file type 0x${flags.toString(16)} for ${zName}`); + // This is a temporary file. Use an unbound pre-opened accessHandle. + if (this.unboundTempFiles.size === 0) { + throw new Error('no temporary files available'); + } + const accessHandle = this.unboundTempFiles.values().next().value; + this.unboundTempFiles.delete(accessHandle); + this.boundTempFiles.set(zName, accessHandle); + file.accessHandle = accessHandle; } this.mapIdToFile.set(fileId, file); @@ -129,8 +196,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // We don't actually delete it, just truncate it to zero length. file.accessHandle.truncate(0); file.accessHandle.flush(); - } else { - throw new Error(`Unexpected delete: ${zName}`); + } else if (this.boundTempFiles.has(zName)) { + this.#deleteTemporaryFile(file); } return VFS.SQLITE_OK; } catch (e) { @@ -189,6 +256,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } else if (file?.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { // The actual OPFS journal file is managed with the main database // file, so don't close the access handle here. + } else if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) { + this.#deleteTemporaryFile(file); } // Disassociate fileId from file entry. @@ -509,18 +578,28 @@ export class OPFSWriteAheadVFS extends FacadeVFS { break; case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: - // Allow batch atomic writes when write-ahead is in use. - return file.writeHint === 'reserved' ? VFS.SQLITE_OK : VFS.SQLITE_NOTFOUND; + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + // Allow batch atomic writes when write-ahead is in use. + return file.writeHint === 'reserved' ? VFS.SQLITE_OK : VFS.SQLITE_NOTFOUND; + } + break; case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: - // Commit will happen on SQLITE_FCNTL_SYNC. - return VFS.SQLITE_OK; + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + // Commit will happen on SQLITE_FCNTL_SYNC. + return VFS.SQLITE_OK; + } + break; case VFS.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: - file.writeAhead.rollback(); - return VFS.SQLITE_OK; - + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + file.writeAhead.rollback(); + return VFS.SQLITE_OK; + } + break; case VFS.SQLITE_FCNTL_SYNC: - if (file.writeHint === 'reserved') { - file.writeAhead.commit(); + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { + if (file.writeHint === 'reserved') { + file.writeAhead.commit(); + } } break; } @@ -556,6 +635,18 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_OK } + /** + * @param {FileEntry} file + */ + #deleteTemporaryFile(file) { + file.accessHandle.truncate(0); + + // Temporary files are not actually deleted, just returned to the pool. + this.mapPathToFile.delete(file.zName); + this.unboundTempFiles.add(file.accessHandle); + this.boundTempFiles.delete(file.zName); + } + /** * @param {string} dbName * @returns {string} From 52a390efe5c6b2c4b6ec70d45888620476ff830c Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 16 Dec 2025 17:45:33 +0000 Subject: [PATCH 032/104] Use PRAGMA wal_autocheckpoint for checkpoint invocation. --- src/examples/OPFSWriteAheadVFS.js | 28 +++++++++++------ src/examples/WriteAhead.js | 51 ++++++++++++++++++++++++++++--- 2 files changed, 64 insertions(+), 15 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 6430a423..a59f3e9d 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -571,21 +571,24 @@ export class OPFSWriteAheadVFS extends FacadeVFS { case 'vfs_logging': // This is a trace feature for debugging only. if (value !== null) { - this.log = parseInt(value) !== 0 ? console.log : null; + this.log = parseInt(value) !== 0 ? console.debug : null; + file.writeAhead.log = this.log; } return VFS.SQLITE_OK; + case 'wal_autocheckpoint': + if (value !== null) { + const pageCount = parseInt(value); + if (pageCount > 0) { + file.writeAhead.setAutoCheckpoint(pageCount); + } + } + break; } break; case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: - if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - // Allow batch atomic writes when write-ahead is in use. - return file.writeHint === 'reserved' ? VFS.SQLITE_OK : VFS.SQLITE_NOTFOUND; - } - break; case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - // Commit will happen on SQLITE_FCNTL_SYNC. return VFS.SQLITE_OK; } break; @@ -616,9 +619,14 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {number} */ jDeviceCharacteristics(pFile) { - return 0 - | VFS.SQLITE_IOCAP_BATCH_ATOMIC - | VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; + let result = VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; + + const file = this.mapIdToFile.get(pFile); + if (file.flags & VFS.SQLITE_OPEN_MAIN_DB && file.writeHint === 'reserved') { + // When write-ahead is in use, we can do batch atomic writes. + result |= VFS.SQLITE_IOCAP_BATCH_ATOMIC; + } + return result; } /** diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 94a67cb1..4aa6c288 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -1,5 +1,7 @@ import { Lock } from './Lock.js'; +const DEFAULT_AUTOCHECKPOINT_PAGES = 1000; + /** * @typedef Transaction * @property {number} id @@ -13,6 +15,8 @@ import { Lock } from './Lock.js'; */ export class WriteAhead { + log = null; + #zName; #writeFn; #syncFn; @@ -30,8 +34,10 @@ export class WriteAhead { /** @type {Map} */ #waOverlay = new Map(); /** @type {Map} */ #txOverlay = new Map(); /** @type {Map} */ #mapIdToTx = new Map(); + #nWriteAheadPages = 0; #broadcastChannel; + #autoCheckpointPages = DEFAULT_AUTOCHECKPOINT_PAGES; /** @type {IDBDatabase} */ #idbDb; @@ -210,10 +216,21 @@ export class WriteAhead { console.error('IndexedDB write failed', e); }); - // Automatic checkpoint. - // TODO: This doesn't have to be done here. It could be done periodically, - // or based on some heuristic, e.g. number of transactions or pages. - this.#checkpoint(); + // TODO: remove this sanity check + let checkCount = 0; + for (const tx of this.#mapIdToTx.values()) { + checkCount += tx.pages.size; + } + if (checkCount !== this.#nWriteAheadPages) { + console.warn('page count mismatch', checkCount, this.#nWriteAheadPages); + debugger; + } + + // Auto-checkpoint when the write-ahead overlay exceeds the + // checkpoint threshold. + if (this.#nWriteAheadPages >= this.#autoCheckpointPages) { + this.#checkpoint(); + } } rollback() { @@ -242,21 +259,33 @@ export class WriteAhead { } } + /** + * @param {number} pageCount + */ + setAutoCheckpoint(pageCount) { + this.#autoCheckpointPages = pageCount; + } + /** * Advance the local view of the database. */ #advanceTxId() { + const oldTxId = this.#txId; + let tx; while (tx = this.#mapIdToTx.get(this.#txId + 1)) { // Add transaction pages to the write-ahead overlay. for (const [offset, data] of tx.pages) { this.#waOverlay.set(offset, data); } + this.#nWriteAheadPages += tx.pages.size; this.#txId = tx.id; this.#txFileSize = tx.fileSize; } - this.#updateTxLock(this.#txId); + if (this.#txId !== oldTxId) { + this.#updateTxLock(this.#txId); + } } /** @@ -320,6 +349,16 @@ export class WriteAhead { // Remove transaction. this.#mapIdToTx.delete(tx.id); } + + const oldCount = this.#nWriteAheadPages; + + // Recalculate the number of pages in write-ahead. + this.#nWriteAheadPages = 0; + for (const tx of this.#mapIdToTx.values()) { + this.#nWriteAheadPages += tx.pages.size; + } + + this.log?.(`%cCheckpoint to txId ${ckptId}, ${oldCount} -> ${this.#nWriteAheadPages} pages in write-ahead`, 'background-color: lightgreen;'); } /** @@ -433,6 +472,8 @@ export class WriteAhead { this.#txLock = new Lock(newLockName); await this.#txLock.acquire('shared'); oldLock?.release(); + + this.log?.(`%ctxId to ${txId}`, 'background-color: lightblue;'); } } From 8da739f9b38f1c45f9ddc281b45bf269c9b6275b Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 18 Dec 2025 03:32:02 +0000 Subject: [PATCH 033/104] Implement heartbeat check for missing transactions. --- src/examples/WriteAhead.js | 106 ++++++++++++++++++++++++++++++++----- 1 file changed, 93 insertions(+), 13 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 4aa6c288..dde41e3a 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -1,6 +1,8 @@ import { Lock } from './Lock.js'; const DEFAULT_AUTOCHECKPOINT_PAGES = 1000; +const DEFAULT_HEARTBEAT_INTERVAL = 3000; +const DEFAULT_HEARTBEAT_ACTION_DELAY = 50; /** * @typedef Transaction @@ -12,6 +14,8 @@ const DEFAULT_AUTOCHECKPOINT_PAGES = 1000; /** * @typedef WriteAheadOptions * @property {boolean} [create=false] true if database is being created + * @property {number} [heartbeatInterval] + * @property {number} [heartbeatActionDelay] */ export class WriteAhead { @@ -21,7 +25,9 @@ export class WriteAhead { #writeFn; #syncFn; #options = { - create: false + create: false, + heartbeatInterval: DEFAULT_HEARTBEAT_INTERVAL, + heartbeatActionDelay: DEFAULT_HEARTBEAT_ACTION_DELAY }; #ready; @@ -38,6 +44,7 @@ export class WriteAhead { #broadcastChannel; #autoCheckpointPages = DEFAULT_AUTOCHECKPOINT_PAGES; + /** @type {NodeJS.Timeout} */ #heartbeatTimer; /** @type {IDBDatabase} */ #idbDb; @@ -80,6 +87,11 @@ export class WriteAhead { // Update our tx lock to reflect the current txId. await this.#updateTxLock(this.#txId); + + // Schedule first heartbeat. The heartbeat is a guard against a crash + // in another context between persisting a transaction and broadcasting + // it. + this.#heartbeat(); })(); } @@ -94,6 +106,7 @@ export class WriteAhead { this.#txLock?.release(); this.#broadcastChannel.onmessage = null; this.#broadcastChannel.close(); + clearTimeout(this.#heartbeatTimer); } /** @@ -119,23 +132,16 @@ export class WriteAhead { } this.#state = 'write'; + // Heartbeat is not needed while writing because we will be current. + clearTimeout(this.#heartbeatTimer); + this.#heartbeatTimer = null; + // Ensure that we have all previous transactions. const { txList, emptyId } = await this.#repoLoad(this.#txId); if (txList.length > 0) { for (const tx of txList) { this.#mapIdToTx.set(tx.id, tx); - - // This transaction wasn't already seen. It may just be a - // race condition, but it could have been a page crash - // between writing to IndexedDB and broadcasting. In case - // of the latter, broadcast the transaction again. - // TODO: To avoid redundant broadcasts, consider scheduling - // a broadcast after a short delay and canceling if another - // broadcast is seen in the meantime. Alternatively, remove - // this code and schedule periodic checks. - this.#broadcastChannel.postMessage({ type: 'tx', tx }); } - this.#advanceTxId(); } else { this.#txId = emptyId; @@ -143,6 +149,11 @@ export class WriteAhead { } rejoin() { + if (this.#state === 'write') { + // Resume heartbeat after write isolation. + this.#heartbeat(); + } + this.#state = null; this.#txOverlay = new Map(); this.#advanceTxId(); @@ -381,6 +392,46 @@ export class WriteAhead { } } + /** + * Periodic check for missing transactions. + */ + async #heartbeat() { + try { + if (this.#heartbeatTimer) { + // Check whether we are missing the next transaction. + const nextLocalTxId = this.#txId + 1; + const lastRepoTxId = await this.#repoLastTxId(); + if (this.#txId < lastRepoTxId && !this.#mapIdToTx.has(nextLocalTxId)) { + // There are transactions in the repository that we have not received + // a broadcast for. This could be due to a crash in another context + // or simply unlucky timing. In case of bad timing, use a brief + // delay to allow any pending broadcasts to arrive. + setTimeout(async () => { + // Repeat the check. + if (this.#txId < nextLocalTxId && !this.#mapIdToTx.has(nextLocalTxId)) { + // Still missing the next transaction, so load it from the + // repository. + const { txList } = await this.#repoLoad(this.#txId); + + // Simulate a broadcast message for this transaction. + this.#handleMessage( + new MessageEvent('message', { data: { type: 'tx', tx: txList[0] } })); + } + }, this.#options.heartbeatActionDelay); + } + } + } catch (e) { + console.error('Heartbeat failed', e); + } + + // Schedule next heartbeat. Add a bit of skew to reduce correlated + // heartbeats across multiple connections. + const delay = this.#options.heartbeatInterval * (0.9 + 0.2 * Math.random()); + this.#heartbeatTimer = setTimeout(() => { + this.#heartbeat(); + }, delay); + } + /** * Initialize persistent write-ahead storage. * @param {string} zName @@ -420,6 +471,34 @@ export class WriteAhead { return results; } + /** + * Get the last transaction id for the database. + * @returns {Promise} + */ + async #repoLastTxId() { + const idbTx = this.#idbDb.transaction('txStore', 'readonly'); + const idbTxStore = idbTx.objectStore('txStore'); + const marker = await new Promise((resolve, reject) => { + // Use a cursor with 'prev' direction to get the last key + // in the store. This will be the end marker, which will + // be the *next* transaction id. + const request = idbTxStore.openKeyCursor(null, 'prev'); + request.onsuccess = () => { + const cursor = request.result; + if (cursor) { + resolve(cursor.key); + } else { + reject(new Error('Invalid repository state')); + } + }; + request.onerror = () => { + reject(request.error); + }; + }); + idbTx.commit(); + return marker - 1; + } + /** * Load transactions from persistent storage starting from txId + 1. * @param {number} txId @@ -432,6 +511,7 @@ export class WriteAhead { // Get all transactions with id > txId. const request = idbTxStore.getAll(IDBKeyRange.lowerBound(txId, true)); /** @type {Transaction[]} */ const txList = await idbWrap(request); + idbTx.commit(); // The last object in the store is the end marker, which contains // no data. Its purpose is to provide the txId when write-ahead @@ -490,7 +570,7 @@ export class WriteAhead { const { held } = await navigator.locks.query(); return held .map(lock => lock.name.match(txLockRegex)) - .filter(match => match !== null && match[1] === this.#zName) + .filter(match => match?.[1] === this.#zName) .map(match => parseInt(match[2])) .reduce((min, txId) => Math.min(min, txId), this.#txId); } From d415625bfc3ccc2f3d13b5a46b873c22c6f7dcc9 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 18 Dec 2025 03:50:14 +0000 Subject: [PATCH 034/104] Tweak WriteAhead options. --- src/examples/OPFSWriteAheadVFS.js | 3 ++- src/examples/WriteAhead.js | 31 ++++++++++++------------------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index a59f3e9d..da551d4c 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -487,6 +487,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // In this VFS, this is the only unlock transition that matters. file.writeLock.release(); if (file.readLock.mode === 'exclusive') { + // TODO: Consider lazy release here as well. file.readLock.release(); } else { file.readLock.releaseLazy(); @@ -579,7 +580,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (value !== null) { const pageCount = parseInt(value); if (pageCount > 0) { - file.writeAhead.setAutoCheckpoint(pageCount); + file.writeAhead.options.autoCheckpointPages = pageCount; } } break; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index dde41e3a..6392cfe0 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -20,16 +20,17 @@ const DEFAULT_HEARTBEAT_ACTION_DELAY = 50; export class WriteAhead { log = null; - - #zName; - #writeFn; - #syncFn; - #options = { + options = { create: false, + autoCheckpointPages: DEFAULT_AUTOCHECKPOINT_PAGES, heartbeatInterval: DEFAULT_HEARTBEAT_INTERVAL, heartbeatActionDelay: DEFAULT_HEARTBEAT_ACTION_DELAY }; + #zName; + #writeFn; + #syncFn; + #ready; /** @type {'read'|'write'} */ #state = null @@ -43,7 +44,6 @@ export class WriteAhead { #nWriteAheadPages = 0; #broadcastChannel; - #autoCheckpointPages = DEFAULT_AUTOCHECKPOINT_PAGES; /** @type {NodeJS.Timeout} */ #heartbeatTimer; /** @type {IDBDatabase} */ #idbDb; @@ -58,7 +58,7 @@ export class WriteAhead { this.#zName = zName; this.#writeFn = writeFn; this.#syncFn = syncFn; - this.#options = Object.assign(this.#options, options); + this.options = Object.assign(this.options, options); // All the asynchronous initialization is done here. this.#ready = (async () => { @@ -239,7 +239,7 @@ export class WriteAhead { // Auto-checkpoint when the write-ahead overlay exceeds the // checkpoint threshold. - if (this.#nWriteAheadPages >= this.#autoCheckpointPages) { + if (this.#nWriteAheadPages >= this.options.autoCheckpointPages) { this.#checkpoint(); } } @@ -270,13 +270,6 @@ export class WriteAhead { } } - /** - * @param {number} pageCount - */ - setAutoCheckpoint(pageCount) { - this.#autoCheckpointPages = pageCount; - } - /** * Advance the local view of the database. */ @@ -417,16 +410,16 @@ export class WriteAhead { this.#handleMessage( new MessageEvent('message', { data: { type: 'tx', tx: txList[0] } })); } - }, this.#options.heartbeatActionDelay); + }, this.options.heartbeatActionDelay); } } } catch (e) { console.error('Heartbeat failed', e); } - // Schedule next heartbeat. Add a bit of skew to reduce correlated + // Schedule next heartbeat. Add a bit of jitter to decorrelate // heartbeats across multiple connections. - const delay = this.#options.heartbeatInterval * (0.9 + 0.2 * Math.random()); + const delay = this.options.heartbeatInterval * (0.9 + 0.2 * Math.random()); this.#heartbeatTimer = setTimeout(() => { this.#heartbeat(); }, delay); @@ -438,7 +431,7 @@ export class WriteAhead { */ async #repoInit(zName) { // Delete existing IndexedDB database for a new SQLite database. - if (this.#options.create) { + if (this.options.create) { await idbWrap(indexedDB.deleteDatabase(zName)); } From 87fbbb61b8991b7ae050905f2a70ffbee1af26ee Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 18 Dec 2025 22:59:29 +0000 Subject: [PATCH 035/104] Minor fixes. --- src/examples/OPFSWriteAheadVFS.js | 12 ++++++++---- src/examples/WriteAhead.js | 9 ++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index da551d4c..fe311b0f 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -20,7 +20,7 @@ const finalizationRegistry = new FinalizationRegistry(f => f()); * * @property {'reserved'|'exclusive'} [writeHint] * @property {'normal'|'exclusive'|null} [lockingMode] - * @property {number} [lockState] + * @property {number} [lockState] SQLITE_LOCK_* * @property {LazyLock} [readLock] * @property {Lock} [writeLock] * @property {number} [timeout] @@ -161,6 +161,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Initialize journal file state. file.accessHandle = dbFile.journalHandle; + } else if (flags & (VFS.SQLITE_OPEN_WAL | VFS.SQLITE_OPEN_SUPER_JOURNAL)) { + throw new Error('WAL and super-journal files are not supported'); } else { // This is a temporary file. Use an unbound pre-opened accessHandle. if (this.unboundTempFiles.size === 0) { @@ -569,7 +571,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { break; } break; - case 'vfs_logging': + case 'vfs_trace': // This is a trace feature for debugging only. if (value !== null) { this.log = parseInt(value) !== 0 ? console.debug : null; @@ -623,7 +625,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { let result = VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; const file = this.mapIdToFile.get(pFile); - if (file.flags & VFS.SQLITE_OPEN_MAIN_DB && file.writeHint === 'reserved') { + if (file.writeHint === 'reserved') { // When write-ahead is in use, we can do batch atomic writes. result |= VFS.SQLITE_IOCAP_BATCH_ATOMIC; } @@ -680,7 +682,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { await file.writeAhead.isolateForWrite(); break; case 'exclusive': - // This transaction will write directly to the database. + // This transaction will write directly to the database, + // i.e. not using write-ahead. Get exclusive access. await file.readLock.acquire('exclusive', file.timeout); await file.writeLock.acquire('exclusive'); @@ -688,6 +691,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { await file.writeAhead.flush(); break; default: + // This transaction will only read. await file.readLock.acquire('shared', file.timeout); break; } diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 6392cfe0..2512e773 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -202,6 +202,13 @@ export class WriteAhead { // Get the file size from the page 1 header. const page1 = this.#txOverlay.get(0); + if (!page1) { + // The change counter on page 1 must be updated on every transaction. + // If page 1 is not here then this must be a non-batch-atomic rollback + // where page 1 has not yet been written. + this.#txOverlay.clear(); + return; + } const dataView = new DataView(page1.buffer, page1.byteOffset, 100); const pageSize = dataView.getUint16(16); const pageCount = dataView.getUint32(28); @@ -246,7 +253,7 @@ export class WriteAhead { rollback() { // Discard transaction pages. - this.#txOverlay = new Map(); + this.#txOverlay.clear(); } /** From 662c07ce62606137d8ed1cea69d44ab28d647622 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 19 Dec 2025 22:34:41 +0000 Subject: [PATCH 036/104] Allow file resize on checkpoint. --- src/examples/OPFSWriteAheadVFS.js | 3 ++- src/examples/WriteAhead.js | 31 +++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index fe311b0f..c28fe383 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -730,7 +730,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // IndexedDB database with the same name. This will not be necessary // if the write-ahead data is moved to OPFS entirely. let created = false; - let accessHandle; + /** @type {FileSystemSyncAccessHandle} */ let accessHandle; try { const fileHandle = await dirHandle.getFileHandle(dbName); // @ts-ignore @@ -762,6 +762,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const writeAhead= new WriteAhead( zName, (offset, data) => accessHandle.write(data, { at: offset }), + (newSize) => accessHandle.truncate(newSize), () => accessHandle.flush(), { create: created }); await writeAhead.ready(); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 2512e773..b1504098 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -29,6 +29,7 @@ export class WriteAhead { #zName; #writeFn; + #truncateFn; #syncFn; #ready; @@ -44,19 +45,21 @@ export class WriteAhead { #nWriteAheadPages = 0; #broadcastChannel; - /** @type {NodeJS.Timeout} */ #heartbeatTimer; + /** @type {number} */ #heartbeatTimer; /** @type {IDBDatabase} */ #idbDb; /** * @param {string} zName - * @param {(offset: number, data: Uint8Array) => void} writeFn + * @param {(offset: number, data: Uint8Array) => void} writeFn + * @param {(newSize: number) => void} truncateFn * @param {() => void} syncFn * @param {WriteAheadOptions} options */ - constructor(zName, writeFn, syncFn, options) { + constructor(zName, writeFn, truncateFn, syncFn, options) { this.#zName = zName; this.#writeFn = writeFn; + this.#truncateFn = truncateFn; this.#syncFn = syncFn; this.options = Object.assign(this.options, options); @@ -205,14 +208,13 @@ export class WriteAhead { if (!page1) { // The change counter on page 1 must be updated on every transaction. // If page 1 is not here then this must be a non-batch-atomic rollback - // where page 1 has not yet been written. + // before page 1 was modified, and we can discard the transaction. this.#txOverlay.clear(); return; } const dataView = new DataView(page1.buffer, page1.byteOffset, 100); - const pageSize = dataView.getUint16(16); const pageCount = dataView.getUint32(28); - const fileSize = (pageSize === 1 ? 65536 : pageSize) * pageCount; + const fileSize = page1.byteLength * pageCount; // Create a new transaction. const tx = { @@ -305,7 +307,9 @@ export class WriteAhead { */ async #checkpoint(ckptId) { // Allow only one connection to checkpoint at a time. - await navigator.locks.request(`${this.#zName}-ckpt`, async () => { + /** @type {LockOptions} */ + const lockOptions = { mode: 'exclusive', ifAvailable: true }; + await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async () => { // If the txId checkpoint is not specified, find the lowest txId // in use by any connection. if (ckptId === undefined) { @@ -316,10 +320,19 @@ export class WriteAhead { // pages to the main database file. Do not overwrite a page written // by a later transaction. const writtenOffsets = new Set(); + let fileSize = 0; let tx = { id: ckptId + 1 }; while (tx = this.#mapIdToTx.get(tx.id - 1)) { + if (tx.id === ckptId) { + // Set the file size from the latest transaction. This may be + // unnecessary as SQLite is not known to reduce the database size + // except with VACUUM. + fileSize = tx.fileSize; + this.#truncateFn(fileSize); + } + for (const [offset, data] of tx.pages) { - if (!writtenOffsets.has(offset)) { + if (offset < fileSize && !writtenOffsets.has(offset)) { this.#writeFn(offset, data); writtenOffsets.add(offset); } @@ -419,6 +432,8 @@ export class WriteAhead { } }, this.options.heartbeatActionDelay); } + + // TODO: move checkpointing here } } catch (e) { console.error('Heartbeat failed', e); From 04c6ad8130d65f4f1c9c0ff2b4b8e37ca5b58030 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 20 Dec 2025 16:51:14 +0000 Subject: [PATCH 037/104] Checkpoint in heartbeat. --- src/examples/WriteAhead.js | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index b1504098..d2978843 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -235,22 +235,6 @@ export class WriteAhead { // TODO: handle error console.error('IndexedDB write failed', e); }); - - // TODO: remove this sanity check - let checkCount = 0; - for (const tx of this.#mapIdToTx.values()) { - checkCount += tx.pages.size; - } - if (checkCount !== this.#nWriteAheadPages) { - console.warn('page count mismatch', checkCount, this.#nWriteAheadPages); - debugger; - } - - // Auto-checkpoint when the write-ahead overlay exceeds the - // checkpoint threshold. - if (this.#nWriteAheadPages >= this.options.autoCheckpointPages) { - this.#checkpoint(); - } } rollback() { @@ -272,10 +256,15 @@ export class WriteAhead { await this.isolateForWrite(); this.rejoin(); + // Disable heartbeat. + clearTimeout(this.#heartbeatTimer); + this.#heartbeatTimer = null; + // Perform a full checkpoint. Write-ahead will be empty afterwards. await this.#checkpoint(this.#txId); } finally { this.#state = null; + this.#heartbeat(); } } @@ -411,6 +400,12 @@ export class WriteAhead { async #heartbeat() { try { if (this.#heartbeatTimer) { + // Auto-checkpoint when the write-ahead overlay exceeds the + // checkpoint threshold. + if (this.#nWriteAheadPages >= this.options.autoCheckpointPages) { + this.#checkpoint(); + } + // Check whether we are missing the next transaction. const nextLocalTxId = this.#txId + 1; const lastRepoTxId = await this.#repoLastTxId(); @@ -432,8 +427,6 @@ export class WriteAhead { } }, this.options.heartbeatActionDelay); } - - // TODO: move checkpointing here } } catch (e) { console.error('Heartbeat failed', e); From 2b5b37be42d81495f8794bc754aa6031caa10666 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 20 Dec 2025 18:40:30 +0000 Subject: [PATCH 038/104] Add write_ahead pragma. --- src/examples/OPFSWriteAheadVFS.js | 158 +++++++++++++++++++----------- 1 file changed, 101 insertions(+), 57 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index c28fe383..8e4e2d4f 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -18,6 +18,7 @@ const finalizationRegistry = new FinalizationRegistry(f => f()); * @property {*} [retryResult] * @property {FileSystemSyncAccessHandle} [journalHandle] * + * @property {boolean} [useWriteAhead] * @property {'reserved'|'exclusive'} [writeHint] * @property {'normal'|'exclusive'|null} [lockingMode] * @property {number} [lockState] SQLITE_LOCK_* @@ -150,28 +151,36 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.readLock = new LazyLock(`${zName}#read`); file.writeLock = new Lock(`${zName}#write`); file.timeout = -1; + file.useWriteAhead = true; file.writeHint = null; } else if (flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { // A journal file is managed with its main database so look that up. - const dbFilename = zName.slice(0, -"-journal".length); - const dbFile = this.mapPathToFile.get(dbFilename); + const dbFile = this.#getDbFileFromJournalName(zName); if (!dbFile) { throw new Error(`database file not found for journal ${zName}`); } - // Initialize journal file state. - file.accessHandle = dbFile.journalHandle; + // Determine whether to use the public journal (which is hot or + // could become hot) or a private journal from the session directory. + // This is necessary because read connections can test a journal + // for hotness while a write-ahead transaction is in progress. + if (!dbFile.useWriteAhead || dbFile.journalHandle.getSize() > 0) { + // Either write-ahead is not being used, or a hot journal is being + // opened for recovery. Use the public journal. + file.accessHandle = dbFile.journalHandle; + } else if (dbFile.useWriteAhead && dbFile.lockState > VFS.SQLITE_LOCK_SHARED) { + // The journal is being opened for a write-ahead transaction. + // This journal can never be hot so don't expose it to other + // connections. + file.accessHandle = this.#openTemporaryFile(zName); + } else { + throw new Error('unexpected journal file conditions'); + } } else if (flags & (VFS.SQLITE_OPEN_WAL | VFS.SQLITE_OPEN_SUPER_JOURNAL)) { throw new Error('WAL and super-journal files are not supported'); } else { // This is a temporary file. Use an unbound pre-opened accessHandle. - if (this.unboundTempFiles.size === 0) { - throw new Error('no temporary files available'); - } - const accessHandle = this.unboundTempFiles.values().next().value; - this.unboundTempFiles.delete(accessHandle); - this.boundTempFiles.set(zName, accessHandle); - file.accessHandle = accessHandle; + file.accessHandle = this.#openTemporaryFile(zName); } this.mapIdToFile.set(fileId, file); @@ -191,15 +200,16 @@ export class OPFSWriteAheadVFS extends FacadeVFS { */ jDelete(zName, syncDir) { try { - const file = this.mapPathToFile.get(zName); - if (!file) throw new Error(`file not found: ${zName}`); - if (file.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { - // The actual OPFS journal file is managed with the main database. - // We don't actually delete it, just truncate it to zero length. - file.accessHandle.truncate(0); - file.accessHandle.flush(); - } else if (this.boundTempFiles.has(zName)) { + if (this.boundTempFiles.has(zName)) { + const file = this.mapPathToFile.get(zName); this.#deleteTemporaryFile(file); + } else if (zName.endsWith('-journal')) { + const dbFile = this.#getDbFileFromJournalName(zName); + dbFile?.journalHandle.truncate(0); + dbFile?.journalHandle.flush(); + this.mapPathToFile.delete(zName); + } else { + throw new Error(`unexpected file deletion: ${zName}`); } return VFS.SQLITE_OK; } catch (e) { @@ -217,18 +227,28 @@ export class OPFSWriteAheadVFS extends FacadeVFS { */ jAccess(zName, flags, pResOut) { try { - const file = this.mapPathToFile.get(zName); - if (file) { - if ((file.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) && - file.accessHandle.getSize() === 0) { - // Treat an empty journal file as non-existent. - pResOut.setInt32(0, 0, true); - } else { - pResOut.setInt32(0, 1, true); + // Special case main journal files. + if (zName.endsWith('-journal')) { + const dbFile = this.#getDbFileFromJournalName(zName); + if (dbFile) { + if (dbFile.lockState <= VFS.SQLITE_LOCK_SHARED) { + // SQLite is testing for a hot journal. Journals created in the + // session directory for write-ahead transactions are never hot, + // i.e. they are used only for rollback. So here we look for + // the status of the public journal. + if (dbFile.journalHandle.getSize() === 0) { + // Treat an empty journal file as non-existent. + pResOut.setInt32(0, 0, true); + } else { + pResOut.setInt32(0, 1, true); + } + } + return VFS.SQLITE_OK; } - } else { - pResOut.setInt32(0, 0, true); } + + const file = this.mapPathToFile.get(zName); + pResOut.setInt32(0, file ? 1 : 0, true); return VFS.SQLITE_OK; } catch (e) { console.error(e.stack); @@ -327,7 +347,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.writeHint === 'reserved') { + if (file.useWriteAhead) { // Write to the write-ahead overlay. file.writeAhead.write(iOffset, pData); return VFS.SQLITE_OK; @@ -355,7 +375,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.writeHint !== 'exclusive') { + if (file.useWriteAhead) { file.writeAhead.truncate(iSize); return VFS.SQLITE_OK; } @@ -378,7 +398,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.writeHint === 'reserved') { + if (file.useWriteAhead) { // Write-ahead sync is handled on SQLITE_FCNTL_SYNC. return VFS.SQLITE_OK; } @@ -427,18 +447,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (file.lockState === VFS.SQLITE_LOCK_NONE && lockType === VFS.SQLITE_LOCK_SHARED) { // We do all our locking work in this transition. if (file.retryResult === null) { - // Manage some special cases. - if (file.accessHandle.getSize() === 0) { - // The database has not been created. We will need a write lock. - file.writeHint = 'exclusive'; - } else if (file.lockingMode === 'exclusive') { - // PRAGMA locking_mode=EXCLUSIVE was set. - file.writeHint = 'exclusive'; - } else if (file.journalHandle.getSize() > 0) { - // There is a hot journal. We will need a write lock. - file.writeHint = 'exclusive'; - } - if (file.writeHint || file.readLock.mode !== 'shared') { // Asynchronous lock acquisition is needed. Set retryResult to // non-null so when SQLite calls jUnlock() it knows not to reset @@ -586,6 +594,18 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } } break; + case 'write_ahead': + // This is a custom pragma to enable or disable write-ahead. + // By default, write-ahead is enabled. + if (value !== null) { + file.useWriteAhead = parseInt(value) !== 0; + } else { + const s = (file.useWriteAhead ? '1' : '0'); + const ptr = this._module._sqlite3_malloc64(s.length + 1); + this._module.stringToUTF8(s, ptr, s.length + 1); + pArg.setUint32(0, ptr, true); + } + return VFS.SQLITE_OK; } break; @@ -603,7 +623,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { break; case VFS.SQLITE_FCNTL_SYNC: if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.writeHint === 'reserved') { + if (file.useWriteAhead) { file.writeAhead.commit(); } } @@ -625,7 +645,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { let result = VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; const file = this.mapIdToFile.get(pFile); - if (file.writeHint === 'reserved') { + if (file.useWriteAhead) { // When write-ahead is in use, we can do batch atomic writes. result |= VFS.SQLITE_IOCAP_BATCH_ATOMIC; } @@ -646,6 +666,20 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_OK } + /** + * @param {string} zName + * @returns {FileSystemSyncAccessHandle} + */ + #openTemporaryFile(zName) { + if (this.unboundTempFiles.size === 0) { + throw new Error('no temporary files available'); + } + const accessHandle = this.unboundTempFiles.values().next().value; + this.unboundTempFiles.delete(accessHandle); + this.boundTempFiles.set(zName, accessHandle); + return accessHandle; + } + /** * @param {FileEntry} file */ @@ -666,6 +700,15 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return `${dbName}-journal`; } + /** + * @param {string} journalName + * @returns {FileEntry} + */ + #getDbFileFromJournalName(journalName) { + const dbFilename = journalName.slice(0, -'-journal'.length); + return this.mapPathToFile.get(dbFilename); + } + /** * Handle asynchronous jLock() tasks. * @param {number} pFile @@ -676,19 +719,20 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { switch (file.writeHint) { case 'reserved': - // This transaction will be write-ahead. We only need - // writeLock, not readLock. - await file.writeLock.acquire('exclusive', file.timeout); - await file.writeAhead.isolateForWrite(); - break; case 'exclusive': - // This transaction will write directly to the database, - // i.e. not using write-ahead. Get exclusive access. - await file.readLock.acquire('exclusive', file.timeout); - await file.writeLock.acquire('exclusive'); + if (file.useWriteAhead) { + // Write-ahead transactions only need writeLock, not readLock. + await file.writeLock.acquire('exclusive', file.timeout); + await file.writeAhead.isolateForWrite(); + } else { + // This transaction will write directly to the database, + // i.e. not using write-ahead. Get exclusive access. + await file.readLock.acquire('exclusive', file.timeout); + await file.writeLock.acquire('exclusive'); - // Transfer everything in write-ahead to the OPFS file. - await file.writeAhead.flush(); + // Transfer everything in write-ahead to the OPFS file. + await file.writeAhead.flush(); + } break; default: // This transaction will only read. From ad5bb3f110316fc37eecc0f1e6ff89fddcefff3a Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 20 Dec 2025 22:45:29 +0000 Subject: [PATCH 039/104] Fix WriteAhead.close() race condition. --- src/examples/WriteAhead.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index d2978843..9cdc95cd 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -105,7 +105,8 @@ export class WriteAhead { return this.#ready; } - close() { + async close() { + await this.#ready; this.#txLock?.release(); this.#broadcastChannel.onmessage = null; this.#broadcastChannel.close(); @@ -229,7 +230,7 @@ export class WriteAhead { this.#advanceTxId(); // Persist the transaction to storage, then send to other connections. - this.#repoStore(tx).then(() => { + this.#ready = this.#repoStore(tx).then(() => { this.#broadcastChannel.postMessage({ type: 'tx', tx }); }, e => { // TODO: handle error @@ -293,11 +294,10 @@ export class WriteAhead { /** * Move pages from write-ahead to main database file. * @param {number} [ckptId] + * @param {LockOptions} [lockOptions] */ - async #checkpoint(ckptId) { + async #checkpoint(ckptId, lockOptions = { ifAvailable: true }) { // Allow only one connection to checkpoint at a time. - /** @type {LockOptions} */ - const lockOptions = { mode: 'exclusive', ifAvailable: true }; await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async () => { // If the txId checkpoint is not specified, find the lowest txId // in use by any connection. From 281e742c735eb4e793c0e77ed67d196d7ad6fc65 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 20 Dec 2025 23:32:01 +0000 Subject: [PATCH 040/104] Fix checkpoint locking. --- src/examples/WriteAhead.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 9cdc95cd..401dc5f6 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -297,8 +297,14 @@ export class WriteAhead { * @param {LockOptions} [lockOptions] */ async #checkpoint(ckptId, lockOptions = { ifAvailable: true }) { - // Allow only one connection to checkpoint at a time. - await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async () => { + // Allow only one connection to checkpoint at a time. The default + // lockOptions argument will skip everything if another connection + // is already checkpointing. This is suitable for heartbeat-initiated + // checkpoints. For a checkpoint initiated by flush(), we should + // block until we can checkpoint ourselves. + await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async lock => { + if (!lock) return; + // If the txId checkpoint is not specified, find the lowest txId // in use by any connection. if (ckptId === undefined) { From 720e92d8d6c76b84874ea71031a5bd9151305bf4 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 20 Dec 2025 23:54:06 +0000 Subject: [PATCH 041/104] Work around spurious IDE type warning. --- src/examples/Lock.js | 2 +- src/examples/WriteAhead.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/examples/Lock.js b/src/examples/Lock.js index b3b62fa7..93965874 100644 --- a/src/examples/Lock.js +++ b/src/examples/Lock.js @@ -33,7 +33,7 @@ export class Lock { let timeoutId; if (timeout > 0) { const abortController = new AbortController(); - timeoutId = setTimeout(() => { + timeoutId = self.setTimeout(() => { abortController.abort(); }, timeout); options.signal = abortController.signal; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 401dc5f6..945f56c0 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -420,7 +420,7 @@ export class WriteAhead { // a broadcast for. This could be due to a crash in another context // or simply unlucky timing. In case of bad timing, use a brief // delay to allow any pending broadcasts to arrive. - setTimeout(async () => { + self.setTimeout(async () => { // Repeat the check. if (this.#txId < nextLocalTxId && !this.#mapIdToTx.has(nextLocalTxId)) { // Still missing the next transaction, so load it from the @@ -441,7 +441,7 @@ export class WriteAhead { // Schedule next heartbeat. Add a bit of jitter to decorrelate // heartbeats across multiple connections. const delay = this.options.heartbeatInterval * (0.9 + 0.2 * Math.random()); - this.#heartbeatTimer = setTimeout(() => { + this.#heartbeatTimer = self.setTimeout(() => { this.#heartbeat(); }, delay); } From c92d2bd7ea3fadc5df74c3a5903204900a4c9077 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 21 Dec 2025 16:47:46 +0000 Subject: [PATCH 042/104] Add configurable error handler. --- src/examples/OPFSWriteAheadVFS.js | 9 ++++- src/examples/WriteAhead.js | 64 ++++++++++++++++++++----------- 2 files changed, 49 insertions(+), 24 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 8e4e2d4f..47d66a39 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -5,6 +5,7 @@ import { LazyLock } from "./LazyLock.js"; import { WriteAhead } from "./WriteAhead.js"; const LIBRARY_FILES_ROOT = '.wa-sqlite'; +const DEFAULT_TEMP_FILES = 6; const finalizationRegistry = new FinalizationRegistry(f => f()); @@ -32,6 +33,10 @@ const finalizationRegistry = new FinalizationRegistry(f => f()); /** * @typedef OPFSWriteAheadOptions * @property {number} [nTmpFiles] + * @property {number} [autoCheckpointPages] + * @property {number} [heartbeatInterval] + * @property {number} [heartbeatActionDelay] + * @property {(error: Error) => void} [asyncErrorHandler] */ export class OPFSWriteAheadVFS extends FacadeVFS { @@ -44,7 +49,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { /** @type {Map} */ boundTempFiles = new Map(); /** @type {Set} */ unboundTempFiles = new Set(); /** @type {OPFSWriteAheadOptions} */ options = { - nTmpFiles: 4 + nTmpFiles: DEFAULT_TEMP_FILES }; _ready; @@ -808,7 +813,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { (offset, data) => accessHandle.write(data, { at: offset }), (newSize) => accessHandle.truncate(newSize), () => accessHandle.flush(), - { create: created }); + Object.assign({ create: created }, this.options)); await writeAhead.ready(); file.retryResult = { accessHandle, journalHandle, writeAhead }; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 945f56c0..6dec2d5e 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -14,17 +14,20 @@ const DEFAULT_HEARTBEAT_ACTION_DELAY = 50; /** * @typedef WriteAheadOptions * @property {boolean} [create=false] true if database is being created + * @property {number} [autoCheckpointPages] * @property {number} [heartbeatInterval] * @property {number} [heartbeatActionDelay] + * @property {(error: Error) => void} [asyncErrorHandler] */ export class WriteAhead { log = null; - options = { + /** @type {WriteAheadOptions} */ options = { create: false, autoCheckpointPages: DEFAULT_AUTOCHECKPOINT_PAGES, heartbeatInterval: DEFAULT_HEARTBEAT_INTERVAL, - heartbeatActionDelay: DEFAULT_HEARTBEAT_ACTION_DELAY + heartbeatActionDelay: DEFAULT_HEARTBEAT_ACTION_DELAY, + asyncErrorHandler: (error) => { console.error(error); } }; #zName; @@ -32,7 +35,7 @@ export class WriteAhead { #truncateFn; #syncFn; - #ready; + /** @type {Promise} */ #ready; /** @type {'read'|'write'} */ #state = null #txId = 0; @@ -106,11 +109,14 @@ export class WriteAhead { } async close() { + // Stop asynchronous maintenance. + this.#broadcastChannel.onmessage = null; + clearTimeout(this.#heartbeatTimer); + + // Wait for any pending commit to complete. await this.#ready; this.#txLock?.release(); - this.#broadcastChannel.onmessage = null; this.#broadcastChannel.close(); - clearTimeout(this.#heartbeatTimer); } /** @@ -140,6 +146,12 @@ export class WriteAhead { clearTimeout(this.#heartbeatTimer); this.#heartbeatTimer = null; + // Wait for our previous write transaction to complete. Any asynchronous + // error with that transaction will be ignored. Configure an + // asyncErrorHandler to receive those errors. + await this.#ready.catch(() => {}); + this.#ready = Promise.resolve(); + // Ensure that we have all previous transactions. const { txList, emptyId } = await this.#repoLoad(this.#txId); if (txList.length > 0) { @@ -159,7 +171,6 @@ export class WriteAhead { } this.#state = null; - this.#txOverlay = new Map(); this.#advanceTxId(); } @@ -170,9 +181,12 @@ export class WriteAhead { read(offset) { if (this.#state === null) return null; - // Look for the page in any write transaction in progress. - // Otherwise look in the write-ahead overlay. - return this.#txOverlay?.get(offset) ?? this.#waOverlay.get(offset) ?? null; + // First look for the page in any write transaction in progress. + // Note that txOverlay may contain data even if not in write state, + // because a previous transaction is not final until a successful + // store to the write-ahead repo. If the page is not found in the + // transaction overlay, look in the write-ahead overlay. + return this.#txOverlay.get(offset) ?? this.#waOverlay.get(offset) ?? null; } /** @@ -224,18 +238,21 @@ export class WriteAhead { fileSize }; - // Incorporate the transaction into the local view. - this.#mapIdToTx.set(tx.id, tx); - this.#txOverlay = new Map(); - this.#advanceTxId(); + // Persist the transaction to storage, then notify. + const complete = this.#repoStore(tx).then(() => { + // Incorporate the transaction into the local view. + const payload = { type: 'tx', tx }; + this.#handleMessage(new MessageEvent('message', { data: payload })); + this.#txOverlay = new Map(); - // Persist the transaction to storage, then send to other connections. - this.#ready = this.#repoStore(tx).then(() => { - this.#broadcastChannel.postMessage({ type: 'tx', tx }); + // Send the transaction to other connections. + this.#broadcastChannel.postMessage(payload); }, e => { - // TODO: handle error - console.error('IndexedDB write failed', e); + this.#txOverlay = new Map(); + this.options.asyncErrorHandler(e); }); + + this.#ready = Promise.all([this.#ready, complete]); } rollback() { @@ -601,13 +618,16 @@ function idbWrap(request) { request.oncomplete = () => { resolve(); }; + request.onabort = () => { + reject(request.error ?? new Error('transaction aborted')); + }; } else { request.onsuccess = () => { resolve(request.result); }; + request.onerror = () => { + reject(request.error); + }; } - request.onerror = () => { - reject(request.error); - }; }); -} \ No newline at end of file +} From 7e080840e97635873cc953e3c4228bd9309f0d97 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 21 Dec 2025 18:23:19 +0000 Subject: [PATCH 043/104] Fix VACUUM. --- src/examples/OPFSWriteAheadVFS.js | 7 +++++++ src/examples/WriteAhead.js | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 47d66a39..afd92b93 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -452,6 +452,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (file.lockState === VFS.SQLITE_LOCK_NONE && lockType === VFS.SQLITE_LOCK_SHARED) { // We do all our locking work in this transition. if (file.retryResult === null) { + if (file.lockingMode === 'exclusive') { + file.writeHint = 'exclusive'; + } + if (file.writeHint || file.readLock.mode !== 'shared') { // Asynchronous lock acquisition is needed. Set retryResult to // non-null so when SQLite calls jUnlock() it knows not to reset @@ -603,6 +607,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // This is a custom pragma to enable or disable write-ahead. // By default, write-ahead is enabled. if (value !== null) { + if (file.lockState !== VFS.SQLITE_LOCK_NONE) { + throw new Error('cannot change write_ahead mode while database is locked'); + } file.useWriteAhead = parseInt(value) !== 0; } else { const s = (file.useWriteAhead ? '1' : '0'); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 6dec2d5e..3a9d524f 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -279,7 +279,7 @@ export class WriteAhead { this.#heartbeatTimer = null; // Perform a full checkpoint. Write-ahead will be empty afterwards. - await this.#checkpoint(this.#txId); + await this.#checkpoint(this.#txId, { ifAvailable: false }); } finally { this.#state = null; this.#heartbeat(); From bc9efca999cba781bfd31abe7ec07fe7452607ae Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 21 Dec 2025 21:31:33 +0000 Subject: [PATCH 044/104] Mostly comments. --- src/examples/OPFSWriteAheadVFS.js | 25 +++++++++++++++++++++---- src/examples/WriteAhead.js | 30 +++++++++++++++++------------- 2 files changed, 38 insertions(+), 17 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index afd92b93..b5827543 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -453,6 +453,11 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // We do all our locking work in this transition. if (file.retryResult === null) { if (file.lockingMode === 'exclusive') { + // SQLite exclusive locking mode really means that no unlocking + // is done, not that the locking state is immediately EXCLUSIVE. + // This is a problem if the first transaction after setting + // exclusive locking mode does not come with a write hint, so + // we force the write hint here. file.writeHint = 'exclusive'; } @@ -472,8 +477,14 @@ export class OPFSWriteAheadVFS extends FacadeVFS { throw file.retryResult; } + // We have acquired the needed locks, either synchronously or + // via retry. file.retryResult = null; if (file.writeHint === null) { + // Ensure that our read-only view of the database does not change + // while in the SHARED lock state. The corresponding method + // isolateForWrite() is not called in this method, but instead + // in retryLock() because it is asynchronous. file.writeAhead.isolateForRead(); } } else if (lockType >= VFS.SQLITE_LOCK_RESERVED && !file.writeLock.mode) { @@ -529,6 +540,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {number} */ jCheckReservedLock(pFile, pResOut) { + // This function is only called in the SHARED lock state, and when + // a potentially hot journal file exists. Such a journal can only + // be created without using write-ahead, and such a connection + // cannot co-exist with this connection in SHARED. pResOut.setInt32(0, 0, true); return VFS.SQLITE_OK; } @@ -556,9 +571,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // EXCLUSIVE if value is '2'. switch (value) { case '1': - if (file.writeHint !== 'exclusive') { - file.writeHint = 'reserved'; - } + file.writeHint = 'reserved'; break; case '2': file.writeHint = 'exclusive'; @@ -621,6 +634,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } break; + // Support SQLite batch atomic write transactions. case VFS.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: case VFS.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { @@ -633,6 +647,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_OK; } break; + case VFS.SQLITE_FCNTL_SYNC: if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { if (file.useWriteAhead) { @@ -686,6 +701,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (this.unboundTempFiles.size === 0) { throw new Error('no temporary files available'); } + + // Bind an access handle from the temporary pool. const accessHandle = this.unboundTempFiles.values().next().value; this.unboundTempFiles.delete(accessHandle); this.boundTempFiles.set(zName, accessHandle); @@ -815,7 +832,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { }); // Create the write-ahead manager. - const writeAhead= new WriteAhead( + const writeAhead = new WriteAhead( zName, (offset, data) => accessHandle.write(data, { at: offset }), (newSize) => accessHandle.truncate(newSize), diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 3a9d524f..d3a43ae4 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -146,11 +146,9 @@ export class WriteAhead { clearTimeout(this.#heartbeatTimer); this.#heartbeatTimer = null; - // Wait for our previous write transaction to complete. Any asynchronous - // error with that transaction will be ignored. Configure an - // asyncErrorHandler to receive those errors. - await this.#ready.catch(() => {}); - this.#ready = Promise.resolve(); + // Wait for our previous write transaction to complete. Note that + // any error will be caught and passed to asyncErrorHandler. + await this.#ready; // Ensure that we have all previous transactions. const { txList, emptyId } = await this.#repoLoad(this.#txId); @@ -168,10 +166,11 @@ export class WriteAhead { if (this.#state === 'write') { // Resume heartbeat after write isolation. this.#heartbeat(); + } else { + // Catch up on new transactions that arrived while isolated. + this.#advanceTxId(); } - this.#state = null; - this.#advanceTxId(); } /** @@ -179,8 +178,6 @@ export class WriteAhead { * @return {Uint8Array?} */ read(offset) { - if (this.#state === null) return null; - // First look for the page in any write transaction in progress. // Note that txOverlay may contain data even if not in write state, // because a previous transaction is not final until a successful @@ -240,7 +237,9 @@ export class WriteAhead { // Persist the transaction to storage, then notify. const complete = this.#repoStore(tx).then(() => { - // Incorporate the transaction into the local view. + // Incorporate the transaction into the local view. Note that this + // is not done synchronously so reads from the next transaction + // may be done using #txOverlay with the view not yet advanced. const payload = { type: 'tx', tx }; this.#handleMessage(new MessageEvent('message', { data: payload })); this.#txOverlay = new Map(); @@ -274,7 +273,7 @@ export class WriteAhead { await this.isolateForWrite(); this.rejoin(); - // Disable heartbeat. + // Disable heartbeat as a minor optimization. clearTimeout(this.#heartbeatTimer); this.#heartbeatTimer = null; @@ -292,6 +291,9 @@ export class WriteAhead { #advanceTxId() { const oldTxId = this.#txId; + // Look up the next transaction one at a time. This will stop if there + // are any missing transactions, which will be filled in later either + // for write isolation or by the heartbeat. let tx; while (tx = this.#mapIdToTx.get(this.#txId + 1)) { // Add transaction pages to the write-ahead overlay. @@ -299,6 +301,7 @@ export class WriteAhead { this.#waOverlay.set(offset, data); } this.#nWriteAheadPages += tx.pages.size; + this.#txId = tx.id; this.#txFileSize = tx.fileSize; } @@ -352,13 +355,14 @@ export class WriteAhead { } if (writtenOffsets.size > 0) { + // Ensure data is safely in the file. this.#syncFn(); // Notify other connections and ourselves of the checkpoint. this.#broadcastChannel.postMessage({ type: 'ckpt', ckptId }); this.#handleCheckpoint(ckptId); - // Remove checkpointed transactions from write-ahead. + // Remove checkpointed transactions from persistent storage. this.#repoDeleteUpTo(ckptId); } }); @@ -418,7 +422,7 @@ export class WriteAhead { } /** - * Periodic check for missing transactions. + * Periodic check for missing transactions and checkpointing. */ async #heartbeat() { try { From d4462164b0ceeb42fe2b9b1e33fbacb1c09d2df5 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 22 Dec 2025 16:45:38 +0000 Subject: [PATCH 045/104] Disable write-ahead in exclusive locking mode. --- src/examples/OPFSWriteAheadVFS.js | 16 +++++++++++--- src/examples/WriteAhead.js | 35 +++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index b5827543..fb535167 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -594,10 +594,21 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK; case 'locking_mode': + // The IndexedDB implementation of write-ahead must persist + // asynchronously, so the next write transaction must wait + // for that to complete successfully. With normal locking we + // can do that in retryLock(), but with exclusive locking + // retryLock() won't be called for the next transaction. We + // could perform a retry on the first write, but for now + // just disable write-ahead in exclusive locking mode. switch (value?.toLowerCase()) { case 'normal': + file.lockingMode = 'normal'; + file.useWriteAhead = true; + break; case 'exclusive': - file.lockingMode = value.toLowerCase(); + file.lockingMode = 'exclusive'; + file.useWriteAhead = false; break; } break; @@ -617,8 +628,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } break; case 'write_ahead': - // This is a custom pragma to enable or disable write-ahead. - // By default, write-ahead is enabled. + // For testing purposes only: enable or disable write-ahead mode. if (value !== null) { if (file.lockState !== VFS.SQLITE_LOCK_NONE) { throw new Error('cannot change write_ahead mode while database is locked'); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index d3a43ae4..67b99b8a 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -154,7 +154,12 @@ export class WriteAhead { const { txList, emptyId } = await this.#repoLoad(this.#txId); if (txList.length > 0) { for (const tx of txList) { - this.#mapIdToTx.set(tx.id, tx); + // Don't overwrite any transactions we already have as that can + // produce subtle bugs when we need to know if a page belongs to + // a particular transaction. + if (!this.#mapIdToTx.has(tx.id)) { + this.#mapIdToTx.set(tx.id, tx); + } } this.#advanceTxId(); } else { @@ -237,11 +242,20 @@ export class WriteAhead { // Persist the transaction to storage, then notify. const complete = this.#repoStore(tx).then(() => { - // Incorporate the transaction into the local view. Note that this - // is not done synchronously so reads from the next transaction - // may be done using #txOverlay with the view not yet advanced. + // Incorporate the transaction into the local view. This is a tricky + // situation because we can't accept our own transaction until it + // is persistently stored asynchronously here, while in the meantime + // we may have moved on to another transaction. + // + // If the next transaction is a write transaction, isolateForWrite() + // will wait for this Promise to complete. If the next transaction + // is a read transaction, it may start before this Promise completes, + // so it will read from #txOverlay until then. const payload = { type: 'tx', tx }; this.#handleMessage(new MessageEvent('message', { data: payload })); + if (this.#state === 'read') { + this.#advanceTxId(); + } this.#txOverlay = new Map(); // Send the transaction to other connections. @@ -406,13 +420,16 @@ export class WriteAhead { */ #handleMessage(event) { if (event.data.type === 'tx') { - // New transaction from another connection. + // New transaction from another connection. Don't use it if we + // already have it. /** @type {Transaction} */ const tx = event.data.tx; - this.#mapIdToTx.set(tx.id, tx); + if (!this.#mapIdToTx.has(tx.id)) { + this.#mapIdToTx.set(tx.id, tx); - if (this.#state === null) { - // Not in an isolated state, so advance our view of the database. - this.#advanceTxId(); + if (this.#state === null) { + // Not in an isolated state, so advance our view of the database. + this.#advanceTxId(); + } } } else if (event.data.type === 'ckpt') { // Checkpoint notification from another connection. From 079dee4b95f476bf3a4f198f7894b86c679147f1 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 23 Dec 2025 00:37:10 +0000 Subject: [PATCH 046/104] Move isolateForWrite() sync with commit as late as possible. --- src/examples/WriteAhead.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 67b99b8a..560b41db 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -146,10 +146,6 @@ export class WriteAhead { clearTimeout(this.#heartbeatTimer); this.#heartbeatTimer = null; - // Wait for our previous write transaction to complete. Note that - // any error will be caught and passed to asyncErrorHandler. - await this.#ready; - // Ensure that we have all previous transactions. const { txList, emptyId } = await this.#repoLoad(this.#txId); if (txList.length > 0) { @@ -165,6 +161,12 @@ export class WriteAhead { } else { this.#txId = emptyId; } + + // Wait for our previous write transaction to complete. The required + // synchronization is for #txOverlay to be reset *before* a write() + // is called to populate it. Not certain whether this is necessary, + // even with worst case scheduling, but the cost is minor if not. + await this.#ready; } rejoin() { From 69100c89aa7d7a8d7e2d026b9ffb996a37639d54 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 23 Dec 2025 01:08:24 +0000 Subject: [PATCH 047/104] Restore database size on batch atomic rollback. --- src/examples/WriteAhead.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 560b41db..75fac837 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -220,13 +220,12 @@ export class WriteAhead { } commit() { - if (this.#txOverlay.size === 0) return; - // Get the file size from the page 1 header. const page1 = this.#txOverlay.get(0); if (!page1) { - // The change counter on page 1 must be updated on every transaction. - // If page 1 is not here then this must be a non-batch-atomic rollback + // The change counter on page 1 must be updated on every transaction + // (not with SQLite WAL mode, but that doesn't apply here). If + // page 1 is not here then this must be a non-batch-atomic rollback // before page 1 was modified, and we can discard the transaction. this.#txOverlay.clear(); return; @@ -273,6 +272,16 @@ export class WriteAhead { rollback() { // Discard transaction pages. this.#txOverlay.clear(); + + // Restore original file size. + const page1 = this.#waOverlay.get(0); + if (page1) { + const dataView = new DataView(page1.buffer, page1.byteOffset, 100); + const pageCount = dataView.getUint32(28); + this.#txFileSize = page1.byteLength * pageCount; + } else { + this.#txFileSize = 0; + } } /** @@ -295,6 +304,7 @@ export class WriteAhead { // Perform a full checkpoint. Write-ahead will be empty afterwards. await this.#checkpoint(this.#txId, { ifAvailable: false }); + console.assert(this.#waOverlay.size === 0, 'write-ahead not empty after flush'); } finally { this.#state = null; this.#heartbeat(); From ae31c0c669ae0aa4fc9e9f639bb0b6f3c08051c9 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 23 Dec 2025 01:26:30 +0000 Subject: [PATCH 048/104] Fix exit from exclusive locking mode. --- src/examples/OPFSWriteAheadVFS.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index fb535167..55a2f6d8 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -459,6 +459,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // exclusive locking mode does not come with a write hint, so // we force the write hint here. file.writeHint = 'exclusive'; + file.useWriteAhead = false; } if (file.writeHint || file.readLock.mode !== 'shared') { @@ -515,6 +516,11 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // progress. In that case, don't change any locks. if (!file.retryResult && lockType === VFS.SQLITE_LOCK_NONE) { // In this VFS, this is the only unlock transition that matters. + if (file.useWriteAhead) { + // Exit write-ahead isolation. + file.writeAhead.rejoin(); + } + file.writeLock.release(); if (file.readLock.mode === 'exclusive') { // TODO: Consider lazy release here as well. @@ -524,7 +530,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } file.writeHint = null; - file.writeAhead.rejoin(); + if (file.lockingMode === 'normal') { + file.useWriteAhead = true; + } } file.lockState = lockType; } catch (e) { @@ -594,21 +602,14 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK; case 'locking_mode': - // The IndexedDB implementation of write-ahead must persist - // asynchronously, so the next write transaction must wait - // for that to complete successfully. With normal locking we - // can do that in retryLock(), but with exclusive locking - // retryLock() won't be called for the next transaction. We - // could perform a retry on the first write, but for now - // just disable write-ahead in exclusive locking mode. + // Track SQLite locking mode. We will use write-ahead only in + // normal locking mode. switch (value?.toLowerCase()) { case 'normal': file.lockingMode = 'normal'; - file.useWriteAhead = true; break; case 'exclusive': file.lockingMode = 'exclusive'; - file.useWriteAhead = false; break; } break; From f3c0bf8b0475581f9d194e87c5f4bb1c1e30adf6 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 25 Dec 2025 16:26:04 +0000 Subject: [PATCH 049/104] Avoid unnecessary syncing of temporary files. --- src/examples/OPFSWriteAheadVFS.js | 14 +++++++++++--- src/examples/WriteAhead.js | 11 ++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 55a2f6d8..0f55cf9c 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -404,11 +404,19 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { if (file.useWriteAhead) { - // Write-ahead sync is handled on SQLITE_FCNTL_SYNC. - return VFS.SQLITE_OK; + // TODO: Track PRAGMA synchronous setting. + file.writeAhead.sync('normal'); + } else { + file.accessHandle.flush(); } + } else if (!this.boundTempFiles.has(file.zName)) { + // Persistent journal file requires sync. + file.accessHandle.flush(); + } else { + // This is a temporary file so sync is not needed. + // Temporary journals are only used for rollback by the + // connection that created them, not for recovery. } - file.accessHandle.flush(); return VFS.SQLITE_OK; } catch (e) { console.error(e.stack); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 75fac837..0fe147e2 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -285,7 +285,16 @@ export class WriteAhead { } /** - * Flush the write-ahead transactions to the main database file. + * @param {'normal'|'full'} mode + */ + sync(mode) { + // IndexedDB can only guarantee durability asynchronously, so this + // does nothing. If persistence is changed to OPFS then there can + // be durability options. + } + + /** + * Flush all write-ahead transactions to the main database file. * There must be no other connections reading or writing. */ async flush() { From b752ab5e6ab3c284e39f486741e297a2fa36a2df Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 29 Dec 2025 22:49:00 +0000 Subject: [PATCH 050/104] IDE syntax checking fixes for tsgo. --- src/examples/OPFSWriteAheadVFS.js | 4 +++- src/examples/WriteAhead.js | 11 ++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 0f55cf9c..fda751dd 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -7,7 +7,7 @@ import { WriteAhead } from "./WriteAhead.js"; const LIBRARY_FILES_ROOT = '.wa-sqlite'; const DEFAULT_TEMP_FILES = 6; -const finalizationRegistry = new FinalizationRegistry(f => f()); +const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ f) => f()); /** * @typedef FileEntry @@ -90,8 +90,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const dirName = `.session-${Math.random().toString(16).slice(2)}`; await new Promise(resolve => { navigator.locks.request(dirName, () => { + // @ts-ignore resolve(); return new Promise(release => { + // @ts-ignore finalizationRegistry.register(this, release); }); }); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 0fe147e2..f14bcc1d 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -525,7 +525,7 @@ export class WriteAhead { store.put({ id: 1 }, 1); }; - this.#idbDb = await idbWrap(idbRequest); + this.#idbDb = /** @type {IDBDatabase} */ (await idbWrap(idbRequest)); } /** @@ -569,7 +569,7 @@ export class WriteAhead { }; }); idbTx.commit(); - return marker - 1; + return /** @type {number} */ (marker) - 1; } /** @@ -583,7 +583,7 @@ export class WriteAhead { // Get all transactions with id > txId. const request = idbTxStore.getAll(IDBKeyRange.lowerBound(txId, true)); - /** @type {Transaction[]} */ const txList = await idbWrap(request); + const txList = /** @type {Transaction[]} */ (await idbWrap(request)); idbTx.commit(); // The last object in the store is the end marker, which contains @@ -651,8 +651,9 @@ export class WriteAhead { /** * Convert IndexedDB callbacks to Promises. - * @param {IDBRequest|IDBTransaction} request - * @returns + * @template T + * @param {IDBRequest|IDBTransaction} request + * @returns {Promise} */ function idbWrap(request) { return new Promise((resolve, reject) => { From 40ed98213c90444253951b289efa0ba0e86e6c79 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 22 Feb 2026 15:09:57 -0800 Subject: [PATCH 051/104] Replace write-ahead IndexedDB persistence with OPFS. --- src/examples/Lock.js | 6 +- src/examples/OPFSWriteAheadVFS.js | 109 ++- src/examples/WriteAhead.js | 1103 ++++++++++++++++++----------- src/sqlite-api.js | 13 +- 4 files changed, 820 insertions(+), 411 deletions(-) diff --git a/src/examples/Lock.js b/src/examples/Lock.js index 93965874..538755e5 100644 --- a/src/examples/Lock.js +++ b/src/examples/Lock.js @@ -21,7 +21,7 @@ export class Lock { /** * @param {'shared'|'exclusive'} mode * @param {number} timeout -1 for infinite, 0 for poll, >0 for milliseconds - * @return {Promise} true if lock acquired, false on timeout + * @return {Promise} true if lock acquired, false on failed poll */ async acquire(mode, timeout = -1) { if (this.#releaser) { @@ -54,10 +54,6 @@ export class Lock { resolve(true); }) }).catch(e => { - if (e.name === 'AbortError') { - // Timeout expired while waiting for the lock. - return resolve(false); - } return reject(e); }); }); diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index fda751dd..28edb321 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -17,6 +17,7 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * Main database file properties: * @property {*} [retryResult] + * @property {FileSystemSyncAccessHandle} [waHandle] * @property {FileSystemSyncAccessHandle} [journalHandle] * * @property {boolean} [useWriteAhead] @@ -36,7 +37,6 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * @property {number} [autoCheckpointPages] * @property {number} [heartbeatInterval] * @property {number} [heartbeatActionDelay] - * @property {(error: Error) => void} [asyncErrorHandler] */ export class OPFSWriteAheadVFS extends FacadeVFS { @@ -150,6 +150,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Initialize database file state. file.accessHandle = file.retryResult.accessHandle; file.journalHandle = file.retryResult.journalHandle; + file.waHandle = file.retryResult.waHandle; file.writeAhead = file.retryResult.writeAhead; file.retryResult = null; @@ -274,6 +275,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (file?.flags & VFS.SQLITE_OPEN_MAIN_DB) { file.writeAhead.close(); file.accessHandle.close(); + file.waHandle.close(); this.mapPathToFile.delete(file?.zName); file.journalHandle.close(); @@ -507,6 +509,11 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.lockState = lockType; return VFS.SQLITE_OK; } catch (e) { + if (e.name === 'AbortError') { + // Timeout expired while waiting for the lock. + return VFS.SQLITE_BUSY; + } + console.error(e.stack); this.lastError = e; return VFS.SQLITE_IOERR_LOCK; @@ -638,6 +645,35 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } } break; + case 'wal_checkpoint': + const checkpointMode = (value ?? 'passive').toLowerCase(); + switch (checkpointMode) { + case 'passive': + case 'full': + case 'restart': + case 'truncate': + if (file.lockState !== VFS.SQLITE_LOCK_NONE) { + throw new Error('invalid while database is locked'); + } + + this._module.pendingOps.push(this.#pendingCheckpoint(file, checkpointMode)); + break; + case 'noop': + break; + default: + throw new Error(`unexpected wal_checkpoint mode: ${value}`); + } + + // Return the approximate size of the write-ahead data (which + // may be smaller than the actual file size). SQLite returns + // different information, but that is not feasible from a VFS. + { + const s = file.writeAhead.getWriteAheadSize().toString(); + const ptr = this._module._sqlite3_malloc64(s.length + 1); + this._module.stringToUTF8(s, ptr, s.length + 1); + pArg.setUint32(0, ptr, true); + } + return VFS.SQLITE_OK; case 'write_ahead': // For testing purposes only: enable or disable write-ahead mode. if (value !== null) { @@ -750,6 +786,11 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return `${dbName}-journal`; } + #getWriteAheadNameFromDbName(dbName) { + // Our WAL file is not compatible with SQLite WAL, so use a distinct name. + return `${dbName}-waf`; + } + /** * @param {string} journalName * @returns {FileEntry} @@ -759,6 +800,30 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return this.mapPathToFile.get(dbFilename); } + /** + * Asynchronous PRAGMA operation to checkpoint the write-ahead log. + * @param {FileEntry} file + * @param {'passive'|'full'|'restart'|'truncate'} mode + */ + async #pendingCheckpoint(file, mode) { + try { + if (mode !== 'passive') { + await file.readLock.acquire('exclusive', file.timeout); + await file.writeLock.acquire('exclusive'); + } + + await file.writeAhead.checkpoint(mode); + } catch (e) { + if (e.name === 'AbortError') { + e.code = VFS.SQLITE_BUSY; + } + throw e; + } finally { + file.readLock.release(); + file.writeLock.release(); + } + } + /** * Handle asynchronous jLock() tasks. * @param {number} pFile @@ -773,7 +838,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (file.useWriteAhead) { // Write-ahead transactions only need writeLock, not readLock. await file.writeLock.acquire('exclusive', file.timeout); - await file.writeAhead.isolateForWrite(); + file.writeAhead.isolateForWrite(); } else { // This transaction will write directly to the database, // i.e. not using write-ahead. Get exclusive access. @@ -781,7 +846,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { await file.writeLock.acquire('exclusive'); // Transfer everything in write-ahead to the OPFS file. - await file.writeAhead.flush(); + await file.writeAhead.checkpoint('restart'); } break; default: @@ -805,6 +870,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {Promise} */ async #retryOpen(zName, flags, fileId, pOutFlags) { + /** @type {(() => void)[]} */ const onError = []; const file = this.mapPathToFile.get(zName); try { await navigator.locks.request(`${zName}#open`, async lock => { @@ -843,6 +909,12 @@ export class OPFSWriteAheadVFS extends FacadeVFS { throw e; } } + onError.push(() => { + accessHandle.close(); + if (created) { + dirHandle.removeEntry(dbName); + } + }); // Pre-open the journal OPFS file here. const journalName = this.#getJournalNameFromDbName(dbName); @@ -851,21 +923,42 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const journalHandle = await fileHandle.createSyncAccessHandle({ mode: 'readwrite-unsafe' }); + onError.push(() => { + journalHandle.close(); + if (created) { + dirHandle.removeEntry(journalName); + } + }); + // Open the WAL file. + const waName = this.#getWriteAheadNameFromDbName(dbName); + const waFileHandle = await dirHandle.getFileHandle(waName, { create: true }); + // @ts-ignore + const waHandle = await waFileHandle.createSyncAccessHandle({ + mode: 'readwrite-unsafe' + }); + onError.push(() => { + waHandle.close(); + if (created) { + dirHandle.removeEntry(waName); + } + }); + // Create the write-ahead manager. const writeAhead = new WriteAhead( zName, - (offset, data) => accessHandle.write(data, { at: offset }), - (newSize) => accessHandle.truncate(newSize), - () => accessHandle.flush(), + accessHandle, + waHandle, Object.assign({ create: created }, this.options)); await writeAhead.ready(); - file.retryResult = { accessHandle, journalHandle, writeAhead }; + file.retryResult = { accessHandle, waHandle, journalHandle, writeAhead }; }); } catch (e) { + while (onError.length) { + onError.pop()(); + } file.retryResult = e; - return; } } } diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index f14bcc1d..2b689e68 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -1,23 +1,33 @@ import { Lock } from './Lock.js'; -const DEFAULT_AUTOCHECKPOINT_PAGES = 1000; -const DEFAULT_HEARTBEAT_INTERVAL = 3000; -const DEFAULT_HEARTBEAT_ACTION_DELAY = 50; +const DEFAULT_AUTOCHECKPOINT_PAGES = 1_000; +const DEFAULT_BACKSTOP_INTERVAL = 30_000; + +const SECTOR_SIZE = 4096; +const WAL_FILE_HEADER_SIZE = 32; +const WAL_FRAME_BASE = SECTOR_SIZE + WAL_FILE_HEADER_SIZE; // first frame starts at this offset + +/** + * @typedef PageEntry + * @property {number} waOffset location in WAL file + * @property {number} pageSize + * @property {Uint8Array} [pageData] + */ /** * @typedef Transaction * @property {number} id - * @property {Map} pages address to page data mapping - * @property {number} fileSize + * @property {Map} pages address to page data mapping + * @property {number} dbFileSize + * @property {number} dbPageSize + * @property {number} waOffsetEnd */ /** * @typedef WriteAheadOptions * @property {boolean} [create=false] true if database is being created * @property {number} [autoCheckpointPages] - * @property {number} [heartbeatInterval] - * @property {number} [heartbeatActionDelay] - * @property {(error: Error) => void} [asyncErrorHandler] + * @property {number} [backstopInterval] */ export class WriteAhead { @@ -25,79 +35,68 @@ export class WriteAhead { /** @type {WriteAheadOptions} */ options = { create: false, autoCheckpointPages: DEFAULT_AUTOCHECKPOINT_PAGES, - heartbeatInterval: DEFAULT_HEARTBEAT_INTERVAL, - heartbeatActionDelay: DEFAULT_HEARTBEAT_ACTION_DELAY, - asyncErrorHandler: (error) => { console.error(error); } + backstopInterval: DEFAULT_BACKSTOP_INTERVAL, }; #zName; - #writeFn; - #truncateFn; - #syncFn; + #dbHandle; + #waFile; - /** @type {Promise} */ #ready; - /** @type {'read'|'write'} */ #state = null + #dbFileSize = 0; - #txId = 0; - /** @type {Lock} */ #txLock = null; - #txFileSize = 0; + /** @type {Promise} */ #ready; + /** @type {'read'|'write'} */ #isolationState = null - /** @type {Map} */ #waOverlay = new Map(); - /** @type {Map} */ #txOverlay = new Map(); + /** @type {Lock} */ #txIdLock = null; + /** @type {Transaction} */ #txActive = null; + + /** @type {Map} */ #waOverlay = new Map(); /** @type {Map} */ #mapIdToTx = new Map(); - #nWriteAheadPages = 0; + /** @type {Map} */ #pendingTx = new Map(); #broadcastChannel; - /** @type {number} */ #heartbeatTimer; - - /** @type {IDBDatabase} */ #idbDb; + /** @type {number} */ #backstopTimer; /** * @param {string} zName - * @param {(offset: number, data: Uint8Array) => void} writeFn - * @param {(newSize: number) => void} truncateFn - * @param {() => void} syncFn + * @param {FileSystemSyncAccessHandle} dbHandle + * @param {FileSystemSyncAccessHandle} waHandle * @param {WriteAheadOptions} options */ - constructor(zName, writeFn, truncateFn, syncFn, options) { + constructor(zName, dbHandle, waHandle, options) { this.#zName = zName; - this.#writeFn = writeFn; - this.#truncateFn = truncateFn; - this.#syncFn = syncFn; + this.#dbHandle = dbHandle; + this.#waFile = new WriteAheadFile(waHandle); this.options = Object.assign(this.options, options); // All the asynchronous initialization is done here. this.#ready = (async () => { // Disable checkpointing by other connections until we're ready. - await this.#updateTxLock(0); - - // Load all the write-ahead transactions from storage. - await this.#repoInit(zName); - const { txList, emptyId } = await this.#repoLoad(0); - if (txList.length > 0) { - for (const tx of txList) { - this.#mapIdToTx.set(tx.id, tx); - } + await navigator.locks.request(`${this.#zName}-ckpt`, async () => { + await this.#updateTxIdLock(); + }); - this.#txId = txList[0].id - 1; - this.#advanceTxId(); - } else { - this.#txId = emptyId; + // Load all the transactions from the WAL file. + if (this.options.create) { + this.#waFile.create(); } + this.#waFile.open(); + for (const tx of this.#waFile.readAllTx()) { + this.#activateTx(tx); + } + this.#updateTxIdLock(); // doesn't need await + // Listen for transactions and checkpoints from other connections. this.#broadcastChannel = new BroadcastChannel(`${zName}#wa`); this.#broadcastChannel.onmessage = (event) => { this.#handleMessage(event); }; - // Update our tx lock to reflect the current txId. - await this.#updateTxLock(this.#txId); - - // Schedule first heartbeat. The heartbeat is a guard against a crash - // in another context between persisting a transaction and broadcasting + // Schedule backstop. The backstop is a guard against a crash in + // another context between persisting a transaction and broadcasting // it. - this.#heartbeat(); + this.#backstop(); })(); } @@ -108,14 +107,13 @@ export class WriteAhead { return this.#ready; } - async close() { + close() { // Stop asynchronous maintenance. this.#broadcastChannel.onmessage = null; - clearTimeout(this.#heartbeatTimer); + clearTimeout(this.#backstopTimer); // Wait for any pending commit to complete. - await this.#ready; - this.#txLock?.release(); + this.#txIdLock?.release(); this.#broadcastChannel.close(); } @@ -126,58 +124,57 @@ export class WriteAhead { * to be synchronous). Unfreeze the view with rejoin(). */ isolateForRead() { - if (this.#state !== null) { + if (this.#isolationState !== null) { throw new Error('Already in isolated state'); } - this.#state = 'read'; + this.#isolationState = 'read'; + + if (this.#waFile.checkReset()) { + // The WAL file has been restarted after a full checkpoint. Our + // view must be at the final transaction before the checkpoint for + // that to have happened. The previous overlay is now stale. In + // case we haven't received the checkpoint broadcast, make sure + // the overlay is cleared. + this.#handleCheckpoint(this.#waFile.txId); + } } /** * Freeze our view of the database for writing. * The view includes all transactions. Unfreeze the view with rejoin(). */ - async isolateForWrite() { - if (this.#state !== null) { + isolateForWrite() { + if (this.#isolationState !== null) { throw new Error('Already in isolated state'); } - this.#state = 'write'; - - // Heartbeat is not needed while writing because we will be current. - clearTimeout(this.#heartbeatTimer); - this.#heartbeatTimer = null; - - // Ensure that we have all previous transactions. - const { txList, emptyId } = await this.#repoLoad(this.#txId); - if (txList.length > 0) { - for (const tx of txList) { - // Don't overwrite any transactions we already have as that can - // produce subtle bugs when we need to know if a page belongs to - // a particular transaction. - if (!this.#mapIdToTx.has(tx.id)) { - this.#mapIdToTx.set(tx.id, tx); - } - } - this.#advanceTxId(); - } else { - this.#txId = emptyId; + this.#isolationState = 'write'; + + // Backstop is not needed while writing because we will be current. + clearTimeout(this.#backstopTimer); + this.#backstopTimer = null; + + if (this.#waFile.checkReset()) { + // The WAL file has been restarted after a full checkpoint. Our + // view must be at the final transaction before the checkpoint for + // that to have happened. The previous overlay is now stale. In + // case we haven't received the checkpoint broadcast, make sure + // the overlay is cleared. + this.#handleCheckpoint(this.#waFile.txId); } - // Wait for our previous write transaction to complete. The required - // synchronization is for #txOverlay to be reset *before* a write() - // is called to populate it. Not certain whether this is necessary, - // even with worst case scheduling, but the cost is minor if not. - await this.#ready; + // A writer needs all previous transactions assimilated. + this.#advanceTxId({ readToCurrent: true }); } rejoin() { - if (this.#state === 'write') { - // Resume heartbeat after write isolation. - this.#heartbeat(); + if (this.#isolationState === 'write') { + // Resume backstop after write isolation. + this.#backstop(); } else { // Catch up on new transactions that arrived while isolated. this.#advanceTxId(); } - this.#state = null; + this.#isolationState = null; } /** @@ -186,11 +183,22 @@ export class WriteAhead { */ read(offset) { // First look for the page in any write transaction in progress. - // Note that txOverlay may contain data even if not in write state, - // because a previous transaction is not final until a successful - // store to the write-ahead repo. If the page is not found in the - // transaction overlay, look in the write-ahead overlay. - return this.#txOverlay.get(offset) ?? this.#waOverlay.get(offset) ?? null; + // If the page is not found in the transaction overlay, look in the + // write-ahead overlay. + const pageEntry = this.#txActive?.pages.get(offset) ?? this.#waOverlay.get(offset); + if (pageEntry) { + this.log?.(`%cread page at offset ${offset} from WAL ${pageEntry.waOffset}`, 'background-color: gold;'); + if (pageEntry.pageData) { + // Page data is cached. + return pageEntry.pageData; + } + + // Read the page from the WAL file. + const buffer = new Uint8Array(pageEntry.pageSize); + this.#waFile.accessHandle.read(buffer, { at: pageEntry.waOffset }); + return buffer; + } + return null; } /** @@ -198,207 +206,267 @@ export class WriteAhead { * @param {Uint8Array} data */ write(offset, data) { - if (this.#state !== 'write') { + if (this.#isolationState !== 'write') { throw new Error('Not in write isolated state'); } - // Save a copy of the data to avoid external mutation. - this.#txOverlay.set(offset, data.slice()); + if (!this.#txActive) { + // There is no active transaction so create one. + this.#txActive = this.#waFile.beginTx(); + } + const waOffset = this.#waFile.writePage(offset, data.slice()); + this.log?.(`%c#write page at ${offset} to WAL ${waOffset}`, 'background-color: lightskyblue;'); } /** * @param {number} newSize */ truncate(newSize) { - // Nothing needed. Size is tracked from page 1 header in commit(). + // Remove any pages past the truncation point. We don't need to save + // the file size because that will be extracted from page 1. + for (const offset of this.#txActive.pages.keys()) { + if (offset >= newSize) { + this.#txActive.pages.delete(offset); + } + } } getFileSize() { // If the overlay is empty, the last file size may no longer be valid // if direct changes were made to the main database file. - return this.#waOverlay.size ? this.#txFileSize : null; + return this.#waOverlay.size ? this.#dbFileSize : null; } commit() { - // Get the file size from the page 1 header. - const page1 = this.#txOverlay.get(0); - if (!page1) { - // The change counter on page 1 must be updated on every transaction - // (not with SQLite WAL mode, but that doesn't apply here). If - // page 1 is not here then this must be a non-batch-atomic rollback - // before page 1 was modified, and we can discard the transaction. - this.#txOverlay.clear(); - return; - } - const dataView = new DataView(page1.buffer, page1.byteOffset, 100); - const pageCount = dataView.getUint32(28); - const fileSize = page1.byteLength * pageCount; - - // Create a new transaction. - const tx = { - id: this.#txId + 1, - pages: this.#txOverlay, - fileSize - }; + // Persist the final pending transaction page with the database size. + this.#waFile.commitTx(); - // Persist the transaction to storage, then notify. - const complete = this.#repoStore(tx).then(() => { - // Incorporate the transaction into the local view. This is a tricky - // situation because we can't accept our own transaction until it - // is persistently stored asynchronously here, while in the meantime - // we may have moved on to another transaction. - // - // If the next transaction is a write transaction, isolateForWrite() - // will wait for this Promise to complete. If the next transaction - // is a read transaction, it may start before this Promise completes, - // so it will read from #txOverlay until then. - const payload = { type: 'tx', tx }; - this.#handleMessage(new MessageEvent('message', { data: payload })); - if (this.#state === 'read') { - this.#advanceTxId(); - } - this.#txOverlay = new Map(); + // Incorporate the transaction locally. + this.#activateTx(this.#txActive); + this.#updateTxIdLock(); - // Send the transaction to other connections. - this.#broadcastChannel.postMessage(payload); - }, e => { - this.#txOverlay = new Map(); - this.options.asyncErrorHandler(e); - }); + // Send the transaction to other connections. + const payload = { type: 'tx', tx: this.#txActive }; + this.#broadcastChannel.postMessage(payload); + this.#txActive = null; - this.#ready = Promise.all([this.#ready, complete]); } rollback() { // Discard transaction pages. - this.#txOverlay.clear(); - - // Restore original file size. - const page1 = this.#waOverlay.get(0); - if (page1) { - const dataView = new DataView(page1.buffer, page1.byteOffset, 100); - const pageCount = dataView.getUint32(28); - this.#txFileSize = page1.byteLength * pageCount; - } else { - this.#txFileSize = 0; - } + this.#waFile.abortTx(); + this.#txActive = null; } /** * @param {'normal'|'full'} mode */ sync(mode) { - // IndexedDB can only guarantee durability asynchronously, so this - // does nothing. If persistence is changed to OPFS then there can - // be durability options. + if (mode === 'full') { + this.#waFile.accessHandle.flush(); + } } /** * Flush all write-ahead transactions to the main database file. * There must be no other connections reading or writing. + * @param {'passive'|'full'|'restart'|'truncate'} mode */ - async flush() { - if (this.#state !== null) { - throw new Error('Already in isolated state'); + async checkpoint(mode) { + if (mode !== 'passive') { + this.isolateForWrite(); } - try { - // Make sure we have every transaction. - await this.isolateForWrite(); - this.rejoin(); - - // Disable heartbeat as a minor optimization. - clearTimeout(this.#heartbeatTimer); - this.#heartbeatTimer = null; + const options = { + isRestart: mode !== 'passive', + isRequired: mode !== 'passive' + }; + await this.#checkpoint(options); - // Perform a full checkpoint. Write-ahead will be empty afterwards. - await this.#checkpoint(this.#txId, { ifAvailable: false }); - console.assert(this.#waOverlay.size === 0, 'write-ahead not empty after flush'); + if (mode === 'truncate') { + this.#waFile.accessHandle.truncate(this.#waFile.currentOffset); + this.log?.(`%ccheckpoint restart WAL file`, 'background-color: lightgreen;'); + } } finally { - this.#state = null; - this.#heartbeat(); + if (mode !== 'passive') { + this.rejoin(); + } + } + } + + /** + * Return the known usage size of the write-ahead file. Note that the + * actual file size may be larger than reported if this connection is + * not current or if the file has obsolete content past the current point. + * @returns {number} + */ + getWriteAheadSize() { + return this.#waFile.currentOffset; + } + + /** + * Incorporate a transaction into our view of the database. + * @param {Transaction} tx + */ + #activateTx(tx) { + // Transfer to the active collection of transactions. + this.#mapIdToTx.set(tx.id, tx); + + // Add transaction pages to the write-ahead overlay. + for (const [offset, pageEntry] of tx.pages) { + this.#waOverlay.set(offset, pageEntry); } + this.#dbFileSize = tx.dbFileSize; } /** - * Advance the local view of the database. + * Advance the local view of the database. By default, advance to the + * last broadcast transaction. Optionally, also advance through any + * additional transactions in the WAL file to be fully current. + * + * @param {{readToCurrent?: boolean}} options */ - #advanceTxId() { - const oldTxId = this.#txId; - - // Look up the next transaction one at a time. This will stop if there - // are any missing transactions, which will be filled in later either - // for write isolation or by the heartbeat. - let tx; - while (tx = this.#mapIdToTx.get(this.#txId + 1)) { - // Add transaction pages to the write-ahead overlay. - for (const [offset, data] of tx.pages) { - this.#waOverlay.set(offset, data); + #advanceTxId(options = {}) { + let didAdvance = false; + while (this.#pendingTx.size) { + // Fetch the next transaction in sequence. Usually this will come + // from pendingTx, but if it is missing then read it from the file. + const nextTxId = this.#waFile.txId + 1; + let tx; + if (this.#pendingTx.has(nextTxId)) { + tx = this.#pendingTx.get(nextTxId); + this.#pendingTx.delete(tx.id); + this.#waFile.skipTx(tx.id, tx.waOffsetEnd); + } else { + tx = this.#waFile.readTx(); } - this.#nWriteAheadPages += tx.pages.size; - this.#txId = tx.id; - this.#txFileSize = tx.fileSize; + this.#activateTx(tx); + didAdvance = true; + } + + if (options.readToCurrent) { + // Read all additional transactions from the WAL file. + for (const tx of this.#waFile.readAllTx()) { + this.#activateTx(tx); + didAdvance = true; + } } - if (this.#txId !== oldTxId) { - this.#updateTxLock(this.#txId); + if (didAdvance) { + // Publish our new view txId. + this.#updateTxIdLock(); } } /** * Move pages from write-ahead to main database file. - * @param {number} [ckptId] - * @param {LockOptions} [lockOptions] + * + * @param {{isRestart?: boolean, isRequired?: boolean}} options */ - async #checkpoint(ckptId, lockOptions = { ifAvailable: true }) { - // Allow only one connection to checkpoint at a time. The default - // lockOptions argument will skip everything if another connection - // is already checkpointing. This is suitable for heartbeat-initiated - // checkpoints. For a checkpoint initiated by flush(), we should - // block until we can checkpoint ourselves. - await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async lock => { - if (!lock) return; + async #checkpoint(options = {}) { + // By default, checkpointing is abandoned if another connection is + // already checkpointing. With the isRequired option, a checkpoint + // is always performed. This is necessary for leaving write-ahead + // mode or a user-requested checkpoint. + const lockOptions = { + ifAvailable: !options.isRequired, + }; - // If the txId checkpoint is not specified, find the lowest txId - // in use by any connection. - if (ckptId === undefined) { - ckptId = await this.#getLowestUsedTxId(); + await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async lock => { + if (!lock) return null; + + /** @type {number} */ let ckptId; + if (options.isRestart) { + // Full checkpoint, use the current WAL file txId. + ckptId = this.#waFile.txId; + + // Wait for all connections to reach this txId. Each connection + // acquires a shared lock whose name contains the database name, + // the minimum and maximum txId it has in mapIdToTx. We want all + // maximum txId values to be ckptId. + let pendingLockNames = []; + do { + // Wait for connections with lower maximum txIds. When a + // connection advances its txId, it will release its previous + // lock and acquire a new one. + await Promise.all( + pendingLockNames.map(name => navigator.locks.request(name, async () => {})) + ); + + // Refresh the list of locks with lower txIds. + pendingLockNames = (await this.#getTxIdLocks()) + .filter(value => value.maxTxId < ckptId) + .map(value => value.name); + } while (pendingLockNames.length > 0); + this.log?.(`%c#checkpoint full txId ${ckptId}`, 'background-color: lightgreen;'); + } else { + // Not a full checkpoint, so find the lowest txId in use by any + // connection. + ckptId = (await this.#getTxIdLocks()) + .reduce((min, value) => Math.min(min, value.maxTxId), this.#waFile.txId); + this.log?.(`%c#checkpoint partial txId ${ckptId}`, 'background-color: lightgreen;'); } + // Sync the WAL file. This ensures that if there is a crash after + // part of the WAL has been copied, the uncopied part will still be + // available afterwards. + this.#waFile.accessHandle.flush(); + // Starting at ckptId and going backwards (earlier), write transaction // pages to the main database file. Do not overwrite a page written // by a later transaction. const writtenOffsets = new Set(); - let fileSize = 0; - let tx = { id: ckptId + 1 }; + let dbFileSize = 0; + let tx = /** @type {Transaction} */ ({ id: ckptId + 1 }); while (tx = this.#mapIdToTx.get(tx.id - 1)) { if (tx.id === ckptId) { // Set the file size from the latest transaction. This may be // unnecessary as SQLite is not known to reduce the database size // except with VACUUM. - fileSize = tx.fileSize; - this.#truncateFn(fileSize); + dbFileSize = tx.dbFileSize; + this.#dbHandle.truncate(dbFileSize); } - for (const [offset, data] of tx.pages) { - if (offset < fileSize && !writtenOffsets.has(offset)) { - this.#writeFn(offset, data); + for (const [offset, pageEntry] of tx.pages) { + if (offset < dbFileSize && !writtenOffsets.has(offset)) { + let pageData = pageEntry.pageData; + if (!pageData) { + // Page data was not cached, so read it from the WAL file. + pageData = new Uint8Array(pageEntry.pageSize); + const nRead = this.#waFile.accessHandle.read( + pageData, + { at: pageEntry.waOffset }); + if (nRead !== pageData.byteLength) { + throw new Error('Checkpoint read failed'); + } + } + + // Write the page to the database file. + const nWritten = this.#dbHandle.write(pageData, { at: offset }); + if (nWritten !== pageData.byteLength) { + throw new Error('Checkpoint write failed'); + } writtenOffsets.add(offset); + this.log?.(`%c#checkpoint wrote txId ${tx.id} page at ${offset} to database`, 'background-color: lightgreen;'); } } } if (writtenOffsets.size > 0) { // Ensure data is safely in the file. - this.#syncFn(); + this.#dbHandle.flush(); // Notify other connections and ourselves of the checkpoint. - this.#broadcastChannel.postMessage({ type: 'ckpt', ckptId }); + this.#broadcastChannel.postMessage({ + type: 'ckpt', + ckptId, + }); this.#handleCheckpoint(ckptId); + } - // Remove checkpointed transactions from persistent storage. - this.#repoDeleteUpTo(ckptId); + if (options.isRestart) { + this.#waFile.reset(); } }); } @@ -409,14 +477,17 @@ export class WriteAhead { * @param {number} ckptId */ #handleCheckpoint(ckptId) { + this.log?.(`%c#handleCheckpoint to txId ${ckptId}`, 'background-color: lightgreen;'); + // Loop backwards from ckptId. - let tx = { id: ckptId + 1 }; + let tx = /** @type {Transaction} */ ({ id: ckptId + 1 }); while (tx = this.#mapIdToTx.get(tx.id - 1)) { // Remove pages from write-ahead overlay. for (const [offset, page] of tx.pages.entries()) { // Be sure not to remove a newer version of the page. const overlayPage = this.#waOverlay.get(offset); if (overlayPage === page) { + this.log?.(`%cremove txId ${tx.id} page at offset ${offset}`, 'background-color: lightgreen;'); this.#waOverlay.delete(offset); } } @@ -424,16 +495,7 @@ export class WriteAhead { // Remove transaction. this.#mapIdToTx.delete(tx.id); } - - const oldCount = this.#nWriteAheadPages; - - // Recalculate the number of pages in write-ahead. - this.#nWriteAheadPages = 0; - for (const tx of this.#mapIdToTx.values()) { - this.#nWriteAheadPages += tx.pages.size; - } - - this.log?.(`%cCheckpoint to txId ${ckptId}, ${oldCount} -> ${this.#nWriteAheadPages} pages in write-ahead`, 'background-color: lightgreen;'); + this.#updateTxIdLock(); } /** @@ -444,10 +506,9 @@ export class WriteAhead { // New transaction from another connection. Don't use it if we // already have it. /** @type {Transaction} */ const tx = event.data.tx; - if (!this.#mapIdToTx.has(tx.id)) { - this.#mapIdToTx.set(tx.id, tx); - - if (this.#state === null) { + if (tx.id > this.#waFile.txId) { + this.#pendingTx.set(tx.id, tx); + if (this.#isolationState === null) { // Not in an isolated state, so advance our view of the database. this.#advanceTxId(); } @@ -460,217 +521,465 @@ export class WriteAhead { } /** - * Periodic check for missing transactions and checkpointing. + * Periodic check for recovering from lost transaction broadcasts. */ - async #heartbeat() { + async #backstop() { try { - if (this.#heartbeatTimer) { - // Auto-checkpoint when the write-ahead overlay exceeds the - // checkpoint threshold. - if (this.#nWriteAheadPages >= this.options.autoCheckpointPages) { - this.#checkpoint(); - } - - // Check whether we are missing the next transaction. - const nextLocalTxId = this.#txId + 1; - const lastRepoTxId = await this.#repoLastTxId(); - if (this.#txId < lastRepoTxId && !this.#mapIdToTx.has(nextLocalTxId)) { - // There are transactions in the repository that we have not received - // a broadcast for. This could be due to a crash in another context - // or simply unlucky timing. In case of bad timing, use a brief - // delay to allow any pending broadcasts to arrive. - self.setTimeout(async () => { - // Repeat the check. - if (this.#txId < nextLocalTxId && !this.#mapIdToTx.has(nextLocalTxId)) { - // Still missing the next transaction, so load it from the - // repository. - const { txList } = await this.#repoLoad(this.#txId); - - // Simulate a broadcast message for this transaction. - this.#handleMessage( - new MessageEvent('message', { data: { type: 'tx', tx: txList[0] } })); - } - }, this.options.heartbeatActionDelay); + if (this.#backstopTimer) { + if (this.#isolationState === null) { + // Not in an isolated state, so advance our view of the database. + const oldTxId = this.#waFile.txId; + this.#advanceTxId({ readToCurrent: true }); + if (this.#waFile.txId > oldTxId) { + this.log?.(`%cbackstop txId ${oldTxId} -> ${this.#waFile.txId}`, 'background-color: lightyellow;'); + } } } } catch (e) { - console.error('Heartbeat failed', e); + console.error('Backstop failed', e); } - // Schedule next heartbeat. Add a bit of jitter to decorrelate - // heartbeats across multiple connections. - const delay = this.options.heartbeatInterval * (0.9 + 0.2 * Math.random()); - this.#heartbeatTimer = self.setTimeout(() => { - this.#heartbeat(); + // Schedule next backstop. Add a bit of jitter to decorrelate + // backstops across multiple connections. + const delay = this.options.backstopInterval * (0.9 + 0.2 * Math.random()); + this.#backstopTimer = self.setTimeout(() => { + this.#backstop(); }, delay); } - + /** - * Initialize persistent write-ahead storage. - * @param {string} zName + * Update the lock that publishes our current txId. */ - async #repoInit(zName) { - // Delete existing IndexedDB database for a new SQLite database. - if (this.options.create) { - await idbWrap(indexedDB.deleteDatabase(zName)); + async #updateTxIdLock() { + // Our view of the database, i.e. the txId, is encoded into the name + // of a lock so other connections can see it. When our txId changes, + // we acquire a new lock and release the old one. We must not release + // the old lock until the new one is in place. + const oldLock = this.#txIdLock; + const newLockName = this.#encodeTxIdLockName(); + if (oldLock?.name !== newLockName) { + this.#txIdLock = new Lock(newLockName); + await this.#txIdLock.acquire('shared').then(() => { + // The new lock is acquired. + oldLock?.release(); + }); + + if (this.log) { + const { minTxId, maxTxId } = this.#decodeTxIdLockName(newLockName); + this.log?.(`%ctxId to ${minTxId}:${maxTxId}`, 'background-color: pink;'); + } } - - // Open IndexedDB database. - const idbRequest = indexedDB.open(zName, 1); - idbRequest.onupgradeneeded = (event) => { - const db = idbRequest.result; - const store = db.createObjectStore('txStore'); - - // Insert the initial marker. - store.put({ id: 1 }, 1); - }; - - this.#idbDb = /** @type {IDBDatabase} */ (await idbWrap(idbRequest)); } - + /** - * Delete transactions through txId from persistent storage. - * @param {number} txId - * @returns + * Get all txId locks for this database. + * @returns {Promise<{name: string, minTxId: number, maxTxId: number}[]>} */ - async #repoDeleteUpTo(txId) { - const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); - const results = Promise.all([ - idbTx.objectStore('txStore').delete(IDBKeyRange.upperBound(txId)), - idbTx - ].map(idbWrap)); - idbTx.commit(); + async #getTxIdLocks() { + const { held } = await navigator.locks.query(); + return held + .map(lock => this.#decodeTxIdLockName(lock.name)) + .filter(value => value !== null) + } - return results; + /** + * @returns {string} + */ + #encodeTxIdLockName() { + // The maxTxId is our current view of the database. The minTxId is + // the lowest txId we get pages from the WAL for, which is the lowest + // key in mapIdToTx. If mapIdToTx is empty then we aren't reading + // from the WAL at all - in this case we arbitrarily set minTxId to + // invalid value maxTxId + 1. + const maxTxId = this.#waFile.txId; + const minTxId = this.#mapIdToTx.keys().next().value ?? (maxTxId + 1); + return `${this.#zName}-txId<${minTxId}:${maxTxId}>`; } /** - * Get the last transaction id for the database. - * @returns {Promise} + * @param {string} lockName + * @returns {{name: string, minTxId: number, maxTxId: number}} */ - async #repoLastTxId() { - const idbTx = this.#idbDb.transaction('txStore', 'readonly'); - const idbTxStore = idbTx.objectStore('txStore'); - const marker = await new Promise((resolve, reject) => { - // Use a cursor with 'prev' direction to get the last key - // in the store. This will be the end marker, which will - // be the *next* transaction id. - const request = idbTxStore.openKeyCursor(null, 'prev'); - request.onsuccess = () => { - const cursor = request.result; - if (cursor) { - resolve(cursor.key); - } else { - reject(new Error('Invalid repository state')); - } - }; - request.onerror = () => { - reject(request.error); + #decodeTxIdLockName(lockName) { + const match = lockName.match(/^(.*)-txId<(\d+):(\d+)>$/); + if (match?.[1] === this.#zName) { + // This txId lock is for this database. + return { + name: match[1], + minTxId: parseInt(match[2]), + maxTxId: parseInt(match[3]) }; - }); - idbTx.commit(); - return /** @type {number} */ (marker) - 1; + } + return null; + } +} + +class WriteAheadFile { + static MAGIC = 0x377f0684; + static FILE_HEADER_SIZE = 32; + static FRAME_HEADER_SIZE = 32; + static FRAME_TYPE_PAGE = 0; + static FRAME_TYPE_COMMIT = 1; + + /** @type {FileSystemSyncAccessHandle} */ accessHandle; + /** @type {number} */ currentOffset; + + txId = 0; + salt1 = 0; + salt2 = 0; + + /** @type {Transaction} */ txInProgress = null; + + constructor(accessHandle) { + this.accessHandle = accessHandle; + } + + create() { + this.accessHandle.truncate(0); + this.#writeFileHeader(); + } + + open() { + // Read file headers from both header slots and use the one with the + // higher nextTxId. + const fileHeader = [0, SECTOR_SIZE] + .map(offset => this.#readFileHeader(offset)) + .filter(h => h) + .sort((a, b) => b.nextTxId - a.nextTxId)[0]; + + this.currentOffset = WAL_FRAME_BASE; + this.txId = fileHeader.nextTxId - 1; + this.salt1 = fileHeader.salt1; + this.salt2 = fileHeader.salt2; + } + + reset(options = { truncate: true }) { + const fileHeader = this.#writeFileHeader(); + if (options.truncate) { + this.accessHandle.truncate(WAL_FRAME_BASE); + } + + this.currentOffset = WAL_FRAME_BASE; + this.salt1 = fileHeader.salt1; + this.salt2 = fileHeader.salt2; + } + + checkReset() { + // Check for a new header. There are two header slots in the file. + // Look in the slot that is not current, which will be at offset 0 + // or SECTOR_SIZE depending on the current salt1 value (salt1 is + // incremented on each new header). + const headerOffset = (this.salt1 & 0x1) ? 0 : SECTOR_SIZE; + const fileHeader = this.#readFileHeader(headerOffset); + if (fileHeader?.nextTxId > this.txId && + fileHeader.salt1 === ((this.salt1 + 1) | 0)) { + // The WAL file has been reset. + this.currentOffset = WAL_FRAME_BASE; + this.salt1 = fileHeader.salt1; + this.salt2 = fileHeader.salt2; + return true; + } + return false; + } + + *readAllTx() { + while (true) { + const tx = this.readTx(); + if (!tx) break; + yield tx; + } } /** - * Load transactions from persistent storage starting from txId + 1. - * @param {number} txId - * @returns {Promise<{ txList: Transaction[], emptyId: number}>} + * @returns {Transaction?} */ - async #repoLoad(txId) { - const idbTx = this.#idbDb.transaction('txStore', 'readonly'); - const idbTxStore = idbTx.objectStore('txStore'); + readTx() { + // Read the next complete transaction or return null. + let offset = this.currentOffset; + /** @type {Transaction?} */ let tx = null; + while (true) { + const frame = this.#readFrame(offset); + if (!frame) return null; + + if (frame.frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { + // Update the instance state. + this.txId += 1; + this.currentOffset = offset + frame.byteLength; + + tx.id = this.txId; + tx.dbFileSize = frame.dbFileSize; + tx.waOffsetEnd = this.currentOffset; + return tx; + } + + // frameType === WriteAheadFile.FRAME_TYPE_PAGE + if (!tx) { + tx = { + id: 0, // placeholder + pages: new Map(), + dbFileSize: 0, // placeholder + dbPageSize: frame.pageData.byteLength, + waOffsetEnd: 0 // placeholder + }; + } - // Get all transactions with id > txId. - const request = idbTxStore.getAll(IDBKeyRange.lowerBound(txId, true)); - const txList = /** @type {Transaction[]} */ (await idbWrap(request)); - idbTx.commit(); + tx.pages.set( + frame.pageOffset, + { + pageSize: frame.pageData.byteLength, + waOffset: offset + WriteAheadFile.FRAME_HEADER_SIZE + }); - // The last object in the store is the end marker, which contains - // no data. Its purpose is to provide the txId when write-ahead - // is empty. - const marker = txList.pop(); - return { txList, emptyId: marker.id - 1 }; + offset += frame.byteLength; + } } /** - * Copy a new transaction to persistent storage. - * @param {Transaction} tx + * This method is called when transaction(s) have been received by other + * means than readTx(), e.g. via BroadcastChannel. + * + * @param {number} txId + * @param {number} offset */ - async #repoStore(tx) { - const idbTx = this.#idbDb.transaction('txStore', 'readwrite'); - const idbTxStore = idbTx.objectStore('txStore'); - - const results = [ - idbTxStore.put(tx, tx.id), // overwrite the current end marker - idbTxStore.put({ id: tx.id + 1 }, tx.id + 1), // new end marker - idbTx - ].map(idbWrap); - idbTx.commit(); - return Promise.all(results); + skipTx(txId, offset) { + this.txId = txId; + this.currentOffset = offset; } /** - * Update the lock that publishes our current txId. - * @param {number} txId + * + * @param {{overwrite?: boolean}} options + * @returns {Transaction} */ - async #updateTxLock(txId) { - // Our view of the database, i.e. the txId, is encoded into the name - // of a lock so other connections can see it. When our txId changes, - // we acquire a new lock and release the old one. We must not release - // the old lock until the new one is in place. - const oldLock = this.#txLock; - const newLockName = `${this.#zName}-txId<${txId}>`; - if (oldLock?.name !== newLockName) { - this.#txLock = new Lock(newLockName); - await this.#txLock.acquire('shared'); - oldLock?.release(); + beginTx(options = {}) { + this.txInProgress = { + id: this.txId + 1, + pages: new Map(), + dbFileSize: 0, + dbPageSize: 0, + waOffsetEnd: this.currentOffset + }; + return this.txInProgress; + } + + /** + * Write a page frame to the WAL file. + * + * @param {number} pageOffset + * @param {Uint8Array} pageData + */ + writePage(pageOffset, pageData) { + const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); + headerView.setUint8(0, WriteAheadFile.FRAME_TYPE_PAGE); + headerView.setUint16(2, pageData.byteLength === 65536 ? 1 : pageData.byteLength); + headerView.setBigUint64(8, BigInt(pageOffset)); + headerView.setUint32(16, this.salt1); + headerView.setUint32(20, this.salt2); + + const checksum = new Checksum(); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); + checksum.update(pageData); + headerView.setUint32(24, checksum.s0); + headerView.setUint32(28, checksum.s1); + + const bytesWritten = + this.accessHandle.write(headerView, { at: this.txInProgress.waOffsetEnd }) + + this.accessHandle.write(pageData, { + at: this.txInProgress.waOffsetEnd + WriteAheadFile.FRAME_HEADER_SIZE + }); + if (bytesWritten !== headerView.byteLength + pageData.byteLength) { + throw new Error('write failed'); + } + + const pageEntry = { + pageSize: pageData.byteLength, + waOffset: this.txInProgress.waOffsetEnd + WriteAheadFile.FRAME_HEADER_SIZE + }; + if (pageOffset === 0) { + // This is page 1, which contains the database header. + const dataView = new DataView(pageData.buffer, pageData.byteOffset, pageData.byteLength); + const pageCount = dataView.getUint32(28); + this.txInProgress.dbFileSize = pageCount * pageData.byteLength; + this.txInProgress.dbPageSize = pageData.byteLength; - this.log?.(`%ctxId to ${txId}`, 'background-color: lightblue;'); + // Cache page 1 as a performance optimization and to exercise the + // cache code path. + pageEntry.pageData = pageData; } + + this.txInProgress.pages.set(pageOffset, pageEntry); + this.txInProgress.waOffsetEnd += bytesWritten; + + return pageEntry.waOffset; } /** - * Find the globally lowest txId held by any connection. - * @returns {Promise} + * @returns {Transaction} */ - async #getLowestUsedTxId() { - // * Get all held locks. - // * Find those that match the txId lock name pattern. - // * Extract the txId from the lock name. - // * Return the lowest txId found. - const txLockRegex = new RegExp(`^(.*)-txId<(\\d+)>$`); - const { held } = await navigator.locks.query(); - return held - .map(lock => lock.name.match(txLockRegex)) - .filter(match => match?.[1] === this.#zName) - .map(match => parseInt(match[2])) - .reduce((min, txId) => Math.min(min, txId), this.#txId); + commitTx() { + const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); + headerView.setUint8(0, WriteAheadFile.FRAME_TYPE_COMMIT); + headerView.setBigUint64(8, BigInt(this.txInProgress.dbFileSize)); + headerView.setUint32(16, this.salt1); + headerView.setUint32(20, this.salt2); + + const checksum = new Checksum(); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); + headerView.setUint32(24, checksum.s0); + headerView.setUint32(28, checksum.s1); + + const bytesWritten = this.accessHandle.write(headerView, { + at: this.txInProgress.waOffsetEnd + }); + if (bytesWritten !== headerView.byteLength) { + throw new Error('write failed'); + } + this.txInProgress.waOffsetEnd += bytesWritten; + + const tx = this.txInProgress; + this.txInProgress = null; + this.currentOffset = tx.waOffsetEnd; + this.txId = tx.id; + return tx; + } + + abortTx() { + this.txInProgress = null; + } + + #readFileHeader(offset) { + const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FILE_HEADER_SIZE)); + if (this.accessHandle.read(headerView, { at: offset }) !== headerView.byteLength) { + return null; + } + + if (headerView.getUint32(0) !== WriteAheadFile.MAGIC) return null; + + const checksum = new Checksum(); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FILE_HEADER_SIZE - 8)); + if (!checksum.matches(headerView.getUint32(24), headerView.getUint32(28))) { + return null; + } + + return { + nextTxId: Number(headerView.getBigUint64(8)), + salt1: headerView.getUint32(16), + salt2: headerView.getUint32(20) + } + } + + #readFrame(offset) { + const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); + if (this.accessHandle.read(headerView, { at: offset }) !== headerView.byteLength) { + // EOF, not an error. + return null; + } + + // Verify the frame header salt values match the file header. + const frameSalt1 = headerView.getUint32(16); + const frameSalt2 = headerView.getUint32(20); + if (frameSalt1 !== this.salt1 || frameSalt2 !== this.salt2) { + // Not necessarily an error, could be from a restart without + // truncation. + return null; + } + + const payloadSize = (size => size === 1 ? 65536 : size)(headerView.getUint16(2)); + /** @type {Uint8Array} */ let payloadData; + if (payloadSize) { + payloadData = new Uint8Array(payloadSize); + const payloadBytesRead = this.accessHandle.read( + payloadData, + { at: offset + WriteAheadFile.FRAME_HEADER_SIZE }); + if (payloadBytesRead !== payloadSize ) return null; + } + + const checksum = new Checksum(); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); + if (payloadData) { + checksum.update(payloadData); + } + if (!checksum.matches(headerView.getUint32(24), headerView.getUint32(28))) { + // Not necessarily an error, could be from a restart without + // truncation. + return null; + } + + const frameType = headerView.getUint8(0); + if (frameType === WriteAheadFile.FRAME_TYPE_PAGE) { + return { + frameType, + byteLength: WriteAheadFile.FRAME_HEADER_SIZE + payloadSize, + pageOffset: Number(headerView.getBigUint64(8)), + pageData: payloadData + } + } else if (frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { + // Flags byte is currently unused. A possible future use would be + // to indicate an overwrite commit to trigger clearing the overlay. + // This might allow a page size change by VACUUM. + const flags = headerView.getUint8(1); + return { + frameType, + byteLength: WriteAheadFile.FRAME_HEADER_SIZE, + dbFileSize: Number(headerView.getBigUint64(8)), + isOverwrite: !!(flags & 0x1) + } + } + throw new Error(`Invalid frame type: ${frameType}`); + } + + #writeFileHeader() { + // Derive new values from the previous values. Note that salt1 always + // flips between even and odd so successive headers are written to + // alternating slots. If the write fails, the file remains in a valid + // state. + const nextTxId = this.txId + 1; + const salt1 = (this.salt1 + 1) | 0; + const salt2 = Math.floor(Math.random() * 0xffffffff); + const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FILE_HEADER_SIZE)); + headerView.setUint32(0, WriteAheadFile.MAGIC); + headerView.setBigUint64(8, BigInt(nextTxId)); + headerView.setUint32(16, salt1); + headerView.setUint32(20, salt2); + + const checksum = new Checksum(); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FILE_HEADER_SIZE - 8)); + headerView.setUint32(24, checksum.s0); + headerView.setUint32(28, checksum.s1); + + // A header with an even salt1 is written at offset 0, and with an + // odd salt1 at SECTOR_SIZE. + const headerOffset = (salt1 & 0x1) ? SECTOR_SIZE : 0; + const bytesWritten = this.accessHandle.write(headerView, { at: headerOffset }); + if (bytesWritten !== headerView.byteLength) { + throw new Error('write failed'); + } + + this.accessHandle.flush(); + return { nextTxId, salt1, salt2 }; } } -/** - * Convert IndexedDB callbacks to Promises. - * @template T - * @param {IDBRequest|IDBTransaction} request - * @returns {Promise} - */ -function idbWrap(request) { - return new Promise((resolve, reject) => { - if (request instanceof IDBTransaction) { - request.oncomplete = () => { - resolve(); - }; - request.onabort = () => { - reject(request.error ?? new Error('transaction aborted')); - }; - } else { - request.onsuccess = () => { - resolve(request.result); - }; - request.onerror = () => { - reject(request.error); - }; +// https://www.sqlite.org/fileformat.html#checksum_algorithm +class Checksum { + /** @type {number} */ s0 = 0; + /** @type {number} */ s1 = 0; + + /** + * @param {ArrayBuffer|ArrayBufferView} data + */ + update(data) { + if ((data.byteLength % 8) !== 0) throw new Error('Data must be a multiple of 8 bytes'); + const words = ArrayBuffer.isView(data) ? + new Uint32Array(data.buffer, data.byteOffset, data.byteLength / 4) : + new Uint32Array(data); + for (let i = 0; i < words.length; i += 2) { + this.s0 = (this.s0 + words[i] + this.s1) >>> 0; + this.s1 = (this.s1 + words[i + 1] + this.s0) >>> 0; } - }); + } + + matches(s0, s1) { + return this.s0 === s0 && this.s1 === s1; + } } diff --git a/src/sqlite-api.js b/src/sqlite-api.js index d1ff06cd..befcca21 100644 --- a/src/sqlite-api.js +++ b/src/sqlite-api.js @@ -28,6 +28,7 @@ export function Factory(Module) { /** @type {SQLiteAPI} */ const sqlite3 = {}; Module.retryOps = []; + Module.pendingOps = []; const sqliteFreeAddress = Module._getSqliteFree(); // Allocate some space for 32-bit returned values. @@ -873,7 +874,7 @@ export function Factory(Module) { // Wait for all pending retry operations to complete. This is // normally empty on the first loop iteration. if (Module.retryOps.length) { - try { + try { await Promise.all(Module.retryOps); } finally { Module.retryOps = []; @@ -882,6 +883,16 @@ export function Factory(Module) { rc = await f(); if (rc === SQLite.SQLITE_OK || Module.retryOps.length === 0) { + if (Module.pendingOps.length) { + try { + await Promise.all(Module.pendingOps); + } catch (e) { + console.error('Error in pendingOps:', e); + return e.code || SQLite.SQLITE_ERROR; + } finally { + Module.pendingOps = []; + } + } return rc; } } From ff3b70c65abfd8b8a65592b4df371358e24abfbc Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 22 Feb 2026 22:31:31 -0800 Subject: [PATCH 052/104] Fix LazyLock close failure. --- src/examples/LazyLock.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/examples/LazyLock.js b/src/examples/LazyLock.js index 54b662f7..6ba65588 100644 --- a/src/examples/LazyLock.js +++ b/src/examples/LazyLock.js @@ -22,7 +22,7 @@ export class LazyLock extends Lock { } close() { - super.close + super.close(); this.#channel.onmessage = null; this.#channel.close(); } From 0976ff16fbdb5d0c6c3b0cfbecd4e293d187fcc8 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 23 Feb 2026 07:44:48 -0800 Subject: [PATCH 053/104] Make write lock lazy. --- src/examples/OPFSWriteAheadVFS.js | 180 ++++++++++++++++++++++-------- 1 file changed, 134 insertions(+), 46 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 28edb321..af4e7481 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -25,7 +25,7 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * @property {'normal'|'exclusive'|null} [lockingMode] * @property {number} [lockState] SQLITE_LOCK_* * @property {LazyLock} [readLock] - * @property {Lock} [writeLock] + * @property {LazyLock} [writeLock] * @property {number} [timeout] * * @property {WriteAhead} [writeAhead] @@ -157,7 +157,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.lockState = VFS.SQLITE_LOCK_NONE; file.lockingMode = null; file.readLock = new LazyLock(`${zName}#read`); - file.writeLock = new Lock(`${zName}#write`); + file.writeLock = new LazyLock(`${zName}#write`); file.timeout = -1; file.useWriteAhead = true; file.writeHint = null; @@ -474,18 +474,48 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.useWriteAhead = false; } - if (file.writeHint || file.readLock.mode !== 'shared') { - // Asynchronous lock acquisition is needed. Set retryResult to - // non-null so when SQLite calls jUnlock() it knows not to reset - // any locks we have in progress. - file.retryResult = {}; - this._module.retryOps.push(this.#retryLock(pFile, lockType)); - return VFS.SQLITE_BUSY; + // There are three distinct cases. In each case if the required + // lock is already held then we can proceed synchronously. + // Otherwise we need to acquire state asynchronously and retry. + if (!file.writeHint) { + // Case 1: Read transaction with write-ahead logging. + if (!file.readLock.acquireIfHeld('shared')) { + file.retryResult = {}; + this._module.retryOps.push(this.#retryLockRead(file)); + return VFS.SQLITE_BUSY; + } else { + file.writeAhead.isolateForRead(); + } + } else { + if (file.useWriteAhead) { + // Case 2: Write transaction with write-ahead logging. + if (!file.writeLock.acquireIfHeld('exclusive')) { + file.retryResult = {}; + this._module.retryOps.push(this.#retryLockWrite(file)); + return VFS.SQLITE_BUSY; + } else { + file.writeAhead.isolateForWrite(); + } + } else { + // Case 3: Transaction without write-ahead logging. + file.retryResult = {}; + this._module.retryOps.push(this.#retryLockExclusive(file)); + return VFS.SQLITE_BUSY; + } } - // This is a read transaction and we can get the shared - // lock synchronously. - file.readLock.acquireIfHeld('shared'); + // if (file.writeHint || file.readLock.mode !== 'shared') { + // // Asynchronous lock acquisition is needed. Set retryResult to + // // non-null so when SQLite calls jUnlock() it knows not to reset + // // any locks we have in progress. + // file.retryResult = {}; + // this._module.retryOps.push(this.#retryLock(pFile, lockType)); + // return VFS.SQLITE_BUSY; + // } + + // // This is a read transaction and we can get the shared + // // lock synchronously. + // file.readLock.acquireIfHeld('shared'); } else if (file.retryResult instanceof Error) { throw file.retryResult; } @@ -493,13 +523,13 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // We have acquired the needed locks, either synchronously or // via retry. file.retryResult = null; - if (file.writeHint === null) { - // Ensure that our read-only view of the database does not change - // while in the SHARED lock state. The corresponding method - // isolateForWrite() is not called in this method, but instead - // in retryLock() because it is asynchronous. - file.writeAhead.isolateForRead(); - } + // if (file.writeHint === null) { + // // Ensure that our read-only view of the database does not change + // // while in the SHARED lock state. The corresponding method + // // isolateForWrite() is not called in this method, but instead + // // in retryLock() because it is asynchronous. + // file.writeAhead.isolateForRead(); + // } } else if (lockType >= VFS.SQLITE_LOCK_RESERVED && !file.writeLock.mode) { // This is a write transaction but we don't already have the write // lock. This happens when the write hint was not used, which this @@ -538,7 +568,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.writeAhead.rejoin(); } - file.writeLock.release(); + // TODO: use option for lazy write lock release + file.writeLock.releaseLazy(); if (file.readLock.mode === 'exclusive') { // TODO: Consider lazy release here as well. file.readLock.release(); @@ -825,42 +856,99 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } /** - * Handle asynchronous jLock() tasks. - * @param {number} pFile - * @param {number} lockType + * @param {FileEntry} file */ - async #retryLock(pFile, lockType) { - const file = this.mapIdToFile.get(pFile); + async #retryLockRead(file) { try { - switch (file.writeHint) { - case 'reserved': - case 'exclusive': - if (file.useWriteAhead) { - // Write-ahead transactions only need writeLock, not readLock. - await file.writeLock.acquire('exclusive', file.timeout); - file.writeAhead.isolateForWrite(); - } else { - // This transaction will write directly to the database, - // i.e. not using write-ahead. Get exclusive access. - await file.readLock.acquire('exclusive', file.timeout); - await file.writeLock.acquire('exclusive'); + await file.readLock.acquire('shared', file.timeout); + file.writeAhead.isolateForRead(); + file.retryResult = {}; + } catch (e) { + if (file.readLock.mode) { + file.readLock.release(); + } + file.retryResult = e; + } + } - // Transfer everything in write-ahead to the OPFS file. - await file.writeAhead.checkpoint('restart'); - } - break; - default: - // This transaction will only read. - await file.readLock.acquire('shared', file.timeout); - break; + /** + * @param {FileEntry} file + */ + async #retryLockWrite(file) { + try { + // Write-ahead transactions only need writeLock, not readLock. + await file.writeLock.acquire('exclusive', file.timeout); + file.writeAhead.isolateForWrite(); + file.retryResult = {}; + } catch (e) { + if (file.writeLock.mode) { + file.writeLock.release(); } + file.retryResult = e; + } + } + + /** + * @param {FileEntry} file + */ + async #retryLockExclusive(file) { + try { + // This transaction will write directly to the database, + // i.e. not using write-ahead. Get exclusive access. + await file.readLock.acquire('exclusive', file.timeout); + await file.writeLock.acquire('exclusive', file.timeout); + + // Transfer everything in write-ahead to the OPFS file. + await file.writeAhead.checkpoint('restart'); file.retryResult = {}; } catch (e) { + if (file.writeLock.mode) { + file.writeLock.release(); + } + if (file.readLock.mode) { + file.readLock.release(); + } file.retryResult = e; - return; } } + // /** + // * Handle asynchronous jLock() tasks. + // * @param {number} pFile + // * @param {number} lockType + // */ + // async #retryLock(pFile, lockType) { + // const file = this.mapIdToFile.get(pFile); + // try { + // switch (file.writeHint) { + // case 'reserved': + // case 'exclusive': + // if (file.useWriteAhead) { + // // Write-ahead transactions only need writeLock, not readLock. + // await file.writeLock.acquire('exclusive', file.timeout); + // file.writeAhead.isolateForWrite(); + // } else { + // // This transaction will write directly to the database, + // // i.e. not using write-ahead. Get exclusive access. + // await file.readLock.acquire('exclusive', file.timeout); + // await file.writeLock.acquire('exclusive'); + + // // Transfer everything in write-ahead to the OPFS file. + // await file.writeAhead.checkpoint('restart'); + // } + // break; + // default: + // // This transaction will only read. + // await file.readLock.acquire('shared', file.timeout); + // break; + // } + // file.retryResult = {}; + // } catch (e) { + // file.retryResult = e; + // return; + // } + // } + /** * Handle asynchronous jOpen() tasks. * @param {string} zName From 12d926f3d09c9e9e50763251a03cb8e79f0b2e91 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 23 Feb 2026 09:22:08 -0800 Subject: [PATCH 054/104] Add PRAGMA lazy_lock. --- src/examples/OPFSWriteAheadVFS.js | 51 ++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index af4e7481..33f6dcf3 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -26,6 +26,7 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * @property {number} [lockState] SQLITE_LOCK_* * @property {LazyLock} [readLock] * @property {LazyLock} [writeLock] + * @property {'none'|'read'|'write'|'readwrite'} [useLazyLock] * @property {number} [timeout] * * @property {WriteAhead} [writeAhead] @@ -158,6 +159,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.lockingMode = null; file.readLock = new LazyLock(`${zName}#read`); file.writeLock = new LazyLock(`${zName}#write`); + file.useLazyLock = 'readwrite'; file.timeout = -1; file.useWriteAhead = true; file.writeHint = null; @@ -568,16 +570,28 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.writeAhead.rejoin(); } - // TODO: use option for lazy write lock release - file.writeLock.releaseLazy(); - if (file.readLock.mode === 'exclusive') { - // TODO: Consider lazy release here as well. - file.readLock.release(); - } else { - file.readLock.releaseLazy(); + // Release any locks. + switch (file.useLazyLock) { + case 'none': + file.writeLock.release(); + file.readLock.release(); + break; + case 'read': + file.writeLock.release(); + file.readLock.releaseLazy(); + break; + case 'write': + file.writeLock.releaseLazy(); + file.readLock.release(); + break; + case 'readwrite': + file.writeLock.releaseLazy(); + file.readLock.releaseLazy(); + break; } - file.writeHint = null; + // Reset state for the next transaction. + file.writeHint = null; if (file.lockingMode === 'normal') { file.useWriteAhead = true; } @@ -705,6 +719,27 @@ export class OPFSWriteAheadVFS extends FacadeVFS { pArg.setUint32(0, ptr, true); } return VFS.SQLITE_OK; + case 'lazy_lock': + if (value !== null) { + const useLazyLock = value.toLowerCase(); + switch (useLazyLock) { + case 'read': + case 'write': + case 'readwrite': + case 'none': + file.useLazyLock = useLazyLock; + break; + default: + throw new Error(`unexpected value for lazy_lock: ${value}`); + } + } + { + const s = file.useLazyLock; + const ptr = this._module._sqlite3_malloc64(s.length + 1); + this._module.stringToUTF8(s, ptr, s.length + 1); + pArg.setUint32(0, ptr, true); + } + return VFS.SQLITE_OK; case 'write_ahead': // For testing purposes only: enable or disable write-ahead mode. if (value !== null) { From f30dc10f1add30e21b2f07e50d40b924cca83acd Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 23 Feb 2026 09:25:31 -0800 Subject: [PATCH 055/104] Remove obsolete code. --- src/examples/OPFSWriteAheadVFS.js | 58 ------------------------------- 1 file changed, 58 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 33f6dcf3..4a8ff44e 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -1,6 +1,5 @@ import { FacadeVFS } from "../FacadeVFS.js"; import * as VFS from '../VFS.js'; -import { Lock } from "./Lock.js"; import { LazyLock } from "./LazyLock.js"; import { WriteAhead } from "./WriteAhead.js"; @@ -505,19 +504,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_BUSY; } } - - // if (file.writeHint || file.readLock.mode !== 'shared') { - // // Asynchronous lock acquisition is needed. Set retryResult to - // // non-null so when SQLite calls jUnlock() it knows not to reset - // // any locks we have in progress. - // file.retryResult = {}; - // this._module.retryOps.push(this.#retryLock(pFile, lockType)); - // return VFS.SQLITE_BUSY; - // } - - // // This is a read transaction and we can get the shared - // // lock synchronously. - // file.readLock.acquireIfHeld('shared'); } else if (file.retryResult instanceof Error) { throw file.retryResult; } @@ -525,13 +511,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // We have acquired the needed locks, either synchronously or // via retry. file.retryResult = null; - // if (file.writeHint === null) { - // // Ensure that our read-only view of the database does not change - // // while in the SHARED lock state. The corresponding method - // // isolateForWrite() is not called in this method, but instead - // // in retryLock() because it is asynchronous. - // file.writeAhead.isolateForRead(); - // } } else if (lockType >= VFS.SQLITE_LOCK_RESERVED && !file.writeLock.mode) { // This is a write transaction but we don't already have the write // lock. This happens when the write hint was not used, which this @@ -947,43 +926,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } } - // /** - // * Handle asynchronous jLock() tasks. - // * @param {number} pFile - // * @param {number} lockType - // */ - // async #retryLock(pFile, lockType) { - // const file = this.mapIdToFile.get(pFile); - // try { - // switch (file.writeHint) { - // case 'reserved': - // case 'exclusive': - // if (file.useWriteAhead) { - // // Write-ahead transactions only need writeLock, not readLock. - // await file.writeLock.acquire('exclusive', file.timeout); - // file.writeAhead.isolateForWrite(); - // } else { - // // This transaction will write directly to the database, - // // i.e. not using write-ahead. Get exclusive access. - // await file.readLock.acquire('exclusive', file.timeout); - // await file.writeLock.acquire('exclusive'); - - // // Transfer everything in write-ahead to the OPFS file. - // await file.writeAhead.checkpoint('restart'); - // } - // break; - // default: - // // This transaction will only read. - // await file.readLock.acquire('shared', file.timeout); - // break; - // } - // file.retryResult = {}; - // } catch (e) { - // file.retryResult = e; - // return; - // } - // } - /** * Handle asynchronous jOpen() tasks. * @param {string} zName From b0601236fb6f0cc04acea3f89fecc761f74d91fa Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 23 Feb 2026 13:34:29 -0800 Subject: [PATCH 056/104] Implement WAL auto-checkpoint. --- src/examples/OPFSWriteAheadVFS.js | 6 ++---- src/examples/WriteAhead.js | 31 +++++++++++++++++++++++++++---- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 4a8ff44e..57129072 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -663,10 +663,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_OK; case 'wal_autocheckpoint': if (value !== null) { - const pageCount = parseInt(value); - if (pageCount > 0) { - file.writeAhead.options.autoCheckpointPages = pageCount; - } + const nPages = parseInt(value); + file.writeAhead.options.autoCheckpointPages = Math.max(nPages, 0); } break; case 'wal_checkpoint': diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 2b689e68..8fa8d60b 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -1,6 +1,6 @@ import { Lock } from './Lock.js'; -const DEFAULT_AUTOCHECKPOINT_PAGES = 1_000; +const DEFAULT_AUTOCHECKPOINT_PAGES = 1000; const DEFAULT_BACKSTOP_INTERVAL = 30_000; const SECTOR_SIZE = 4096; @@ -53,6 +53,7 @@ export class WriteAhead { /** @type {Map} */ #waOverlay = new Map(); /** @type {Map} */ #mapIdToTx = new Map(); /** @type {Map} */ #pendingTx = new Map(); + #mapIdToTxPageCount = 0; #broadcastChannel; /** @type {number} */ #backstopTimer; @@ -170,9 +171,14 @@ export class WriteAhead { if (this.#isolationState === 'write') { // Resume backstop after write isolation. this.#backstop(); + + // We need a place for a connection that only does write transactions + // to auto-checkpoint. This the best place because writing is + // complete. + this.#autoCheckpoint(); } else { // Catch up on new transactions that arrived while isolated. - this.#advanceTxId(); + this.#advanceTxId({ autoCheckpoint: true }); } this.#isolationState = null; } @@ -311,6 +317,7 @@ export class WriteAhead { #activateTx(tx) { // Transfer to the active collection of transactions. this.#mapIdToTx.set(tx.id, tx); + this.#mapIdToTxPageCount += tx.pages.size; // Add transaction pages to the write-ahead overlay. for (const [offset, pageEntry] of tx.pages) { @@ -324,7 +331,7 @@ export class WriteAhead { * last broadcast transaction. Optionally, also advance through any * additional transactions in the WAL file to be fully current. * - * @param {{readToCurrent?: boolean}} options + * @param {{readToCurrent?: boolean, autoCheckpoint?: boolean}} options */ #advanceTxId(options = {}) { let didAdvance = false; @@ -356,6 +363,21 @@ export class WriteAhead { if (didAdvance) { // Publish our new view txId. this.#updateTxIdLock(); + + if (options.autoCheckpoint) { + this.#autoCheckpoint(); + } + } + } + + #autoCheckpoint() { + // Perform an automatic checkpoint if enabled and needed. Automatic + // checkpoints are passive, so this will not change the WAL file + // usage or size. + if (this.options.autoCheckpointPages > 0 && + this.#mapIdToTxPageCount >= this.options.autoCheckpointPages) { + this.log?.(`%cauto-checkpoint`, 'background-color: lightgreen;'); + this.checkpoint('passive'); } } @@ -494,6 +516,7 @@ export class WriteAhead { // Remove transaction. this.#mapIdToTx.delete(tx.id); + this.#mapIdToTxPageCount -= tx.pages.size; } this.#updateTxIdLock(); } @@ -510,7 +533,7 @@ export class WriteAhead { this.#pendingTx.set(tx.id, tx); if (this.#isolationState === null) { // Not in an isolated state, so advance our view of the database. - this.#advanceTxId(); + this.#advanceTxId({ autoCheckpoint: true }); } } } else if (event.data.type === 'ckpt') { From 310394aa328e2ca6e40e04ec05afe374084cee3b Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 23 Feb 2026 14:28:13 -0800 Subject: [PATCH 057/104] Remove read lock from checkpoint. --- src/examples/OPFSWriteAheadVFS.js | 2 -- src/examples/WriteAhead.js | 42 ++++++++++++++++++------------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 57129072..d5fd3bd7 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -851,7 +851,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { async #pendingCheckpoint(file, mode) { try { if (mode !== 'passive') { - await file.readLock.acquire('exclusive', file.timeout); await file.writeLock.acquire('exclusive'); } @@ -862,7 +861,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } throw e; } finally { - file.readLock.release(); file.writeLock.release(); } } diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 8fa8d60b..d173689a 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -403,24 +403,8 @@ export class WriteAhead { // Full checkpoint, use the current WAL file txId. ckptId = this.#waFile.txId; - // Wait for all connections to reach this txId. Each connection - // acquires a shared lock whose name contains the database name, - // the minimum and maximum txId it has in mapIdToTx. We want all - // maximum txId values to be ckptId. - let pendingLockNames = []; - do { - // Wait for connections with lower maximum txIds. When a - // connection advances its txId, it will release its previous - // lock and acquire a new one. - await Promise.all( - pendingLockNames.map(name => navigator.locks.request(name, async () => {})) - ); - - // Refresh the list of locks with lower txIds. - pendingLockNames = (await this.#getTxIdLocks()) - .filter(value => value.maxTxId < ckptId) - .map(value => value.name); - } while (pendingLockNames.length > 0); + // Wait for all connections to reach this txId. + await this.#waitForTxIdLocks(value => value.maxTxId >= ckptId); this.log?.(`%c#checkpoint full txId ${ckptId}`, 'background-color: lightgreen;'); } else { // Not a full checkpoint, so find the lowest txId in use by any @@ -488,6 +472,9 @@ export class WriteAhead { } if (options.isRestart) { + // Wait for all connections to clear their overlay. + await this.#waitForTxIdLocks(value => value.minTxId > ckptId); + this.#waFile.reset(); } }); @@ -635,6 +622,25 @@ export class WriteAhead { } return null; } + + /** + * Wait for all txId locks that fail the provided predicate. + * @param {(lock: {name: string, minTxId: number, maxTxId: number}) => boolean} predicate + */ + async #waitForTxIdLocks(predicate) { + /** @type {string[]} */ let failingLockNames = []; + do { + // Wait for all connections that fail the predicate. + await Promise.all( + failingLockNames.map(name => navigator.locks.request(name, async () => {})) + ); + + // Refresh the list of failing locks. + failingLockNames = (await this.#getTxIdLocks()) + .filter(value => !predicate(value)) + .map(value => value.name); + } while (failingLockNames.length > 0); + } } class WriteAheadFile { From ecc3ffeb1a06d06fca4ebaf8d30925dea55c74e0 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Mon, 23 Feb 2026 14:46:16 -0800 Subject: [PATCH 058/104] Adjust durability with PRAGMA synchronous. --- src/examples/OPFSWriteAheadVFS.js | 30 ++++++++++++++++++++++++++++-- src/examples/WriteAhead.js | 8 ++++---- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index d5fd3bd7..3c719c63 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -27,6 +27,7 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * @property {LazyLock} [writeLock] * @property {'none'|'read'|'write'|'readwrite'} [useLazyLock] * @property {number} [timeout] + * @property {0|1|2|3} [synchronous] * * @property {WriteAhead} [writeAhead] */ @@ -160,6 +161,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.writeLock = new LazyLock(`${zName}#write`); file.useLazyLock = 'readwrite'; file.timeout = -1; + file.synchronous = 1; // NORMAL file.useWriteAhead = true; file.writeHint = null; } else if (flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { @@ -409,8 +411,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { if (file.useWriteAhead) { - // TODO: Track PRAGMA synchronous setting. - file.writeAhead.sync('normal'); + const durability = file.synchronous > 1 ? 'strict' : 'relaxed'; + file.writeAhead.sync({ durability }); } else { file.accessHandle.flush(); } @@ -654,6 +656,30 @@ export class OPFSWriteAheadVFS extends FacadeVFS { break; } break; + case 'synchronous': + if (value !== null) { + switch (value.toLowerCase()) { + case 'off': + case '0': + file.synchronous = 0; + break; + case 'normal': + case '1': + file.synchronous = 1; + break; + case 'full': + case '2': + file.synchronous = 2; + break; + case 'extra': + case '3': + file.synchronous = 3; + break; + default: + throw new Error(`unexpected synchronous value: ${value}`); + } + } + break; case 'vfs_trace': // This is a trace feature for debugging only. if (value !== null) { diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index d173689a..a605cf9d 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -265,10 +265,10 @@ export class WriteAhead { } /** - * @param {'normal'|'full'} mode + * @param {{durability: 'strict'|'relaxed'}} options */ - sync(mode) { - if (mode === 'full') { + sync(options) { + if (options.durability === 'strict') { this.#waFile.accessHandle.flush(); } } @@ -474,7 +474,7 @@ export class WriteAhead { if (options.isRestart) { // Wait for all connections to clear their overlay. await this.#waitForTxIdLocks(value => value.minTxId > ckptId); - + this.#waFile.reset(); } }); From f483d02ac095083a8d9d785a5d7227fe9ea4e466 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 24 Feb 2026 09:00:25 -0800 Subject: [PATCH 059/104] Flush database file only on full checkpoint. --- src/examples/WriteAhead.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index a605cf9d..d05d0a81 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -460,8 +460,11 @@ export class WriteAhead { } if (writtenOffsets.size > 0) { - // Ensure data is safely in the file. - this.#dbHandle.flush(); + if (ckptId == this.#waFile.txId) { + // Ensure data is safely in the file. + this.log?.(`%c#checkpoint flush database file`, 'background-color: lightgreen;'); + this.#dbHandle.flush(); + } // Notify other connections and ourselves of the checkpoint. this.#broadcastChannel.postMessage({ From ef89c417bfd0574fc9584d0de86f5e34c4ec4da4 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 6 Mar 2026 10:46:26 -0800 Subject: [PATCH 060/104] Tweak logging. --- src/examples/WriteAhead.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index d05d0a81..802fbbe0 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -193,11 +193,12 @@ export class WriteAhead { // write-ahead overlay. const pageEntry = this.#txActive?.pages.get(offset) ?? this.#waOverlay.get(offset); if (pageEntry) { - this.log?.(`%cread page at offset ${offset} from WAL ${pageEntry.waOffset}`, 'background-color: gold;'); if (pageEntry.pageData) { // Page data is cached. + this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waOffset} (cached)`, 'background-color: gold;'); return pageEntry.pageData; } + this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waOffset}`, 'background-color: gold;'); // Read the page from the WAL file. const buffer = new Uint8Array(pageEntry.pageSize); From a1f04296cd65276c2e9dbb5f3b5f90d891217f12 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 6 Mar 2026 17:30:42 -0800 Subject: [PATCH 061/104] Revise #retryOpen() in preparation for WAL2. --- src/examples/OPFSWriteAheadVFS.js | 109 ++++++++++++++---------------- src/examples/WriteAhead.js | 23 +++++-- 2 files changed, 69 insertions(+), 63 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 3c719c63..31ca8397 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -855,9 +855,14 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return `${dbName}-journal`; } - #getWriteAheadNameFromDbName(dbName) { + /** + * @param {string} dbName + * @param {number} i + * @returns {string} + */ + #getWriteAheadNameFromDbName(dbName, i) { // Our WAL file is not compatible with SQLite WAL, so use a distinct name. - return `${dbName}-waf`; + return `${dbName}-wa${i}`; } /** @@ -972,74 +977,64 @@ export class OPFSWriteAheadVFS extends FacadeVFS { dirHandle = await dirHandle.getDirectoryHandle(directoryName, { create }); } - // Open the main database OPFS file. We need to know whether the file - // was created or not so we know whether to remove any existing - // IndexedDB database with the same name. This will not be necessary - // if the write-ahead data is moved to OPFS entirely. - let created = false; - /** @type {FileSystemSyncAccessHandle} */ let accessHandle; - try { - const fileHandle = await dirHandle.getFileHandle(dbName); + const isNewDatabase = create && await (async function() { + try { + await dirHandle.getFileHandle(dbName); + return false; + } catch (e) { + if (e.name === 'NotFoundError') { + return true; + } + throw e; + } + })(); + + // Convenience function for opening access handles. + async function openFile( + /** @type {string} */ filename, + /** @type {FileSystemGetFileOptions} */ options) { + const fileHandle = await dirHandle.getFileHandle(filename, options); // @ts-ignore - accessHandle = await fileHandle.createSyncAccessHandle({ + const accessHandle = await fileHandle.createSyncAccessHandle({ mode: 'readwrite-unsafe' }); - } catch (e) { - if (e.name === 'NotFoundError' && create) { - const fileHandle = await dirHandle.getFileHandle(dbName, { create }); - // @ts-ignore - accessHandle = await fileHandle.createSyncAccessHandle({ - mode: 'readwrite-unsafe' - }); - created = true; - } else { - throw e; - } + onError.push(() => { + accessHandle.close(); + if (isNewDatabase) { + dirHandle.removeEntry(filename); + } + }); + return accessHandle; } - onError.push(() => { - accessHandle.close(); - if (created) { - dirHandle.removeEntry(dbName); - } - }); - // Pre-open the journal OPFS file here. - const journalName = this.#getJournalNameFromDbName(dbName); - const fileHandle = await dirHandle.getFileHandle(journalName, { create: true }); - // @ts-ignore - const journalHandle = await fileHandle.createSyncAccessHandle({ - mode: 'readwrite-unsafe' - }); - onError.push(() => { - journalHandle.close(); - if (created) { - dirHandle.removeEntry(journalName); + // Open the main database OPFS file. + const accessHandle = await openFile(dbName, { create }); + + // Pre-open the persistent journal OPFS file here. + const journalHandle = await openFile( + this.#getJournalNameFromDbName(dbName), + { create: true }); + + // Open WAL files. + // TODO: WAL2 + const waHandles = await Promise.all([0].map(async i => { + const waName = this.#getWriteAheadNameFromDbName(dbName, i); + const waHandle = await openFile(waName, { create: true }); + if (isNewDatabase) { + waHandle.truncate(0); } - }); + return waHandle; + })); - // Open the WAL file. - const waName = this.#getWriteAheadNameFromDbName(dbName); - const waFileHandle = await dirHandle.getFileHandle(waName, { create: true }); - // @ts-ignore - const waHandle = await waFileHandle.createSyncAccessHandle({ - mode: 'readwrite-unsafe' - }); - onError.push(() => { - waHandle.close(); - if (created) { - dirHandle.removeEntry(waName); - } - }); - // Create the write-ahead manager. const writeAhead = new WriteAhead( zName, accessHandle, - waHandle, - Object.assign({ create: created }, this.options)); + waHandles[0], + Object.assign({ create: isNewDatabase }, this.options)); await writeAhead.ready(); - file.retryResult = { accessHandle, waHandle, journalHandle, writeAhead }; + file.retryResult = { accessHandle, waHandle: waHandles[0], journalHandle, writeAhead }; }); } catch (e) { while (onError.length) { diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 802fbbe0..dfc925c6 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -10,6 +10,7 @@ const WAL_FRAME_BASE = SECTOR_SIZE + WAL_FILE_HEADER_SIZE; // first frame starts /** * @typedef PageEntry * @property {number} waOffset location in WAL file + * @property {number} waSalt1 location in WAL file * @property {number} pageSize * @property {Uint8Array} [pageData] */ @@ -198,12 +199,10 @@ export class WriteAhead { this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waOffset} (cached)`, 'background-color: gold;'); return pageEntry.pageData; } - this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waOffset}`, 'background-color: gold;'); // Read the page from the WAL file. - const buffer = new Uint8Array(pageEntry.pageSize); - this.#waFile.accessHandle.read(buffer, { at: pageEntry.waOffset }); - return buffer; + this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waOffset} (${pageEntry.waSalt1.toString(16)})`, 'background-color: gold;'); + return this.#waFile.fetchPage(pageEntry); } return null; } @@ -715,6 +714,16 @@ class WriteAheadFile { return false; } + /** + * @param {PageEntry} pageEntry + * @returns {Uint8Array} + */ + fetchPage(pageEntry) { + const pageData = new Uint8Array(pageEntry.pageSize); + this.accessHandle.read(pageData, { at: pageEntry.waOffset }); + return pageData; + } + *readAllTx() { while (true) { const tx = this.readTx(); @@ -760,7 +769,8 @@ class WriteAheadFile { frame.pageOffset, { pageSize: frame.pageData.byteLength, - waOffset: offset + WriteAheadFile.FRAME_HEADER_SIZE + waOffset: offset + WriteAheadFile.FRAME_HEADER_SIZE, + waSalt1: frame.salt1 }); offset += frame.byteLength; @@ -826,7 +836,8 @@ class WriteAheadFile { const pageEntry = { pageSize: pageData.byteLength, - waOffset: this.txInProgress.waOffsetEnd + WriteAheadFile.FRAME_HEADER_SIZE + waOffset: this.txInProgress.waOffsetEnd + WriteAheadFile.FRAME_HEADER_SIZE, + waSalt1: this.salt1 }; if (pageOffset === 0) { // This is page 1, which contains the database header. From cf305b09a23c47e263c628f5d747f62e3a661911 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 10 Mar 2026 09:15:23 -0700 Subject: [PATCH 062/104] Encode lock name with radix 36. --- src/examples/WriteAhead.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index dfc925c6..1eb8458c 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -604,9 +604,11 @@ export class WriteAhead { // key in mapIdToTx. If mapIdToTx is empty then we aren't reading // from the WAL at all - in this case we arbitrarily set minTxId to // invalid value maxTxId + 1. + // + // Use radix 36 to encode integer values to reduce the lock name length. const maxTxId = this.#waFile.txId; const minTxId = this.#mapIdToTx.keys().next().value ?? (maxTxId + 1); - return `${this.#zName}-txId<${minTxId}:${maxTxId}>`; + return `${this.#zName}-txId<${minTxId.toString(36)}:${maxTxId.toString(36)}>`; } /** @@ -614,13 +616,13 @@ export class WriteAhead { * @returns {{name: string, minTxId: number, maxTxId: number}} */ #decodeTxIdLockName(lockName) { - const match = lockName.match(/^(.*)-txId<(\d+):(\d+)>$/); + const match = lockName.match(/^(.*)-txId<([0-9a-z]+):([0-9a-z]+)>$/); if (match?.[1] === this.#zName) { // This txId lock is for this database. return { name: match[1], - minTxId: parseInt(match[2]), - maxTxId: parseInt(match[3]) + minTxId: parseInt(match[2], 36), + maxTxId: parseInt(match[3], 36) }; } return null; From 28f59bddc7a69ff450fbd28a0b6b2258ef578ff1 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 10 Mar 2026 11:39:12 -0700 Subject: [PATCH 063/104] Manage dual WAL file access handles. --- src/examples/OPFSWriteAheadVFS.js | 13 ++- src/examples/WriteAhead.js | 128 ++++++++++++++---------------- 2 files changed, 66 insertions(+), 75 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 31ca8397..61abc907 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -16,7 +16,7 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * Main database file properties: * @property {*} [retryResult] - * @property {FileSystemSyncAccessHandle} [waHandle] + * @property {FileSystemSyncAccessHandle[]} [waHandles] * @property {FileSystemSyncAccessHandle} [journalHandle] * * @property {boolean} [useWriteAhead] @@ -151,7 +151,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Initialize database file state. file.accessHandle = file.retryResult.accessHandle; file.journalHandle = file.retryResult.journalHandle; - file.waHandle = file.retryResult.waHandle; + file.waHandles = file.retryResult.waHandles; file.writeAhead = file.retryResult.writeAhead; file.retryResult = null; @@ -278,7 +278,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (file?.flags & VFS.SQLITE_OPEN_MAIN_DB) { file.writeAhead.close(); file.accessHandle.close(); - file.waHandle.close(); + file.waHandles.forEach(handle => handle.close()); this.mapPathToFile.delete(file?.zName); file.journalHandle.close(); @@ -1016,8 +1016,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { { create: true }); // Open WAL files. - // TODO: WAL2 - const waHandles = await Promise.all([0].map(async i => { + const waHandles = await Promise.all([0, 1].map(async i => { const waName = this.#getWriteAheadNameFromDbName(dbName, i); const waHandle = await openFile(waName, { create: true }); if (isNewDatabase) { @@ -1030,11 +1029,11 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const writeAhead = new WriteAhead( zName, accessHandle, - waHandles[0], + waHandles, Object.assign({ create: isNewDatabase }, this.options)); await writeAhead.ready(); - file.retryResult = { accessHandle, waHandle: waHandles[0], journalHandle, writeAhead }; + file.retryResult = { accessHandle, waHandles, journalHandle, writeAhead }; }); } catch (e) { while (onError.length) { diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 1eb8458c..89a1a664 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -62,13 +62,13 @@ export class WriteAhead { /** * @param {string} zName * @param {FileSystemSyncAccessHandle} dbHandle - * @param {FileSystemSyncAccessHandle} waHandle + * @param {FileSystemSyncAccessHandle[]} waHandles * @param {WriteAheadOptions} options */ - constructor(zName, dbHandle, waHandle, options) { + constructor(zName, dbHandle, waHandles, options) { this.#zName = zName; this.#dbHandle = dbHandle; - this.#waFile = new WriteAheadFile(waHandle); + this.#waFile = new WriteAheadFile(waHandles, { create: options.create }); this.options = Object.assign(this.options, options); // All the asynchronous initialization is done here. @@ -79,11 +79,6 @@ export class WriteAhead { }); // Load all the transactions from the WAL file. - if (this.options.create) { - this.#waFile.create(); - } - - this.#waFile.open(); for (const tx of this.#waFile.readAllTx()) { this.#activateTx(tx); } @@ -269,7 +264,7 @@ export class WriteAhead { */ sync(options) { if (options.durability === 'strict') { - this.#waFile.accessHandle.flush(); + this.#waFile.activeHandle.flush(); } } @@ -290,7 +285,7 @@ export class WriteAhead { await this.#checkpoint(options); if (mode === 'truncate') { - this.#waFile.accessHandle.truncate(this.#waFile.currentOffset); + this.#waFile.activeHandle.truncate(this.#waFile.activeOffset); this.log?.(`%ccheckpoint restart WAL file`, 'background-color: lightgreen;'); } } finally { @@ -307,7 +302,7 @@ export class WriteAhead { * @returns {number} */ getWriteAheadSize() { - return this.#waFile.currentOffset; + return this.#waFile.activeOffset; } /** @@ -417,7 +412,7 @@ export class WriteAhead { // Sync the WAL file. This ensures that if there is a crash after // part of the WAL has been copied, the uncopied part will still be // available afterwards. - this.#waFile.accessHandle.flush(); + this.#waFile.activeHandle.flush(); // Starting at ckptId and going backwards (earlier), write transaction // pages to the main database file. Do not overwrite a page written @@ -436,17 +431,8 @@ export class WriteAhead { for (const [offset, pageEntry] of tx.pages) { if (offset < dbFileSize && !writtenOffsets.has(offset)) { - let pageData = pageEntry.pageData; - if (!pageData) { - // Page data was not cached, so read it from the WAL file. - pageData = new Uint8Array(pageEntry.pageSize); - const nRead = this.#waFile.accessHandle.read( - pageData, - { at: pageEntry.waOffset }); - if (nRead !== pageData.byteLength) { - throw new Error('Checkpoint read failed'); - } - } + // Fetch the page data from the WAL file if not cached. + const pageData = pageEntry.pageData ?? this.#waFile.fetchPage(pageEntry); // Write the page to the database file. const nWritten = this.#dbHandle.write(pageData, { at: offset }); @@ -655,22 +641,27 @@ class WriteAheadFile { static FRAME_TYPE_PAGE = 0; static FRAME_TYPE_COMMIT = 1; - /** @type {FileSystemSyncAccessHandle} */ accessHandle; - /** @type {number} */ currentOffset; + /** @type {FileSystemSyncAccessHandle[]} */ accessHandles; + + /** @type {FileSystemSyncAccessHandle} */ activeHandle; + /** @type {{nextTxId: number, salt1: number, salt2: number}} */ activeHeader; + /** @type {number} */ activeOffset; txId = 0; - salt1 = 0; - salt2 = 0; /** @type {Transaction} */ txInProgress = null; - constructor(accessHandle) { - this.accessHandle = accessHandle; - } + /** + * @param {FileSystemSyncAccessHandle[]} accessHandles + */ + constructor(accessHandles, options) { + this.accessHandles = accessHandles; - create() { - this.accessHandle.truncate(0); - this.#writeFileHeader(); + if (options.create) { + this.activeHandle = accessHandles[0]; + this.#writeFileHeader(-1); + } + this.open(); } open() { @@ -681,21 +672,19 @@ class WriteAheadFile { .filter(h => h) .sort((a, b) => b.nextTxId - a.nextTxId)[0]; - this.currentOffset = WAL_FRAME_BASE; + this.activeOffset = WAL_FRAME_BASE; + this.activeHeader = fileHeader; this.txId = fileHeader.nextTxId - 1; - this.salt1 = fileHeader.salt1; - this.salt2 = fileHeader.salt2; } reset(options = { truncate: true }) { const fileHeader = this.#writeFileHeader(); if (options.truncate) { - this.accessHandle.truncate(WAL_FRAME_BASE); + this.activeHandle.truncate(WAL_FRAME_BASE); } - this.currentOffset = WAL_FRAME_BASE; - this.salt1 = fileHeader.salt1; - this.salt2 = fileHeader.salt2; + this.activeOffset = WAL_FRAME_BASE; + this.activeHeader = fileHeader; } checkReset() { @@ -703,14 +692,13 @@ class WriteAheadFile { // Look in the slot that is not current, which will be at offset 0 // or SECTOR_SIZE depending on the current salt1 value (salt1 is // incremented on each new header). - const headerOffset = (this.salt1 & 0x1) ? 0 : SECTOR_SIZE; + const headerOffset = (this.activeHeader.salt1 & 0x1) ? 0 : SECTOR_SIZE; const fileHeader = this.#readFileHeader(headerOffset); if (fileHeader?.nextTxId > this.txId && - fileHeader.salt1 === ((this.salt1 + 1) | 0)) { + fileHeader.salt1 === ((this.activeHeader.salt1 + 1) | 0)) { // The WAL file has been reset. - this.currentOffset = WAL_FRAME_BASE; - this.salt1 = fileHeader.salt1; - this.salt2 = fileHeader.salt2; + this.activeOffset = WAL_FRAME_BASE; + this.activeHeader = fileHeader; return true; } return false; @@ -722,7 +710,11 @@ class WriteAheadFile { */ fetchPage(pageEntry) { const pageData = new Uint8Array(pageEntry.pageSize); - this.accessHandle.read(pageData, { at: pageEntry.waOffset }); + const nBytesRead = this.activeHandle.read(pageData, { at: pageEntry.waOffset }); + + if (nBytesRead !== pageEntry.pageSize) { + throw new Error(`Short WAL read: expected ${pageEntry.pageSize} bytes, got ${nBytesRead}`); + } return pageData; } @@ -739,7 +731,7 @@ class WriteAheadFile { */ readTx() { // Read the next complete transaction or return null. - let offset = this.currentOffset; + let offset = this.activeOffset; /** @type {Transaction?} */ let tx = null; while (true) { const frame = this.#readFrame(offset); @@ -748,11 +740,11 @@ class WriteAheadFile { if (frame.frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { // Update the instance state. this.txId += 1; - this.currentOffset = offset + frame.byteLength; + this.activeOffset = offset + frame.byteLength; tx.id = this.txId; tx.dbFileSize = frame.dbFileSize; - tx.waOffsetEnd = this.currentOffset; + tx.waOffsetEnd = this.activeOffset; return tx; } @@ -788,7 +780,7 @@ class WriteAheadFile { */ skipTx(txId, offset) { this.txId = txId; - this.currentOffset = offset; + this.activeOffset = offset; } /** @@ -802,7 +794,7 @@ class WriteAheadFile { pages: new Map(), dbFileSize: 0, dbPageSize: 0, - waOffsetEnd: this.currentOffset + waOffsetEnd: this.activeOffset }; return this.txInProgress; } @@ -818,8 +810,8 @@ class WriteAheadFile { headerView.setUint8(0, WriteAheadFile.FRAME_TYPE_PAGE); headerView.setUint16(2, pageData.byteLength === 65536 ? 1 : pageData.byteLength); headerView.setBigUint64(8, BigInt(pageOffset)); - headerView.setUint32(16, this.salt1); - headerView.setUint32(20, this.salt2); + headerView.setUint32(16, this.activeHeader.salt1); + headerView.setUint32(20, this.activeHeader.salt2); const checksum = new Checksum(); checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); @@ -828,8 +820,8 @@ class WriteAheadFile { headerView.setUint32(28, checksum.s1); const bytesWritten = - this.accessHandle.write(headerView, { at: this.txInProgress.waOffsetEnd }) + - this.accessHandle.write(pageData, { + this.activeHandle.write(headerView, { at: this.txInProgress.waOffsetEnd }) + + this.activeHandle.write(pageData, { at: this.txInProgress.waOffsetEnd + WriteAheadFile.FRAME_HEADER_SIZE }); if (bytesWritten !== headerView.byteLength + pageData.byteLength) { @@ -839,7 +831,7 @@ class WriteAheadFile { const pageEntry = { pageSize: pageData.byteLength, waOffset: this.txInProgress.waOffsetEnd + WriteAheadFile.FRAME_HEADER_SIZE, - waSalt1: this.salt1 + waSalt1: this.activeHeader.salt1 }; if (pageOffset === 0) { // This is page 1, which contains the database header. @@ -866,15 +858,15 @@ class WriteAheadFile { const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); headerView.setUint8(0, WriteAheadFile.FRAME_TYPE_COMMIT); headerView.setBigUint64(8, BigInt(this.txInProgress.dbFileSize)); - headerView.setUint32(16, this.salt1); - headerView.setUint32(20, this.salt2); + headerView.setUint32(16, this.activeHeader.salt1); + headerView.setUint32(20, this.activeHeader.salt2); const checksum = new Checksum(); checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); headerView.setUint32(24, checksum.s0); headerView.setUint32(28, checksum.s1); - const bytesWritten = this.accessHandle.write(headerView, { + const bytesWritten = this.activeHandle.write(headerView, { at: this.txInProgress.waOffsetEnd }); if (bytesWritten !== headerView.byteLength) { @@ -884,7 +876,7 @@ class WriteAheadFile { const tx = this.txInProgress; this.txInProgress = null; - this.currentOffset = tx.waOffsetEnd; + this.activeOffset = tx.waOffsetEnd; this.txId = tx.id; return tx; } @@ -895,7 +887,7 @@ class WriteAheadFile { #readFileHeader(offset) { const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FILE_HEADER_SIZE)); - if (this.accessHandle.read(headerView, { at: offset }) !== headerView.byteLength) { + if (this.activeHandle.read(headerView, { at: offset }) !== headerView.byteLength) { return null; } @@ -916,7 +908,7 @@ class WriteAheadFile { #readFrame(offset) { const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); - if (this.accessHandle.read(headerView, { at: offset }) !== headerView.byteLength) { + if (this.activeHandle.read(headerView, { at: offset }) !== headerView.byteLength) { // EOF, not an error. return null; } @@ -924,7 +916,7 @@ class WriteAheadFile { // Verify the frame header salt values match the file header. const frameSalt1 = headerView.getUint32(16); const frameSalt2 = headerView.getUint32(20); - if (frameSalt1 !== this.salt1 || frameSalt2 !== this.salt2) { + if (frameSalt1 !== this.activeHeader.salt1 || frameSalt2 !== this.activeHeader.salt2) { // Not necessarily an error, could be from a restart without // truncation. return null; @@ -934,7 +926,7 @@ class WriteAheadFile { /** @type {Uint8Array} */ let payloadData; if (payloadSize) { payloadData = new Uint8Array(payloadSize); - const payloadBytesRead = this.accessHandle.read( + const payloadBytesRead = this.activeHandle.read( payloadData, { at: offset + WriteAheadFile.FRAME_HEADER_SIZE }); if (payloadBytesRead !== payloadSize ) return null; @@ -974,13 +966,13 @@ class WriteAheadFile { throw new Error(`Invalid frame type: ${frameType}`); } - #writeFileHeader() { + #writeFileHeader(prevSalt1 = this.activeHeader.salt1) { // Derive new values from the previous values. Note that salt1 always // flips between even and odd so successive headers are written to // alternating slots. If the write fails, the file remains in a valid // state. const nextTxId = this.txId + 1; - const salt1 = (this.salt1 + 1) | 0; + const salt1 = (prevSalt1 + 1) | 0; const salt2 = Math.floor(Math.random() * 0xffffffff); const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FILE_HEADER_SIZE)); headerView.setUint32(0, WriteAheadFile.MAGIC); @@ -996,12 +988,12 @@ class WriteAheadFile { // A header with an even salt1 is written at offset 0, and with an // odd salt1 at SECTOR_SIZE. const headerOffset = (salt1 & 0x1) ? SECTOR_SIZE : 0; - const bytesWritten = this.accessHandle.write(headerView, { at: headerOffset }); + const bytesWritten = this.activeHandle.write(headerView, { at: headerOffset }); if (bytesWritten !== headerView.byteLength) { throw new Error('write failed'); } - this.accessHandle.flush(); + this.activeHandle.flush(); return { nextTxId, salt1, salt2 }; } } From 159f3228d93b52369a2ea5501960ccf2f9aa2c9d Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 10 Mar 2026 16:06:47 -0700 Subject: [PATCH 064/104] Implement WAL2. --- src/examples/OPFSWriteAheadVFS.js | 16 +- src/examples/WriteAhead.js | 414 +++++++++++++++++------------- 2 files changed, 247 insertions(+), 183 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 61abc907..5a77c38e 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -644,6 +644,12 @@ export class OPFSWriteAheadVFS extends FacadeVFS { pArg.setUint32(0, ptr, true); } return VFS.SQLITE_OK; + case 'journal_size_limit': + if (value !== null) { + const nPages = parseInt(value); + file.writeAhead.options.journalSizeLimit = nPages; + } + break; case 'locking_mode': // Track SQLite locking mode. We will use write-ahead only in // normal locking mode. @@ -689,8 +695,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return VFS.SQLITE_OK; case 'wal_autocheckpoint': if (value !== null) { - const nPages = parseInt(value); - file.writeAhead.options.autoCheckpointPages = Math.max(nPages, 0); + file.writeAhead.options.autoCheckpoint = parseInt(value); } break; case 'wal_checkpoint': @@ -703,7 +708,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (file.lockState !== VFS.SQLITE_LOCK_NONE) { throw new Error('invalid while database is locked'); } - this._module.pendingOps.push(this.#pendingCheckpoint(file, checkpointMode)); break; case 'noop': @@ -1026,11 +1030,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { })); // Create the write-ahead manager. - const writeAhead = new WriteAhead( - zName, - accessHandle, - waHandles, - Object.assign({ create: isNewDatabase }, this.options)); + const writeAhead = new WriteAhead(zName, accessHandle, waHandles); await writeAhead.ready(); file.retryResult = { accessHandle, waHandles, journalHandle, writeAhead }; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 89a1a664..29c3c68e 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -1,16 +1,12 @@ import { Lock } from './Lock.js'; -const DEFAULT_AUTOCHECKPOINT_PAGES = 1000; +const DEFAULT_JOURNAL_SIZE_LIMIT = 5; const DEFAULT_BACKSTOP_INTERVAL = 30_000; -const SECTOR_SIZE = 4096; -const WAL_FILE_HEADER_SIZE = 32; -const WAL_FRAME_BASE = SECTOR_SIZE + WAL_FILE_HEADER_SIZE; // first frame starts at this offset - /** * @typedef PageEntry * @property {number} waOffset location in WAL file - * @property {number} waSalt1 location in WAL file + * @property {number} waSalt1 WAL2 file identifier * @property {number} pageSize * @property {Uint8Array} [pageData] */ @@ -21,22 +17,23 @@ const WAL_FRAME_BASE = SECTOR_SIZE + WAL_FILE_HEADER_SIZE; // first frame starts * @property {Map} pages address to page data mapping * @property {number} dbFileSize * @property {number} dbPageSize + * @property {number} waSalt1 WAL2 file identifier * @property {number} waOffsetEnd */ /** * @typedef WriteAheadOptions - * @property {boolean} [create=false] true if database is being created - * @property {number} [autoCheckpointPages] + * @property {number} [autoCheckpoint] * @property {number} [backstopInterval] + * @property {number} [journalSizeLimit] */ export class WriteAhead { log = null; /** @type {WriteAheadOptions} */ options = { - create: false, - autoCheckpointPages: DEFAULT_AUTOCHECKPOINT_PAGES, + autoCheckpoint: 1, backstopInterval: DEFAULT_BACKSTOP_INTERVAL, + journalSizeLimit: DEFAULT_JOURNAL_SIZE_LIMIT, }; #zName; @@ -56,7 +53,7 @@ export class WriteAhead { /** @type {Map} */ #pendingTx = new Map(); #mapIdToTxPageCount = 0; - #broadcastChannel; + /** @type {BroadcastChannel} */ #broadcastChannel; /** @type {number} */ #backstopTimer; /** @@ -65,10 +62,10 @@ export class WriteAhead { * @param {FileSystemSyncAccessHandle[]} waHandles * @param {WriteAheadOptions} options */ - constructor(zName, dbHandle, waHandles, options) { + constructor(zName, dbHandle, waHandles, options = {}) { this.#zName = zName; this.#dbHandle = dbHandle; - this.#waFile = new WriteAheadFile(waHandles, { create: options.create }); + this.#waFile = new WriteAheadFile(waHandles); this.options = Object.assign(this.options, options); // All the asynchronous initialization is done here. @@ -125,15 +122,6 @@ export class WriteAhead { throw new Error('Already in isolated state'); } this.#isolationState = 'read'; - - if (this.#waFile.checkReset()) { - // The WAL file has been restarted after a full checkpoint. Our - // view must be at the final transaction before the checkpoint for - // that to have happened. The previous overlay is now stale. In - // case we haven't received the checkpoint broadcast, make sure - // the overlay is cleared. - this.#handleCheckpoint(this.#waFile.txId); - } } /** @@ -150,15 +138,6 @@ export class WriteAhead { clearTimeout(this.#backstopTimer); this.#backstopTimer = null; - if (this.#waFile.checkReset()) { - // The WAL file has been restarted after a full checkpoint. Our - // view must be at the final transaction before the checkpoint for - // that to have happened. The previous overlay is now stale. In - // case we haven't received the checkpoint broadcast, make sure - // the overlay is cleared. - this.#handleCheckpoint(this.#waFile.txId); - } - // A writer needs all previous transactions assimilated. this.#advanceTxId({ readToCurrent: true }); } @@ -191,12 +170,12 @@ export class WriteAhead { if (pageEntry) { if (pageEntry.pageData) { // Page data is cached. - this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waOffset} (cached)`, 'background-color: gold;'); + this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waSalt1 & 1}:${pageEntry.waOffset} (cached)`, 'background-color: gold;'); return pageEntry.pageData; } // Read the page from the WAL file. - this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waOffset} (${pageEntry.waSalt1.toString(16)})`, 'background-color: gold;'); + this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waSalt1 & 1}:${pageEntry.waOffset}`, 'background-color: gold;'); return this.#waFile.fetchPage(pageEntry); } return null; @@ -212,11 +191,20 @@ export class WriteAhead { } if (!this.#txActive) { - // There is no active transaction so create one. + // There is no active transaction so we need to create one. But + // first check whether to swap WAL files. + const nPageThreshold = this.options.journalSizeLimit >= 0 ? + this.options.journalSizeLimit : + DEFAULT_JOURNAL_SIZE_LIMIT; + if (this.#mapIdToTxPageCount >= nPageThreshold && this.#waFile.isInactiveFileEmpty()) { + this.log?.(`%cchange WAL file at ${this.#mapIdToTxPageCount} pages`, 'background-color: lightskyblue;'); + this.#waFile.swapActiveFile(); + } + this.#txActive = this.#waFile.beginTx(); } const waOffset = this.#waFile.writePage(offset, data.slice()); - this.log?.(`%c#write page at ${offset} to WAL ${waOffset}`, 'background-color: lightskyblue;'); + this.log?.(`%cwrite page at ${offset} to WAL ${this.#waFile.activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); } /** @@ -250,7 +238,6 @@ export class WriteAhead { const payload = { type: 'tx', tx: this.#txActive }; this.#broadcastChannel.postMessage(payload); this.#txActive = null; - } rollback() { @@ -264,7 +251,7 @@ export class WriteAhead { */ sync(options) { if (options.durability === 'strict') { - this.#waFile.activeHandle.flush(); + this.#waFile.flushInactiveFile(); } } @@ -278,16 +265,7 @@ export class WriteAhead { this.isolateForWrite(); } try { - const options = { - isRestart: mode !== 'passive', - isRequired: mode !== 'passive' - }; - await this.#checkpoint(options); - - if (mode === 'truncate') { - this.#waFile.activeHandle.truncate(this.#waFile.activeOffset); - this.log?.(`%ccheckpoint restart WAL file`, 'background-color: lightgreen;'); - } + await this.#checkpoint({ isPassive: mode === 'passive' }); } finally { if (mode !== 'passive') { this.rejoin(); @@ -296,13 +274,14 @@ export class WriteAhead { } /** - * Return the known usage size of the write-ahead file. Note that the - * actual file size may be larger than reported if this connection is - * not current or if the file has obsolete content past the current point. + * Return the approximate number of write-ahead pages. This is the + * sum of the number of unique page indices for each transaction, + * so it can be fewer than the number of pages if any transaction + * contains multiple frames for the same page. * @returns {number} */ getWriteAheadSize() { - return this.#waFile.activeOffset; + return this.#mapIdToTxPageCount; } /** @@ -336,10 +315,14 @@ export class WriteAhead { const nextTxId = this.#waFile.txId + 1; let tx; if (this.#pendingTx.has(nextTxId)) { + // This transaction arrived via message. tx = this.#pendingTx.get(nextTxId); this.#pendingTx.delete(tx.id); - this.#waFile.skipTx(tx.id, tx.waOffsetEnd); + + // Move the WAL file offset past this transaction. + this.#waFile.skipTx(tx); } else { + // Read the transaction from the WAL file. tx = this.#waFile.readTx(); } @@ -366,65 +349,61 @@ export class WriteAhead { } #autoCheckpoint() { - // Perform an automatic checkpoint if enabled and needed. Automatic - // checkpoints are passive, so this will not change the WAL file - // usage or size. - if (this.options.autoCheckpointPages > 0 && - this.#mapIdToTxPageCount >= this.options.autoCheckpointPages) { - this.log?.(`%cauto-checkpoint`, 'background-color: lightgreen;'); - this.checkpoint('passive'); + if (this.options.autoCheckpoint > 0) { + this.#checkpoint({ isPassive: true }); } } /** * Move pages from write-ahead to main database file. * - * @param {{isRestart?: boolean, isRequired?: boolean}} options + * @param {{isPassive: boolean}} options */ - async #checkpoint(options = {}) { - // By default, checkpointing is abandoned if another connection is - // already checkpointing. With the isRequired option, a checkpoint - // is always performed. This is necessary for leaving write-ahead - // mode or a user-requested checkpoint. + async #checkpoint(options = { isPassive: true }) { + // Passive checkpointing is abandoned if another connection is + // already checkpointing. const lockOptions = { - ifAvailable: !options.isRequired, + ifAvailable: options.isPassive, }; await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async lock => { - if (!lock) return null; + if (!lock) return; - /** @type {number} */ let ckptId; - if (options.isRestart) { - // Full checkpoint, use the current WAL file txId. - ckptId = this.#waFile.txId; + if (this.#waFile.isInactiveFileEmpty()) { + // Checkpoint is unnecessary. + return; + } - // Wait for all connections to reach this txId. - await this.#waitForTxIdLocks(value => value.maxTxId >= ckptId); - this.log?.(`%c#checkpoint full txId ${ckptId}`, 'background-color: lightgreen;'); - } else { - // Not a full checkpoint, so find the lowest txId in use by any - // connection. - ckptId = (await this.#getTxIdLocks()) + let ckptId = this.#waFile.getActiveFileStartingTxId() - 1; + if (options.isPassive) { + // Scan the txId locks to find the oldest txId. + const busyTxId = (await this.#getTxIdLocks()) .reduce((min, value) => Math.min(min, value.maxTxId), this.#waFile.txId); - this.log?.(`%c#checkpoint partial txId ${ckptId}`, 'background-color: lightgreen;'); + + if (busyTxId < ckptId) { + // The inactive WAL file is still being used. + return; + } + } else { + // Wait for all connections to reach the current txId. + await this.#waitForTxIdLocks(value => value.maxTxId >= this.#waFile.txId); + ckptId = this.#waFile.txId; } + this.log?.(`%ccheckpoint through txId ${ckptId}`, 'background-color: lightgreen;'); // Sync the WAL file. This ensures that if there is a crash after // part of the WAL has been copied, the uncopied part will still be // available afterwards. - this.#waFile.activeHandle.flush(); + this.#waFile.flushInactiveFile(); - // Starting at ckptId and going backwards (earlier), write transaction - // pages to the main database file. Do not overwrite a page written - // by a later transaction. + // Starting at ckptId and going backwards (higher to lower txId), + // write transaction pages to the main database file. Do not overwrite + // a page written by a more recent transaction. const writtenOffsets = new Set(); let dbFileSize = 0; - let tx = /** @type {Transaction} */ ({ id: ckptId + 1 }); - while (tx = this.#mapIdToTx.get(tx.id - 1)) { - if (tx.id === ckptId) { - // Set the file size from the latest transaction. This may be - // unnecessary as SQLite is not known to reduce the database size - // except with VACUUM. + for (let tx = this.#mapIdToTx.get(ckptId); tx; tx = this.#mapIdToTx.get(tx.id - 1)) { + if (tx.id === ckptId && dbFileSize !== tx.dbFileSize) { + // Set the file size from the latest transaction. dbFileSize = tx.dbFileSize; this.#dbHandle.truncate(dbFileSize); } @@ -440,32 +419,31 @@ export class WriteAhead { throw new Error('Checkpoint write failed'); } writtenOffsets.add(offset); - this.log?.(`%c#checkpoint wrote txId ${tx.id} page at ${offset} to database`, 'background-color: lightgreen;'); + this.log?.(`%ccheckpoint wrote txId ${tx.id} page at ${offset} to database`, 'background-color: lightgreen;'); } } } - if (writtenOffsets.size > 0) { - if (ckptId == this.#waFile.txId) { - // Ensure data is safely in the file. - this.log?.(`%c#checkpoint flush database file`, 'background-color: lightgreen;'); - this.#dbHandle.flush(); - } + // Ensure that database writes are durable. + this.log?.(`%ccheckpoint flush database file`, 'background-color: lightgreen;'); + this.#dbHandle.flush(); - // Notify other connections and ourselves of the checkpoint. - this.#broadcastChannel.postMessage({ - type: 'ckpt', - ckptId, - }); - this.#handleCheckpoint(ckptId); - } + // Notify other connections and ourselves of the checkpoint. + this.#broadcastChannel.postMessage({ + type: 'ckpt', + ckptId, + }); + this.#handleCheckpoint(ckptId); - if (options.isRestart) { - // Wait for all connections to clear their overlay. - await this.#waitForTxIdLocks(value => value.minTxId > ckptId); + // Wait for all connections to update their overlay. + this.log?.(`%ccheckpoint waiting for connection updates`, 'background-color: lightgreen;'); + await this.#waitForTxIdLocks(value => value.minTxId > ckptId); - this.#waFile.reset(); - } + // Truncate the inactive WAL file. This prevents new connections from + // unnecessarily reading checkpointed data, and allows writers to make + // it active when their conditions are met. + this.#waFile.truncateInactiveFile(); + this.log?.(`%ccheckpoint complete`, 'background-color: lightgreen;'); }); } @@ -475,16 +453,16 @@ export class WriteAhead { * @param {number} ckptId */ #handleCheckpoint(ckptId) { - this.log?.(`%c#handleCheckpoint to txId ${ckptId}`, 'background-color: lightgreen;'); + this.log?.(`%capply checkpoint through txId ${ckptId}`, 'background-color: lightgreen;'); // Loop backwards from ckptId. let tx = /** @type {Transaction} */ ({ id: ckptId + 1 }); while (tx = this.#mapIdToTx.get(tx.id - 1)) { // Remove pages from write-ahead overlay. - for (const [offset, page] of tx.pages.entries()) { + for (const [offset, pageEntry] of tx.pages.entries()) { // Be sure not to remove a newer version of the page. - const overlayPage = this.#waOverlay.get(offset); - if (overlayPage === page) { + const overlayEntry = this.#waOverlay.get(offset); + if (overlayEntry === pageEntry) { this.log?.(`%cremove txId ${tx.id} page at offset ${offset}`, 'background-color: lightgreen;'); this.#waOverlay.delete(offset); } @@ -532,6 +510,9 @@ export class WriteAhead { if (this.#waFile.txId > oldTxId) { this.log?.(`%cbackstop txId ${oldTxId} -> ${this.#waFile.txId}`, 'background-color: lightyellow;'); } + } else if (this.#isolationState === 'read') { + // TODO: Peek to see if there may be new transactions. + // Check txId locks or read the next frame header. } } } catch (e) { @@ -640,6 +621,7 @@ class WriteAheadFile { static FRAME_HEADER_SIZE = 32; static FRAME_TYPE_PAGE = 0; static FRAME_TYPE_COMMIT = 1; + static FRAME_TYPE_END = 2; /** @type {FileSystemSyncAccessHandle[]} */ accessHandles; @@ -654,63 +636,61 @@ class WriteAheadFile { /** * @param {FileSystemSyncAccessHandle[]} accessHandles */ - constructor(accessHandles, options) { + constructor(accessHandles) { this.accessHandles = accessHandles; - if (options.create) { - this.activeHandle = accessHandles[0]; - this.#writeFileHeader(-1); - } - this.open(); - } - - open() { // Read file headers from both header slots and use the one with the - // higher nextTxId. - const fileHeader = [0, SECTOR_SIZE] - .map(offset => this.#readFileHeader(offset)) + // lower nextTxId. If neither header is valid, create a new header. + const fileHeader = this.accessHandles + .map(handle => this.#readFileHeader(handle)) .filter(h => h) - .sort((a, b) => b.nextTxId - a.nextTxId)[0]; + .sort((a, b) => a.nextTxId - b.nextTxId)[0] + ?? this.#writeFileHeader(-1); - this.activeOffset = WAL_FRAME_BASE; this.activeHeader = fileHeader; + this.activeHandle = this.accessHandles[fileHeader.salt1 & 1]; + this.activeOffset = WriteAheadFile.FILE_HEADER_SIZE; this.txId = fileHeader.nextTxId - 1; } - reset(options = { truncate: true }) { - const fileHeader = this.#writeFileHeader(); - if (options.truncate) { - this.activeHandle.truncate(WAL_FRAME_BASE); - } - - this.activeOffset = WAL_FRAME_BASE; - this.activeHeader = fileHeader; - } - - checkReset() { - // Check for a new header. There are two header slots in the file. - // Look in the slot that is not current, which will be at offset 0 - // or SECTOR_SIZE depending on the current salt1 value (salt1 is - // incremented on each new header). - const headerOffset = (this.activeHeader.salt1 & 0x1) ? 0 : SECTOR_SIZE; - const fileHeader = this.#readFileHeader(headerOffset); - if (fileHeader?.nextTxId > this.txId && - fileHeader.salt1 === ((this.activeHeader.salt1 + 1) | 0)) { - // The WAL file has been reset. - this.activeOffset = WAL_FRAME_BASE; - this.activeHeader = fileHeader; - return true; - } - return false; - } + // reset(options = { truncate: true }) { + // const fileHeader = this.#writeFileHeader(); + // if (options.truncate) { + // this.activeHandle.truncate(WAL_FRAME_BASE); + // } + + // this.activeOffset = WAL_FRAME_BASE; + // this.activeHeader = fileHeader; + // } + + // checkReset() { + // // Check for a new header. There are two header slots in the file. + // // Look in the slot that is not current, which will be at offset 0 + // // or SECTOR_SIZE depending on the current salt1 value (salt1 is + // // incremented on each new header). + // const headerOffset = (this.activeHeader.salt1 & 0x1) ? 0 : SECTOR_SIZE; + // const fileHeader = this.#readFileHeader(headerOffset); + // if (fileHeader?.nextTxId > this.txId && + // fileHeader.salt1 === ((this.activeHeader.salt1 + 1) | 0)) { + // // The WAL file has been reset. + // this.activeOffset = WAL_FRAME_BASE; + // this.activeHeader = fileHeader; + // return true; + // } + // return false; + // } /** * @param {PageEntry} pageEntry * @returns {Uint8Array} */ fetchPage(pageEntry) { + // Get the appropriate access handle based on salt parity. + const accessHandle = this.accessHandles[pageEntry.waSalt1 & 1]; + + // Read the page. const pageData = new Uint8Array(pageEntry.pageSize); - const nBytesRead = this.activeHandle.read(pageData, { at: pageEntry.waOffset }); + const nBytesRead = accessHandle.read(pageData, { at: pageEntry.waOffset }); if (nBytesRead !== pageEntry.pageSize) { throw new Error(`Short WAL read: expected ${pageEntry.pageSize} bytes, got ${nBytesRead}`); @@ -737,6 +717,14 @@ class WriteAheadFile { const frame = this.#readFrame(offset); if (!frame) return null; + if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { + // No more transactions on the current WAL file. Switch to the + // other file. + this.#changeActive(); + offset = this.activeOffset; + continue; + } + if (frame.frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { // Update the instance state. this.txId += 1; @@ -755,6 +743,7 @@ class WriteAheadFile { pages: new Map(), dbFileSize: 0, // placeholder dbPageSize: frame.pageData.byteLength, + waSalt1: frame.salt1, waOffsetEnd: 0 // placeholder }; } @@ -775,12 +764,19 @@ class WriteAheadFile { * This method is called when transaction(s) have been received by other * means than readTx(), e.g. via BroadcastChannel. * - * @param {number} txId - * @param {number} offset + * @param {Transaction} tx */ - skipTx(txId, offset) { - this.txId = txId; - this.activeOffset = offset; + skipTx(tx) { + if (tx.waSalt1 !== this.activeHeader.salt1) { + // This transaction is on the other WAL file. + this.#changeActive(); + if (this.activeHeader?.salt1 !== tx.waSalt1) { + throw new Error('WAL file salt mismatch'); + } + } + + this.txId = tx.id; + this.activeOffset = tx.waOffsetEnd; } /** @@ -794,6 +790,7 @@ class WriteAheadFile { pages: new Map(), dbFileSize: 0, dbPageSize: 0, + waSalt1: this.activeHeader.salt1, waOffsetEnd: this.activeOffset }; return this.txInProgress; @@ -885,9 +882,76 @@ class WriteAheadFile { this.txInProgress = null; } - #readFileHeader(offset) { + /** + * Switch the active WAL file prior to writing the next transaction. + */ + swapActiveFile() { + // Write an end frame to terminate the currently active WAL file. + const frameView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); + frameView.setUint8(0, WriteAheadFile.FRAME_TYPE_END); + frameView.setUint32(16, this.activeHeader.salt1); + frameView.setUint32(20, this.activeHeader.salt2); + + const checksum = new Checksum(); + checksum.update(new Uint8Array(frameView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); + frameView.setUint32(24, checksum.s0); + frameView.setUint32(28, checksum.s1); + + const bytesWritten = + this.activeHandle.write(frameView, { at: this.activeOffset }); + if (bytesWritten !== frameView.byteLength) { + throw new Error('write failed'); + } + + // Initialize the other WAL file and make it active. + this.activeHeader = this.#writeFileHeader(); + this.activeHandle = this.#getInactiveHandle(); + this.activeOffset = WriteAheadFile.FRAME_HEADER_SIZE; + } + + getActiveFileStartingTxId() { + return this.activeHeader.nextTxId; + } + + isInactiveFileEmpty() { + const accessHandle = this.#getInactiveHandle(); + return accessHandle.getSize() === 0; + } + + flushInactiveFile() { + const accessHandle = this.#getInactiveHandle(); + accessHandle.flush(); + } + + truncateInactiveFile() { + const accessHandle = this.#getInactiveHandle(); + accessHandle.truncate(0); + } + + #changeActive() { + const accessHandle = this.#getInactiveHandle(); + const fileHeader = this.#readFileHeader(accessHandle); + if (!fileHeader) { + throw new Error('invalid WAL file'); + } + + this.activeHandle = accessHandle; + this.activeHeader = fileHeader; + this.activeOffset = WriteAheadFile.FRAME_HEADER_SIZE; + } + + #getInactiveHandle() { + return this.activeHandle !== this.accessHandles[0] ? + this.accessHandles[0] : + this.accessHandles[1]; + } + + /** + * @param {FileSystemSyncAccessHandle} accessHandle + */ + #readFileHeader(accessHandle) { const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FILE_HEADER_SIZE)); - if (this.activeHandle.read(headerView, { at: offset }) !== headerView.byteLength) { + if (accessHandle.read(headerView, { at: 0 }) !== headerView.byteLength) { return null; } @@ -906,6 +970,9 @@ class WriteAheadFile { } } + /** + * @param {number} offset + */ #readFrame(offset) { const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); if (this.activeHandle.read(headerView, { at: offset }) !== headerView.byteLength) { @@ -950,18 +1017,18 @@ class WriteAheadFile { byteLength: WriteAheadFile.FRAME_HEADER_SIZE + payloadSize, pageOffset: Number(headerView.getBigUint64(8)), pageData: payloadData - } + }; } else if (frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { - // Flags byte is currently unused. A possible future use would be - // to indicate an overwrite commit to trigger clearing the overlay. - // This might allow a page size change by VACUUM. - const flags = headerView.getUint8(1); return { frameType, byteLength: WriteAheadFile.FRAME_HEADER_SIZE, - dbFileSize: Number(headerView.getBigUint64(8)), - isOverwrite: !!(flags & 0x1) - } + dbFileSize: Number(headerView.getBigUint64(8)) + }; + } else if (frameType === WriteAheadFile.FRAME_TYPE_END) { + return { + frameType, + byteLength: WriteAheadFile.FRAME_HEADER_SIZE + }; } throw new Error(`Invalid frame type: ${frameType}`); } @@ -969,8 +1036,7 @@ class WriteAheadFile { #writeFileHeader(prevSalt1 = this.activeHeader.salt1) { // Derive new values from the previous values. Note that salt1 always // flips between even and odd so successive headers are written to - // alternating slots. If the write fails, the file remains in a valid - // state. + // alternating files. const nextTxId = this.txId + 1; const salt1 = (prevSalt1 + 1) | 0; const salt2 = Math.floor(Math.random() * 0xffffffff); @@ -985,15 +1051,13 @@ class WriteAheadFile { headerView.setUint32(24, checksum.s0); headerView.setUint32(28, checksum.s1); - // A header with an even salt1 is written at offset 0, and with an - // odd salt1 at SECTOR_SIZE. - const headerOffset = (salt1 & 0x1) ? SECTOR_SIZE : 0; - const bytesWritten = this.activeHandle.write(headerView, { at: headerOffset }); + // The even/odd parity of salt1 determines which file is written to. + const accessHandle = this.accessHandles[salt1 & 1]; + const bytesWritten = accessHandle.write(headerView, { at: 0 }); if (bytesWritten !== headerView.byteLength) { throw new Error('write failed'); } - this.activeHandle.flush(); return { nextTxId, salt1, salt2 }; } } From 01bff6411132e760a7c5c74fee1b9da93625a76c Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 12 Mar 2026 13:57:06 -0700 Subject: [PATCH 065/104] Always use write-ahead. --- src/examples/OPFSWriteAheadVFS.js | 140 ++++-------------------------- src/examples/WriteAhead.js | 12 +-- 2 files changed, 25 insertions(+), 127 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 5a77c38e..41450f7b 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -17,9 +17,7 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * Main database file properties: * @property {*} [retryResult] * @property {FileSystemSyncAccessHandle[]} [waHandles] - * @property {FileSystemSyncAccessHandle} [journalHandle] * - * @property {boolean} [useWriteAhead] * @property {'reserved'|'exclusive'} [writeHint] * @property {'normal'|'exclusive'|null} [lockingMode] * @property {number} [lockState] SQLITE_LOCK_* @@ -150,7 +148,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Initialize database file state. file.accessHandle = file.retryResult.accessHandle; - file.journalHandle = file.retryResult.journalHandle; file.waHandles = file.retryResult.waHandles; file.writeAhead = file.retryResult.writeAhead; file.retryResult = null; @@ -162,31 +159,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.useLazyLock = 'readwrite'; file.timeout = -1; file.synchronous = 1; // NORMAL - file.useWriteAhead = true; file.writeHint = null; - } else if (flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { - // A journal file is managed with its main database so look that up. - const dbFile = this.#getDbFileFromJournalName(zName); - if (!dbFile) { - throw new Error(`database file not found for journal ${zName}`); - } - - // Determine whether to use the public journal (which is hot or - // could become hot) or a private journal from the session directory. - // This is necessary because read connections can test a journal - // for hotness while a write-ahead transaction is in progress. - if (!dbFile.useWriteAhead || dbFile.journalHandle.getSize() > 0) { - // Either write-ahead is not being used, or a hot journal is being - // opened for recovery. Use the public journal. - file.accessHandle = dbFile.journalHandle; - } else if (dbFile.useWriteAhead && dbFile.lockState > VFS.SQLITE_LOCK_SHARED) { - // The journal is being opened for a write-ahead transaction. - // This journal can never be hot so don't expose it to other - // connections. - file.accessHandle = this.#openTemporaryFile(zName); - } else { - throw new Error('unexpected journal file conditions'); - } } else if (flags & (VFS.SQLITE_OPEN_WAL | VFS.SQLITE_OPEN_SUPER_JOURNAL)) { throw new Error('WAL and super-journal files are not supported'); } else { @@ -214,11 +187,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { if (this.boundTempFiles.has(zName)) { const file = this.mapPathToFile.get(zName); this.#deleteTemporaryFile(file); - } else if (zName.endsWith('-journal')) { - const dbFile = this.#getDbFileFromJournalName(zName); - dbFile?.journalHandle.truncate(0); - dbFile?.journalHandle.flush(); - this.mapPathToFile.delete(zName); } else { throw new Error(`unexpected file deletion: ${zName}`); } @@ -238,26 +206,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { */ jAccess(zName, flags, pResOut) { try { - // Special case main journal files. - if (zName.endsWith('-journal')) { - const dbFile = this.#getDbFileFromJournalName(zName); - if (dbFile) { - if (dbFile.lockState <= VFS.SQLITE_LOCK_SHARED) { - // SQLite is testing for a hot journal. Journals created in the - // session directory for write-ahead transactions are never hot, - // i.e. they are used only for rollback. So here we look for - // the status of the public journal. - if (dbFile.journalHandle.getSize() === 0) { - // Treat an empty journal file as non-existent. - pResOut.setInt32(0, 0, true); - } else { - pResOut.setInt32(0, 1, true); - } - } - return VFS.SQLITE_OK; - } - } - const file = this.mapPathToFile.get(zName); pResOut.setInt32(0, file ? 1 : 0, true); return VFS.SQLITE_OK; @@ -281,10 +229,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.waHandles.forEach(handle => handle.close()); this.mapPathToFile.delete(file?.zName); - file.journalHandle.close(); - const journalPath = this.#getJournalNameFromDbName(file.zName); - this.mapPathToFile.delete(journalPath); - file.readLock.close(); file.writeLock.close(); } else if (file?.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { @@ -359,11 +303,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.useWriteAhead) { - // Write to the write-ahead overlay. - file.writeAhead.write(iOffset, pData); - return VFS.SQLITE_OK; - } + // Write to the write-ahead overlay. + file.writeAhead.write(iOffset, pData); + return VFS.SQLITE_OK; } // On Chrome (at least), passing pData to accessHandle.write() is @@ -387,10 +329,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.useWriteAhead) { - file.writeAhead.truncate(iSize); - return VFS.SQLITE_OK; - } + file.writeAhead.truncate(iSize); + return VFS.SQLITE_OK; } file.accessHandle.truncate(iSize); return VFS.SQLITE_OK; @@ -410,15 +350,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { try { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.useWriteAhead) { - const durability = file.synchronous > 1 ? 'strict' : 'relaxed'; - file.writeAhead.sync({ durability }); - } else { - file.accessHandle.flush(); - } - } else if (!this.boundTempFiles.has(file.zName)) { - // Persistent journal file requires sync. - file.accessHandle.flush(); + const durability = file.synchronous > 1 ? 'strict' : 'relaxed'; + file.writeAhead.sync({ durability }); } else { // This is a temporary file so sync is not needed. // Temporary journals are only used for rollback by the @@ -474,11 +407,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // exclusive locking mode does not come with a write hint, so // we force the write hint here. file.writeHint = 'exclusive'; - file.useWriteAhead = false; } - // There are three distinct cases. In each case if the required - // lock is already held then we can proceed synchronously. + // There are separate read and write cases. In each case if the + // required lock is already held then we can proceed synchronously. // Otherwise we need to acquire state asynchronously and retry. if (!file.writeHint) { // Case 1: Read transaction with write-ahead logging. @@ -490,20 +422,13 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.writeAhead.isolateForRead(); } } else { - if (file.useWriteAhead) { - // Case 2: Write transaction with write-ahead logging. - if (!file.writeLock.acquireIfHeld('exclusive')) { - file.retryResult = {}; - this._module.retryOps.push(this.#retryLockWrite(file)); - return VFS.SQLITE_BUSY; - } else { - file.writeAhead.isolateForWrite(); - } - } else { - // Case 3: Transaction without write-ahead logging. + // Case 2: Write transaction with write-ahead logging. + if (!file.writeLock.acquireIfHeld('exclusive')) { file.retryResult = {}; - this._module.retryOps.push(this.#retryLockExclusive(file)); + this._module.retryOps.push(this.#retryLockWrite(file)); return VFS.SQLITE_BUSY; + } else { + file.writeAhead.isolateForWrite(); } } } else if (file.retryResult instanceof Error) { @@ -546,10 +471,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // progress. In that case, don't change any locks. if (!file.retryResult && lockType === VFS.SQLITE_LOCK_NONE) { // In this VFS, this is the only unlock transition that matters. - if (file.useWriteAhead) { - // Exit write-ahead isolation. - file.writeAhead.rejoin(); - } + // Exit write-ahead isolation. + file.writeAhead.rejoin(); // Release any locks. switch (file.useLazyLock) { @@ -573,9 +496,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Reset state for the next transaction. file.writeHint = null; - if (file.lockingMode === 'normal') { - file.useWriteAhead = true; - } } file.lockState = lockType; } catch (e) { @@ -747,20 +667,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { pArg.setUint32(0, ptr, true); } return VFS.SQLITE_OK; - case 'write_ahead': - // For testing purposes only: enable or disable write-ahead mode. - if (value !== null) { - if (file.lockState !== VFS.SQLITE_LOCK_NONE) { - throw new Error('cannot change write_ahead mode while database is locked'); - } - file.useWriteAhead = parseInt(value) !== 0; - } else { - const s = (file.useWriteAhead ? '1' : '0'); - const ptr = this._module._sqlite3_malloc64(s.length + 1); - this._module.stringToUTF8(s, ptr, s.length + 1); - pArg.setUint32(0, ptr, true); - } - return VFS.SQLITE_OK; } break; @@ -780,9 +686,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { case VFS.SQLITE_FCNTL_SYNC: if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { - if (file.useWriteAhead) { - file.writeAhead.commit(); - } + file.writeAhead.commit(); } break; } @@ -799,14 +703,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {number} */ jDeviceCharacteristics(pFile) { - let result = VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; - - const file = this.mapIdToFile.get(pFile); - if (file.useWriteAhead) { - // When write-ahead is in use, we can do batch atomic writes. - result |= VFS.SQLITE_IOCAP_BATCH_ATOMIC; - } - return result; + return VFS.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN + | VFS.SQLITE_IOCAP_BATCH_ATOMIC; } /** diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 29c3c68e..35b331e3 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -360,6 +360,11 @@ export class WriteAhead { * @param {{isPassive: boolean}} options */ async #checkpoint(options = { isPassive: true }) { + if (this.#waFile.isInactiveFileEmpty()) { + // Checkpoint is unnecessary. + return; + } + // Passive checkpointing is abandoned if another connection is // already checkpointing. const lockOptions = { @@ -369,11 +374,6 @@ export class WriteAhead { await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async lock => { if (!lock) return; - if (this.#waFile.isInactiveFileEmpty()) { - // Checkpoint is unnecessary. - return; - } - let ckptId = this.#waFile.getActiveFileStartingTxId() - 1; if (options.isPassive) { // Scan the txId locks to find the oldest txId. @@ -400,7 +400,7 @@ export class WriteAhead { // write transaction pages to the main database file. Do not overwrite // a page written by a more recent transaction. const writtenOffsets = new Set(); - let dbFileSize = 0; + let dbFileSize = this.#dbHandle.getSize(); for (let tx = this.#mapIdToTx.get(ckptId); tx; tx = this.#mapIdToTx.get(tx.id - 1)) { if (tx.id === ckptId && dbFileSize !== tx.dbFileSize) { // Set the file size from the latest transaction. From cd4c0173b079c7e24c30729643e460ee91e6b704 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 12 Mar 2026 14:26:34 -0700 Subject: [PATCH 066/104] Change default journal_size_limit to a reasonable value. --- src/examples/WriteAhead.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 35b331e3..b1d8b009 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -1,6 +1,6 @@ import { Lock } from './Lock.js'; -const DEFAULT_JOURNAL_SIZE_LIMIT = 5; +const DEFAULT_JOURNAL_SIZE_LIMIT = 1000; const DEFAULT_BACKSTOP_INTERVAL = 30_000; /** From 4f50120a2ebcd5a9a0a654960ac0d0e527368f62 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 12 Mar 2026 15:52:52 -0700 Subject: [PATCH 067/104] Fix missing salt1 when reading frames. --- src/examples/WriteAhead.js | 83 +++++++++++++------------------------- 1 file changed, 27 insertions(+), 56 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index b1d8b009..01257225 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -653,33 +653,6 @@ class WriteAheadFile { this.txId = fileHeader.nextTxId - 1; } - // reset(options = { truncate: true }) { - // const fileHeader = this.#writeFileHeader(); - // if (options.truncate) { - // this.activeHandle.truncate(WAL_FRAME_BASE); - // } - - // this.activeOffset = WAL_FRAME_BASE; - // this.activeHeader = fileHeader; - // } - - // checkReset() { - // // Check for a new header. There are two header slots in the file. - // // Look in the slot that is not current, which will be at offset 0 - // // or SECTOR_SIZE depending on the current salt1 value (salt1 is - // // incremented on each new header). - // const headerOffset = (this.activeHeader.salt1 & 0x1) ? 0 : SECTOR_SIZE; - // const fileHeader = this.#readFileHeader(headerOffset); - // if (fileHeader?.nextTxId > this.txId && - // fileHeader.salt1 === ((this.activeHeader.salt1 + 1) | 0)) { - // // The WAL file has been reset. - // this.activeOffset = WAL_FRAME_BASE; - // this.activeHeader = fileHeader; - // return true; - // } - // return false; - // } - /** * @param {PageEntry} pageEntry * @returns {Uint8Array} @@ -717,45 +690,43 @@ class WriteAheadFile { const frame = this.#readFrame(offset); if (!frame) return null; - if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { - // No more transactions on the current WAL file. Switch to the - // other file. - this.#changeActive(); - offset = this.activeOffset; - continue; - } + if (frame.frameType === WriteAheadFile.FRAME_TYPE_PAGE) { + if (!tx) { + tx = { + id: 0, // placeholder + pages: new Map(), + dbFileSize: 0, // placeholder + dbPageSize: frame.pageData.byteLength, + waSalt1: this.activeHeader.salt1, + waOffsetEnd: 0 // placeholder + }; + } - if (frame.frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { - // Update the instance state. + tx.pages.set( + frame.pageOffset, + { + pageSize: frame.pageData.byteLength, + waOffset: offset + WriteAheadFile.FRAME_HEADER_SIZE, + waSalt1: tx.waSalt1 + }); + } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { + // The transaction is complete. Update the instance state. this.txId += 1; this.activeOffset = offset + frame.byteLength; + // Finalize the transaction fields and return it. tx.id = this.txId; tx.dbFileSize = frame.dbFileSize; tx.waOffsetEnd = this.activeOffset; return tx; + } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { + // No more transactions on the current WAL file. Switch to the + // other file. + this.#changeActive(); + offset = this.activeOffset; + continue; } - // frameType === WriteAheadFile.FRAME_TYPE_PAGE - if (!tx) { - tx = { - id: 0, // placeholder - pages: new Map(), - dbFileSize: 0, // placeholder - dbPageSize: frame.pageData.byteLength, - waSalt1: frame.salt1, - waOffsetEnd: 0 // placeholder - }; - } - - tx.pages.set( - frame.pageOffset, - { - pageSize: frame.pageData.byteLength, - waOffset: offset + WriteAheadFile.FRAME_HEADER_SIZE, - waSalt1: frame.salt1 - }); - offset += frame.byteLength; } } From 24dbaf7a04dedfa68fc74c8419404e20efae1e32 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 12 Mar 2026 16:12:41 -0700 Subject: [PATCH 068/104] Start with a random salt1. --- src/examples/WriteAhead.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 01257225..a3df62cc 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -645,7 +645,7 @@ class WriteAheadFile { .map(handle => this.#readFileHeader(handle)) .filter(h => h) .sort((a, b) => a.nextTxId - b.nextTxId)[0] - ?? this.#writeFileHeader(-1); + ?? this.#writeFileHeader(Math.floor(Math.random() * 0xffffffff)); this.activeHeader = fileHeader; this.activeHandle = this.accessHandles[fileHeader.salt1 & 1]; @@ -905,7 +905,10 @@ class WriteAheadFile { if (!fileHeader) { throw new Error('invalid WAL file'); } - + if (fileHeader.salt1 !== ((this.activeHeader.salt1 + 1) | 0)) { + throw new Error('invalid salt1 on WAL file change'); + } + this.activeHandle = accessHandle; this.activeHeader = fileHeader; this.activeOffset = WriteAheadFile.FRAME_HEADER_SIZE; From 19c38f476ec4724eeedf7dd3f07d22dfd3a44e34 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 12 Mar 2026 20:09:22 -0700 Subject: [PATCH 069/104] Implement manual non-passive checkpoints. --- src/examples/OPFSWriteAheadVFS.js | 44 +++++++------------------------ src/examples/WriteAhead.js | 33 ++++++++--------------- 2 files changed, 20 insertions(+), 57 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 41450f7b..d15c6a8c 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -767,24 +767,20 @@ export class OPFSWriteAheadVFS extends FacadeVFS { return `${dbName}-wa${i}`; } - /** - * @param {string} journalName - * @returns {FileEntry} - */ - #getDbFileFromJournalName(journalName) { - const dbFilename = journalName.slice(0, -'-journal'.length); - return this.mapPathToFile.get(dbFilename); - } - /** * Asynchronous PRAGMA operation to checkpoint the write-ahead log. * @param {FileEntry} file * @param {'passive'|'full'|'restart'|'truncate'} mode */ async #pendingCheckpoint(file, mode) { + const onFinally = []; try { if (mode !== 'passive') { await file.writeLock.acquire('exclusive'); + onFinally.push(() => file.writeLock.release()); + + file.writeAhead.isolateForWrite(); + onFinally.push(() => file.writeAhead.rejoin()); } await file.writeAhead.checkpoint(mode); @@ -794,7 +790,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } throw e; } finally { - file.writeLock.release(); + while (onFinally.length) { + onFinally.pop()(); + } } } @@ -831,30 +829,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } } - /** - * @param {FileEntry} file - */ - async #retryLockExclusive(file) { - try { - // This transaction will write directly to the database, - // i.e. not using write-ahead. Get exclusive access. - await file.readLock.acquire('exclusive', file.timeout); - await file.writeLock.acquire('exclusive', file.timeout); - - // Transfer everything in write-ahead to the OPFS file. - await file.writeAhead.checkpoint('restart'); - file.retryResult = {}; - } catch (e) { - if (file.writeLock.mode) { - file.writeLock.release(); - } - if (file.readLock.mode) { - file.readLock.release(); - } - file.retryResult = e; - } - } - /** * Handle asynchronous jOpen() tasks. * @param {string} zName @@ -867,7 +841,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { /** @type {(() => void)[]} */ const onError = []; const file = this.mapPathToFile.get(zName); try { - await navigator.locks.request(`${zName}#open`, async lock => { + await navigator.locks.request(`${zName}#ckpt`, async lock => { // Parse the path components. const directoryNames = zName.split('/').filter(d => d); const dbName = directoryNames.pop(); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index a3df62cc..85ad59ef 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -71,15 +71,7 @@ export class WriteAhead { // All the asynchronous initialization is done here. this.#ready = (async () => { // Disable checkpointing by other connections until we're ready. - await navigator.locks.request(`${this.#zName}-ckpt`, async () => { - await this.#updateTxIdLock(); - }); - - // Load all the transactions from the WAL file. - for (const tx of this.#waFile.readAllTx()) { - this.#activateTx(tx); - } - this.#updateTxIdLock(); // doesn't need await + await this.#updateTxIdLock(); // Listen for transactions and checkpoints from other connections. this.#broadcastChannel = new BroadcastChannel(`${zName}#wa`); @@ -87,6 +79,12 @@ export class WriteAhead { this.#handleMessage(event); }; + // Load all the transactions from the WAL file. + for (const tx of this.#waFile.readAllTx()) { + this.#activateTx(tx); + } + this.#updateTxIdLock(); // doesn't need await + // Schedule backstop. The backstop is a guard against a crash in // another context between persisting a transaction and broadcasting // it. @@ -261,16 +259,7 @@ export class WriteAhead { * @param {'passive'|'full'|'restart'|'truncate'} mode */ async checkpoint(mode) { - if (mode !== 'passive') { - this.isolateForWrite(); - } - try { - await this.#checkpoint({ isPassive: mode === 'passive' }); - } finally { - if (mode !== 'passive') { - this.rejoin(); - } - } + await this.#checkpoint({ isPassive: mode === 'passive' }); } /** @@ -360,7 +349,7 @@ export class WriteAhead { * @param {{isPassive: boolean}} options */ async #checkpoint(options = { isPassive: true }) { - if (this.#waFile.isInactiveFileEmpty()) { + if (this.#waFile.isInactiveFileEmpty() && options.isPassive) { // Checkpoint is unnecessary. return; } @@ -371,7 +360,7 @@ export class WriteAhead { ifAvailable: options.isPassive, }; - await navigator.locks.request(`${this.#zName}-ckpt`, lockOptions, async lock => { + await navigator.locks.request(`${this.#zName}#ckpt`, lockOptions, async lock => { if (!lock) return; let ckptId = this.#waFile.getActiveFileStartingTxId() - 1; @@ -708,7 +697,7 @@ class WriteAheadFile { pageSize: frame.pageData.byteLength, waOffset: offset + WriteAheadFile.FRAME_HEADER_SIZE, waSalt1: tx.waSalt1 - }); + }); } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { // The transaction is complete. Update the instance state. this.txId += 1; From b20b4f88cef0a73c3f589e5046ca05f47534d5b7 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 13 Mar 2026 05:56:13 -0700 Subject: [PATCH 070/104] Simplify checkpoint code. --- src/examples/OPFSWriteAheadVFS.js | 2 +- src/examples/WriteAhead.js | 191 ++++++++++++++---------------- 2 files changed, 90 insertions(+), 103 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index d15c6a8c..152b1ff0 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -783,7 +783,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { onFinally.push(() => file.writeAhead.rejoin()); } - await file.writeAhead.checkpoint(mode); + await file.writeAhead.checkpoint({ isPassive: mode === 'passive' }); } catch (e) { if (e.name === 'AbortError') { e.code = VFS.SQLITE_BUSY; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 85ad59ef..4dfddcc8 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -253,102 +253,12 @@ export class WriteAhead { } } - /** - * Flush all write-ahead transactions to the main database file. - * There must be no other connections reading or writing. - * @param {'passive'|'full'|'restart'|'truncate'} mode - */ - async checkpoint(mode) { - await this.#checkpoint({ isPassive: mode === 'passive' }); - } - - /** - * Return the approximate number of write-ahead pages. This is the - * sum of the number of unique page indices for each transaction, - * so it can be fewer than the number of pages if any transaction - * contains multiple frames for the same page. - * @returns {number} - */ - getWriteAheadSize() { - return this.#mapIdToTxPageCount; - } - - /** - * Incorporate a transaction into our view of the database. - * @param {Transaction} tx - */ - #activateTx(tx) { - // Transfer to the active collection of transactions. - this.#mapIdToTx.set(tx.id, tx); - this.#mapIdToTxPageCount += tx.pages.size; - - // Add transaction pages to the write-ahead overlay. - for (const [offset, pageEntry] of tx.pages) { - this.#waOverlay.set(offset, pageEntry); - } - this.#dbFileSize = tx.dbFileSize; - } - - /** - * Advance the local view of the database. By default, advance to the - * last broadcast transaction. Optionally, also advance through any - * additional transactions in the WAL file to be fully current. - * - * @param {{readToCurrent?: boolean, autoCheckpoint?: boolean}} options - */ - #advanceTxId(options = {}) { - let didAdvance = false; - while (this.#pendingTx.size) { - // Fetch the next transaction in sequence. Usually this will come - // from pendingTx, but if it is missing then read it from the file. - const nextTxId = this.#waFile.txId + 1; - let tx; - if (this.#pendingTx.has(nextTxId)) { - // This transaction arrived via message. - tx = this.#pendingTx.get(nextTxId); - this.#pendingTx.delete(tx.id); - - // Move the WAL file offset past this transaction. - this.#waFile.skipTx(tx); - } else { - // Read the transaction from the WAL file. - tx = this.#waFile.readTx(); - } - - this.#activateTx(tx); - didAdvance = true; - } - - if (options.readToCurrent) { - // Read all additional transactions from the WAL file. - for (const tx of this.#waFile.readAllTx()) { - this.#activateTx(tx); - didAdvance = true; - } - } - - if (didAdvance) { - // Publish our new view txId. - this.#updateTxIdLock(); - - if (options.autoCheckpoint) { - this.#autoCheckpoint(); - } - } - } - - #autoCheckpoint() { - if (this.options.autoCheckpoint > 0) { - this.#checkpoint({ isPassive: true }); - } - } - /** * Move pages from write-ahead to main database file. * * @param {{isPassive: boolean}} options */ - async #checkpoint(options = { isPassive: true }) { + async checkpoint(options = { isPassive: true }) { if (this.#waFile.isInactiveFileEmpty() && options.isPassive) { // Checkpoint is unnecessary. return; @@ -436,6 +346,87 @@ export class WriteAhead { }); } + /** + * Return the approximate number of write-ahead pages. This is the + * sum of the number of unique page indices for each transaction, + * so it can be fewer than the number of pages if any transaction + * contains multiple frames for the same page. + * @returns {number} + */ + getWriteAheadSize() { + return this.#mapIdToTxPageCount; + } + + /** + * Incorporate a transaction into our view of the database. + * @param {Transaction} tx + */ + #activateTx(tx) { + // Transfer to the active collection of transactions. + this.#mapIdToTx.set(tx.id, tx); + this.#mapIdToTxPageCount += tx.pages.size; + + // Add transaction pages to the write-ahead overlay. + for (const [offset, pageEntry] of tx.pages) { + this.#waOverlay.set(offset, pageEntry); + } + this.#dbFileSize = tx.dbFileSize; + } + + /** + * Advance the local view of the database. By default, advance to the + * last broadcast transaction. Optionally, also advance through any + * additional transactions in the WAL file to be fully current. + * + * @param {{readToCurrent?: boolean, autoCheckpoint?: boolean}} options + */ + #advanceTxId(options = {}) { + let didAdvance = false; + while (this.#pendingTx.size) { + // Fetch the next transaction in sequence. Usually this will come + // from pendingTx, but if it is missing then read it from the file. + const nextTxId = this.#waFile.txId + 1; + let tx; + if (this.#pendingTx.has(nextTxId)) { + // This transaction arrived via message. + tx = this.#pendingTx.get(nextTxId); + this.#pendingTx.delete(tx.id); + + // Move the WAL file offset past this transaction. + this.#waFile.skipTx(tx); + } else { + // Read the transaction from the WAL file. + tx = this.#waFile.readTx(); + } + + this.#activateTx(tx); + didAdvance = true; + } + + if (options.readToCurrent) { + // Read all additional transactions from the WAL file. + for (const tx of this.#waFile.readAllTx()) { + this.#activateTx(tx); + didAdvance = true; + } + } + + if (didAdvance) { + // Publish our new view txId. + this.#updateTxIdLock(); + + if (options.autoCheckpoint) { + this.#autoCheckpoint(); + } + } + } + + #autoCheckpoint() { + if (this.options.autoCheckpoint > 0) { + this.checkpoint({ isPassive: true }); + } + } + /** * After a checkpoint, remove checkpointed pages from write-ahead. * The checkpoint may be been done locally or by another connection. @@ -711,7 +702,7 @@ class WriteAheadFile { } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { // No more transactions on the current WAL file. Switch to the // other file. - this.#changeActive(); + this.#followFileChange(); offset = this.activeOffset; continue; } @@ -729,9 +720,8 @@ class WriteAheadFile { skipTx(tx) { if (tx.waSalt1 !== this.activeHeader.salt1) { // This transaction is on the other WAL file. - this.#changeActive(); - if (this.activeHeader?.salt1 !== tx.waSalt1) { - throw new Error('WAL file salt mismatch'); + if (!this.#followFileChange()) { + throw new Error('invalid WAL file'); } } @@ -888,19 +878,16 @@ class WriteAheadFile { accessHandle.truncate(0); } - #changeActive() { + #followFileChange() { const accessHandle = this.#getInactiveHandle(); const fileHeader = this.#readFileHeader(accessHandle); - if (!fileHeader) { - throw new Error('invalid WAL file'); - } - if (fileHeader.salt1 !== ((this.activeHeader.salt1 + 1) | 0)) { - throw new Error('invalid salt1 on WAL file change'); - } + if (!fileHeader) return null; + if (fileHeader.salt1 !== ((this.activeHeader.salt1 + 1) | 0)) return null; this.activeHandle = accessHandle; this.activeHeader = fileHeader; this.activeOffset = WriteAheadFile.FRAME_HEADER_SIZE; + return fileHeader; } #getInactiveHandle() { From ddccf217eeff603426c887d27b567238a310fdc4 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 13 Mar 2026 07:18:54 -0700 Subject: [PATCH 071/104] Handle a missing or corrupt file header. --- src/examples/WriteAhead.js | 44 +++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 4dfddcc8..99aa4638 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -702,7 +702,7 @@ class WriteAheadFile { } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { // No more transactions on the current WAL file. Switch to the // other file. - this.#followFileChange(); + this.#followFileChange(frame.fileHeader); offset = this.activeOffset; continue; } @@ -720,7 +720,7 @@ class WriteAheadFile { skipTx(tx) { if (tx.waSalt1 !== this.activeHeader.salt1) { // This transaction is on the other WAL file. - if (!this.#followFileChange()) { + if (!this.#followFileChange(null)) { throw new Error('invalid WAL file'); } } @@ -878,12 +878,19 @@ class WriteAheadFile { accessHandle.truncate(0); } - #followFileChange() { + /** + * @param {{nextTxId: number, salt1: number, salt2: number}?} fileHeader + */ + #followFileChange(fileHeader) { + // As an optimization, the file header can be passed as an argument + // if it has already been read and validated. Otherwise that is + // done here. const accessHandle = this.#getInactiveHandle(); - const fileHeader = this.#readFileHeader(accessHandle); - if (!fileHeader) return null; - if (fileHeader.salt1 !== ((this.activeHeader.salt1 + 1) | 0)) return null; - + if (!fileHeader) { + fileHeader = this.#readFileHeader(accessHandle); + if (fileHeader?.salt1 !== ((this.activeHeader.salt1 + 1) >>> 0)) return null; + } + this.activeHandle = accessHandle; this.activeHeader = fileHeader; this.activeOffset = WriteAheadFile.FRAME_HEADER_SIZE; @@ -975,9 +982,26 @@ class WriteAheadFile { dbFileSize: Number(headerView.getBigUint64(8)) }; } else if (frameType === WriteAheadFile.FRAME_TYPE_END) { + // Handling the end frame and new file header must be atomic, so + // we validate the new file header before returning the frame. + // If the file header is corrupt, the end frame effectively does + // not exist. + // + // How do we recover from this? If the file is empty then a writer + // will overwrite the end frame (either with a transaction or a + // new end frame with a file header) and that will restore a valid + // state. + // + // If the file is not empty, then the file should be truncated on + // the next checkpoint to restore a valid state. In the meantime + // writers may overwrite the end frame with new transactions. + const fileHeader = this.#readFileHeader(this.#getInactiveHandle()); + if (fileHeader?.salt1 !== ((this.activeHeader.salt1 + 1) >>> 0)) return null; + return { frameType, - byteLength: WriteAheadFile.FRAME_HEADER_SIZE + byteLength: WriteAheadFile.FRAME_HEADER_SIZE, + fileHeader }; } throw new Error(`Invalid frame type: ${frameType}`); @@ -988,8 +1012,8 @@ class WriteAheadFile { // flips between even and odd so successive headers are written to // alternating files. const nextTxId = this.txId + 1; - const salt1 = (prevSalt1 + 1) | 0; - const salt2 = Math.floor(Math.random() * 0xffffffff); + const salt1 = (prevSalt1 + 1) >>> 0; + const salt2 = Math.floor(Math.random() * 0xffffffff) >>> 0; const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FILE_HEADER_SIZE)); headerView.setUint32(0, WriteAheadFile.MAGIC); headerView.setBigUint64(8, BigInt(nextTxId)); From e2b16aacddde9027227b4fd682fb6d6b70a5e15e Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Fri, 13 Mar 2026 15:41:54 -0700 Subject: [PATCH 072/104] Sync both WAL files on full checkpoint. --- src/examples/WriteAhead.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 99aa4638..7a23ef3e 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -294,6 +294,9 @@ export class WriteAhead { // part of the WAL has been copied, the uncopied part will still be // available afterwards. this.#waFile.flushInactiveFile(); + if (!options.isPassive) { + this.#waFile.flushActiveFile(); + } // Starting at ckptId and going backwards (higher to lower txId), // write transaction pages to the main database file. Do not overwrite @@ -863,16 +866,20 @@ class WriteAheadFile { return this.activeHeader.nextTxId; } - isInactiveFileEmpty() { - const accessHandle = this.#getInactiveHandle(); - return accessHandle.getSize() === 0; + flushActiveFile() { + this.activeHandle.flush(); } - + flushInactiveFile() { const accessHandle = this.#getInactiveHandle(); accessHandle.flush(); } + isInactiveFileEmpty() { + const accessHandle = this.#getInactiveHandle(); + return accessHandle.getSize() === 0; + } + truncateInactiveFile() { const accessHandle = this.#getInactiveHandle(); accessHandle.truncate(0); From 451d0d7ad5de7efa0ec3fe44f5e1c50c3175108e Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 14 Mar 2026 07:57:53 -0700 Subject: [PATCH 073/104] Flush the correct file under strict durability. --- src/examples/WriteAhead.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 7a23ef3e..4212d3fe 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -249,7 +249,7 @@ export class WriteAhead { */ sync(options) { if (options.durability === 'strict') { - this.#waFile.flushInactiveFile(); + this.#waFile.flushActiveFile(); } } From cca715768e665f8c2cc7c79a002e198780fcdaeb Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 14 Mar 2026 11:59:02 -0700 Subject: [PATCH 074/104] Remove obsolete WAL1 comments and code. --- src/examples/OPFSWriteAheadVFS.js | 64 +++++++++++++++---------------- src/examples/WriteAhead.js | 25 ++++++------ 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 152b1ff0..8826f3a2 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -33,9 +33,8 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ /** * @typedef OPFSWriteAheadOptions * @property {number} [nTmpFiles] - * @property {number} [autoCheckpointPages] - * @property {number} [heartbeatInterval] - * @property {number} [heartbeatActionDelay] + * @property {number} [autoCheckpoint] + * @property {number} [backstopInterval] */ export class OPFSWriteAheadVFS extends FacadeVFS { @@ -231,9 +230,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.readLock.close(); file.writeLock.close(); - } else if (file?.flags & VFS.SQLITE_OPEN_MAIN_JOURNAL) { - // The actual OPFS journal file is managed with the main database - // file, so don't close the access handle here. } else if (file?.flags & VFS.SQLITE_OPEN_DELETEONCLOSE) { this.#deleteTemporaryFile(file); } @@ -511,10 +507,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @returns {number} */ jCheckReservedLock(pFile, pResOut) { - // This function is only called in the SHARED lock state, and when - // a potentially hot journal file exists. Such a journal can only - // be created without using write-ahead, and such a connection - // cannot co-exist with this connection in SHARED. + // A hot journal cannot exist so this method should never be called. + console.assert(false, 'unexpected'); pResOut.setInt32(0, 0, true); return VFS.SQLITE_OK; } @@ -537,9 +531,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { switch (key.toLowerCase()) { case 'experimental_pragma_20251114': // After entering the SHARED locking state on the next - // transaction, SQLite intends to immediately (barring a hot - // journal) transition to RESERVED if value is '1', or - // EXCLUSIVE if value is '2'. + // transaction, SQLite intends to immediately transition to + // RESERVED if value is '1', or EXCLUSIVE if value is '2'. switch (value) { case '1': file.writeHint = 'reserved'; @@ -551,6 +544,18 @@ export class OPFSWriteAheadVFS extends FacadeVFS { throw new Error(`unexpected write hint value: ${value}`); } break; + case 'backstop_interval': + if (value !== null) { + const millis = parseInt(value); + file.writeAhead.options.backstopInterval = millis; + } else { + // Return current interval. + const s = file.writeAhead.options.backstopInterval.toString(); + const ptr = this._module._sqlite3_malloc64(s.length + 1); + this._module.stringToUTF8(s, ptr, s.length + 1); + pArg.setUint32(0, ptr, true); + } + return VFS.SQLITE_OK; case 'busy_timeout': // Override SQLite's handling of busy timeouts with our // blocking lock timeouts. @@ -571,8 +576,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } break; case 'locking_mode': - // Track SQLite locking mode. We will use write-ahead only in - // normal locking mode. + // Track SQLite locking mode. Exclusive mode requires a + // write lock. switch (value?.toLowerCase()) { case 'normal': file.lockingMode = 'normal'; @@ -583,6 +588,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } break; case 'synchronous': + // Track SQLite synchronous mode. Write-ahead transactions + // trade durability for performance on values 1 (NORMAL) or + // lower. if (value !== null) { switch (value.toLowerCase()) { case 'off': @@ -614,6 +622,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK; case 'wal_autocheckpoint': + // A setting greater than zero enables automatic checkpoints + // with this connection (enabled by default). if (value !== null) { file.writeAhead.options.autoCheckpoint = parseInt(value); } @@ -636,9 +646,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { throw new Error(`unexpected wal_checkpoint mode: ${value}`); } - // Return the approximate size of the write-ahead data (which - // may be smaller than the actual file size). SQLite returns - // different information, but that is not feasible from a VFS. + // Return the approximate number of pages in the WAL before + // checkpointing. SQLite returns different information, but + // that is not feasible from a VFS. { const s = file.writeAhead.getWriteAheadSize().toString(); const ptr = this._module._sqlite3_malloc64(s.length + 1); @@ -647,6 +657,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } return VFS.SQLITE_OK; case 'lazy_lock': + // Lazy locks don't actually release their Web Lock until + // they receive a message requesting it. Typically a setting + // of 'readwrite' (default) or 'read' is best. if (value !== null) { const useLazyLock = value.toLowerCase(); switch (useLazyLock) { @@ -749,14 +762,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { this.boundTempFiles.delete(file.zName); } - /** - * @param {string} dbName - * @returns {string} - */ - #getJournalNameFromDbName(dbName) { - return `${dbName}-journal`; - } - /** * @param {string} dbName * @param {number} i @@ -886,11 +891,6 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // Open the main database OPFS file. const accessHandle = await openFile(dbName, { create }); - // Pre-open the persistent journal OPFS file here. - const journalHandle = await openFile( - this.#getJournalNameFromDbName(dbName), - { create: true }); - // Open WAL files. const waHandles = await Promise.all([0, 1].map(async i => { const waName = this.#getWriteAheadNameFromDbName(dbName, i); @@ -905,7 +905,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const writeAhead = new WriteAhead(zName, accessHandle, waHandles); await writeAhead.ready(); - file.retryResult = { accessHandle, waHandles, journalHandle, writeAhead }; + file.retryResult = { accessHandle, waHandles, writeAhead }; }); } catch (e) { while (onError.length) { diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 4212d3fe..ec10370e 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -104,7 +104,6 @@ export class WriteAhead { this.#broadcastChannel.onmessage = null; clearTimeout(this.#backstopTimer); - // Wait for any pending commit to complete. this.#txIdLock?.release(); this.#broadcastChannel.close(); } @@ -112,8 +111,7 @@ export class WriteAhead { /** * Freeze our view of the database. * The view includes the transactions received so far but is not - * guaranteed to be completely up to date (this allows this method - * to be synchronous). Unfreeze the view with rejoin(). + * guaranteed to be completely up to date. Unfreeze the view with rejoin(). */ isolateForRead() { if (this.#isolationState !== null) { @@ -439,8 +437,7 @@ export class WriteAhead { this.log?.(`%capply checkpoint through txId ${ckptId}`, 'background-color: lightgreen;'); // Loop backwards from ckptId. - let tx = /** @type {Transaction} */ ({ id: ckptId + 1 }); - while (tx = this.#mapIdToTx.get(tx.id - 1)) { + for (let tx = this.#mapIdToTx.get(ckptId); tx; tx = this.#mapIdToTx.get(tx.id - 1)) { // Remove pages from write-ahead overlay. for (const [offset, pageEntry] of tx.pages.entries()) { // Be sure not to remove a newer version of the page. @@ -805,6 +802,8 @@ class WriteAheadFile { * @returns {Transaction} */ commitTx() { + // Write a commit frame - which is a special frame header with no + // body - to the WAL file. const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); headerView.setUint8(0, WriteAheadFile.FRAME_TYPE_COMMIT); headerView.setBigUint64(8, BigInt(this.txInProgress.dbFileSize)); @@ -886,6 +885,8 @@ class WriteAheadFile { } /** + * This method is called after reading an end frame to switch to the + * other WAL file. * @param {{nextTxId: number, salt1: number, salt2: number}?} fileHeader */ #followFileChange(fileHeader) { @@ -994,14 +995,14 @@ class WriteAheadFile { // If the file header is corrupt, the end frame effectively does // not exist. // - // How do we recover from this? If the file is empty then a writer - // will overwrite the end frame (either with a transaction or a - // new end frame with a file header) and that will restore a valid - // state. + // How do we recover from this? Readers and writers will continue + // normally. If the inactive file is empty then a writer will + // overwrite the end frame (either with a transaction or a + // new end frame with a file header) and that will restore a + // valid state. // - // If the file is not empty, then the file should be truncated on - // the next checkpoint to restore a valid state. In the meantime - // writers may overwrite the end frame with new transactions. + // If the inactive file is not empty, then it should be truncated + // on the next checkpoint and that will restore a valid state. const fileHeader = this.#readFileHeader(this.#getInactiveHandle()); if (fileHeader?.salt1 !== ((this.activeHeader.salt1 + 1) >>> 0)) return null; From 24e345832394c1cafd5a65d2cadd32354e1e5c34 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 14 Mar 2026 13:15:52 -0700 Subject: [PATCH 075/104] Allow an empty transaction for future use. --- src/examples/WriteAhead.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index ec10370e..35245509 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -664,24 +664,25 @@ class WriteAheadFile { */ readTx() { // Read the next complete transaction or return null. + /** @type {Transaction} */ const tx = { + id: 0, // placeholder + pages: new Map(), + dbFileSize: 0, // placeholder + dbPageSize: 0, + waSalt1: this.activeHeader.salt1, + waOffsetEnd: 0 // placeholder + }; + + // The property this.activeOffset is only advanced on a successful + // transition to the other WAL file or on reading a complete + // transaction. Use a local variable to track our progress. let offset = this.activeOffset; - /** @type {Transaction?} */ let tx = null; while (true) { const frame = this.#readFrame(offset); if (!frame) return null; if (frame.frameType === WriteAheadFile.FRAME_TYPE_PAGE) { - if (!tx) { - tx = { - id: 0, // placeholder - pages: new Map(), - dbFileSize: 0, // placeholder - dbPageSize: frame.pageData.byteLength, - waSalt1: this.activeHeader.salt1, - waOffsetEnd: 0 // placeholder - }; - } - + tx.dbPageSize = frame.pageData.byteLength; tx.pages.set( frame.pageOffset, { @@ -697,6 +698,7 @@ class WriteAheadFile { // Finalize the transaction fields and return it. tx.id = this.txId; tx.dbFileSize = frame.dbFileSize; + tx.dbPageSize = tx.pages.values().next().value?.pageSize ?? 0; tx.waOffsetEnd = this.activeOffset; return tx; } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { From 02211a9784a12469da8535f8e732edc03d25e536 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 15 Mar 2026 12:05:20 -0700 Subject: [PATCH 076/104] Prep for future page size change support. --- src/examples/OPFSWriteAheadVFS.js | 23 ++++++++++++++++++++++- src/examples/WriteAhead.js | 3 ++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 8826f3a2..07911e9c 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -26,6 +26,8 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * @property {'none'|'read'|'write'|'readwrite'} [useLazyLock] * @property {number} [timeout] * @property {0|1|2|3} [synchronous] + * @property {number?} [pageSize] + * @property {boolean} [overwrite] * * @property {WriteAhead} [writeAhead] */ @@ -159,6 +161,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.timeout = -1; file.synchronous = 1; // NORMAL file.writeHint = null; + file.pageSize = null; + file.overwrite = false; } else if (flags & (VFS.SQLITE_OPEN_WAL | VFS.SQLITE_OPEN_SUPER_JOURNAL)) { throw new Error('WAL and super-journal files are not supported'); } else { @@ -300,7 +304,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const file = this.mapIdToFile.get(fileId); if (file.flags & VFS.SQLITE_OPEN_MAIN_DB) { // Write to the write-ahead overlay. - file.writeAhead.write(iOffset, pData); + const isPageResize = file.overwrite && file.pageSize !== pData.byteLength; + file.writeAhead.write(iOffset, pData, { + dstPageSize: isPageResize ? file.pageSize : null + }); return VFS.SQLITE_OK; } @@ -587,6 +594,16 @@ export class OPFSWriteAheadVFS extends FacadeVFS { break; } break; + case 'page_size': + if (value !== null) { + // Valid page sizes are 1 (which maps to 65536) or powers of + // two from 512 to 32768. + const n = parseInt(value); + if (n === 1 || (n >= 512 && n <= 32768 && (n & (n - 1)) === 0)) { + file.pageSize = n === 1 ? 65536 : n; + } + } + break; case 'synchronous': // Track SQLite synchronous mode. Write-ahead transactions // trade durability for performance on values 1 (NORMAL) or @@ -702,6 +719,10 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.writeAhead.commit(); } break; + + case VFS.SQLITE_FCNTL_OVERWRITE: + file.overwrite = true; + break; } } catch (e) { console.error(e.stack); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 35245509..f0497dc7 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -180,8 +180,9 @@ export class WriteAhead { /** * @param {number} offset * @param {Uint8Array} data + * @param {{dstPageSize: number?}} options */ - write(offset, data) { + write(offset, data, options) { if (this.#isolationState !== 'write') { throw new Error('Not in write isolated state'); } From 1a5d165692fbcdeb8bd5a4b319fe26c925b310ce Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 15 Mar 2026 12:10:10 -0700 Subject: [PATCH 077/104] Remove unused Transaction.dbPageSize assignments. --- src/examples/WriteAhead.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index f0497dc7..aef2f503 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -16,7 +16,7 @@ const DEFAULT_BACKSTOP_INTERVAL = 30_000; * @property {number} id * @property {Map} pages address to page data mapping * @property {number} dbFileSize - * @property {number} dbPageSize + * @property {number} [dbPageSize] * @property {number} waSalt1 WAL2 file identifier * @property {number} waOffsetEnd */ @@ -669,7 +669,6 @@ class WriteAheadFile { id: 0, // placeholder pages: new Map(), dbFileSize: 0, // placeholder - dbPageSize: 0, waSalt1: this.activeHeader.salt1, waOffsetEnd: 0 // placeholder }; @@ -683,7 +682,6 @@ class WriteAheadFile { if (!frame) return null; if (frame.frameType === WriteAheadFile.FRAME_TYPE_PAGE) { - tx.dbPageSize = frame.pageData.byteLength; tx.pages.set( frame.pageOffset, { @@ -699,7 +697,6 @@ class WriteAheadFile { // Finalize the transaction fields and return it. tx.id = this.txId; tx.dbFileSize = frame.dbFileSize; - tx.dbPageSize = tx.pages.values().next().value?.pageSize ?? 0; tx.waOffsetEnd = this.activeOffset; return tx; } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { @@ -742,7 +739,6 @@ class WriteAheadFile { id: this.txId + 1, pages: new Map(), dbFileSize: 0, - dbPageSize: 0, waSalt1: this.activeHeader.salt1, waOffsetEnd: this.activeOffset }; @@ -788,7 +784,6 @@ class WriteAheadFile { const dataView = new DataView(pageData.buffer, pageData.byteOffset, pageData.byteLength); const pageCount = dataView.getUint32(28); this.txInProgress.dbFileSize = pageCount * pageData.byteLength; - this.txInProgress.dbPageSize = pageData.byteLength; // Cache page 1 as a performance optimization and to exercise the // cache code path. From 0f70f951cd5dc33c3e3d45086dbcede10662d627 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 15 Mar 2026 17:01:52 -0700 Subject: [PATCH 078/104] Allow VACUUM page size change. --- src/examples/OPFSWriteAheadVFS.js | 5 ++ src/examples/WriteAhead.js | 85 ++++++++++++++++++++++++++++--- 2 files changed, 82 insertions(+), 8 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 07911e9c..295b932d 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -649,9 +649,14 @@ export class OPFSWriteAheadVFS extends FacadeVFS { const checkpointMode = (value ?? 'passive').toLowerCase(); switch (checkpointMode) { case 'passive': + this._module.pendingOps.push(this.#pendingCheckpoint(file, checkpointMode)); + break; case 'full': case 'restart': case 'truncate': + // TODO: Fix this to test for an active transaction instead + // of the lock state. Currently this doesn't work in + // exclusive locking mode and it should. if (file.lockState !== VFS.SQLITE_LOCK_NONE) { throw new Error('invalid while database is locked'); } diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index aef2f503..608e094d 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -16,7 +16,7 @@ const DEFAULT_BACKSTOP_INTERVAL = 30_000; * @property {number} id * @property {Map} pages address to page data mapping * @property {number} dbFileSize - * @property {number} [dbPageSize] + * @property {number} [newPageSize] * @property {number} waSalt1 WAL2 file identifier * @property {number} waOffsetEnd */ @@ -142,11 +142,6 @@ export class WriteAhead { if (this.#isolationState === 'write') { // Resume backstop after write isolation. this.#backstop(); - - // We need a place for a connection that only does write transactions - // to auto-checkpoint. This the best place because writing is - // complete. - this.#autoCheckpoint(); } else { // Catch up on new transactions that arrived while isolated. this.#advanceTxId({ autoCheckpoint: true }); @@ -199,9 +194,44 @@ export class WriteAhead { } this.#txActive = this.#waFile.beginTx(); + if (options.dstPageSize !== data.byteLength) { + // This is a VACUUM to a new page size. The incoming writes are at + // the old page size, but we want to write to the WAL with the new + // size. + this.#txActive.newPageSize = options.dstPageSize; + } + } + + if (this.#txActive.newPageSize) { + // The incoming data is not a single page because the page size + // is changing. The two cases are when the new page size is + // smaller or larger than the old page size. + const frameSize = WriteAheadFile.FRAME_HEADER_SIZE + this.#txActive.newPageSize; + if (data.byteLength > this.#txActive.newPageSize) { + // New page size is smaller. Write multiple pages of the new + // page size. + for (let i = 0; i < data.byteLength; i += this.#txActive.newPageSize) { + const pageData = data.slice(i, i + this.#txActive.newPageSize); + const waOffset = this.#waFile.writePage(offset + i, pageData); + this.log?.(`%cwrite page at ${offset + i} to WAL ${this.#waFile.activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); + } + } else { + // New page size is larger. Save the page data to the WAL file + // so it can be read back and rewritten as frames with the new + // page size. + const pageOffset = offset % this.#txActive.newPageSize; + const waOffset = this.#waFile.activeOffset + + (offset - pageOffset) / this.#txActive.newPageSize * frameSize + + WriteAheadFile.FRAME_HEADER_SIZE + + pageOffset; + this.#waFile.activeHandle.write(data.subarray(), { at: waOffset }); + this.log?.(`%cwrite page at ${offset} to WAL ${this.#waFile.activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); + } + } else { + // This is the normal case without a page size change. + const waOffset = this.#waFile.writePage(offset, data.slice()); + this.log?.(`%cwrite page at ${offset} to WAL ${this.#waFile.activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); } - const waOffset = this.#waFile.writePage(offset, data.slice()); - this.log?.(`%cwrite page at ${offset} to WAL ${this.#waFile.activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); } /** @@ -224,6 +254,31 @@ export class WriteAhead { } commit() { + if (this.#txActive.newPageSize && this.#txActive.pages.size === 0) { + // This transaction is a VACUUM with a page size increase. All + // the database pages have been written to the WAL file at their + // new size with blank frame headers. Read the page data back + // from the WAL file and rewrite as frames. + let pageCount = 1; // to be replaced on the first iteration + for (let i = 0; i < pageCount; i++) { + // Read the page data. + const pageData = new Uint8Array(this.#txActive.newPageSize); + const waOffset = this.#waFile.activeOffset + + i * (WriteAheadFile.FRAME_HEADER_SIZE + this.#txActive.newPageSize) + + WriteAheadFile.FRAME_HEADER_SIZE; + this.#waFile.activeHandle.read(pageData, { at: waOffset }); + + if (i === 0) { + // Get the actual page count from the file header. + const headerView = new DataView(pageData.buffer); + pageCount = headerView.getUint32(28); + } + + // Write back as a frame. + this.#waFile.writePage(i * this.#txActive.newPageSize, pageData); + } + } + // Persist the final pending transaction page with the database size. this.#waFile.commitTx(); @@ -235,6 +290,8 @@ export class WriteAhead { const payload = { type: 'tx', tx: this.#txActive }; this.#broadcastChannel.postMessage(payload); this.#txActive = null; + + this.#autoCheckpoint(); } rollback() { @@ -323,6 +380,15 @@ export class WriteAhead { this.log?.(`%ccheckpoint wrote txId ${tx.id} page at ${offset} to database`, 'background-color: lightgreen;'); } } + + if (tx.newPageSize) { + // This transaction used a new page size to overwrite the entire + // database file so no older pages need to be written. This is + // not just an optimization; it prevents incorrectly writing + // older smaller pages at addresses that aren't multiples of + // the new page size. + break; + } } // Ensure that database writes are durable. @@ -697,6 +763,7 @@ class WriteAheadFile { // Finalize the transaction fields and return it. tx.id = this.txId; tx.dbFileSize = frame.dbFileSize; + tx.newPageSize = (frame.flags & 1) ? tx.pages.get(0).pageSize : null; tx.waOffsetEnd = this.activeOffset; return tx; } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { @@ -804,6 +871,7 @@ class WriteAheadFile { // body - to the WAL file. const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); headerView.setUint8(0, WriteAheadFile.FRAME_TYPE_COMMIT); + headerView.setUint8(1, this.txInProgress.newPageSize ? 1 : 0); headerView.setBigUint64(8, BigInt(this.txInProgress.dbFileSize)); headerView.setUint32(16, this.activeHeader.salt1); headerView.setUint32(20, this.activeHeader.salt2); @@ -985,6 +1053,7 @@ class WriteAheadFile { return { frameType, byteLength: WriteAheadFile.FRAME_HEADER_SIZE, + flags: headerView.getUint8(1), dbFileSize: Number(headerView.getBigUint64(8)) }; } else if (frameType === WriteAheadFile.FRAME_TYPE_END) { From 9085bb1864250a3cc2df8def392ec7c9f05f4362 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 26 Mar 2026 15:17:09 -0700 Subject: [PATCH 079/104] Rework backstop implementation. --- src/examples/OPFSWriteAheadVFS.js | 2 +- src/examples/WriteAhead.js | 76 +++++++++++++++++++++---------- 2 files changed, 53 insertions(+), 25 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 295b932d..061f73ba 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -554,7 +554,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { case 'backstop_interval': if (value !== null) { const millis = parseInt(value); - file.writeAhead.options.backstopInterval = millis; + file.writeAhead.setBackstopInterval(millis); } else { // Return current interval. const s = file.writeAhead.options.backstopInterval.toString(); diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 608e094d..c8937b4f 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -54,7 +54,9 @@ export class WriteAhead { #mapIdToTxPageCount = 0; /** @type {BroadcastChannel} */ #broadcastChannel; + /** @type {number} */ #backstopTimer; + /** @type {number} */ #backstopTimestamp = 0; /** * @param {string} zName @@ -88,6 +90,7 @@ export class WriteAhead { // Schedule backstop. The backstop is a guard against a crash in // another context between persisting a transaction and broadcasting // it. + this.#backstopTimestamp = performance.now(); this.#backstop(); })(); } @@ -118,6 +121,10 @@ export class WriteAhead { throw new Error('Already in isolated state'); } this.#isolationState = 'read'; + + // Disable backstop during isolation. + clearTimeout(this.#backstopTimer); + this.#backstopTimer = null; } /** @@ -130,7 +137,7 @@ export class WriteAhead { } this.#isolationState = 'write'; - // Backstop is not needed while writing because we will be current. + // Disable backstop during isolation. clearTimeout(this.#backstopTimer); this.#backstopTimer = null; @@ -139,14 +146,14 @@ export class WriteAhead { } rejoin() { - if (this.#isolationState === 'write') { - // Resume backstop after write isolation. - this.#backstop(); - } else { + if (this.#isolationState === 'read') { // Catch up on new transactions that arrived while isolated. this.#advanceTxId({ autoCheckpoint: true }); } this.#isolationState = null; + + // Resume backstop after isolation. + this.#backstop(); } /** @@ -292,6 +299,7 @@ export class WriteAhead { this.#txActive = null; this.#autoCheckpoint(); + this.#backstopTimestamp = performance.now(); } rollback() { @@ -425,6 +433,13 @@ export class WriteAhead { return this.#mapIdToTxPageCount; } + setBackstopInterval(intervalMillis) { + this.options.backstopInterval = intervalMillis; + if (intervalMillis > 0 && this.#isolationState) { + this.#backstop(); + } + } + /** * Incorporate a transaction into our view of the database. * @param {Transaction} tx @@ -487,6 +502,15 @@ export class WriteAhead { this.#autoCheckpoint(); } } + + if (options.readToCurrent || didAdvance) { + // The WAL has been accessed, so reset the backstop. + // Calling #backstop() here is not necessary because if we are + // in an isolated state then rejoin() will schedule the next call, + // and if we are not in an isolated state then the next call + // should already be scheduled. + this.#backstopTimestamp = performance.now(); + } } #autoCheckpoint() { @@ -547,28 +571,32 @@ export class WriteAhead { /** * Periodic check for recovering from lost transaction broadcasts. */ - async #backstop() { - try { - if (this.#backstopTimer) { - if (this.#isolationState === null) { - // Not in an isolated state, so advance our view of the database. - const oldTxId = this.#waFile.txId; - this.#advanceTxId({ readToCurrent: true }); - if (this.#waFile.txId > oldTxId) { - this.log?.(`%cbackstop txId ${oldTxId} -> ${this.#waFile.txId}`, 'background-color: lightyellow;'); - } - } else if (this.#isolationState === 'read') { - // TODO: Peek to see if there may be new transactions. - // Check txId locks or read the next frame header. - } + #backstop() { + if (this.options.backstopInterval <= 0) { + // Backstop is disabled. + return; + } + + if (this.#isolationState) { + throw new Error('Backstop was invoked in an isolated state'); + } + + const now = performance.now(); + if (now >= this.#backstopTimestamp + this.options.backstopInterval) { + // The time since the last WAL access (read, write, or skip) has + // exceeded the backstop interval. Check for transactions in the + // write-ahead log that have not arrived via message. + const oldTxId = this.#waFile.txId; + this.#advanceTxId({ readToCurrent: true }); + if (this.#waFile.txId > oldTxId) { + this.log?.(`%cbackstop txId ${oldTxId} -> ${this.#waFile.txId}`, 'background-color: lightyellow;'); } - } catch (e) { - console.error('Backstop failed', e); + this.#backstopTimestamp = performance.now(); } - // Schedule next backstop. Add a bit of jitter to decorrelate - // backstops across multiple connections. - const delay = this.options.backstopInterval * (0.9 + 0.2 * Math.random()); + // Schedule next backstop. + const delay = this.#backstopTimestamp + this.options.backstopInterval - performance.now(); + clearTimeout(this.#backstopTimer); this.#backstopTimer = self.setTimeout(() => { this.#backstop(); }, delay); From b19be6cbbc047dcc4c5bfc1a5b2ac6c7c57fe5ca Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 26 Mar 2026 16:01:50 -0700 Subject: [PATCH 080/104] Allow manual checkpoint in exclusive locking mode. --- src/examples/OPFSWriteAheadVFS.js | 7 ++----- src/examples/WriteAhead.js | 4 ++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 061f73ba..ac154702 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -654,11 +654,8 @@ export class OPFSWriteAheadVFS extends FacadeVFS { case 'full': case 'restart': case 'truncate': - // TODO: Fix this to test for an active transaction instead - // of the lock state. Currently this doesn't work in - // exclusive locking mode and it should. - if (file.lockState !== VFS.SQLITE_LOCK_NONE) { - throw new Error('invalid while database is locked'); + if (file.writeAhead.isTransactionPending()) { + throw new Error('invalid while a transaction is in progress'); } this._module.pendingOps.push(this.#pendingCheckpoint(file, checkpointMode)); break; diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index c8937b4f..b515da53 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -433,6 +433,10 @@ export class WriteAhead { return this.#mapIdToTxPageCount; } + isTransactionPending() { + return !!this.#txActive; + } + setBackstopInterval(intervalMillis) { this.options.backstopInterval = intervalMillis; if (intervalMillis > 0 && this.#isolationState) { From d746d2ca52577873ed57db2c6bb385d5556aec8c Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 28 Mar 2026 10:27:15 -0700 Subject: [PATCH 081/104] Fix a checkpoint race condition. --- src/examples/WriteAhead.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index b515da53..5085d3c9 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -58,6 +58,8 @@ export class WriteAhead { /** @type {number} */ #backstopTimer; /** @type {number} */ #backstopTimestamp = 0; + #abortController = new AbortController(); + /** * @param {string} zName * @param {FileSystemSyncAccessHandle} dbHandle @@ -103,6 +105,8 @@ export class WriteAhead { } close() { + this.#abortController.abort(); + // Stop asynchronous maintenance. this.#broadcastChannel.onmessage = null; clearTimeout(this.#backstopTimer); @@ -323,11 +327,6 @@ export class WriteAhead { * @param {{isPassive: boolean}} options */ async checkpoint(options = { isPassive: true }) { - if (this.#waFile.isInactiveFileEmpty() && options.isPassive) { - // Checkpoint is unnecessary. - return; - } - // Passive checkpointing is abandoned if another connection is // already checkpointing. const lockOptions = { @@ -336,9 +335,15 @@ export class WriteAhead { await navigator.locks.request(`${this.#zName}#ckpt`, lockOptions, async lock => { if (!lock) return; + if (this.#abortController.signal.aborted) return; let ckptId = this.#waFile.getActiveFileStartingTxId() - 1; if (options.isPassive) { + if (!this.#mapIdToTx.has(ckptId)) { + // There are no transactions to checkpoint. + return; + } + // Scan the txId locks to find the oldest txId. const busyTxId = (await this.#getTxIdLocks()) .reduce((min, value) => Math.min(min, value.maxTxId), this.#waFile.txId); From 09da7abf26c9fbe0a2414949c14a94b8e63107b0 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 28 Mar 2026 10:52:28 -0700 Subject: [PATCH 082/104] Allow lock client to enqueue a release before acquire completes. --- src/examples/Lock.js | 64 ++++++++++++++++--------------- src/examples/OPFSWriteAheadVFS.js | 11 ++++-- 2 files changed, 40 insertions(+), 35 deletions(-) diff --git a/src/examples/Lock.js b/src/examples/Lock.js index 538755e5..6199f374 100644 --- a/src/examples/Lock.js +++ b/src/examples/Lock.js @@ -2,7 +2,8 @@ export class Lock { #name; /** @type {LockMode?} */ #mode = null; - #releaser = null; + /** @type {Promise} */ #releaser = Promise.resolve(null); + #isAcquiring = false; /** * @param {string} name @@ -24,44 +25,45 @@ export class Lock { * @return {Promise} true if lock acquired, false on failed poll */ async acquire(mode, timeout = -1) { - if (this.#releaser) { - throw new Error(`Lock ${this.#name} is already acquired`); - } - return new Promise((resolve, reject) => { - /** @type {LockOptions} */ - const options = { mode, ifAvailable: timeout === 0 }; - let timeoutId; - if (timeout > 0) { - const abortController = new AbortController(); - timeoutId = self.setTimeout(() => { - abortController.abort(); - }, timeout); - options.signal = abortController.signal; + if (this.#isAcquiring) throw new Error('Lock is already being acquired'); + this.#isAcquiring = true; + try { + if (this.#mode) { + throw new Error(`Lock ${this.#name} is already acquired`); } - navigator.locks.request(this.#name, options, lock => { - if (timeoutId) clearTimeout(timeoutId); - if (lock === null) { - // Polling (with timeout = 0) did not acquire the lock. - return resolve(false); + this.#releaser = new Promise((resolve, reject) => { + /** @type {LockOptions} */ + const options = { mode, ifAvailable: timeout === 0 }; + if (timeout > 0) { + options.signal = AbortSignal.timeout(timeout); } - // Lock acquired. The lock is released when this returned - // Promise is resolved. - this.#mode = mode; - return new Promise(releaser => { - this.#releaser = releaser; - resolve(true); - }) - }).catch(e => { - return reject(e); + navigator.locks.request(this.#name, options, lock => { + if (lock === null) { + // Polling (with timeout = 0) did not acquire the lock. + return resolve(null); + } + + // Lock acquired. The lock is released when this returned + // Promise is resolved. + this.#mode = mode; + return new Promise(releaser => { + resolve(releaser); + }) + }).catch(e => { + return reject(e); + }); }); - }); + + return this.#releaser.then(releaser => !!releaser) + } finally { + this.#isAcquiring = false; + } } release() { - this.#releaser?.(); - this.#releaser = null; + this.#releaser.then(releaser => releaser?.(), () => {}); this.#mode = null; } } diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index ac154702..4d5ccf94 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -144,7 +144,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { this._module.retryOps.push(this.#retryOpen(zName, flags, fileId, pOutFlags)); return VFS.SQLITE_BUSY; } else if (file.retryResult instanceof Error) { - throw file.retryResult; + const e = file.retryResult; + file.retryResult = null; + throw e; } // Initialize database file state. @@ -435,7 +437,9 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } } } else if (file.retryResult instanceof Error) { - throw file.retryResult; + const e = file.retryResult; + file.retryResult = null; + throw e; } // We have acquired the needed locks, either synchronously or @@ -450,8 +454,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.lockState = lockType; return VFS.SQLITE_OK; } catch (e) { - if (e.name === 'AbortError') { - // Timeout expired while waiting for the lock. + if (e.name === 'TimeoutError') { return VFS.SQLITE_BUSY; } From d889188eb545ef41f2728895919db1c65f06f75c Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 28 Mar 2026 14:17:47 -0700 Subject: [PATCH 083/104] Move WriteAheadFile into WriteAhead. --- src/examples/WriteAhead.js | 455 ++++++++++++++++++------------------- 1 file changed, 219 insertions(+), 236 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 5085d3c9..df78d40f 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -29,6 +29,13 @@ const DEFAULT_BACKSTOP_INTERVAL = 30_000; */ export class WriteAhead { + static MAGIC = 0x377f0684; + static FILE_HEADER_SIZE = 32; + static FRAME_HEADER_SIZE = 32; + static FRAME_TYPE_PAGE = 0; + static FRAME_TYPE_COMMIT = 1; + static FRAME_TYPE_END = 2; + log = null; /** @type {WriteAheadOptions} */ options = { autoCheckpoint: 1, @@ -38,16 +45,22 @@ export class WriteAhead { #zName; #dbHandle; - #waFile; + + /** @type {FileSystemSyncAccessHandle[]} */ #waHandles; + /** @type {FileSystemSyncAccessHandle} */ #activeHandle; + /** @type {{nextTxId: number, salt1: number, salt2: number}} */ #activeHeader; + /** @type {number} */ #activeOffset; + /** @type {number} */ #txId = 0; + /** @type {Transaction} */ #txInProgress = null; #dbFileSize = 0; /** @type {Promise} */ #ready; - /** @type {'read'|'write'} */ #isolationState = null + /** @type {'read'|'write'} */ #isolationState = null; /** @type {Lock} */ #txIdLock = null; /** @type {Transaction} */ #txActive = null; - + /** @type {Map} */ #waOverlay = new Map(); /** @type {Map} */ #mapIdToTx = new Map(); /** @type {Map} */ #pendingTx = new Map(); @@ -61,17 +74,30 @@ export class WriteAhead { #abortController = new AbortController(); /** - * @param {string} zName + * @param {string} zName * @param {FileSystemSyncAccessHandle} dbHandle * @param {FileSystemSyncAccessHandle[]} waHandles - * @param {WriteAheadOptions} options + * @param {WriteAheadOptions} options */ constructor(zName, dbHandle, waHandles, options = {}) { this.#zName = zName; this.#dbHandle = dbHandle; - this.#waFile = new WriteAheadFile(waHandles); + this.#waHandles = waHandles; this.options = Object.assign(this.options, options); + // Read file headers from both header slots and use the one with the + // lower nextTxId. If neither header is valid, create a new header. + const fileHeader = this.#waHandles + .map(handle => this.#readFileHeader(handle)) + .filter(h => h) + .sort((a, b) => a.nextTxId - b.nextTxId)[0] + ?? this.#writeFileHeader(Math.floor(Math.random() * 0xffffffff)); + + this.#activeHeader = fileHeader; + this.#activeHandle = this.#waHandles[fileHeader.salt1 & 1]; + this.#activeOffset = WriteAhead.FILE_HEADER_SIZE; + this.#txId = fileHeader.nextTxId - 1; + // All the asynchronous initialization is done here. this.#ready = (async () => { // Disable checkpointing by other connections until we're ready. @@ -84,7 +110,7 @@ export class WriteAhead { }; // Load all the transactions from the WAL file. - for (const tx of this.#waFile.readAllTx()) { + for (const tx of this.#readAllTx()) { this.#activateTx(tx); } this.#updateTxIdLock(); // doesn't need await @@ -161,7 +187,7 @@ export class WriteAhead { } /** - * @param {number} offset + * @param {number} offset * @return {Uint8Array?} */ read(offset) { @@ -178,14 +204,14 @@ export class WriteAhead { // Read the page from the WAL file. this.log?.(`%cread page at ${offset} from WAL ${pageEntry.waSalt1 & 1}:${pageEntry.waOffset}`, 'background-color: gold;'); - return this.#waFile.fetchPage(pageEntry); + return this.#fetchPage(pageEntry); } return null; } /** - * @param {number} offset - * @param {Uint8Array} data + * @param {number} offset + * @param {Uint8Array} data * @param {{dstPageSize: number?}} options */ write(offset, data, options) { @@ -199,12 +225,12 @@ export class WriteAhead { const nPageThreshold = this.options.journalSizeLimit >= 0 ? this.options.journalSizeLimit : DEFAULT_JOURNAL_SIZE_LIMIT; - if (this.#mapIdToTxPageCount >= nPageThreshold && this.#waFile.isInactiveFileEmpty()) { + if (this.#mapIdToTxPageCount >= nPageThreshold && this.#isInactiveFileEmpty()) { this.log?.(`%cchange WAL file at ${this.#mapIdToTxPageCount} pages`, 'background-color: lightskyblue;'); - this.#waFile.swapActiveFile(); + this.#swapActiveFile(); } - this.#txActive = this.#waFile.beginTx(); + this.#txActive = this.#beginTx(); if (options.dstPageSize !== data.byteLength) { // This is a VACUUM to a new page size. The incoming writes are at // the old page size, but we want to write to the WAL with the new @@ -217,36 +243,36 @@ export class WriteAhead { // The incoming data is not a single page because the page size // is changing. The two cases are when the new page size is // smaller or larger than the old page size. - const frameSize = WriteAheadFile.FRAME_HEADER_SIZE + this.#txActive.newPageSize; + const frameSize = WriteAhead.FRAME_HEADER_SIZE + this.#txActive.newPageSize; if (data.byteLength > this.#txActive.newPageSize) { // New page size is smaller. Write multiple pages of the new // page size. for (let i = 0; i < data.byteLength; i += this.#txActive.newPageSize) { const pageData = data.slice(i, i + this.#txActive.newPageSize); - const waOffset = this.#waFile.writePage(offset + i, pageData); - this.log?.(`%cwrite page at ${offset + i} to WAL ${this.#waFile.activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); + const waOffset = this.#writePage(offset + i, pageData); + this.log?.(`%cwrite page at ${offset + i} to WAL ${this.#activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); } } else { // New page size is larger. Save the page data to the WAL file // so it can be read back and rewritten as frames with the new // page size. const pageOffset = offset % this.#txActive.newPageSize; - const waOffset = this.#waFile.activeOffset + + const waOffset = this.#activeOffset + (offset - pageOffset) / this.#txActive.newPageSize * frameSize + - WriteAheadFile.FRAME_HEADER_SIZE + + WriteAhead.FRAME_HEADER_SIZE + pageOffset; - this.#waFile.activeHandle.write(data.subarray(), { at: waOffset }); - this.log?.(`%cwrite page at ${offset} to WAL ${this.#waFile.activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); + this.#activeHandle.write(data.subarray(), { at: waOffset }); + this.log?.(`%cwrite page at ${offset} to WAL ${this.#activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); } } else { // This is the normal case without a page size change. - const waOffset = this.#waFile.writePage(offset, data.slice()); - this.log?.(`%cwrite page at ${offset} to WAL ${this.#waFile.activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); + const waOffset = this.#writePage(offset, data.slice()); + this.log?.(`%cwrite page at ${offset} to WAL ${this.#activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); } } /** - * @param {number} newSize + * @param {number} newSize */ truncate(newSize) { // Remove any pages past the truncation point. We don't need to save @@ -274,10 +300,10 @@ export class WriteAhead { for (let i = 0; i < pageCount; i++) { // Read the page data. const pageData = new Uint8Array(this.#txActive.newPageSize); - const waOffset = this.#waFile.activeOffset + - i * (WriteAheadFile.FRAME_HEADER_SIZE + this.#txActive.newPageSize) + - WriteAheadFile.FRAME_HEADER_SIZE; - this.#waFile.activeHandle.read(pageData, { at: waOffset }); + const waOffset = this.#activeOffset + + i * (WriteAhead.FRAME_HEADER_SIZE + this.#txActive.newPageSize) + + WriteAhead.FRAME_HEADER_SIZE; + this.#activeHandle.read(pageData, { at: waOffset }); if (i === 0) { // Get the actual page count from the file header. @@ -286,12 +312,12 @@ export class WriteAhead { } // Write back as a frame. - this.#waFile.writePage(i * this.#txActive.newPageSize, pageData); + this.#writePage(i * this.#txActive.newPageSize, pageData); } } // Persist the final pending transaction page with the database size. - this.#waFile.commitTx(); + this.#commitTx(); // Incorporate the transaction locally. this.#activateTx(this.#txActive); @@ -308,22 +334,22 @@ export class WriteAhead { rollback() { // Discard transaction pages. - this.#waFile.abortTx(); + this.#abortTx(); this.#txActive = null; } - + /** - * @param {{durability: 'strict'|'relaxed'}} options + * @param {{durability: 'strict'|'relaxed'}} options */ sync(options) { if (options.durability === 'strict') { - this.#waFile.flushActiveFile(); + this.#flushActiveFile(); } } /** * Move pages from write-ahead to main database file. - * + * * @param {{isPassive: boolean}} options */ async checkpoint(options = { isPassive: true }) { @@ -337,7 +363,7 @@ export class WriteAhead { if (!lock) return; if (this.#abortController.signal.aborted) return; - let ckptId = this.#waFile.getActiveFileStartingTxId() - 1; + let ckptId = this.#getActiveFileStartingTxId() - 1; if (options.isPassive) { if (!this.#mapIdToTx.has(ckptId)) { // There are no transactions to checkpoint. @@ -346,7 +372,7 @@ export class WriteAhead { // Scan the txId locks to find the oldest txId. const busyTxId = (await this.#getTxIdLocks()) - .reduce((min, value) => Math.min(min, value.maxTxId), this.#waFile.txId); + .reduce((min, value) => Math.min(min, value.maxTxId), this.#txId); if (busyTxId < ckptId) { // The inactive WAL file is still being used. @@ -354,17 +380,17 @@ export class WriteAhead { } } else { // Wait for all connections to reach the current txId. - await this.#waitForTxIdLocks(value => value.maxTxId >= this.#waFile.txId); - ckptId = this.#waFile.txId; + await this.#waitForTxIdLocks(value => value.maxTxId >= this.#txId); + ckptId = this.#txId; } this.log?.(`%ccheckpoint through txId ${ckptId}`, 'background-color: lightgreen;'); // Sync the WAL file. This ensures that if there is a crash after // part of the WAL has been copied, the uncopied part will still be // available afterwards. - this.#waFile.flushInactiveFile(); + this.#flushInactiveFile(); if (!options.isPassive) { - this.#waFile.flushActiveFile(); + this.#flushActiveFile(); } // Starting at ckptId and going backwards (higher to lower txId), @@ -382,7 +408,7 @@ export class WriteAhead { for (const [offset, pageEntry] of tx.pages) { if (offset < dbFileSize && !writtenOffsets.has(offset)) { // Fetch the page data from the WAL file if not cached. - const pageData = pageEntry.pageData ?? this.#waFile.fetchPage(pageEntry); + const pageData = pageEntry.pageData ?? this.#fetchPage(pageEntry); // Write the page to the database file. const nWritten = this.#dbHandle.write(pageData, { at: offset }); @@ -422,7 +448,7 @@ export class WriteAhead { // Truncate the inactive WAL file. This prevents new connections from // unnecessarily reading checkpointed data, and allows writers to make // it active when their conditions are met. - this.#waFile.truncateInactiveFile(); + this.#truncateInactiveFile(); this.log?.(`%ccheckpoint complete`, 'background-color: lightgreen;'); }); } @@ -451,13 +477,13 @@ export class WriteAhead { /** * Incorporate a transaction into our view of the database. - * @param {Transaction} tx + * @param {Transaction} tx */ #activateTx(tx) { // Transfer to the active collection of transactions. this.#mapIdToTx.set(tx.id, tx); this.#mapIdToTxPageCount += tx.pages.size; - + // Add transaction pages to the write-ahead overlay. for (const [offset, pageEntry] of tx.pages) { this.#waOverlay.set(offset, pageEntry); @@ -469,7 +495,7 @@ export class WriteAhead { * Advance the local view of the database. By default, advance to the * last broadcast transaction. Optionally, also advance through any * additional transactions in the WAL file to be fully current. - * + * * @param {{readToCurrent?: boolean, autoCheckpoint?: boolean}} options */ #advanceTxId(options = {}) { @@ -477,7 +503,7 @@ export class WriteAhead { while (this.#pendingTx.size) { // Fetch the next transaction in sequence. Usually this will come // from pendingTx, but if it is missing then read it from the file. - const nextTxId = this.#waFile.txId + 1; + const nextTxId = this.#txId + 1; let tx; if (this.#pendingTx.has(nextTxId)) { // This transaction arrived via message. @@ -485,10 +511,10 @@ export class WriteAhead { this.#pendingTx.delete(tx.id); // Move the WAL file offset past this transaction. - this.#waFile.skipTx(tx); + this.#skipTx(tx); } else { // Read the transaction from the WAL file. - tx = this.#waFile.readTx(); + tx = this.#readTx(); } this.#activateTx(tx); @@ -497,7 +523,7 @@ export class WriteAhead { if (options.readToCurrent) { // Read all additional transactions from the WAL file. - for (const tx of this.#waFile.readAllTx()) { + for (const tx of this.#readAllTx()) { this.#activateTx(tx); didAdvance = true; } @@ -531,7 +557,7 @@ export class WriteAhead { /** * After a checkpoint, remove checkpointed pages from write-ahead. * The checkpoint may be been done locally or by another connection. - * @param {number} ckptId + * @param {number} ckptId */ #handleCheckpoint(ckptId) { this.log?.(`%capply checkpoint through txId ${ckptId}`, 'background-color: lightgreen;'); @@ -556,14 +582,14 @@ export class WriteAhead { } /** - * @param {MessageEvent} event + * @param {MessageEvent} event */ #handleMessage(event) { if (event.data.type === 'tx') { // New transaction from another connection. Don't use it if we // already have it. /** @type {Transaction} */ const tx = event.data.tx; - if (tx.id > this.#waFile.txId) { + if (tx.id > this.#txId) { this.#pendingTx.set(tx.id, tx); if (this.#isolationState === null) { // Not in an isolated state, so advance our view of the database. @@ -595,10 +621,10 @@ export class WriteAhead { // The time since the last WAL access (read, write, or skip) has // exceeded the backstop interval. Check for transactions in the // write-ahead log that have not arrived via message. - const oldTxId = this.#waFile.txId; + const oldTxId = this.#txId; this.#advanceTxId({ readToCurrent: true }); - if (this.#waFile.txId > oldTxId) { - this.log?.(`%cbackstop txId ${oldTxId} -> ${this.#waFile.txId}`, 'background-color: lightyellow;'); + if (this.#txId > oldTxId) { + this.log?.(`%cbackstop txId ${oldTxId} -> ${this.#txId}`, 'background-color: lightyellow;'); } this.#backstopTimestamp = performance.now(); } @@ -610,7 +636,7 @@ export class WriteAhead { this.#backstop(); }, delay); } - + /** * Update the lock that publishes our current txId. */ @@ -643,7 +669,7 @@ export class WriteAhead { const { held } = await navigator.locks.query(); return held .map(lock => this.#decodeTxIdLockName(lock.name)) - .filter(value => value !== null) + .filter(value => value !== null); } /** @@ -657,13 +683,13 @@ export class WriteAhead { // invalid value maxTxId + 1. // // Use radix 36 to encode integer values to reduce the lock name length. - const maxTxId = this.#waFile.txId; + const maxTxId = this.#txId; const minTxId = this.#mapIdToTx.keys().next().value ?? (maxTxId + 1); return `${this.#zName}-txId<${minTxId.toString(36)}:${maxTxId.toString(36)}>`; } /** - * @param {string} lockName + * @param {string} lockName * @returns {{name: string, minTxId: number, maxTxId: number}} */ #decodeTxIdLockName(lockName) { @@ -673,7 +699,7 @@ export class WriteAhead { return { name: match[1], minTxId: parseInt(match[2], 36), - maxTxId: parseInt(match[3], 36) + maxTxId: parseInt(match[3], 36), }; } return null; @@ -681,7 +707,7 @@ export class WriteAhead { /** * Wait for all txId locks that fail the provided predicate. - * @param {(lock: {name: string, minTxId: number, maxTxId: number}) => boolean} predicate + * @param {(lock: {name: string, minTxId: number, maxTxId: number}) => boolean} predicate */ async #waitForTxIdLocks(predicate) { /** @type {string[]} */ let failingLockNames = []; @@ -697,53 +723,14 @@ export class WriteAhead { .map(value => value.name); } while (failingLockNames.length > 0); } -} - -class WriteAheadFile { - static MAGIC = 0x377f0684; - static FILE_HEADER_SIZE = 32; - static FRAME_HEADER_SIZE = 32; - static FRAME_TYPE_PAGE = 0; - static FRAME_TYPE_COMMIT = 1; - static FRAME_TYPE_END = 2; - - /** @type {FileSystemSyncAccessHandle[]} */ accessHandles; - - /** @type {FileSystemSyncAccessHandle} */ activeHandle; - /** @type {{nextTxId: number, salt1: number, salt2: number}} */ activeHeader; - /** @type {number} */ activeOffset; - - txId = 0; - - /** @type {Transaction} */ txInProgress = null; - - /** - * @param {FileSystemSyncAccessHandle[]} accessHandles - */ - constructor(accessHandles) { - this.accessHandles = accessHandles; - - // Read file headers from both header slots and use the one with the - // lower nextTxId. If neither header is valid, create a new header. - const fileHeader = this.accessHandles - .map(handle => this.#readFileHeader(handle)) - .filter(h => h) - .sort((a, b) => a.nextTxId - b.nextTxId)[0] - ?? this.#writeFileHeader(Math.floor(Math.random() * 0xffffffff)); - - this.activeHeader = fileHeader; - this.activeHandle = this.accessHandles[fileHeader.salt1 & 1]; - this.activeOffset = WriteAheadFile.FILE_HEADER_SIZE; - this.txId = fileHeader.nextTxId - 1; - } /** - * @param {PageEntry} pageEntry + * @param {PageEntry} pageEntry * @returns {Uint8Array} */ - fetchPage(pageEntry) { + #fetchPage(pageEntry) { // Get the appropriate access handle based on salt parity. - const accessHandle = this.accessHandles[pageEntry.waSalt1 & 1]; + const accessHandle = this.#waHandles[pageEntry.waSalt1 & 1]; // Read the page. const pageData = new Uint8Array(pageEntry.pageSize); @@ -755,9 +742,9 @@ class WriteAheadFile { return pageData; } - *readAllTx() { + *#readAllTx() { while (true) { - const tx = this.readTx(); + const tx = this.#readTx(); if (!tx) break; yield tx; } @@ -766,48 +753,49 @@ class WriteAheadFile { /** * @returns {Transaction?} */ - readTx() { + #readTx() { // Read the next complete transaction or return null. /** @type {Transaction} */ const tx = { id: 0, // placeholder pages: new Map(), dbFileSize: 0, // placeholder - waSalt1: this.activeHeader.salt1, - waOffsetEnd: 0 // placeholder + waSalt1: this.#activeHeader.salt1, + waOffsetEnd: 0, // placeholder }; - // The property this.activeOffset is only advanced on a successful + // The property this.#activeOffset is only advanced on a successful // transition to the other WAL file or on reading a complete // transaction. Use a local variable to track our progress. - let offset = this.activeOffset; + let offset = this.#activeOffset; while (true) { const frame = this.#readFrame(offset); if (!frame) return null; - if (frame.frameType === WriteAheadFile.FRAME_TYPE_PAGE) { + if (frame.frameType === WriteAhead.FRAME_TYPE_PAGE) { tx.pages.set( frame.pageOffset, { pageSize: frame.pageData.byteLength, - waOffset: offset + WriteAheadFile.FRAME_HEADER_SIZE, - waSalt1: tx.waSalt1 - }); - } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { + waOffset: offset + WriteAhead.FRAME_HEADER_SIZE, + waSalt1: tx.waSalt1, + } + ); + } else if (frame.frameType === WriteAhead.FRAME_TYPE_COMMIT) { // The transaction is complete. Update the instance state. - this.txId += 1; - this.activeOffset = offset + frame.byteLength; - + this.#txId += 1; + this.#activeOffset = offset + frame.byteLength; + // Finalize the transaction fields and return it. - tx.id = this.txId; + tx.id = this.#txId; tx.dbFileSize = frame.dbFileSize; tx.newPageSize = (frame.flags & 1) ? tx.pages.get(0).pageSize : null; - tx.waOffsetEnd = this.activeOffset; + tx.waOffsetEnd = this.#activeOffset; return tx; - } else if (frame.frameType === WriteAheadFile.FRAME_TYPE_END) { + } else if (frame.frameType === WriteAhead.FRAME_TYPE_END) { // No more transactions on the current WAL file. Switch to the // other file. this.#followFileChange(frame.fileHeader); - offset = this.activeOffset; + offset = this.#activeOffset; continue; } @@ -818,61 +806,60 @@ class WriteAheadFile { /** * This method is called when transaction(s) have been received by other * means than readTx(), e.g. via BroadcastChannel. - * - * @param {Transaction} tx + * + * @param {Transaction} tx */ - skipTx(tx) { - if (tx.waSalt1 !== this.activeHeader.salt1) { + #skipTx(tx) { + if (tx.waSalt1 !== this.#activeHeader.salt1) { // This transaction is on the other WAL file. if (!this.#followFileChange(null)) { throw new Error('invalid WAL file'); } } - this.txId = tx.id; - this.activeOffset = tx.waOffsetEnd; + this.#txId = tx.id; + this.#activeOffset = tx.waOffsetEnd; } /** - * - * @param {{overwrite?: boolean}} options + * @param {{overwrite?: boolean}} options * @returns {Transaction} */ - beginTx(options = {}) { - this.txInProgress = { - id: this.txId + 1, + #beginTx(options = {}) { + this.#txInProgress = { + id: this.#txId + 1, pages: new Map(), dbFileSize: 0, - waSalt1: this.activeHeader.salt1, - waOffsetEnd: this.activeOffset + waSalt1: this.#activeHeader.salt1, + waOffsetEnd: this.#activeOffset, }; - return this.txInProgress; + return this.#txInProgress; } /** * Write a page frame to the WAL file. - * - * @param {number} pageOffset - * @param {Uint8Array} pageData + * + * @param {number} pageOffset + * @param {Uint8Array} pageData */ - writePage(pageOffset, pageData) { - const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); - headerView.setUint8(0, WriteAheadFile.FRAME_TYPE_PAGE); + #writePage(pageOffset, pageData) { + const headerView = new DataView(new ArrayBuffer(WriteAhead.FRAME_HEADER_SIZE)); + headerView.setUint8(0, WriteAhead.FRAME_TYPE_PAGE); headerView.setUint16(2, pageData.byteLength === 65536 ? 1 : pageData.byteLength); headerView.setBigUint64(8, BigInt(pageOffset)); - headerView.setUint32(16, this.activeHeader.salt1); - headerView.setUint32(20, this.activeHeader.salt2); + headerView.setUint32(16, this.#activeHeader.salt1); + headerView.setUint32(20, this.#activeHeader.salt2); const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FRAME_HEADER_SIZE - 8)); checksum.update(pageData); headerView.setUint32(24, checksum.s0); headerView.setUint32(28, checksum.s1); const bytesWritten = - this.activeHandle.write(headerView, { at: this.txInProgress.waOffsetEnd }) + - this.activeHandle.write(pageData, { - at: this.txInProgress.waOffsetEnd + WriteAheadFile.FRAME_HEADER_SIZE + this.#activeHandle.write(headerView, { at: this.#txInProgress.waOffsetEnd }) + + this.#activeHandle.write(pageData, { + at: this.#txInProgress.waOffsetEnd + WriteAhead.FRAME_HEADER_SIZE, }); if (bytesWritten !== headerView.byteLength + pageData.byteLength) { throw new Error('write failed'); @@ -880,22 +867,22 @@ class WriteAheadFile { const pageEntry = { pageSize: pageData.byteLength, - waOffset: this.txInProgress.waOffsetEnd + WriteAheadFile.FRAME_HEADER_SIZE, - waSalt1: this.activeHeader.salt1 + waOffset: this.#txInProgress.waOffsetEnd + WriteAhead.FRAME_HEADER_SIZE, + waSalt1: this.#activeHeader.salt1, }; if (pageOffset === 0) { // This is page 1, which contains the database header. const dataView = new DataView(pageData.buffer, pageData.byteOffset, pageData.byteLength); const pageCount = dataView.getUint32(28); - this.txInProgress.dbFileSize = pageCount * pageData.byteLength; + this.#txInProgress.dbFileSize = pageCount * pageData.byteLength; // Cache page 1 as a performance optimization and to exercise the // cache code path. pageEntry.pageData = pageData; } - this.txInProgress.pages.set(pageOffset, pageEntry); - this.txInProgress.waOffsetEnd += bytesWritten; + this.#txInProgress.pages.set(pageOffset, pageEntry); + this.#txInProgress.waOffsetEnd += bytesWritten; return pageEntry.waOffset; } @@ -903,86 +890,85 @@ class WriteAheadFile { /** * @returns {Transaction} */ - commitTx() { + #commitTx() { // Write a commit frame - which is a special frame header with no // body - to the WAL file. - const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); - headerView.setUint8(0, WriteAheadFile.FRAME_TYPE_COMMIT); - headerView.setUint8(1, this.txInProgress.newPageSize ? 1 : 0); - headerView.setBigUint64(8, BigInt(this.txInProgress.dbFileSize)); - headerView.setUint32(16, this.activeHeader.salt1); - headerView.setUint32(20, this.activeHeader.salt2); + const headerView = new DataView(new ArrayBuffer(WriteAhead.FRAME_HEADER_SIZE)); + headerView.setUint8(0, WriteAhead.FRAME_TYPE_COMMIT); + headerView.setUint8(1, this.#txInProgress.newPageSize ? 1 : 0); + headerView.setBigUint64(8, BigInt(this.#txInProgress.dbFileSize)); + headerView.setUint32(16, this.#activeHeader.salt1); + headerView.setUint32(20, this.#activeHeader.salt2); const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FRAME_HEADER_SIZE - 8)); headerView.setUint32(24, checksum.s0); headerView.setUint32(28, checksum.s1); - const bytesWritten = this.activeHandle.write(headerView, { - at: this.txInProgress.waOffsetEnd + const bytesWritten = this.#activeHandle.write(headerView, { + at: this.#txInProgress.waOffsetEnd, }); if (bytesWritten !== headerView.byteLength) { throw new Error('write failed'); } - this.txInProgress.waOffsetEnd += bytesWritten; + this.#txInProgress.waOffsetEnd += bytesWritten; - const tx = this.txInProgress; - this.txInProgress = null; - this.activeOffset = tx.waOffsetEnd; - this.txId = tx.id; + const tx = this.#txInProgress; + this.#txInProgress = null; + this.#activeOffset = tx.waOffsetEnd; + this.#txId = tx.id; return tx; } - abortTx() { - this.txInProgress = null; + #abortTx() { + this.#txInProgress = null; } /** * Switch the active WAL file prior to writing the next transaction. */ - swapActiveFile() { + #swapActiveFile() { // Write an end frame to terminate the currently active WAL file. - const frameView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); - frameView.setUint8(0, WriteAheadFile.FRAME_TYPE_END); - frameView.setUint32(16, this.activeHeader.salt1); - frameView.setUint32(20, this.activeHeader.salt2); + const frameView = new DataView(new ArrayBuffer(WriteAhead.FRAME_HEADER_SIZE)); + frameView.setUint8(0, WriteAhead.FRAME_TYPE_END); + frameView.setUint32(16, this.#activeHeader.salt1); + frameView.setUint32(20, this.#activeHeader.salt2); const checksum = new Checksum(); - checksum.update(new Uint8Array(frameView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(frameView.buffer, 0, WriteAhead.FRAME_HEADER_SIZE - 8)); frameView.setUint32(24, checksum.s0); frameView.setUint32(28, checksum.s1); - const bytesWritten = - this.activeHandle.write(frameView, { at: this.activeOffset }); + const bytesWritten = this.#activeHandle.write(frameView, { at: this.#activeOffset }); if (bytesWritten !== frameView.byteLength) { throw new Error('write failed'); } - + // Initialize the other WAL file and make it active. - this.activeHeader = this.#writeFileHeader(); - this.activeHandle = this.#getInactiveHandle(); - this.activeOffset = WriteAheadFile.FRAME_HEADER_SIZE; + this.#activeHeader = this.#writeFileHeader(); + this.#activeHandle = this.#getInactiveHandle(); + this.#activeOffset = WriteAhead.FILE_HEADER_SIZE; } - getActiveFileStartingTxId() { - return this.activeHeader.nextTxId; + #getActiveFileStartingTxId() { + return this.#activeHeader.nextTxId; } - flushActiveFile() { - this.activeHandle.flush(); + #flushActiveFile() { + this.#activeHandle.flush(); } - - flushInactiveFile() { + + #flushInactiveFile() { const accessHandle = this.#getInactiveHandle(); accessHandle.flush(); } - isInactiveFileEmpty() { + #isInactiveFileEmpty() { const accessHandle = this.#getInactiveHandle(); return accessHandle.getSize() === 0; } - truncateInactiveFile() { + #truncateInactiveFile() { const accessHandle = this.#getInactiveHandle(); accessHandle.truncate(0); } @@ -999,34 +985,34 @@ class WriteAheadFile { const accessHandle = this.#getInactiveHandle(); if (!fileHeader) { fileHeader = this.#readFileHeader(accessHandle); - if (fileHeader?.salt1 !== ((this.activeHeader.salt1 + 1) >>> 0)) return null; + if (fileHeader?.salt1 !== ((this.#activeHeader.salt1 + 1) >>> 0)) return null; } - this.activeHandle = accessHandle; - this.activeHeader = fileHeader; - this.activeOffset = WriteAheadFile.FRAME_HEADER_SIZE; + this.#activeHandle = accessHandle; + this.#activeHeader = fileHeader; + this.#activeOffset = WriteAhead.FILE_HEADER_SIZE; return fileHeader; } #getInactiveHandle() { - return this.activeHandle !== this.accessHandles[0] ? - this.accessHandles[0] : - this.accessHandles[1]; + return this.#activeHandle !== this.#waHandles[0] ? + this.#waHandles[0] : + this.#waHandles[1]; } /** - * @param {FileSystemSyncAccessHandle} accessHandle + * @param {FileSystemSyncAccessHandle} accessHandle */ #readFileHeader(accessHandle) { - const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FILE_HEADER_SIZE)); + const headerView = new DataView(new ArrayBuffer(WriteAhead.FILE_HEADER_SIZE)); if (accessHandle.read(headerView, { at: 0 }) !== headerView.byteLength) { return null; } - if (headerView.getUint32(0) !== WriteAheadFile.MAGIC) return null; + if (headerView.getUint32(0) !== WriteAhead.MAGIC) return null; const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FILE_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FILE_HEADER_SIZE - 8)); if (!checksum.matches(headerView.getUint32(24), headerView.getUint32(28))) { return null; } @@ -1034,16 +1020,16 @@ class WriteAheadFile { return { nextTxId: Number(headerView.getBigUint64(8)), salt1: headerView.getUint32(16), - salt2: headerView.getUint32(20) - } + salt2: headerView.getUint32(20), + }; } /** * @param {number} offset */ #readFrame(offset) { - const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FRAME_HEADER_SIZE)); - if (this.activeHandle.read(headerView, { at: offset }) !== headerView.byteLength) { + const headerView = new DataView(new ArrayBuffer(WriteAhead.FRAME_HEADER_SIZE)); + if (this.#activeHandle.read(headerView, { at: offset }) !== headerView.byteLength) { // EOF, not an error. return null; } @@ -1051,9 +1037,8 @@ class WriteAheadFile { // Verify the frame header salt values match the file header. const frameSalt1 = headerView.getUint32(16); const frameSalt2 = headerView.getUint32(20); - if (frameSalt1 !== this.activeHeader.salt1 || frameSalt2 !== this.activeHeader.salt2) { - // Not necessarily an error, could be from a restart without - // truncation. + if (frameSalt1 !== this.#activeHeader.salt1 || frameSalt2 !== this.#activeHeader.salt2) { + // Not necessarily an error, could be from a restart without truncation. return null; } @@ -1061,39 +1046,39 @@ class WriteAheadFile { /** @type {Uint8Array} */ let payloadData; if (payloadSize) { payloadData = new Uint8Array(payloadSize); - const payloadBytesRead = this.activeHandle.read( + const payloadBytesRead = this.#activeHandle.read( payloadData, - { at: offset + WriteAheadFile.FRAME_HEADER_SIZE }); - if (payloadBytesRead !== payloadSize ) return null; + { at: offset + WriteAhead.FRAME_HEADER_SIZE } + ); + if (payloadBytesRead !== payloadSize) return null; } const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FRAME_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FRAME_HEADER_SIZE - 8)); if (payloadData) { checksum.update(payloadData); } if (!checksum.matches(headerView.getUint32(24), headerView.getUint32(28))) { - // Not necessarily an error, could be from a restart without - // truncation. + // Not necessarily an error, could be from a restart without truncation. return null; } const frameType = headerView.getUint8(0); - if (frameType === WriteAheadFile.FRAME_TYPE_PAGE) { + if (frameType === WriteAhead.FRAME_TYPE_PAGE) { return { frameType, - byteLength: WriteAheadFile.FRAME_HEADER_SIZE + payloadSize, + byteLength: WriteAhead.FRAME_HEADER_SIZE + payloadSize, pageOffset: Number(headerView.getBigUint64(8)), - pageData: payloadData + pageData: payloadData, }; - } else if (frameType === WriteAheadFile.FRAME_TYPE_COMMIT) { + } else if (frameType === WriteAhead.FRAME_TYPE_COMMIT) { return { frameType, - byteLength: WriteAheadFile.FRAME_HEADER_SIZE, + byteLength: WriteAhead.FRAME_HEADER_SIZE, flags: headerView.getUint8(1), - dbFileSize: Number(headerView.getBigUint64(8)) + dbFileSize: Number(headerView.getBigUint64(8)), }; - } else if (frameType === WriteAheadFile.FRAME_TYPE_END) { + } else if (frameType === WriteAhead.FRAME_TYPE_END) { // Handling the end frame and new file header must be atomic, so // we validate the new file header before returning the frame. // If the file header is corrupt, the end frame effectively does @@ -1108,37 +1093,35 @@ class WriteAheadFile { // If the inactive file is not empty, then it should be truncated // on the next checkpoint and that will restore a valid state. const fileHeader = this.#readFileHeader(this.#getInactiveHandle()); - if (fileHeader?.salt1 !== ((this.activeHeader.salt1 + 1) >>> 0)) return null; + if (fileHeader?.salt1 !== ((this.#activeHeader.salt1 + 1) >>> 0)) return null; return { frameType, - byteLength: WriteAheadFile.FRAME_HEADER_SIZE, - fileHeader + byteLength: WriteAhead.FRAME_HEADER_SIZE, + fileHeader, }; } throw new Error(`Invalid frame type: ${frameType}`); } - #writeFileHeader(prevSalt1 = this.activeHeader.salt1) { - // Derive new values from the previous values. Note that salt1 always - // flips between even and odd so successive headers are written to - // alternating files. - const nextTxId = this.txId + 1; + #writeFileHeader(prevSalt1 = this.#activeHeader.salt1) { + // Derive new values from the previous values. + const nextTxId = this.#txId + 1; const salt1 = (prevSalt1 + 1) >>> 0; const salt2 = Math.floor(Math.random() * 0xffffffff) >>> 0; - const headerView = new DataView(new ArrayBuffer(WriteAheadFile.FILE_HEADER_SIZE)); - headerView.setUint32(0, WriteAheadFile.MAGIC); + const headerView = new DataView(new ArrayBuffer(WriteAhead.FILE_HEADER_SIZE)); + headerView.setUint32(0, WriteAhead.MAGIC); headerView.setBigUint64(8, BigInt(nextTxId)); headerView.setUint32(16, salt1); headerView.setUint32(20, salt2); const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAheadFile.FILE_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FILE_HEADER_SIZE - 8)); headerView.setUint32(24, checksum.s0); headerView.setUint32(28, checksum.s1); // The even/odd parity of salt1 determines which file is written to. - const accessHandle = this.accessHandles[salt1 & 1]; + const accessHandle = this.#waHandles[salt1 & 1]; const bytesWritten = accessHandle.write(headerView, { at: 0 }); if (bytesWritten !== headerView.byteLength) { throw new Error('write failed'); @@ -1154,7 +1137,7 @@ class Checksum { /** @type {number} */ s1 = 0; /** - * @param {ArrayBuffer|ArrayBufferView} data + * @param {ArrayBuffer|ArrayBufferView} data */ update(data) { if ((data.byteLength % 8) !== 0) throw new Error('Data must be a multiple of 8 bytes'); @@ -1162,7 +1145,7 @@ class Checksum { new Uint32Array(data.buffer, data.byteOffset, data.byteLength / 4) : new Uint32Array(data); for (let i = 0; i < words.length; i += 2) { - this.s0 = (this.s0 + words[i] + this.s1) >>> 0; + this.s0 = (this.s0 + words[i] + this.s1) >>> 0; this.s1 = (this.s1 + words[i + 1] + this.s0) >>> 0; } } From df556ddef2e56b1e541c1ae223e1ba93953cf011 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 28 Mar 2026 14:32:21 -0700 Subject: [PATCH 084/104] Move static WriteAhead constants to file level. --- src/examples/WriteAhead.js | 87 +++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index df78d40f..6877f893 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -3,6 +3,13 @@ import { Lock } from './Lock.js'; const DEFAULT_JOURNAL_SIZE_LIMIT = 1000; const DEFAULT_BACKSTOP_INTERVAL = 30_000; +const MAGIC = 0x377f0684; +const FILE_HEADER_SIZE = 32; +const FRAME_HEADER_SIZE = 32; +const FRAME_TYPE_PAGE = 0; +const FRAME_TYPE_COMMIT = 1; +const FRAME_TYPE_END = 2; + /** * @typedef PageEntry * @property {number} waOffset location in WAL file @@ -29,12 +36,6 @@ const DEFAULT_BACKSTOP_INTERVAL = 30_000; */ export class WriteAhead { - static MAGIC = 0x377f0684; - static FILE_HEADER_SIZE = 32; - static FRAME_HEADER_SIZE = 32; - static FRAME_TYPE_PAGE = 0; - static FRAME_TYPE_COMMIT = 1; - static FRAME_TYPE_END = 2; log = null; /** @type {WriteAheadOptions} */ options = { @@ -95,7 +96,7 @@ export class WriteAhead { this.#activeHeader = fileHeader; this.#activeHandle = this.#waHandles[fileHeader.salt1 & 1]; - this.#activeOffset = WriteAhead.FILE_HEADER_SIZE; + this.#activeOffset = FILE_HEADER_SIZE; this.#txId = fileHeader.nextTxId - 1; // All the asynchronous initialization is done here. @@ -243,7 +244,7 @@ export class WriteAhead { // The incoming data is not a single page because the page size // is changing. The two cases are when the new page size is // smaller or larger than the old page size. - const frameSize = WriteAhead.FRAME_HEADER_SIZE + this.#txActive.newPageSize; + const frameSize = FRAME_HEADER_SIZE + this.#txActive.newPageSize; if (data.byteLength > this.#txActive.newPageSize) { // New page size is smaller. Write multiple pages of the new // page size. @@ -259,7 +260,7 @@ export class WriteAhead { const pageOffset = offset % this.#txActive.newPageSize; const waOffset = this.#activeOffset + (offset - pageOffset) / this.#txActive.newPageSize * frameSize + - WriteAhead.FRAME_HEADER_SIZE + + FRAME_HEADER_SIZE + pageOffset; this.#activeHandle.write(data.subarray(), { at: waOffset }); this.log?.(`%cwrite page at ${offset} to WAL ${this.#activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); @@ -301,8 +302,8 @@ export class WriteAhead { // Read the page data. const pageData = new Uint8Array(this.#txActive.newPageSize); const waOffset = this.#activeOffset + - i * (WriteAhead.FRAME_HEADER_SIZE + this.#txActive.newPageSize) + - WriteAhead.FRAME_HEADER_SIZE; + i * (FRAME_HEADER_SIZE + this.#txActive.newPageSize) + + FRAME_HEADER_SIZE; this.#activeHandle.read(pageData, { at: waOffset }); if (i === 0) { @@ -771,16 +772,16 @@ export class WriteAhead { const frame = this.#readFrame(offset); if (!frame) return null; - if (frame.frameType === WriteAhead.FRAME_TYPE_PAGE) { + if (frame.frameType === FRAME_TYPE_PAGE) { tx.pages.set( frame.pageOffset, { pageSize: frame.pageData.byteLength, - waOffset: offset + WriteAhead.FRAME_HEADER_SIZE, + waOffset: offset + FRAME_HEADER_SIZE, waSalt1: tx.waSalt1, } ); - } else if (frame.frameType === WriteAhead.FRAME_TYPE_COMMIT) { + } else if (frame.frameType === FRAME_TYPE_COMMIT) { // The transaction is complete. Update the instance state. this.#txId += 1; this.#activeOffset = offset + frame.byteLength; @@ -791,7 +792,7 @@ export class WriteAhead { tx.newPageSize = (frame.flags & 1) ? tx.pages.get(0).pageSize : null; tx.waOffsetEnd = this.#activeOffset; return tx; - } else if (frame.frameType === WriteAhead.FRAME_TYPE_END) { + } else if (frame.frameType === FRAME_TYPE_END) { // No more transactions on the current WAL file. Switch to the // other file. this.#followFileChange(frame.fileHeader); @@ -843,15 +844,15 @@ export class WriteAhead { * @param {Uint8Array} pageData */ #writePage(pageOffset, pageData) { - const headerView = new DataView(new ArrayBuffer(WriteAhead.FRAME_HEADER_SIZE)); - headerView.setUint8(0, WriteAhead.FRAME_TYPE_PAGE); + const headerView = new DataView(new ArrayBuffer(FRAME_HEADER_SIZE)); + headerView.setUint8(0, FRAME_TYPE_PAGE); headerView.setUint16(2, pageData.byteLength === 65536 ? 1 : pageData.byteLength); headerView.setBigUint64(8, BigInt(pageOffset)); headerView.setUint32(16, this.#activeHeader.salt1); headerView.setUint32(20, this.#activeHeader.salt2); const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FRAME_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, FRAME_HEADER_SIZE - 8)); checksum.update(pageData); headerView.setUint32(24, checksum.s0); headerView.setUint32(28, checksum.s1); @@ -859,7 +860,7 @@ export class WriteAhead { const bytesWritten = this.#activeHandle.write(headerView, { at: this.#txInProgress.waOffsetEnd }) + this.#activeHandle.write(pageData, { - at: this.#txInProgress.waOffsetEnd + WriteAhead.FRAME_HEADER_SIZE, + at: this.#txInProgress.waOffsetEnd + FRAME_HEADER_SIZE, }); if (bytesWritten !== headerView.byteLength + pageData.byteLength) { throw new Error('write failed'); @@ -867,7 +868,7 @@ export class WriteAhead { const pageEntry = { pageSize: pageData.byteLength, - waOffset: this.#txInProgress.waOffsetEnd + WriteAhead.FRAME_HEADER_SIZE, + waOffset: this.#txInProgress.waOffsetEnd + FRAME_HEADER_SIZE, waSalt1: this.#activeHeader.salt1, }; if (pageOffset === 0) { @@ -893,15 +894,15 @@ export class WriteAhead { #commitTx() { // Write a commit frame - which is a special frame header with no // body - to the WAL file. - const headerView = new DataView(new ArrayBuffer(WriteAhead.FRAME_HEADER_SIZE)); - headerView.setUint8(0, WriteAhead.FRAME_TYPE_COMMIT); + const headerView = new DataView(new ArrayBuffer(FRAME_HEADER_SIZE)); + headerView.setUint8(0, FRAME_TYPE_COMMIT); headerView.setUint8(1, this.#txInProgress.newPageSize ? 1 : 0); headerView.setBigUint64(8, BigInt(this.#txInProgress.dbFileSize)); headerView.setUint32(16, this.#activeHeader.salt1); headerView.setUint32(20, this.#activeHeader.salt2); const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FRAME_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, FRAME_HEADER_SIZE - 8)); headerView.setUint32(24, checksum.s0); headerView.setUint32(28, checksum.s1); @@ -929,13 +930,13 @@ export class WriteAhead { */ #swapActiveFile() { // Write an end frame to terminate the currently active WAL file. - const frameView = new DataView(new ArrayBuffer(WriteAhead.FRAME_HEADER_SIZE)); - frameView.setUint8(0, WriteAhead.FRAME_TYPE_END); + const frameView = new DataView(new ArrayBuffer(FRAME_HEADER_SIZE)); + frameView.setUint8(0, FRAME_TYPE_END); frameView.setUint32(16, this.#activeHeader.salt1); frameView.setUint32(20, this.#activeHeader.salt2); const checksum = new Checksum(); - checksum.update(new Uint8Array(frameView.buffer, 0, WriteAhead.FRAME_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(frameView.buffer, 0, FRAME_HEADER_SIZE - 8)); frameView.setUint32(24, checksum.s0); frameView.setUint32(28, checksum.s1); @@ -947,7 +948,7 @@ export class WriteAhead { // Initialize the other WAL file and make it active. this.#activeHeader = this.#writeFileHeader(); this.#activeHandle = this.#getInactiveHandle(); - this.#activeOffset = WriteAhead.FILE_HEADER_SIZE; + this.#activeOffset = FILE_HEADER_SIZE; } #getActiveFileStartingTxId() { @@ -990,7 +991,7 @@ export class WriteAhead { this.#activeHandle = accessHandle; this.#activeHeader = fileHeader; - this.#activeOffset = WriteAhead.FILE_HEADER_SIZE; + this.#activeOffset = FILE_HEADER_SIZE; return fileHeader; } @@ -1004,15 +1005,15 @@ export class WriteAhead { * @param {FileSystemSyncAccessHandle} accessHandle */ #readFileHeader(accessHandle) { - const headerView = new DataView(new ArrayBuffer(WriteAhead.FILE_HEADER_SIZE)); + const headerView = new DataView(new ArrayBuffer(FILE_HEADER_SIZE)); if (accessHandle.read(headerView, { at: 0 }) !== headerView.byteLength) { return null; } - if (headerView.getUint32(0) !== WriteAhead.MAGIC) return null; + if (headerView.getUint32(0) !== MAGIC) return null; const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FILE_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, FILE_HEADER_SIZE - 8)); if (!checksum.matches(headerView.getUint32(24), headerView.getUint32(28))) { return null; } @@ -1028,7 +1029,7 @@ export class WriteAhead { * @param {number} offset */ #readFrame(offset) { - const headerView = new DataView(new ArrayBuffer(WriteAhead.FRAME_HEADER_SIZE)); + const headerView = new DataView(new ArrayBuffer(FRAME_HEADER_SIZE)); if (this.#activeHandle.read(headerView, { at: offset }) !== headerView.byteLength) { // EOF, not an error. return null; @@ -1048,13 +1049,13 @@ export class WriteAhead { payloadData = new Uint8Array(payloadSize); const payloadBytesRead = this.#activeHandle.read( payloadData, - { at: offset + WriteAhead.FRAME_HEADER_SIZE } + { at: offset + FRAME_HEADER_SIZE } ); if (payloadBytesRead !== payloadSize) return null; } const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FRAME_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, FRAME_HEADER_SIZE - 8)); if (payloadData) { checksum.update(payloadData); } @@ -1064,21 +1065,21 @@ export class WriteAhead { } const frameType = headerView.getUint8(0); - if (frameType === WriteAhead.FRAME_TYPE_PAGE) { + if (frameType === FRAME_TYPE_PAGE) { return { frameType, - byteLength: WriteAhead.FRAME_HEADER_SIZE + payloadSize, + byteLength: FRAME_HEADER_SIZE + payloadSize, pageOffset: Number(headerView.getBigUint64(8)), pageData: payloadData, }; - } else if (frameType === WriteAhead.FRAME_TYPE_COMMIT) { + } else if (frameType === FRAME_TYPE_COMMIT) { return { frameType, - byteLength: WriteAhead.FRAME_HEADER_SIZE, + byteLength: FRAME_HEADER_SIZE, flags: headerView.getUint8(1), dbFileSize: Number(headerView.getBigUint64(8)), }; - } else if (frameType === WriteAhead.FRAME_TYPE_END) { + } else if (frameType === FRAME_TYPE_END) { // Handling the end frame and new file header must be atomic, so // we validate the new file header before returning the frame. // If the file header is corrupt, the end frame effectively does @@ -1097,7 +1098,7 @@ export class WriteAhead { return { frameType, - byteLength: WriteAhead.FRAME_HEADER_SIZE, + byteLength: FRAME_HEADER_SIZE, fileHeader, }; } @@ -1109,14 +1110,14 @@ export class WriteAhead { const nextTxId = this.#txId + 1; const salt1 = (prevSalt1 + 1) >>> 0; const salt2 = Math.floor(Math.random() * 0xffffffff) >>> 0; - const headerView = new DataView(new ArrayBuffer(WriteAhead.FILE_HEADER_SIZE)); - headerView.setUint32(0, WriteAhead.MAGIC); + const headerView = new DataView(new ArrayBuffer(FILE_HEADER_SIZE)); + headerView.setUint32(0, MAGIC); headerView.setBigUint64(8, BigInt(nextTxId)); headerView.setUint32(16, salt1); headerView.setUint32(20, salt2); const checksum = new Checksum(); - checksum.update(new Uint8Array(headerView.buffer, 0, WriteAhead.FILE_HEADER_SIZE - 8)); + checksum.update(new Uint8Array(headerView.buffer, 0, FILE_HEADER_SIZE - 8)); headerView.setUint32(24, checksum.s0); headerView.setUint32(28, checksum.s1); From 7e42e915693cf04943ed29f4d4b88f7975eaa8df Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 28 Mar 2026 14:50:12 -0700 Subject: [PATCH 085/104] Remove redundant property. --- src/examples/WriteAhead.js | 68 ++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 6877f893..d85822a5 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -60,12 +60,11 @@ export class WriteAhead { /** @type {'read'|'write'} */ #isolationState = null; /** @type {Lock} */ #txIdLock = null; - /** @type {Transaction} */ #txActive = null; /** @type {Map} */ #waOverlay = new Map(); /** @type {Map} */ #mapIdToTx = new Map(); - /** @type {Map} */ #pendingTx = new Map(); - #mapIdToTxPageCount = 0; + /** @type {Map} */ #mapIdToPendingTx = new Map(); + #approxPageCount = 0; /** @type {BroadcastChannel} */ #broadcastChannel; @@ -195,7 +194,7 @@ export class WriteAhead { // First look for the page in any write transaction in progress. // If the page is not found in the transaction overlay, look in the // write-ahead overlay. - const pageEntry = this.#txActive?.pages.get(offset) ?? this.#waOverlay.get(offset); + const pageEntry = this.#txInProgress?.pages.get(offset) ?? this.#waOverlay.get(offset); if (pageEntry) { if (pageEntry.pageData) { // Page data is cached. @@ -220,36 +219,36 @@ export class WriteAhead { throw new Error('Not in write isolated state'); } - if (!this.#txActive) { + if (!this.#txInProgress) { // There is no active transaction so we need to create one. But // first check whether to swap WAL files. const nPageThreshold = this.options.journalSizeLimit >= 0 ? this.options.journalSizeLimit : DEFAULT_JOURNAL_SIZE_LIMIT; - if (this.#mapIdToTxPageCount >= nPageThreshold && this.#isInactiveFileEmpty()) { - this.log?.(`%cchange WAL file at ${this.#mapIdToTxPageCount} pages`, 'background-color: lightskyblue;'); + if (this.#approxPageCount >= nPageThreshold && this.#isInactiveFileEmpty()) { + this.log?.(`%cchange WAL file at ${this.#approxPageCount} pages`, 'background-color: lightskyblue;'); this.#swapActiveFile(); } - this.#txActive = this.#beginTx(); + this.#beginTx(); if (options.dstPageSize !== data.byteLength) { // This is a VACUUM to a new page size. The incoming writes are at // the old page size, but we want to write to the WAL with the new // size. - this.#txActive.newPageSize = options.dstPageSize; + this.#txInProgress.newPageSize = options.dstPageSize; } } - if (this.#txActive.newPageSize) { + if (this.#txInProgress.newPageSize) { // The incoming data is not a single page because the page size // is changing. The two cases are when the new page size is // smaller or larger than the old page size. - const frameSize = FRAME_HEADER_SIZE + this.#txActive.newPageSize; - if (data.byteLength > this.#txActive.newPageSize) { + const frameSize = FRAME_HEADER_SIZE + this.#txInProgress.newPageSize; + if (data.byteLength > this.#txInProgress.newPageSize) { // New page size is smaller. Write multiple pages of the new // page size. - for (let i = 0; i < data.byteLength; i += this.#txActive.newPageSize) { - const pageData = data.slice(i, i + this.#txActive.newPageSize); + for (let i = 0; i < data.byteLength; i += this.#txInProgress.newPageSize) { + const pageData = data.slice(i, i + this.#txInProgress.newPageSize); const waOffset = this.#writePage(offset + i, pageData); this.log?.(`%cwrite page at ${offset + i} to WAL ${this.#activeHeader.salt1 & 1}:${waOffset}`, 'background-color: lightskyblue;'); } @@ -257,9 +256,9 @@ export class WriteAhead { // New page size is larger. Save the page data to the WAL file // so it can be read back and rewritten as frames with the new // page size. - const pageOffset = offset % this.#txActive.newPageSize; + const pageOffset = offset % this.#txInProgress.newPageSize; const waOffset = this.#activeOffset + - (offset - pageOffset) / this.#txActive.newPageSize * frameSize + + (offset - pageOffset) / this.#txInProgress.newPageSize * frameSize + FRAME_HEADER_SIZE + pageOffset; this.#activeHandle.write(data.subarray(), { at: waOffset }); @@ -278,9 +277,9 @@ export class WriteAhead { truncate(newSize) { // Remove any pages past the truncation point. We don't need to save // the file size because that will be extracted from page 1. - for (const offset of this.#txActive.pages.keys()) { + for (const offset of this.#txInProgress.pages.keys()) { if (offset >= newSize) { - this.#txActive.pages.delete(offset); + this.#txInProgress.pages.delete(offset); } } } @@ -292,7 +291,8 @@ export class WriteAhead { } commit() { - if (this.#txActive.newPageSize && this.#txActive.pages.size === 0) { + const tx = this.#txInProgress; + if (tx.newPageSize && tx.pages.size === 0) { // This transaction is a VACUUM with a page size increase. All // the database pages have been written to the WAL file at their // new size with blank frame headers. Read the page data back @@ -300,9 +300,9 @@ export class WriteAhead { let pageCount = 1; // to be replaced on the first iteration for (let i = 0; i < pageCount; i++) { // Read the page data. - const pageData = new Uint8Array(this.#txActive.newPageSize); + const pageData = new Uint8Array(tx.newPageSize); const waOffset = this.#activeOffset + - i * (FRAME_HEADER_SIZE + this.#txActive.newPageSize) + + i * (FRAME_HEADER_SIZE + tx.newPageSize) + FRAME_HEADER_SIZE; this.#activeHandle.read(pageData, { at: waOffset }); @@ -313,7 +313,7 @@ export class WriteAhead { } // Write back as a frame. - this.#writePage(i * this.#txActive.newPageSize, pageData); + this.#writePage(i * tx.newPageSize, pageData); } } @@ -321,13 +321,12 @@ export class WriteAhead { this.#commitTx(); // Incorporate the transaction locally. - this.#activateTx(this.#txActive); + this.#activateTx(tx); this.#updateTxIdLock(); // Send the transaction to other connections. - const payload = { type: 'tx', tx: this.#txActive }; + const payload = { type: 'tx', tx }; this.#broadcastChannel.postMessage(payload); - this.#txActive = null; this.#autoCheckpoint(); this.#backstopTimestamp = performance.now(); @@ -336,7 +335,6 @@ export class WriteAhead { rollback() { // Discard transaction pages. this.#abortTx(); - this.#txActive = null; } /** @@ -462,11 +460,11 @@ export class WriteAhead { * @returns {number} */ getWriteAheadSize() { - return this.#mapIdToTxPageCount; + return this.#approxPageCount; } isTransactionPending() { - return !!this.#txActive; + return !!this.#txInProgress; } setBackstopInterval(intervalMillis) { @@ -483,7 +481,7 @@ export class WriteAhead { #activateTx(tx) { // Transfer to the active collection of transactions. this.#mapIdToTx.set(tx.id, tx); - this.#mapIdToTxPageCount += tx.pages.size; + this.#approxPageCount += tx.pages.size; // Add transaction pages to the write-ahead overlay. for (const [offset, pageEntry] of tx.pages) { @@ -501,15 +499,15 @@ export class WriteAhead { */ #advanceTxId(options = {}) { let didAdvance = false; - while (this.#pendingTx.size) { + while (this.#mapIdToPendingTx.size) { // Fetch the next transaction in sequence. Usually this will come // from pendingTx, but if it is missing then read it from the file. const nextTxId = this.#txId + 1; let tx; - if (this.#pendingTx.has(nextTxId)) { + if (this.#mapIdToPendingTx.has(nextTxId)) { // This transaction arrived via message. - tx = this.#pendingTx.get(nextTxId); - this.#pendingTx.delete(tx.id); + tx = this.#mapIdToPendingTx.get(nextTxId); + this.#mapIdToPendingTx.delete(tx.id); // Move the WAL file offset past this transaction. this.#skipTx(tx); @@ -577,7 +575,7 @@ export class WriteAhead { // Remove transaction. this.#mapIdToTx.delete(tx.id); - this.#mapIdToTxPageCount -= tx.pages.size; + this.#approxPageCount -= tx.pages.size; } this.#updateTxIdLock(); } @@ -591,7 +589,7 @@ export class WriteAhead { // already have it. /** @type {Transaction} */ const tx = event.data.tx; if (tx.id > this.#txId) { - this.#pendingTx.set(tx.id, tx); + this.#mapIdToPendingTx.set(tx.id, tx); if (this.#isolationState === null) { // Not in an isolated state, so advance our view of the database. this.#advanceTxId({ autoCheckpoint: true }); From 8a2aaf906abbfd93aea867ab731337618e9889ea Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 28 Mar 2026 15:24:48 -0700 Subject: [PATCH 086/104] Move WAL loading inside #ready lambda. --- src/examples/WriteAhead.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index d85822a5..1a361f53 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -85,22 +85,9 @@ export class WriteAhead { this.#waHandles = waHandles; this.options = Object.assign(this.options, options); - // Read file headers from both header slots and use the one with the - // lower nextTxId. If neither header is valid, create a new header. - const fileHeader = this.#waHandles - .map(handle => this.#readFileHeader(handle)) - .filter(h => h) - .sort((a, b) => a.nextTxId - b.nextTxId)[0] - ?? this.#writeFileHeader(Math.floor(Math.random() * 0xffffffff)); - - this.#activeHeader = fileHeader; - this.#activeHandle = this.#waHandles[fileHeader.salt1 & 1]; - this.#activeOffset = FILE_HEADER_SIZE; - this.#txId = fileHeader.nextTxId - 1; - // All the asynchronous initialization is done here. this.#ready = (async () => { - // Disable checkpointing by other connections until we're ready. + // Set our advertised txId to zero until we know the proper value. await this.#updateTxIdLock(); // Listen for transactions and checkpoints from other connections. @@ -109,7 +96,20 @@ export class WriteAhead { this.#handleMessage(event); }; - // Load all the transactions from the WAL file. + // Read headers from both WAL files and use the one with the + // lower nextTxId. If neither header is valid, create a new header. + const fileHeader = this.#waHandles + .map(handle => this.#readFileHeader(handle)) + .filter(h => h) + .sort((a, b) => a.nextTxId - b.nextTxId)[0] + ?? this.#writeFileHeader(Math.floor(Math.random() * 0xffffffff)); + + this.#activeHeader = fileHeader; + this.#activeHandle = this.#waHandles[fileHeader.salt1 & 1]; + this.#activeOffset = FILE_HEADER_SIZE; + this.#txId = fileHeader.nextTxId - 1; + + // Load all the transactions from the WAL. for (const tx of this.#readAllTx()) { this.#activateTx(tx); } @@ -287,7 +287,7 @@ export class WriteAhead { getFileSize() { // If the overlay is empty, the last file size may no longer be valid // if direct changes were made to the main database file. - return this.#waOverlay.size ? this.#dbFileSize : null; + return this.#waOverlay.size ? this.#dbFileSize : this.#dbHandle.getSize(); } commit() { From 88d714777ea04cf5a32cbb60fee0a2b288affadd Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 28 Mar 2026 16:30:01 -0700 Subject: [PATCH 087/104] Fix corrupt file header handling. --- src/examples/WriteAhead.js | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 1a361f53..17cfe497 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -963,8 +963,22 @@ export class WriteAhead { } #isInactiveFileEmpty() { - const accessHandle = this.#getInactiveHandle(); - return accessHandle.getSize() === 0; + if (this.#mapIdToTx.has(this.#activeHeader.nextTxId - 1)) { + // At least one transaction on the inactive file has not been + // checkpointed. + return false; + } + + const inactiveHandle = this.#getInactiveHandle(); + if (inactiveHandle.getSize() < FILE_HEADER_SIZE) { + // The inactive file is smaller than the minimum size for a valid + // WAL file. + return true; + } + + // This test is sufficient by itself but the previous tests are + // less expensive. + return this.#readFileHeader(inactiveHandle) === null; } #truncateInactiveFile() { @@ -1083,14 +1097,8 @@ export class WriteAhead { // If the file header is corrupt, the end frame effectively does // not exist. // - // How do we recover from this? Readers and writers will continue - // normally. If the inactive file is empty then a writer will - // overwrite the end frame (either with a transaction or a - // new end frame with a file header) and that will restore a - // valid state. - // - // If the inactive file is not empty, then it should be truncated - // on the next checkpoint and that will restore a valid state. + // A corrupt file header should be repaired by the next writer + // that attempts to swap WAL files. const fileHeader = this.#readFileHeader(this.#getInactiveHandle()); if (fileHeader?.salt1 !== ((this.#activeHeader.salt1 + 1) >>> 0)) return null; From 6919cb625e7caac3c427122bca732cf410dda6bf Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 28 Mar 2026 22:29:02 -0700 Subject: [PATCH 088/104] Require at least 1 transaction to swap WAL files. --- src/examples/WriteAhead.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 17cfe497..16748bba 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -221,8 +221,8 @@ export class WriteAhead { if (!this.#txInProgress) { // There is no active transaction so we need to create one. But - // first check whether to swap WAL files. - const nPageThreshold = this.options.journalSizeLimit >= 0 ? + // first check whether to move to the other WAL file. + const nPageThreshold = this.options.journalSizeLimit > 0 ? this.options.journalSizeLimit : DEFAULT_JOURNAL_SIZE_LIMIT; if (this.#approxPageCount >= nPageThreshold && this.#isInactiveFileEmpty()) { From 2c1c5d6fa3a206a856ba5d06d02f7a83de9f4d57 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto <156154+rhashimoto@users.noreply.github.com> Date: Wed, 1 Apr 2026 15:49:55 -0700 Subject: [PATCH 089/104] Update VFS documentation for OPFSWriteAheadVFS. --- src/examples/README.md | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/src/examples/README.md b/src/examples/README.md index 7cc5c3b7..e8711445 100644 --- a/src/examples/README.md +++ b/src/examples/README.md @@ -57,33 +57,25 @@ To keep all the methods synchronous, when asynchronous operations are necessary Transactions that access more than one main (non-temporary) database are not supported. -### OPFSPermutedVFS -This is a hybrid OPFS/IndexedDB VFS that allows high concurrency - simultaneous access by multiple readers and a single writer. It requires the proposed "readwrite-unsafe" locking mode for OPFS access handles (only on Chromium browsers as of June 2024). +### OPFSWriteAheadVFS +This is a synchronous OPFS VFS that that implements write-ahead logging. It requires the proposed "readwrite-unsafe" locking mode for OPFS access handles (only on Chromium browsers as of June 2024). -OPFSPermutedVFS is a lot like SQLite WAL except that it writes directly to the database file instead of a separate write-ahead log file, so there may be more than one version of a page in the file and the location of pages is generally not sequential. All the page data is stored in the file and IndexedDB is used to manage the page versions and locations. - -OPFSPermutedVFS can trade durability for performance by setting `PRAGMA synchronous=normal`. - -Changing the page size after the database is created is not supported. Not filesystem transparent except immediately after VACUUM. +Write-ahead logging is implemented entirely within the VFS and is always on. It does not use the WAL feature built in to SQLite. ## VFS Comparison -||MemoryVFS|MemoryAsyncVFS|IDBBatchAtomicVFS|OPFSAdaptiveVFS|AccessHandlePoolVFS|OPFSAnyContextVFS|OPFSCoopSyncVFS|OPFSPermutedVFS| +||MemoryVFS|MemoryAsyncVFS|IDBBatchAtomicVFS|OPFSAdaptiveVFS|AccessHandlePoolVFS|OPFSAnyContextVFS|OPFSCoopSyncVFS|OPFSWriteAheadVFS| |-|-|-|-|-|-|-|-|-| -|Storage|RAM|RAM|IndexedDB|OPFS|OPFS|OPFS|OPFS|OPFS/IndexedDB| -|Synchronous build|✅|:x:|:x:|:x:|✅|:x:|✅|:x:| +|Storage|RAM|RAM|IndexedDB|OPFS|OPFS|OPFS|OPFS|OPFS| +|Synchronous build|✅|:x:|:x:|:x:|✅|:x:|✅|✅| |Asyncify build|✅|✅|✅|✅|✅|✅|✅| |JSPI build|✅|✅|✅|✅|✅|✅|✅|✅| |Contexts|All|All|All|Worker|Worker|All|Worker|Worker| -|Multiple connections|:x:|:x:|✅|✅|:x:|✅|✅|✅[^1]| +|Multiple connections|:x:|:x:|✅|✅|:x:|✅|✅|✅| |Full durability|✅|✅|✅|✅|✅|✅|✅|✅| |Relaxed durability|:x:|:x:|✅|:x:|:x:|:x:|:x:|✅| -|Filesystem transparency|:x:|:x:|:x:|✅|:x:|✅|✅|:x:[^2]| -|Write-ahead logging|:x:|:x:|:x:|:x:|:x:|:x:|:x:|✅[^3]| -|Multi-database transactions|✅|✅|✅|✅|✅|✅|:x:|✅| -|Change page size|✅|✅|:x:|✅|✅|✅|✅|:x:| +|Filesystem transparency|:x:|:x:|:x:|✅|:x:|✅|✅|✅| +|Write-ahead logging|:x:|:x:|:x:|:x:|:x:|:x:|:x:|✅| +|Multi-database transactions|✅|✅|✅|✅|✅|✅|:x:|:x:| +|Change page size|✅|✅|:x:|✅|✅|✅|✅|✅| |No COOP/COEP requirements|✅|✅|✅|✅|✅|✅|✅|✅| - -[^1]: Requires FileSystemSyncAccessHandle readwrite-unsafe locking mode support. -[^2]: Only filesystem transparent immediately after VACUUM. -[^3]: [Sort of](https://github.com/rhashimoto/wa-sqlite/discussions/152). From 2017653b1f73e0b44d190bd9f091a35129336125 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 2 Apr 2026 10:24:14 -0700 Subject: [PATCH 090/104] Replace OPFSPermutedVFS with OPFSWriteAheadVFS. --- README.md | 4 ++-- demo/hello/README.md | 2 +- demo/hello/hello.js | 8 ++++---- src/examples/OPFSWriteAheadVFS.js | 5 +++++ ...{OPFSPermutedVFS.test.js => OPFSWriteAheadVFS.test.js} | 2 +- test/api.test.js | 2 +- test/sql.test.js | 4 ++-- test/test-worker.js | 4 ++-- 8 files changed, 18 insertions(+), 13 deletions(-) rename test/{OPFSPermutedVFS.test.js => OPFSWriteAheadVFS.test.js} (95%) diff --git a/README.md b/README.md index babdc439..a6282efa 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This is a WebAssembly build of SQLite with support for writing SQLite virtual fi IndexedDB and several Origin Private File System virtual file systems are among the examples provided as proof of concept. A table comparing the different VFS classes is [here](https://github.com/rhashimoto/wa-sqlite/tree/master/src/examples#vfs-comparison). -[Try the demo](https://rhashimoto.github.io/wa-sqlite/demo/?build=asyncify&config=IDBBatchAtomicVFS&reset) or run [benchmarks](https://rhashimoto.github.io/wa-sqlite/demo/benchmarks/?config=asyncify,IDBBatchAtomicVFS;asyncify,IDBMirrorVFS;default,AccessHandlePoolVFS;default,OPFSCoopSyncVFS;asyncify,OPFSAdaptiveVFS;asyncify,OPFSPermutedVFS) with a modern desktop web browser. More information is available in the [FAQ](https://github.com/rhashimoto/wa-sqlite/issues?q=is%3Aissue+label%3Afaq+), [discussion forums](https://github.com/rhashimoto/wa-sqlite/discussions), and [API reference](https://rhashimoto.github.io/wa-sqlite/docs/). +[Try the demo](https://rhashimoto.github.io/wa-sqlite/demo/?build=asyncify&config=IDBBatchAtomicVFS&reset) or run [benchmarks](https://rhashimoto.github.io/wa-sqlite/demo/benchmarks/?config=asyncify,IDBBatchAtomicVFS;asyncify,IDBMirrorVFS;default,AccessHandlePoolVFS;default,OPFSCoopSyncVFS;asyncify,OPFSAdaptiveVFS;asyncify,OPFSWriteAheadVFS) with a modern desktop web browser. More information is available in the [FAQ](https://github.com/rhashimoto/wa-sqlite/issues?q=is%3Aissue+label%3Afaq+), [discussion forums](https://github.com/rhashimoto/wa-sqlite/discussions), and [API reference](https://rhashimoto.github.io/wa-sqlite/docs/). ## Build The primary motivation for this project is to enable additions to SQLite with only Javascript. Most developers should be able to use the pre-built artifacts in @@ -67,7 +67,7 @@ The demo page provides access to databases on multiple VFS implementations. Quer | Parameter | Purpose | Values | Default | |----|----|----|----| | build | Emscripten build type | default, asyncify, jspi | default | -| config | select VFS | MemoryVFS, MemoryAsyncVFS, IDBBatchAtomicVFS, IDBMirrorVFS, AccessHandlePoolVFS, OPFSAdaptiveVFS, OPFSAnyContextVFS, OPFSCoopSyncVFS, OPFSPermutedVFS | uses SQLite internal memory | +| config | select VFS | MemoryVFS, MemoryAsyncVFS, IDBBatchAtomicVFS, IDBMirrorVFS, AccessHandlePoolVFS, OPFSAdaptiveVFS, OPFSAnyContextVFS, OPFSCoopSyncVFS, OPFSWriteAheadVFS | uses SQLite internal memory | | reset | clear persistent storage | | | For convenience, if any text region is selected in the editor, only that region will be executed. In addition, the editor contents are restored across page reloads using browser localStorage. diff --git a/demo/hello/README.md b/demo/hello/README.md index d830fe83..177d25fe 100644 --- a/demo/hello/README.md +++ b/demo/hello/README.md @@ -13,7 +13,7 @@ are valid: * As of May 2024, the JSPI build works only on recent Chromium browsers behind an experiment flag. -* As of May 2024, OPFSPermutedVFS works only on recent Chromium browsers +* As of May 2024, OPFSWriteAheadVFS works only on recent Chromium browsers as it requires FileSystemSyncAccessHandle "readwrite-unsafe" locking. * Some VFS classes work only with an asynchronous build (Asyncify or JSPI). * OPFS VFS classes work only within a Worker. diff --git a/demo/hello/hello.js b/demo/hello/hello.js index 56c9c554..59aa0c53 100644 --- a/demo/hello/hello.js +++ b/demo/hello/hello.js @@ -14,16 +14,16 @@ import SQLiteESMFactory from '../../dist/wa-sqlite-async.mjs'; // in a Worker. // // Note that certain VFS classes cannot read each others' databases, e.g. -// IDBBatchAtomicVFS and IDBMirrorVFS, OPFSPermutedVFS and any other OPFS -// VFS. If you change this demo to use a different VFS, you may need to -// clear the appropriate storage for things to work. +// IDBBatchAtomicVFS and IDBMirrorVFS. If you change this demo to use a +// different VFS, you may need to clear the appropriate storage for things +// to work. import { IDBBatchAtomicVFS as MyVFS } from '../../src/examples/IDBBatchAtomicVFS.js'; // import { IDBMirrorVFS as MyVFS } from '../../src/examples/IDBMirrorVFS.js'; // import { AccessHandlePoolVFS as MyVFS } from '../../src/examples/AccessHandlePoolVFS.js'; // import { OPFSAdaptiveVFS as MyVFS } from '../../src/examples/OPFSAdaptiveVFS.js'; // import { OPFSAnyContextVFS as MyVFS } from '../../src/examples/OPFSAnyContextVFS.js'; // import { OPFSCoopSyncVFS as MyVFS } from '../../src/examples/OPFSCoopSyncVFS.js'; -// import { OPFSPermutedVFS as MyVFS } from '../../src/examples/OPFSPermutedVFS.js'; +// import { OPFSWriteAheadVFS as MyVFS } from '../../src/examples/OPFSWriteAheadVFS.js'; import * as SQLite from '../../src/sqlite-api.js'; diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 4d5ccf94..da0c78c8 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -167,8 +167,12 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.overwrite = false; } else if (flags & (VFS.SQLITE_OPEN_WAL | VFS.SQLITE_OPEN_SUPER_JOURNAL)) { throw new Error('WAL and super-journal files are not supported'); + } else if (file.accessHandle) { + // This temporary file already has an access handle, which happens + // only for tests. Just use it as is. } else { // This is a temporary file. Use an unbound pre-opened accessHandle. + if (!(flags & VFS.SQLITE_OPEN_CREATE)) throw new Error('file not found'); file.accessHandle = this.#openTemporaryFile(zName); } @@ -178,6 +182,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { } catch (e) { console.error(e.stack); this.lastError = e; + this.mapPathToFile.delete(zName); return VFS.SQLITE_CANTOPEN; } } diff --git a/test/OPFSPermutedVFS.test.js b/test/OPFSWriteAheadVFS.test.js similarity index 95% rename from test/OPFSPermutedVFS.test.js rename to test/OPFSWriteAheadVFS.test.js index ca192121..b1888950 100644 --- a/test/OPFSPermutedVFS.test.js +++ b/test/OPFSWriteAheadVFS.test.js @@ -5,7 +5,7 @@ import { vfs_xClose } from "./vfs_xClose.js"; import { vfs_xRead } from "./vfs_xRead.js"; import { vfs_xWrite } from "./vfs_xWrite.js"; -const CONFIG = 'OPFSPermutedVFS'; +const CONFIG = 'OPFSWriteAheadVFS'; const BUILDS = ['asyncify', 'jspi']; const supportsJSPI = await TestContext.supportsJSPI(); diff --git a/test/api.test.js b/test/api.test.js index 46a9939b..f1cf986b 100644 --- a/test/api.test.js +++ b/test/api.test.js @@ -23,7 +23,7 @@ const CONFIGS = new Map([ ['IDBMirrorVFS', ASYNC_BUILDS], ['OPFSAdaptiveVFS', ASYNC_BUILDS], ['OPFSAnyContextVFS', ASYNC_BUILDS], - ['OPFSPermutedVFS', ASYNC_BUILDS], + ['OPFSWriteAheadVFS', ASYNC_BUILDS], ]); describe('SQLite API', function() { diff --git a/test/sql.test.js b/test/sql.test.js index 1b68a188..9ba837dc 100644 --- a/test/sql.test.js +++ b/test/sql.test.js @@ -22,10 +22,10 @@ const CONFIGS = new Map([ ['IDBMirrorVFS', ASYNC_BUILDS], ['OPFSAdaptiveVFS', ASYNC_BUILDS], ['OPFSAnyContextVFS', ASYNC_BUILDS], - ['OPFSPermutedVFS', ASYNC_BUILDS], + ['OPFSWriteAheadVFS', ASYNC_BUILDS], ]); -const DISALLOWS_PAGE_SIZE_CHANGE = ['IDBBatchAtomicVFS', 'IDBMirrorVFS', 'OPFSPermutedVFS', 'FLOOR']; +const DISALLOWS_PAGE_SIZE_CHANGE = ['IDBBatchAtomicVFS', 'IDBMirrorVFS']; const NOT_PERSISTENT = ['', 'MemoryVFS', 'MemoryAsyncVFS']; const SINGLE_CONNECTION = ['', 'MemoryVFS', 'MemoryAsyncVFS', 'AccessHandlePoolVFS']; diff --git a/test/test-worker.js b/test/test-worker.js index f560b668..b4d5d73e 100644 --- a/test/test-worker.js +++ b/test/test-worker.js @@ -52,8 +52,8 @@ const VFS_CONFIGS = new Map([ vfsModule: '../src/examples/OPFSAnyContextVFS.js', }, { - name: 'OPFSPermutedVFS', - vfsModule: '../src/examples/OPFSPermutedVFS.js', + name: 'OPFSWriteAheadVFS', + vfsModule: '../src/examples/OPFSWriteAheadVFS.js', }, ].map(config => [config.name, config])); From 5d877d1f074a271007041e5d5695bc14577d371b Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 5 Apr 2026 11:32:00 -0700 Subject: [PATCH 091/104] Fix file size tracking for ROLLBACK and VACUUM. --- src/examples/WriteAhead.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 16748bba..b1747ba8 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -275,19 +275,22 @@ export class WriteAhead { * @param {number} newSize */ truncate(newSize) { - // Remove any pages past the truncation point. We don't need to save - // the file size because that will be extracted from page 1. - for (const offset of this.#txInProgress.pages.keys()) { - if (offset >= newSize) { - this.#txInProgress.pages.delete(offset); + // Ignore truncation that happens outside of a transaction. That + // only happens (e.g. post-VACUUM) to ensure the file size matches + // the database header which we already track in #writePage(). + if (this.#txInProgress) { + // Remove any pages past the truncation point. + for (const offset of this.#txInProgress.pages.keys()) { + if (offset >= newSize) { + this.#txInProgress.pages.delete(offset); + } } + this.#txInProgress.dbFileSize = newSize; } } getFileSize() { - // If the overlay is empty, the last file size may no longer be valid - // if direct changes were made to the main database file. - return this.#waOverlay.size ? this.#dbFileSize : this.#dbHandle.getSize(); + return this.#txInProgress?.dbFileSize ?? this.#dbFileSize; } commit() { @@ -828,7 +831,7 @@ export class WriteAhead { this.#txInProgress = { id: this.#txId + 1, pages: new Map(), - dbFileSize: 0, + dbFileSize: this.#dbFileSize, waSalt1: this.#activeHeader.salt1, waOffsetEnd: this.#activeOffset, }; @@ -878,6 +881,9 @@ export class WriteAhead { // Cache page 1 as a performance optimization and to exercise the // cache code path. pageEntry.pageData = pageData; + } else { + this.#txInProgress.dbFileSize = + Math.max(this.#dbFileSize, pageOffset + pageData.byteLength); } this.#txInProgress.pages.set(pageOffset, pageEntry); From 6909030aed9627db098af5833b771a3fb171162b Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sun, 5 Apr 2026 14:31:27 -0700 Subject: [PATCH 092/104] Make exclusive locking mode block readers. --- src/examples/OPFSWriteAheadVFS.js | 66 ++++++++++++++++++------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index da0c78c8..3f20efc5 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -18,8 +18,8 @@ const finalizationRegistry = new FinalizationRegistry((/** @type {() => void} */ * @property {*} [retryResult] * @property {FileSystemSyncAccessHandle[]} [waHandles] * - * @property {'reserved'|'exclusive'} [writeHint] - * @property {'normal'|'exclusive'|null} [lockingMode] + * @property {'reserved'|'exclusive'|null} [writeHint] + * @property {'normal'|'exclusive'} [lockingMode] * @property {number} [lockState] SQLITE_LOCK_* * @property {LazyLock} [readLock] * @property {LazyLock} [writeLock] @@ -156,7 +156,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { file.retryResult = null; file.lockState = VFS.SQLITE_LOCK_NONE; - file.lockingMode = null; + file.lockingMode = 'normal'; file.readLock = new LazyLock(`${zName}#read`); file.writeLock = new LazyLock(`${zName}#write`); file.useLazyLock = 'readwrite'; @@ -411,34 +411,34 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // We do all our locking work in this transition. if (file.retryResult === null) { if (file.lockingMode === 'exclusive') { - // SQLite exclusive locking mode really means that no unlocking - // is done, not that the locking state is immediately EXCLUSIVE. - // This is a problem if the first transaction after setting - // exclusive locking mode does not come with a write hint, so - // we force the write hint here. - file.writeHint = 'exclusive'; + // Exclusive locking mode is treated as a write, and the + // read lock is also acquired to block readers. + file.retryResult = {}; + this._module.retryOps.push(this.#retryLockWrite(file)); + return VFS.SQLITE_BUSY; } - // There are separate read and write cases. In each case if the - // required lock is already held then we can proceed synchronously. - // Otherwise we need to acquire state asynchronously and retry. - if (!file.writeHint) { - // Case 1: Read transaction with write-ahead logging. - if (!file.readLock.acquireIfHeld('shared')) { + // With WAL, read and write transactions use separate locks. In + // each case if the required lock is already held then we can + // proceed synchronously. Otherwise we need to acquire state + // asynchronously and retry. + if (file.writeHint) { + // Write transaction. + if (!file.writeLock.acquireIfHeld('exclusive')) { file.retryResult = {}; - this._module.retryOps.push(this.#retryLockRead(file)); + this._module.retryOps.push(this.#retryLockWrite(file)); return VFS.SQLITE_BUSY; } else { - file.writeAhead.isolateForRead(); + file.writeAhead.isolateForWrite(); } } else { - // Case 2: Write transaction with write-ahead logging. - if (!file.writeLock.acquireIfHeld('exclusive')) { + // Read transaction. + if (!file.readLock.acquireIfHeld('shared')) { file.retryResult = {}; - this._module.retryOps.push(this.#retryLockWrite(file)); + this._module.retryOps.push(this.#retryLockRead(file)); return VFS.SQLITE_BUSY; } else { - file.writeAhead.isolateForWrite(); + file.writeAhead.isolateForRead(); } } } else if (file.retryResult instanceof Error) { @@ -454,7 +454,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { // This is a write transaction but we don't already have the write // lock. This happens when the write hint was not used, which this // VFS treats as an error. - throw new Error('Multi-statement write transaction cannot use BEGIN DEFERRED'); + throw new Error('Write transaction cannot use BEGIN DEFERRED'); } file.lockState = lockType; return VFS.SQLITE_OK; @@ -836,13 +836,16 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @param {FileEntry} file */ async #retryLockRead(file) { + const onError = []; try { await file.readLock.acquire('shared', file.timeout); + onError.push(() => file.readLock.release()); + file.writeAhead.isolateForRead(); file.retryResult = {}; } catch (e) { - if (file.readLock.mode) { - file.readLock.release(); + while (onError.length) { + onError.pop()(); } file.retryResult = e; } @@ -852,14 +855,23 @@ export class OPFSWriteAheadVFS extends FacadeVFS { * @param {FileEntry} file */ async #retryLockWrite(file) { + const onError = []; try { - // Write-ahead transactions only need writeLock, not readLock. + // Exclusive locking mode requires both read and write locks. + // Otherwise, only the write lock is needed. + if (file.lockingMode === 'exclusive') { + await file.readLock.acquire('exclusive', file.timeout); + onError.push(() => file.readLock.release()); + } + await file.writeLock.acquire('exclusive', file.timeout); + onError.push(() => file.writeLock.release()); + file.writeAhead.isolateForWrite(); file.retryResult = {}; } catch (e) { - if (file.writeLock.mode) { - file.writeLock.release(); + while (onError.length) { + onError.pop()(); } file.retryResult = e; } From b0d5ff44548ce8a5c76f360a416c2d4321ed3c10 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 9 Apr 2026 19:35:51 -0700 Subject: [PATCH 093/104] Update SQLite to 3.53. --- Makefile | 2 +- dist/wa-sqlite-async.wasm | Bin 1250917 -> 1263008 bytes dist/wa-sqlite-jspi.wasm | Bin 611971 -> 616372 bytes dist/wa-sqlite.wasm | Bin 606248 -> 610649 bytes 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a853d590..db8f32bb 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # dependencies -SQLITE_VERSION = trunk +SQLITE_VERSION = version-3.53.0 SQLITE_TARBALL_URL = https://www.sqlite.org/src/tarball/$(SQLITE_VERSION)/sqlite.tar.gz EXTENSION_FUNCTIONS = extension-functions.c diff --git a/dist/wa-sqlite-async.wasm b/dist/wa-sqlite-async.wasm index 7d1bd676115e064a42d7f7573f7cc387e9b4a29a..63ea88b6b6697bfcbcfea39c65ebd83609893d0f 100755 GIT binary patch delta 354901 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

    u-PiH;)-gW*V?6$2i7k?kO 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

    )^uz6hspCiLaduyrirOsH>U;-W(6@nEO=rWOmLW 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 X<4E!Z{1iL+n}JOuAbCZ)T_OJuxB@Hq diff --git a/dist/wa-sqlite-jspi.wasm b/dist/wa-sqlite-jspi.wasm index 021655199b7d2d4ee47fc9d4820d5983236b2907..2c208bd045912cd090f6ed55f1888d864764d128 100755 GIT binary patch delta 244209 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%0D5vfE1oivmO^x_#^U(=tN);6)(vnc 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ͣm@-nJvU(7woU9G9lLAIsml51 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

    8q_+xWi@QPdev8ihHv`i4X;v>#@ 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 Q(3}JKIdpD6;kK~<2l=zv6951J diff --git a/dist/wa-sqlite.wasm b/dist/wa-sqlite.wasm index 521a5c4b644adf3c283c3991df8b01ea9104dd0c..59241324a9505b82c84fc47ea649ccac1167f2aa 100755 GIT binary patch delta 241774 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 Date: Sun, 12 Apr 2026 02:14:19 +0000 Subject: [PATCH 094/104] Bump basic-ftp from 5.2.0 to 5.2.2 Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.2.0 to 5.2.2. - [Release notes](https://github.com/patrickjuchli/basic-ftp/releases) - [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md) - [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.2.0...v5.2.2) --- updated-dependencies: - dependency-name: basic-ftp dependency-version: 5.2.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d813371c..7449a1fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1160,9 +1160,9 @@ __metadata: linkType: hard "basic-ftp@npm:^5.0.2": - version: 5.2.0 - resolution: "basic-ftp@npm:5.2.0" - checksum: f5a15d789aa98859af4da9e976154b2aeae19052e1762dc68d259d2bce631dafa40c667aa06d7346cd630aa6f9cc9a26f515b468e0bd24243fbae2149c7d01ad + version: 5.2.2 + resolution: "basic-ftp@npm:5.2.2" + checksum: 2bb208276bafbc3549992734b67247d78bfe6546e2eb1e9513c2761364c47e88b94171666359200279a738b36b152d2bbba0953d4f83f4677f1fd5b68aea3e29 languageName: node linkType: hard From 9ee0c3f03c858c094c1bd421b8882098b882042e Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Sat, 11 Apr 2026 19:36:04 -0700 Subject: [PATCH 095/104] Bump package version to 1.1.0. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 65e60baf..a569ee04 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wa-sqlite", - "version": "1.0.9", + "version": "1.1.0", "type": "module", "main": "src/sqlite-api.js", "types": "src/types/index.d.ts", From 21cb13046c3f11838fae63ea538dc919ce7c0c4e Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 16 Apr 2026 09:40:25 -0700 Subject: [PATCH 096/104] Fix manual checkpoint in exclusive locking mode. --- src/examples/OPFSWriteAheadVFS.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/examples/OPFSWriteAheadVFS.js b/src/examples/OPFSWriteAheadVFS.js index 3f20efc5..e425c678 100644 --- a/src/examples/OPFSWriteAheadVFS.js +++ b/src/examples/OPFSWriteAheadVFS.js @@ -811,7 +811,7 @@ export class OPFSWriteAheadVFS extends FacadeVFS { async #pendingCheckpoint(file, mode) { const onFinally = []; try { - if (mode !== 'passive') { + if (mode !== 'passive' && file.lockState === VFS.SQLITE_LOCK_NONE) { await file.writeLock.acquire('exclusive'); onFinally.push(() => file.writeLock.release()); From b9ab1e16164fe3a3dd35309c1f31fca0172b8391 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 21 Apr 2026 13:55:14 -0700 Subject: [PATCH 097/104] Fix file size tracking. --- src/examples/WriteAhead.js | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index b1747ba8..277daefa 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -277,7 +277,7 @@ export class WriteAhead { truncate(newSize) { // Ignore truncation that happens outside of a transaction. That // only happens (e.g. post-VACUUM) to ensure the file size matches - // the database header which we already track in #writePage(). + // the database header. if (this.#txInProgress) { // Remove any pages past the truncation point. for (const offset of this.#txInProgress.pages.keys()) { @@ -285,7 +285,6 @@ export class WriteAhead { this.#txInProgress.pages.delete(offset); } } - this.#txInProgress.dbFileSize = newSize; } } @@ -320,6 +319,18 @@ export class WriteAhead { } } + const page1 = this.#txInProgress.pages.get(0)?.pageData; + if (page1) { + const page1View = new DataView(page1.buffer, page1.byteOffset, page1.byteLength); + const pageCount = page1View.getUint32(28); + this.#txInProgress.dbFileSize = pageCount * page1.byteLength; + } else { + // The transaction doesn't include page 1, so this must be a + // non-batch-atomic rollback. + this.rollback(); + return; + } + // Persist the final pending transaction page with the database size. this.#commitTx(); @@ -867,25 +878,14 @@ export class WriteAhead { throw new Error('write failed'); } + // Add the page to the transaction map. Cache page 1 as a performance + // optimization and to exercise the cache code path. const pageEntry = { pageSize: pageData.byteLength, waOffset: this.#txInProgress.waOffsetEnd + FRAME_HEADER_SIZE, waSalt1: this.#activeHeader.salt1, + pageData: pageOffset === 0 ? pageData : undefined }; - if (pageOffset === 0) { - // This is page 1, which contains the database header. - const dataView = new DataView(pageData.buffer, pageData.byteOffset, pageData.byteLength); - const pageCount = dataView.getUint32(28); - this.#txInProgress.dbFileSize = pageCount * pageData.byteLength; - - // Cache page 1 as a performance optimization and to exercise the - // cache code path. - pageEntry.pageData = pageData; - } else { - this.#txInProgress.dbFileSize = - Math.max(this.#dbFileSize, pageOffset + pageData.byteLength); - } - this.#txInProgress.pages.set(pageOffset, pageEntry); this.#txInProgress.waOffsetEnd += bytesWritten; @@ -927,6 +927,7 @@ export class WriteAhead { #abortTx() { this.#txInProgress = null; + this.#activeHandle.truncate(this.#activeOffset); } /** From 5445d206ab8accdb1dd8bb5885402118c2381169 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 21 Apr 2026 13:56:04 -0700 Subject: [PATCH 098/104] Fix #waitForTxIdLocks() lock names. --- src/examples/WriteAhead.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 277daefa..24f12712 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -676,7 +676,7 @@ export class WriteAhead { /** * Get all txId locks for this database. - * @returns {Promise<{name: string, minTxId: number, maxTxId: number}[]>} + * @returns {Promise<{name: string, minTxId: number, maxTxId: number, encoded: string}[]>} */ async #getTxIdLocks() { const { held } = await navigator.locks.query(); @@ -703,7 +703,7 @@ export class WriteAhead { /** * @param {string} lockName - * @returns {{name: string, minTxId: number, maxTxId: number}} + * @returns {{name: string, minTxId: number, maxTxId: number, encoded: string}?} */ #decodeTxIdLockName(lockName) { const match = lockName.match(/^(.*)-txId<([0-9a-z]+):([0-9a-z]+)>$/); @@ -713,6 +713,7 @@ export class WriteAhead { name: match[1], minTxId: parseInt(match[2], 36), maxTxId: parseInt(match[3], 36), + encoded: lockName }; } return null; @@ -726,14 +727,16 @@ export class WriteAhead { /** @type {string[]} */ let failingLockNames = []; do { // Wait for all connections that fail the predicate. - await Promise.all( - failingLockNames.map(name => navigator.locks.request(name, async () => {})) - ); + if (failingLockNames.length > 0) { + await Promise.all( + failingLockNames.map(name => navigator.locks.request(name, async () => {})) + ); + } // Refresh the list of failing locks. failingLockNames = (await this.#getTxIdLocks()) .filter(value => !predicate(value)) - .map(value => value.name); + .map(value => value.encoded); } while (failingLockNames.length > 0); } From 31f0de7f96d095b7c733065d31bb4594873989e1 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Wed, 22 Apr 2026 10:39:06 -0700 Subject: [PATCH 099/104] Fix salt association across WAL boundary. --- src/examples/WriteAhead.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/examples/WriteAhead.js b/src/examples/WriteAhead.js index 24f12712..243ae4d3 100644 --- a/src/examples/WriteAhead.js +++ b/src/examples/WriteAhead.js @@ -775,7 +775,7 @@ export class WriteAhead { id: 0, // placeholder pages: new Map(), dbFileSize: 0, // placeholder - waSalt1: this.#activeHeader.salt1, + waSalt1: 0, // placeholder waOffsetEnd: 0, // placeholder }; @@ -793,7 +793,7 @@ export class WriteAhead { { pageSize: frame.pageData.byteLength, waOffset: offset + FRAME_HEADER_SIZE, - waSalt1: tx.waSalt1, + waSalt1: this.#activeHeader.salt1, } ); } else if (frame.frameType === FRAME_TYPE_COMMIT) { @@ -804,6 +804,7 @@ export class WriteAhead { // Finalize the transaction fields and return it. tx.id = this.#txId; tx.dbFileSize = frame.dbFileSize; + tx.waSalt1 = this.#activeHeader.salt1; tx.newPageSize = (frame.flags & 1) ? tx.pages.get(0).pageSize : null; tx.waOffsetEnd = this.#activeOffset; return tx; @@ -881,8 +882,8 @@ export class WriteAhead { throw new Error('write failed'); } - // Add the page to the transaction map. Cache page 1 as a performance - // optimization and to exercise the cache code path. + // Cache page 1 as a performance optimization and to exercise the + // cache code path. const pageEntry = { pageSize: pageData.byteLength, waOffset: this.#txInProgress.waOffsetEnd + FRAME_HEADER_SIZE, From b9ddadce32480857cde28e7b1512cf45fa08ab73 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Thu, 23 Apr 2026 08:37:21 -0700 Subject: [PATCH 100/104] Bump package version to 1.1.1. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a569ee04..ddbc62b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wa-sqlite", - "version": "1.1.0", + "version": "1.1.1", "type": "module", "main": "src/sqlite-api.js", "types": "src/types/index.d.ts", From c25cefe7086e4d1a7899ad0595d8dc9142475099 Mon Sep 17 00:00:00 2001 From: Roy Hashimoto Date: Tue, 12 May 2026 16:55:25 -0700 Subject: [PATCH 101/104] Updates per dependabot. --- yarn.lock | 45 ++++++++++++++------------------------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7449a1fc..2fb0eeb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1174,20 +1174,20 @@ __metadata: linkType: hard "brace-expansion@npm:^2.0.2": - version: 2.0.3 - resolution: "brace-expansion@npm:2.0.3" + version: 2.1.0 + resolution: "brace-expansion@npm:2.1.0" dependencies: balanced-match: "npm:^1.0.0" - checksum: e9dd66caaf0784126e1654f1bc19adb28f3ef86f39f2226f833f7700ec727c141f6cd85eaa47bacf3426beda01c9fbc3a2f28174cf59330dc9b58ffaf9e09d96 + checksum: c77a7a64aabf94b8d5913955adb4f36957917565374461355bb4276830c027a313d981f32410cea9e38f52573e7eb776d02fe05091c3a79a061958d97e4d2b43 languageName: node linkType: hard "brace-expansion@npm:^5.0.5": - version: 5.0.5 - resolution: "brace-expansion@npm:5.0.5" + version: 5.0.6 + resolution: "brace-expansion@npm:5.0.6" dependencies: balanced-match: "npm:^4.0.2" - checksum: f259b2ddf04489da9512ad637ba6b4ef2d77abd4445d20f7f1714585f153435200a53fa6a2e4a5ee974df14ddad4cd16421f6f803e96e8b452bd48598878d0ee + checksum: a7acf120fefa79e9d7c9c92898114f57c07596a3920197f3c5917e6a628b04220a5f7f9618c30bdd973a6576a32113b99f9c3f1c8245ccc399dd2a9a718d81d8 languageName: node linkType: hard @@ -2376,13 +2376,10 @@ __metadata: languageName: node linkType: hard -"ip-address@npm:^9.0.5": - version: 9.0.5 - resolution: "ip-address@npm:9.0.5" - dependencies: - jsbn: "npm:1.1.0" - sprintf-js: "npm:^1.1.3" - checksum: 1ed81e06721af012306329b31f532b5e24e00cb537be18ddc905a84f19fe8f83a09a1699862bf3a1ec4b9dea93c55a3fa5faf8b5ea380431469df540f38b092c +"ip-address@npm:^10.1.1": + version: 10.2.0 + resolution: "ip-address@npm:10.2.0" + checksum: 12fec399e1af5753ac322e47a6d81a50d3a528b3abb17c09525b2a2edcaedcca628c40520706f7037bc4d8e951b0296c47e7b86d0a8e6e2335c8f0ba4afcfac1 languageName: node linkType: hard @@ -2570,13 +2567,6 @@ __metadata: languageName: node linkType: hard -"jsbn@npm:1.1.0": - version: 1.1.0 - resolution: "jsbn@npm:1.1.0" - checksum: bebe7ae829bbd586ce8cbe83501dd8cb8c282c8902a8aeeed0a073a89dc37e8103b1244f3c6acd60278bcbfe12d93a3f83c9ac396868a3b3bbc3c5e5e3b648ef - languageName: node - linkType: hard - "jsonc-parser@npm:^3.2.0": version: 3.2.0 resolution: "jsonc-parser@npm:3.2.0" @@ -3755,12 +3745,12 @@ __metadata: linkType: hard "socks@npm:^2.8.3": - version: 2.8.4 - resolution: "socks@npm:2.8.4" + version: 2.8.9 + resolution: "socks@npm:2.8.9" dependencies: - ip-address: "npm:^9.0.5" + ip-address: "npm:^10.1.1" smart-buffer: "npm:^4.2.0" - checksum: ab3af97aeb162f32c80e176c717ccf16a11a6ebb4656a62b94c0f96495ea2a1f4a8206c04b54438558485d83d0c5f61920c07a1a5d3963892a589b40cc6107dd + checksum: 8675e6b023faeaa5c2511664b106fd21f5d5ecb403584412e0efae58a76e0c0661c0c18ca340988f6cb398232308dae85fb710f847c9c6e0a6af33b07e4cd33a languageName: node linkType: hard @@ -3778,13 +3768,6 @@ __metadata: languageName: node linkType: hard -"sprintf-js@npm:^1.1.3": - version: 1.1.3 - resolution: "sprintf-js@npm:1.1.3" - checksum: e7587128c423f7e43cc625fe2f87e6affdf5ca51c1cc468e910d8aaca46bb44a7fbcfa552f787b1d3987f7043aeb4527d1b99559e6621e01b42b3f45e5a24cbb - languageName: node - linkType: hard - "ssri@npm:^13.0.0": version: 13.0.1 resolution: "ssri@npm:13.0.1" From e596fddfcbc5494f8cf1a46096540920eed884d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 May 2026 16:19:42 -0700 Subject: [PATCH 102/104] Bump qs from 6.15.0 to 6.15.2 (#326) Bumps [qs](https://github.com/ljharb/qs) from 6.15.0 to 6.15.2. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.15.0...v6.15.2) --- updated-dependencies: - dependency-name: qs dependency-version: 6.15.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2fb0eeb7..7e67bc35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3368,11 +3368,11 @@ __metadata: linkType: hard "qs@npm:^6.5.2": - version: 6.15.0 - resolution: "qs@npm:6.15.0" + version: 6.15.2 + resolution: "qs@npm:6.15.2" dependencies: side-channel: "npm:^1.1.0" - checksum: a3458f2f389285c3512e0ebc55522ee370ac7cb720ba9f0eff3e30fb2bb07631caf556c08e2a3d4481a371ac14faa9ceb7442a0610c5a7e55b23a5bdee7b701c + checksum: 7a934b2dba40654cf9878dab7c1e7ad56c6186265509727fbece67dadc38fd5d67715b61b6ef938e5a0475faeee701d18ec0a7ce420ad64367caad7f1bdb66e2 languageName: node linkType: hard From 2a38a1c7c651f465f64f961b686efb31431790af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 28 Jun 2026 07:50:18 -0700 Subject: [PATCH 103/104] Bump tar from 7.5.13 to 7.5.19 (#328) Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.13 to 7.5.19. - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/node-tar/compare/v7.5.13...v7.5.19) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.19 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7e67bc35..d4de5b3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3920,15 +3920,15 @@ __metadata: linkType: hard "tar@npm:^7.5.4": - version: 7.5.13 - resolution: "tar@npm:7.5.13" + version: 7.5.19 + resolution: "tar@npm:7.5.19" dependencies: "@isaacs/fs-minipass": "npm:^4.0.0" chownr: "npm:^3.0.0" minipass: "npm:^7.1.2" minizlib: "npm:^3.1.0" yallist: "npm:^5.0.0" - checksum: 2bc2b6f0349038a6621dbba1c4522d45752d5071b2994692257113c2050cd23fafc30308f820e5f8ad6fda3f7d7f92adc9a432aa733daa04c42af2061c021c3f + checksum: 0b06a0917fe68a4dff361e147db30fd67ae2ee85ab2863d62046a6ccef46f0d1906eed20f92277a436300eaaa0e3cd31d8763d7f02fa389f41d7966e58388db8 languageName: node linkType: hard From 6e083ef59f12157e196ac7c24073e2dccc9e5b28 Mon Sep 17 00:00:00 2001 From: Sergey Vohmyanin Date: Tue, 30 Jun 2026 13:34:03 +0300 Subject: [PATCH 104/104] fix(ts): fix type errors --- src/types/index.d.ts | 166 +++++++++++++++++++++---------------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/src/types/index.d.ts b/src/types/index.d.ts index 24e7ef5d..e16a9f47 100644 --- a/src/types/index.d.ts +++ b/src/types/index.d.ts @@ -9,7 +9,7 @@ /** * Javascript types that SQLite can use - * + * * C integer and floating-point types both map to/from Javascript `number`. * Blob data can be provided to SQLite as `Uint8Array` or `number[]` (with * each element converted to a byte); SQLite always returns blob data as @@ -19,14 +19,14 @@ type SQLiteCompatibleType = number|string|Uint8Array|Array|bigint|null; /** * SQLite Virtual File System object - * + * * Objects with this interface can be passed to {@link SQLiteAPI.vfs_register} * to define a new filesystem. - * + * * There are [synchronous](https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/MemoryVFS.js) * and [asynchronous](https://github.com/rhashimoto/wa-sqlite/blob/master/src/examples/MemoryAsyncVFS.js) * example VFS classes in the repository. - * + * * @see https://sqlite.org/vfs.html * @see https://sqlite.org/c3ref/io_methods.html */ @@ -155,18 +155,18 @@ declare interface SQLitePrepareOptions { /** * Javascript wrappers for the SQLite C API (plus a few convenience functions) - * + * * Function signatures have been slightly modified to be more * Javascript-friendly. For the C functions that return an error code, * the corresponding Javascript wrapper will throw an exception with a * `code` property on an error. - * + * * Note that a few functions return a Promise in order to accomodate * either a synchronous or asynchronous SQLite build, generally those * involved with opening/closing a database or executing a statement. - * + * * To create an instance of the API, follow these steps: - * + * * ```javascript * // Import an ES6 module factory function from one of the * // package builds, either 'wa-sqlite.mjs' (synchronous) or @@ -174,35 +174,35 @@ declare interface SQLitePrepareOptions { * // use the asynchronous build if you plan to use an * // asynchronous VFS or module. * import SQLiteESMFactory from 'wa-sqlite/dist/wa-sqlite.mjs'; - * + * * // Import the Javascript API wrappers. * import * as SQLite from 'wa-sqlite'; - * + * * // Use an async function to simplify Promise handling. * (async function() { * // Invoke the ES6 module factory to create the SQLite * // Emscripten module. This will fetch and compile the * // .wasm file. * const module = await SQLiteESMFactory(); - * + * * // Use the module to build the API instance. * const sqlite3 = SQLite.Factory(module); - * + * * // Use the API to open and access a database. * const db = await sqlite3.open_v2('myDB'); * ... * })(); * ``` - * + * * @see https://sqlite.org/c3ref/funclist.html */ declare interface SQLiteAPI { /** * Bind a collection of values to a statement - * + * * This convenience function binds values from either an array or object * to a prepared statement with placeholder parameters. - * + * * Array example using numbered parameters (numbering is implicit in * this example): * ``` @@ -212,7 +212,7 @@ declare interface SQLiteAPI { * ... * } * ``` - * + * * Object example using named parameters (':', '@', or '$' prefixes * are allowed): * ``` @@ -226,11 +226,11 @@ declare interface SQLiteAPI { * ... * } * ``` - * + * * Note that SQLite bindings are indexed beginning with 1, but when * binding values from an array `a` the values begin with `a[0]`. * @param stmt prepared statement pointer - * @param bindings + * @param bindings * @returns `SQLITE_OK` (throws exception on error) */ bind_collection( @@ -240,67 +240,67 @@ declare interface SQLiteAPI { /** * Bind value to prepared statement - * + * * This convenience function calls the appropriate `bind_*` function * based on the type of `value`. Note that binding indices begin with 1. * @param stmt prepared statement pointer * @param i binding index - * @param value + * @param value * @returns `SQLITE_OK` (throws exception on error) */ bind(stmt: number, i: number, value: SQLiteCompatibleType|null): number; /** * Bind blob to prepared statement parameter - * + * * Note that binding indices begin with 1. * @see https://www.sqlite.org/c3ref/bind_blob.html * @param stmt prepared statement pointer * @param i binding index - * @param value + * @param value * @returns `SQLITE_OK` (throws exception on error) */ bind_blob(stmt: number, i: number, value: Uint8Array|Array): number; /** * Bind number to prepared statement parameter - * + * * Note that binding indices begin with 1. * @see https://www.sqlite.org/c3ref/bind_blob.html * @param stmt prepared statement pointer * @param i binding index - * @param value + * @param value * @returns `SQLITE_OK` (throws exception on error) */ bind_double(stmt: number, i: number, value: number): number; /** * Bind number to prepared statement parameter - * + * * Note that binding indices begin with 1. * @see https://www.sqlite.org/c3ref/bind_blob.html * @param stmt prepared statement pointer * @param i binding index - * @param value + * @param value * @returns `SQLITE_OK` (throws exception on error) */ bind_int(stmt: number, i: number, value: number): number; /** * Bind number to prepared statement parameter - * + * * Note that binding indices begin with 1. * @see https://www.sqlite.org/c3ref/bind_blob.html * @param stmt prepared statement pointer * @param i binding index - * @param value + * @param value * @returns `SQLITE_OK` (throws exception on error) */ bind_int64(stmt: number, i: number, value: bigint): number; /** * Bind null to prepared statement - * + * * Note that binding indices begin with 1. * @see https://www.sqlite.org/c3ref/bind_blob.html * @param stmt prepared statement pointer @@ -319,7 +319,7 @@ declare interface SQLiteAPI { /** * Get name of bound parameter - * + * * Note that binding indices begin with 1. * @see https://www.sqlite.org/c3ref/bind_parameter_name.html * @param stmt prepared statement pointer @@ -330,12 +330,12 @@ declare interface SQLiteAPI { /** * Bind string to prepared statement - * + * * Note that binding indices begin with 1. * @see https://www.sqlite.org/c3ref/bind_blob.html * @param stmt prepared statement pointer * @param i binding index - * @param value + * @param value * @returns `SQLITE_OK` (throws exception on error) */ bind_text(stmt: number, i: number, value: string): number; @@ -346,7 +346,7 @@ declare interface SQLiteAPI { * @param db database pointer * @returns number of rows modified */ - changes(db): number; + changes(db: number): number; /** * Reset all bindings on a prepared statement. @@ -362,16 +362,16 @@ declare interface SQLiteAPI { * @param db database pointer * @returns `SQLITE_OK` (throws exception on error) */ - close(db): Promise; + close(db: number): Promise; /** * Call the appropriate `column_*` function based on the column type - * + * * The type is determined by calling {@link column_type}, which may * not match the type declared in `CREATE TABLE`. Note that if the column * value is a blob then as with `column_blob` the result may be invalid * after the next SQLite call; copy if it needs to be retained. - * + * * Integer values are returned as Number if within the min/max safe * integer bounds, otherwise they are returned as BigInt. * @param stmt prepared statement pointer @@ -382,7 +382,7 @@ declare interface SQLiteAPI { /** * Extract a column value from a row after a prepared statment {@link step} - * + * * The contents of the returned buffer may be invalid after the * next SQLite call. Make a copy of the data (e.g. with `.slice()`) * if longer retention is required. @@ -448,10 +448,10 @@ declare interface SQLiteAPI { /** * Get names for all columns of a prepared statement - * + * * This is a convenience function that calls {@link column_count} and * {@link column_name}. - * @param stmt + * @param stmt * @returns array of column names */ column_names(stmt: number): Array; @@ -467,7 +467,7 @@ declare interface SQLiteAPI { /** * Get column type for a prepared statement - * + * * Note that this type may not match the type declared in `CREATE TABLE`. * @see https://www.sqlite.org/c3ref/column_blob.html * @param stmt prepared statement pointer @@ -478,7 +478,7 @@ declare interface SQLiteAPI { /** * Register a commit hook - * + * * @see https://www.sqlite.org/c3ref/commit_hook.html * * @param db database pointer @@ -491,20 +491,20 @@ declare interface SQLiteAPI { /** * Create or redefine SQL functions - * + * * The application data passed is ignored. Use closures instead. - * + * * If any callback function returns a Promise, that function must * be declared `async`, i.e. it must allow use of `await`. * @see https://sqlite.org/c3ref/create_function.html * @param db database pointer - * @param zFunctionName + * @param zFunctionName * @param nArg number of function arguments * @param eTextRep text encoding (and other flags) * @param pApp application data (ignored) - * @param xFunc - * @param xStep - * @param xFinal + * @param xFunc + * @param xStep + * @param xFinal * @returns `SQLITE_OK` (throws exception on error) */ create_function( @@ -527,7 +527,7 @@ declare interface SQLiteAPI { /** * One-step query execution interface - * + * * The implementation of this function uses {@link row}, which makes a * copy of blobs and returns BigInt for integers outside the safe integer * bounds for Number. @@ -546,7 +546,7 @@ declare interface SQLiteAPI { /** * Destroy a prepared statement object compiled by {@link statements} * with the `unscoped` option set to `true` - * + * * This function does *not* throw on error. * @see https://www.sqlite.org/c3ref/finalize.html * @param stmt prepared statement pointer @@ -581,7 +581,7 @@ declare interface SQLiteAPI { * @see https://www.sqlite.org/c3ref/limit.html * @param db database pointer * @param id limit category - * @param newVal + * @param newVal * @returns previous setting */ limit( @@ -591,12 +591,12 @@ declare interface SQLiteAPI { /** * Opening a new database connection. - * + * * Note that this function differs from the C API in that it * returns the Promise-wrapped database pointer (instead of a * result code). * @see https://sqlite.org/c3ref/open.html - * @param zFilename + * @param zFilename * @param iFlags `SQLite.SQLITE_OPEN_CREATE | SQLite.SQLITE_OPEN_READWRITE` (0x6) if omitted * @param zVfs VFS name * @returns Promise-wrapped database pointer. @@ -604,22 +604,22 @@ declare interface SQLiteAPI { open_v2( zFilename: string, iFlags?: number, - zVfs?: string + zVfs?: string ): Promise; /** * Specify callback to be invoked between long-running queries - * + * * The application data passed is ignored. Use closures instead. - * + * * If any callback function returns a Promise, that function must * be declared `async`, i.e. it must allow use of `await`. * @param db database pointer * @param nProgressOps target number of database operations between handler invocations - * @param handler - * @param userData + * @param handler + * @param userData */ - progress_handler(db: number, nProgressOps: number, handler: (userData: any) => number|Promise, userData); + progress_handler(db: number, nProgressOps: number, handler: (userData: T) => number|Promise, userData: T): void; /** * Reset a prepared statement object @@ -632,7 +632,7 @@ declare interface SQLiteAPI { /** * Convenience function to call `result_*` based of the type of `value` * @param context context pointer - * @param value + * @param value */ result(context: number, value: (SQLiteCompatibleType|number[])|null): void; @@ -640,7 +640,7 @@ declare interface SQLiteAPI { * Set the result of a function or vtable column * @see https://sqlite.org/c3ref/result_blob.html * @param context context pointer - * @param value + * @param value */ result_blob(context: number, value: Uint8Array|number[]): void; @@ -648,7 +648,7 @@ declare interface SQLiteAPI { * Set the result of a function or vtable column * @see https://sqlite.org/c3ref/result_blob.html * @param context context pointer - * @param value + * @param value */ result_double(context: number, value: number): void; @@ -656,7 +656,7 @@ declare interface SQLiteAPI { * Set the result of a function or vtable column * @see https://sqlite.org/c3ref/result_blob.html * @param context context pointer - * @param value + * @param value */ result_int(context: number, value: number): void; @@ -664,7 +664,7 @@ declare interface SQLiteAPI { * Set the result of a function or vtable column * @see https://sqlite.org/c3ref/result_blob.html * @param context context pointer - * @param value + * @param value */ result_int64(context: number, value: bigint): void; @@ -679,13 +679,13 @@ declare interface SQLiteAPI { * Set the result of a function or vtable column * @see https://sqlite.org/c3ref/result_blob.html * @param context context pointer - * @param value + * @param value */ result_text(context: number, value: string): void; /** * Get all column data for a row from a prepared statement step - * + * * This convenience function will return a copy of any blob, unlike * {@link column_blob} which returns a value referencing volatile WASM * memory with short validity. Like {@link column}, it will return a @@ -699,14 +699,14 @@ declare interface SQLiteAPI { * Register a callback function that is invoked to authorize certain SQL statement actions. * @see https://www.sqlite.org/c3ref/set_authorizer.html * @param db database pointer - * @param authFunction - * @param userData + * @param authFunction + * @param userData */ set_authorizer( db: number, authFunction: (userData: any, iActionCode: number, param3: string|null, param4: string|null, param5: string|null, param6: string|null) => number|Promise, userData: any): number; - + /** * Get statement SQL * @see https://www.sqlite.org/c3ref/expanded_sql.html @@ -717,7 +717,7 @@ declare interface SQLiteAPI { /** * SQL statement iterator - * + * * This function manages statement compilation by creating an async * iterator that yields a prepared statement handle on each iteration. * It is typically used with a `for await` loop (in an async function), @@ -726,7 +726,7 @@ declare interface SQLiteAPI { * // Compile one statement on each iteration of this loop. * for await (const stmt of sqlite3.statements(db, sql)) { * // Bind parameters here if using SQLite placeholders. - * + * * // Execute the statement with this loop. * while (await sqlite3.step(stmt) === SQLite.SQLITE_ROW) { * // Collect row data here. @@ -735,14 +735,14 @@ declare interface SQLiteAPI { * // Change bindings, reset, and execute again if desired. * } * ``` - * + * * By default, the lifetime of a yielded prepared statement is managed * automatically by the iterator, ending at the end of each iteration. * {@link finalize} should *not* be called on a statement provided by * the iterator unless the `unscoped` option is set to `true` (that * option is provided for applications that wish to manage statement * lifetimes manually). - * + * * If using the iterator manually, i.e. by calling its `next` * method, be sure to call the `return` method if iteration * is abandoned before completion (`for await` and other implicit @@ -750,7 +750,7 @@ declare interface SQLiteAPI { * to ensure that all allocated resources are released. * @see https://www.sqlite.org/c3ref/prepare.html * @param db database pointer - * @param sql + * @param sql * @param options */ statements(db: number, sql: string, options?: SQLitePrepareOptions): AsyncIterable; @@ -766,7 +766,7 @@ declare interface SQLiteAPI { /** * Register an update hook - * + * * The callback is invoked whenever a row is updated, inserted, or deleted * in a rowid table on this connection. * @see https://www.sqlite.org/c3ref/update_hook.html @@ -776,7 +776,7 @@ declare interface SQLiteAPI { * - SQLITE_INSERT: 18 * - SQLITE_UPDATE: 23 * @see https://www.sqlite.org/c3ref/c_alter_table.html - * + * * @param db database pointer * @param callback */ @@ -786,11 +786,11 @@ declare interface SQLiteAPI { /** * Extract a value from `sqlite3_value` - * + * * This is a convenience function that calls the appropriate `value_*` * function based on its type. Note that if the value is a blob then as * with `value_blob` the result may be invalid after the next SQLite call. - * + * * Integer values are returned as Number if within the min/max safe * integer bounds, otherwise they are returned as BigInt. * @param pValue `sqlite3_value` pointer @@ -800,7 +800,7 @@ declare interface SQLiteAPI { /** * Extract a value from `sqlite3_value` - * + * * The contents of the returned buffer may be invalid after the * next SQLite call. Make a copy of the data (e.g. with `.slice()`) * if longer retention is required. @@ -857,13 +857,13 @@ declare interface SQLiteAPI { * @returns enumeration value for type */ value_type(pValue: number): number; - + /** * Register a new Virtual File System. - * + * * @see https://www.sqlite.org/c3ref/vfs_find.html * @param vfs VFS object - * @param makeDefault + * @param makeDefault * @returns `SQLITE_OK` (throws exception on error) */ vfs_register(vfs: SQLiteVFS, makeDefault?: boolean): number; @@ -1127,13 +1127,13 @@ declare module 'wa-sqlite' { /** @ignore */ declare module 'wa-sqlite/dist/wa-sqlite.mjs' { function ModuleFactory(config?: object): Promise; - export = ModuleFactory; + export default ModuleFactory; } /** @ignore */ declare module 'wa-sqlite/dist/wa-sqlite-async.mjs' { function ModuleFactory(config?: object): Promise; - export = ModuleFactory; + export default ModuleFactory; } /** @ignore */

    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 z zbOJ;YKy*#8vQ#ykl0iEk!YO+%M5YmRFWC$s~oG?6Y<)E00X?SoDhvdJNO_L z-^?ip2%rJOWh%YUTkA$6p9%N_NzIks8>0EgLuvH-aFo>FON@`cc0qNCo^HlvlS&T&bVfV>V+WFZ2`y`Njy_fsDccF@j zNX*|f!{hXJA2eQ~P-J{%&=NL8^Tx~S;Y9obhLY*^@v^;kn)C^>I_Pb!327KAhy#(C$2QEp+Rq>S>$iu%N+f6AI-lHFYZv&s7@oZld~7zh>Y$} zCc?S7fmYlvZ@>h9z8`#M6=h74E%kF1)MpZQ;!zqgNwxu0)=!d+t8UotvQ}+}`T?F6 z&l!q$H)Bg9b1kg|q}3OzUV<2M(6>8FWp(|iM%=Yzfy_aP{Zj0NfA5u#8VJ4zQ&Gts zTIl%@{Oj|}{Y|OExKKW|n~X5~3+4Vg)aOd{vYa|u7KFtm@D}vUWNFC_K}d;}dY7b& zlVzW<5f>$)RvC2D1F}nAO2}jSb*Neb5u2EpM1kf>~| zE~#7<>}p;TVBn>lofu(JA{mv~fZ#1`Q5Ud@$2oEKl7=M;^Ae@Tg;^AtO;r@ig7r49 zOIRg%dFaL|(#XauFa<6sfSz9{3Xe`hJ@E7}l}?cj(coh96u7U~Eu1RH`1gO{f-Qe7 zjh`y7PCETAIFno(WPS4sRCD-ls%(&T1Zp|n51fL16yGXOBiZ4NqtxI*S%;HbZ+uX8 z$e4!J#HvNo;u0RRErI9{LP_$`n-3xbtU+-Q853*#DKupo_~X;D_0wcj(>n~My${K| zgI|FXaX8AiR6Jb{(R$M6=`t+d>>RD#_B9(-9|sFSUDEcFimY$51l8 z&k6Sh#N=(X>|r?&m;CxL6usN1{tTI)*{Q{n;{42KWP+M zE;DHOOqra4>?Wt`GbHgfMv+s@VV=Jgha#r|l#vJR2ieRVW5L zhWeT;b*KWFik$KTaJzjKS6s4^huZgZ-FIB+=C~VR2Dc(v#Rd3OWnR!7JkiQQSP;l8 z-j4RfAeV?#;78RR5`xiX&>UIafAMvNF*Iuqh+8r3ngg|0(zkPDH|=N)^-J35T0 zUrxKFmZ{3QnDzm!AGo*+gjN&j-C*Z^N4Jc*-#~s0@*mi(2gNy%vg?d)du53f)Ko-?kf{@d;Iapa;T3Wls>yr zO40%lt%g*80aW>hvD+8OB+dIYI>%Tv=>s{@!~$CtC`Q2F0?)f2D_yU^#p)3eIc^X+DFj{kuR5W4z5aRL@%KQk-Vc;v{RcPX!l`v^9z4pF4qH;BT`-SsLj3|N8yqO4 zwF_lP3)9A^CnvUNp}bOql9IJZR;ltec54%W{u>+{VkIT%EKbFXv zsfpWB*;xszPt&tYWF745FPFezKc148%A5w5UBy@pAvy^0OT9jU9d=(xUfpY#$^j}_ z5ZevhJ(&(JmDR03n=v*mUjX)Lx*4!e^&g*AE&g{UZVjX2WpV-&lE)tiWN~|s!4#S4 zNvomcdh7`nK=I)W6YO{!<>E~mK~S@n%cAr@p*$!>upE2kYg)Kmjw5K9ISbn-B~gPF z(jP#PsV3m$Db#KS(i>K+kS&do{GwzI^8*n8aekVPu8>y*6gs*>=k0peASli!!Iuzkowa4PUPlmu6;!&pDk<;nTC(n}=55oE7DBro177%F!14uz>e=}J;##re_^3^UC^y3Y0sQrtno<-Iib3E93W(y72kqkpJ2h;3O*f&G$O?X70t z>V6WmF_~&UDeD&D67U0i&TgJ_11%uSwZtoJa|$j28=v%~>{P(dQy^Ydy|5^|qYRU2EK3tool)cxp;bkkF^i;0C{%Nyk4_*dG!CV*Uc=}C>Y zJ|(M`d`;}9clg$4X`Be zrea00_@*DsS548GI4CYS0a&7&NBN)EV)E;#d>t$-$gkP%?o68whEd;ry}UYpk^dc!?L-@t3WIpb zqeiX=@F=1VZ9_#=>PH^tE$g7WV@Bvyt!Bg`6%#p+gvTY}Is+l_;{rxZE_M#lMS1%# zvs##*6y2raB7R!b1B#W*zU<4MZ95Y^e{g{%CwyQ?CZR(I0%l1x`6V-W8@t}(*45;W zuIpJKWdEA0qc$-bW-}~j$S@nT!Rm6X7jcJ|CfB(uon6pX9P8hi?6_;)qj>WhrL(&MA+Hp(`Xc>;AAj~=Fq6SABB@+k_PggCQ#IzGf4+j>Q1?v z3p<+C!2-rX!EjEMU;%inRpP)*>B_c_@LDR@ZoYU%cG`Antu#Y$hmmD-Tl{2095 zaMR(~8|~|n-hDHbZ3z1wTW1vNXAeKN%NWQB`E@m8k=N%kUDaacFUcxiy7@JEt^T5e zoa)DxOMXznYqA49SRv>7cA`ZVGG1n14RdefZL%s4z(-79{3DRgx-`JFH&&?puS=e+@Y-8?9Ac<-(^WSRC*?Cv+^6`FtQS*RAWAFckE?CF08 z+4cP6{J-QT|A)?x%{ygl|Fh1IGdpEtAI?~xJxWDyLDla^-QJR2<3nT*ZFvjq_*?WK zl{Ne^=T7}?d6oa;AMLkY|F*OeFL?aYAK$($Tlo%d)T}wjsOCGet?xVhz2GF4@EX#KZOnl<$(aB%beoSKjU4>P%z8y9iV}K?mLi zKmT^&ZrLeuS@+$5^|!QTx2%&G`)0TL5Z|6luIsZ0bC1Jg(H_~xQ=waVu&r)6#RwR3$e`Vymd%lFfVkRT+0b)Bw+iUD9CS?`u@^0>E9i7*bhaoP=DU{6 zszwqQ=c!xOxC+X^gsO%a*l~g>`^+CWT|AFot!f02Gfq3J8doD}Jg=Hj6nGE`<(l=_ z4|G*Eqj`XSP|AasZfS*-*6KYx4IX(Qn^FoxhQ;LmOl+H`nvXd35FbvKKbY@yj|fms{H}# zg5I$f%}?L`Tz)|7K9>Iq^ais9kMK~#i-8Q9`-yA~51vl%Wu>Omp--?3<4FHhcGPEi zsqlM|<<+cKa$M}TPvxr`+I&Vnm(OTO?*ClQ*I#xv+oOTxLaO*ezK>h6rPE`pzl76_ z)BQf&FYBasQ6-GwXj7q9nErEQ9Ds%AVY=o3sLqr0Fn%E+6)C2D!x?n=06t?KvTre! z5oooEq=aQO_c~7o4LT@8{`X(fR4LBU2eGIAnOLFgsOKRNktb>JAz7Cmy8sr0s6Sh# zR3Qf{)rh4u?xd{MbGfW)SAr#)?4XRtAc6YY?1Id_h-iD@j8RbqK~&m>^?MKwc0IlTe+};d>4P0EhA6Wi;7sq+fw4syx1O&Y|1- zl{EB!25H+*hDGv-+^x?*)q$=_>9pq}QZ$plmR|vMr@oe3vtBt0V_CZ8^nqkIKfIps zk8l45lE7yA{u|jqn?d>CDyrW3TR9A6hfZG)R#Tb^FT|$L^&ppAXh2n95)3dLHTfib z9)2T2^=}S^==!5F1@F4^sBD0W*78{&D6<1)=9Z*=>&__gx;%*1b%Mn`3FDh4p95jF zm&6vH3TJ*cG3UZluMHYb-R`@33WaNC2?$GSe=mm-~6b^wf89qwmc|3TstY*wM$p3&+uh zWAaYzJ4!z;@6%?{?BhW6akTb0Xy_wP+Bhy?<;A+z{vNjGan$>J(Dxa1_xEzGM{1cR z)M$^$rP3@tLZ?zvyj1Zr+7%;FDTxZ70}1O;8%1-!&(f=s$=xk)I}Ne?NqX$G9GeM` zy$wWX?!dWZD;0^vvKn>$QFhEgldH6Zm*3BYnEi;-c>G7%ygD!(EfVe95$=a((fsvc zRp$xMK?Q7g*iFCwDEk@DujJK7J#$C53(;+7WS#!gzi@_~H9#R<1;Dt$5M`ub0pFm< zfo~U)#?Eo7ZCTIaxjH}B>DBCXCiBwQXJiBJubX*RUQyzWKh^0$Xq`Xg+{Wf!U`Ucf zmmJ$;;`&a?Py7v+ZVb2tmRG0L=7Dp#rekz2VfWGcG*^H{!*gWW?gl>vI~z@tgQD zbG=rkeQn$*U<%mBxFT zB})+)ul&vv?6a z6^2Q6yeSRfolScNg9;b^0vfxH>i@!QA=d2|xWEubJMSC>gXd_=IavhWd*~cw`*}3{ zJS?V9Q|MQ4>=88YIvCNxW|OGjukwEFMbcjJx1zm^!d}`qKH#P73$lj}a^9wkVbX&a zWKVtJ^R(}RtbwN3=P$_Ik_p|go?3)!azQy}Zx`5|Om^5(NUdEDS&SR zwzlukFLxzvhyb=exL_4>dY#s5@Y!-AyF*+QDKh}%xCZ56I_xMvIFyeD5?$669n(ko%zLbgHFhwZ!x<7*IGdy9RC8Oqa0Sr7!NPb*1vnmL z1h@Prs~5NQO>RvU{SaSR{5#?h$I-dp;m-e#+Fpb+WE`@F6+wUbqMWULZkH@Vs$7UR z9ZRak&Pgvx9kS$;bh~am4+v+wjlzNn-9`fr3J{f!L%0oDT0t!9JWm>=$+%$Qg{)QT zHX^1?3LJtP=U8#GIkpDN4#WH(BPovKUpYe3&51hl-f-;&BO3;&uvDh$h>7*94aX?Z^EH%k+Yx)VD18%aYe#kh3n7?SU@hn`W zA0`{OXiH;F!$!=b4O!4Pw-o~T&@;Ly)%e{GC2dN#q!~H>H_=u7vS?w7)DtMg2^)vI z79vSe8!)RKY!Tdt(A6bjC-^gC2MmO4?1;OexTcG#VVy}!H);%d80FYGN^CO9x|$qk z3u?^UOx_T+lY~`pU&+-Nb9Kb7xL+RgaL}d7-c@0KE{vEiXHibIm#f`&RB1xs<-k=g z@^V@vXL^?4JXua`Eu#4^iLI?jHx33~s=~624fQN~EyL&wxS&i=RUDw;=g?J|#{K?t z9^F^snaJgBa~Y)zv?4k^4ZY6IQeP-dt9FUg1>eR1%r3S_EIr_uwf_>tM^lV4cu3T_yi*)4a zBLG*via=a;{+JXwFEdL9A#uc!LoW@H#xsKe2g0r$W`(!l?&gRCVNX8Wnq2Y*xs8LP zaV;!G0R%5|l(u?!#Gcb7Z^M9d&#}s0>!zoVy{4C+#4}v2T*_3BSRA$I(BTU&c2=K|a zGHVFFd*3vQv7d4xMxDG7aS6y_cV4HiDXxnRj2HtndcL}GORRr&V~-X*A8?0Iv7L*Y z)HK?m3|%&SQ5?#|MH!0F@xo}@wF5lhh=1d-MA%-r$oGAU-MCt7ZLl(M5TNk{d$VBq zXKQ^e+f!Lr0Y9oY(4^IVlm!*_LQSJacLiEI!H5Bib|E(NN90jzqTi2Z!ghrvW=BF? zgR?iYZtZ~~g{?rEvOAQpVdsWu3Wu??>lOsyvb$_0Q@7YW;;FP9Im(DFS;g66OBD_=Wvxj#Uv}9QmpTnC@@_h3V>B zn4X}eSUm0vo5jWdbw?QzwieW-_iGzfdzOBwcwQ?P`#l1V5R@3?!19Ej6aFvw$A?%o zTjOGn^~r8mYZqXIOE|s`%R^QjBe%rXxOCYa*zB``4mA*Er4!o?*P7Npp^v@z44}nb z2Q_#|)M8(<5RP63YmN^9brb_IIzR{PQmO4Wyd1UNRtoec*2PT_A>{3GJcj-5Pp-C+ zT9@x>2+IjlN|BLSzlCE-@;dRREZ0DTls8+BegHE+-tGXFzDQ2ZGl#{ufnz3&Zv)&b zkFtyD=3ilp>T^KzFF19xU#8d*Whi-WLN1jpV|raMKCr4f^^9Jb=TMrTZ5bT*0-w04 z!?}+loU`j0jX>UJ(zbd=Juu53>KQ$<4xZ4IT!pH3Ea1R1!jS^Usc(IwyLOzG)i)a9 zuv;A#HZYn*P~0oN8VZBrU1?p`v{G9+RkGsW8^9Vo>L5Zi<`stmw95yQ(Qq#+avW}8 zd=Nn4XxI*xBKg-JM5EY-#v=XG$7$5HMh2BOGWP1<=yY{sqXi7d6+an0?Q&U18yhq9 ze=A8NkLF%sUa7sLfwE-B)n`#Tx~=$fxZM({^BDvs$aUfg;;LSB*7p-PU0 z0#G?P$CL|JH=r54jWC-b2cQ_4=A}8E0Il!=;rCm%2t#jlGOB4FI)+0iA(SG+6lJ3_ zyJ60@agT+g1OkBE(9=d>}OKl zfHZAc?AVpYV;VdFrQM7kZV)0mb)P?->U@AobRa1q>c1--jit zL)K74RGrf0qqO2G;~cNS;@(DIj$%}@dKP*67|(D8J5-F!q<8ul_4%Bi3y7to1G3}h zMzSv~Y4M_pW1Pq2)9JoO)5NpVsomAa1F#WqyV{5%JKjT+Z-MEp?ls0lyg*e1KX{EX zGFcp9w2nG-hru1Be!atJibJD2je+0|^X@bX@oU@Y~IZ1xx6J*KGYZl z=Yl@W_?!MOrzyeyBY{rz<}f3>C*r5zNOs9CxuIegE>HZlN|Ck1$tu<-7{oJO)>Mq_ zRiVX5_uzr)7{GZog#3Znm?cIHt!Rk{as}9CA~-9N=7f&aR;gahv7WfE2?{~(SPG@% zO**<1Or$?WmH|dPXyh``^4^rZ+!%>AP4_Q1T6jy(xa9Zr@^X-YZFF)u;IxK%tuPwE zlXL$Hqkx@@%T^fe@bmK(MoT;~<8d5{srTdHi)(1|<3?NVI#PjA?mF`8;{XPnL4(VT zM>;I40;Y7qjkSauv4NIq$&KpALAm) zU7s*&dq4S({~Y%OP!p}6o-jTWek81|dsz#4T~=96=qXhj2x%Z$RAqyxPKDQn{V?Il z$vQ2$+o+CCa}{?Rt*h<|dM)Il+YAR`6>++fh(!hU-@HL|4RFfly?jG+~6%M4LjJMqo2j?9&m(O0NV_8!L@dV@)>OIPc>QCvMA(~AyM;W*22Y#R*Mj5YYYhxQm8-2KO*Y9JEd8)#` zk28SA8N<V-{htWH5nDaxu z@=eMgj|$NzY3z8T7l65ayir@d16^?G%y_0UR5Zch5}kKVFs|^NgqMQmw+dv^mI+2{ zOzQLmqX~}&Re(sW-9)2`rnQgVe7`Z;owS%Yegx*M#q?<@Si)lRPd27I!yX=9JlW{U zy$({^`?Bcw$wpGm#efTM;9ctGC^+XmTq_hxml^~8R#2z+o-^vxpmFXL8v20oxc87t zz8AbCsc7sJ<56urB~1mVTOPY*s>F!KS zOgG*@K>tzt=wYJ_VfpvYFotX8^vw)Vl6@4OY22Y-+(h@xGzKeQG<$jv%rveJehqyM zKVTm`G!r(gt7gGe)P)wzG8$_y(3`WcX|~gMvy7YkGd@Ii6YlCc8&6zLV`dwD5@T=A zHm>n+QmxzIK%QgN)sO6>tLGRK!~<0z(D#dT%ph40LjL_>j*+LI|D2NN8f~%S-RBxN zYZb9IbB)EC_HwM_eB*$o{~jRYGZ2Ah3ygEQz2&}OC=+N`8us1K8fL{)9sC zpH)Lp_b+RVJDnF&$G)haTrzs;3?ZanK12F=oiRuM1WiMbeD>OU<7VgY z*tiX_0D4esz(uDvBIBa&M&l8z{c9VsJ-($A8;#H0FKD?eSuEUa+{Ljr+{%yEY=&Nd zHTitA@e#82o_*G+?|n%_@uLNOXXXdtG;u``ZBay41HBfVni>ddgC0ACRy(yLp?Y~O zbx&LtOlDayVL%O?rbfF3cX+Js>6k71vl0JwQF41F2me zoBSMBD7dK}hzlY$TvTNX6rTgnBQ{};MzcgpH41Mrn)$xq{3BjaEbN>joV_3 z_CIu<$ojTelksp&4Go|KoPqa^b|PjA{Z6m?r%^4};0cmqVv z_A%q8)cBQtHbvHRrH5Wt`E%$C*_^_M!VwzzES#3fFB-KxAHj7*#y5z174lmj5UPRDq^Q(TluiJt7Z4#9Ak+=gB2uEDfFeNz3~wC^e-Fo5hjX8K z*-Ey;h`;$f=8IPP{8|n?)%YHrIzgY_vW)k__gjY0J}_Q6WsaZqqzCA5*mw^z|AZ@V zm$L;5^WN=DknVl2_uh@xKT}`3+u4!N&%U$UnI@sbP21y~Am-CaFZ>l~7+w(W6pMpa z74|y&>aXNF^Y|3K$v)>R_B|{C4~P`J5|(YRpzq&@dF>1R`ab7O#kwhdX~P zGFpRz-rK_`Tj_t5T{MB=pUrBQ#;Zj1;sGku6@tZ5ul<7xD zI2Lbp4L;ypj?$H{o&ESpebCn!neOTPzIKj7tkFSdn-cY^O2(L8Pk-y6vkOSiA9TL$ zs0ZG70}wkj_4M(FoRjptm+?92QC~R9>t3%bPVUloMR?V$e1{Hc)@PU%X!ilrDqb6) zL#{}7vFv`|IP*C;wmXdFZWn#UVdoz7vOY(g6?m)cSC2Tq=6dI&&W_n1A9W5Rx`1QO zjqXo57xYrDaggJ#@!eDAI*qp3ke90}V`JELp1JTrKKk^14OcJ$#;F&a#)DZYSCAyd z0i^9ANJFQ{u}DyjeRcdZA#4jG+%bE|t74Z;!n53jF|_5*Ay84526Yr#d`h)Y;>@mOL zE{|``o_5vgMB_fE&%fquKr8q?*PP!=2hQsHb>~!y``mC2pm6dH=NMy!f5Z7Qg}r}w z&c?e4KmYE$ib>_jO{YWB>;LEs*8Ba4g+c{=>5tCCcyVCJac50`^K5xp&g}vU+S4FMCEGbjlf2X6H(n3$2!6 zd5(AH7oWm9yHNl7l(Q3GrTd@8I(C)b^)$9tkT>%*mfc%$OkZ*q3-VM|$=JXK%dv z?S0WX9HLIY=!}-IFyC>}>4F3gE;?KDZhFg~oQ-YEkJ5p;Zu%@l@FLvapU`XbvzyooZ)h+bpDl{6;mZlUO_EyD*Bt->e&td z#3+SlU)U<}!}r>;HpK>2(OyC99p^^e>;HPkc@p=@*lW9nEvto_rugXl?m35up8~K? z(OnNKaLyJN129W>*S{!0*|W0?3Y_>us{OjxeGHy=^;9};*6u!@mKCjWTRw2kmOi?y zfBV4M#s<69W>7jF?Z43T;iz3S(I$y>!Oxq*exg_YdA2~y?PV4!|S=Zo!cc=BY zDD6P@&PN!SKvK483G@H<7FX2zVlDiIzZSH3g|-7I`YXO{eAlCago7|EWv!Exxm>>~ zYXK#GIct=L;rM7GZhY%2T1VS8q>*B;DOxuvYmF??L9amUj3uVD7K|sp14?U+ z5W|VBd8n@JhGn!Fyz*Qei#GdVma%1vm%-?CzM%cu$=Qd!P!<^7Evwye%*DS00D-@p zo}7KxsZAi6MtEyhrG29MY@W;bw$7MoKjw2SWc@8JAP44^R>|#C%OYU zTMqiq)616E)&TWsd9AMPeQdQ;&0H>Tp!|Knw4>hEM~lZ}=s7-`uQa)%{zqHcTmQ@l z`X%T$e6;FDE(y8(e2rWke6{H~Onlf^OR&u{&is6+SFE7b;ghplRnXpowAn}fv@(i% z@gQ!X^-GntQT&|Vt%`Qp@tdH*((&+){8M)80By0o)YnINoV@*~=HU$@!?W{iX)kcm zHeu+9f$g(hb+k8>%KgTS={K>@&=F&k$E2{A$BrD)zt7{O?7j81dAwXozy8CL>kk?? zVnE8!ks|{8jTt;{c=mG*wb@*%F*f^bh*rz5db=(i69Y%}OBoWFGIC_#z~tmn%t#uM zJT@hHpqaR>omRhOU{FYd(CEReMuX5O{8B8ELQfE^H}9$yh%w2KXnb~LH!Ziswmw>x zqf1ywSXBLxi25P1fuW&|B0?L5#{@=1hDC;ig!hXK?-xC2KvejEe$kNwB4hi9g$;;~ zjS7j0ii{o5FEngWNN9NIpvbTRp)pb6(Su^bVq>GD2Ze=XuX|ZjIS zo~va_nZM~v=4th$yx+3-&C_c067Mj^mccLA@1$$-AsYaWfe&CR@5>nP&KYZicyROH ztVSP(d-W^Vu{Xf!!aQJ7S%$xrvwyGK?^A=WZjc{mKm^{7YI)VO)0n4hqYz{XU<<;L9`T zBS^g+`0J+#Geh6+Z>2J z)JeYCHIJWQ=^ICcy*g_)+xmRT<~~E-XYXGB=5WQm$1-P@i|d!vbLN4ye(9gB9k~|# zjO!z3k5U`gv`zgj^6-o8-e_?osOI&UYCVRnACg%0r*R$K&1Sb5vLyXZZ}+KdD`ri6|5*#?-Y@xz@=2W@zg|6isZ)Z#wxe6k9rNFQJ#oqEy{--EgMYZyp~|>5 zz4B`BYcuV_{OqGCE5EU>MqYupYt1`!IB8hoy0|8#);~Ozzjf)xo3pOW8Rb9l20wM_ z3g6P|vj66(d$0a|#r>gc?(_!LgKPhO?3arT4o8c2>pwfWd|N=trUi?SoVnFxJ#Tl* z)-k`t^vLbG?^pbJ>w?pMD~G?)JMhB}qVx7!!JF2%oX~6Bn%GT=6X)!jymeaF_ttJL z)&IFa7yM;=xzW-wKi%(eQU4%$^-B{-HZsSy^z@~l*UlW;W@MTCyccs`a+jOequkd+ zeCE|_ws?5iO}pB~HXg8Zdc#>I_pY`L3keAc4G9Yg4~Yng42cSf4v7hg4Gjqm4Glvl zjtGqmjS7tpjR}p#cn}&E78V{B5f&L16&4+aZXF&H9vU7N9v&VM9vP0V9v%}O8xax_ z8W9!|9uW}{84(o`9T5}pa%^NsWGKdt@W_bB$jGS3=*XBzj2BU%QDITxQ4vv*QBhIR zQ87`m(IL^H(P7cy(Gk&+(NWRS(J|4nF(EObF<~*`F%dD5F;OwmF)=Z*v5+wq<;OA7pVq-~jSwEklwRV3*ApDo`E8$ncXTrY=zZ(84`2FzI0oK8jQWi1UABd z2v5AIzkUt>Z@dm7{SZ7^-s08gKbetW-@+e;KLVcze-!>Z_+#+j!_)PH88G~-?Z($7 zhk6|G6Zmr9>(Y{Uv?_YlcQhPaW;iE&bQbpi-_hE-GiOVVy`pa~#u~rC*rJ|{<-m{h zW-PfpV^Lu^<^(uBp0U3p7@J-Xg5zO#U*Lu}WbFNpjMa)mh^8#wUXZslW3$0~3%pMk#@+(Ihi(v@_dy|GFc`j0E5^E30E|rQKrkNR6!;0i z?JUJu3nybgf>|QM>0neAj3%JaIlv!60UMCU$}m=?9b@f~FD;TWdlX~$5LN)qo1k6f z%UDIg^AWnM0GNfuFQHA7N~k)7+u`q_@aIs-3~2l)k+BA$j0J`;771l#? z(-#>l8OvBX-~y3eh=LAuWNc^)#@=XzCR7?t30{YPJ({r|UW`pcc@07LV=3ll!ysjg zFvdQICH_DLFEG)37^@Be<{-l{uyvsZ^tp#IUE|m?}F)qSRkvyDlvcj**5YA&4aWX(8vy;;H!Z9K=Pr`hI5&z zOfWkhB&AEZYi6!@5zgdlDKD*jg^JZ`>OZX1rbcX@FFB6!UJ!XYRHy*kWS}`NhOYph zg_@oPwNg+K5eQEvpp``FvsP)LrAt(EOqX%+i!QF`uF~o{YZhH`aT<%m`(=fzw5sm1 z&;yGG1v1ZDC^<^TmF*PA%9fQh4Sy$zggU>0;41tzc)G5`-+=!e{wDk%@VDUqWUll@ zl0%F_b>ds*u1rLHo`-A_WHarB#s<^Ni!ovWSu?u~OsW9OQsHq8gsoJ(pJv9O75a++ z^-ba%48z$LVSTk2k;Q0Nc5K9Kj~+N{I$FF^;xDwf`tV0v$?1@nN6y4Da)zh6Ze1C)8~1FQ1=f>aNy?@a>Xsf*T7 z#Ah@No&oC*Mr-t)k1D3fDim5F9fcy|^ODOd)Dk)cl>R{G5v3ElRYbN6h^WD++e*yU z^d@DykJ2lbE#WDQwFRcnG|UbOaNNJW<+XM&`++`0^CC_*)AY00S|Mn z#$bx@g})UKG*w&gXT`17QJ$(BHujXAhJG4EHhc$it+6T~&N54Nbl|FJc6mSwHx#c1 zO7{hd{fdgLPHh#DsC%$pjeho`iYcvOhzlxT6u)5N%|$kUT_cOzdRJo@$A6EsSJG6?z!AfT@DfMV3pB8B#Yy>hgv~4R@%O8=4vo zh{lac7+V6+mnuhM9Dz`Kp#3!XE-~=HUyDNrhj3p4UkKChMkm~ghD7Og5faYbwj-uD zWC(z@(ou*fQw}l()_D`#i>2s5ClBG2(r! z_}DIHyq6hwz40!ZH^y`{DOV<78s1ailN_CM^4JBGbJGFFbe((w+^#{+gr=B7>YIKm zlqcU5UE&E3g9JgZfhkXTS3Wq4{wX8apfM@w7SxJ>-EuDnCSA>XD`jtLb*Eg1I$!9|3Ir++Vv4&xe05+Tn9hUAHA=27kL{c z$K9TKuMf0I(!;;?A3x9*>%%r^Q)5^mT14T)N9@5Pgrv?=`=_?`_Oha^2x6o7O!2Mo zvHd8KE5U=9$LWC^wUDyIxgrga2gr*or}y2c<+$@%akrBVz{GM`!W+g4(QbqrfDebi z%bQ8$21swQw^;iU?Mp}sxeC&E+;o4*f5}PmVd;=u-N;F~|J$kjfONnOk%qDH%6R3d z+*Rp{-=p$rg$j7=rc34J^73S91V1XhE0vLNaBsQkGnjwzjC50!2$`G-k21t`50LvP zzawe>KcxOznXV+uIM^bY?wGod?PI-J7v4a9S#|Tbl&&$_nh-JjP9)i8z>NXxD)3205%{ARmhJ8PR{ z`^h%NcFFd$?HAi*+g00jTfXgzZJg~D+iSLKa1(8JY*XE~`!Tr|v6w~uJYjoD2{&p>>fj5?cw?Jb478Zrq z*$rgH@W9PqJHjJO@3lp%YWtf7@Q3WU&Og`uqC2w^D94LC*yn5~+r@UXFIWzKpT}=c z+_Zb+=KM?6l<#NFxgY2bL%7rIu#s8626o-vVs9J81{rEZ@+e-DC$NSrgoUy&2!Tll zg_9Q1EQZD6?S#hcEbGCBvtFz;zsX+2?<;H=;v?8dHj0hLo}VdPr8G8L{=j-E7TN=)EWzA9>*pbrIkdpz&!^yjKB|}3~D5WEKi^Osa7|7 zkd?t3+0!9}FAA)HrjUz9K($0o`Y{igY2)b|zE-cuKnYPO?@yHa z2of;f#A4CJXd;o@wAkjPIte_U`LRJLbsaXOlEK#>?8<=wmPJNIn#zPhng~uXb-3zi zgw(0x$T|j3{0=uHISI%QDm-Tidy!p1wJ$@pw}CWdfnKZ$D(gi&jSk^@gY8;XRBbMb z_QvMZkGRS6HEe1YYyOS}PZOfjCK;{K$7)~IirRS9$XuuqZ%CAknvLc$JdC%8*iCq4 zD}NA11e4Qvwt!`W)>7m+z~>Cnk%U_CHVSD0VS2E;5P2q)deKtEWWZsO*9@v$v}jWi zQje;`41EC;q0@L& z&J3{116>&J1B00ol_ZJ$yq2}0kbIsMg|&-Y#2;(F@iaGBKoeU zpw&gv)#nY2#_wqz5NpKeT2-;YpwOFa)dIcN8bz0T!uqNqsWE(c<+4jCg9IiK{S5QT z7zXt^JGB~Z$bxr^%JYLQ%-CJp48ovH<7G+S1Tm7B8`7j856QiR>8K}~GD>oN_fE~f zbW{g<#&y0HtWzAkE;C8a8`lQyHGfn)qG!pzyP6F*`)*Qf5%eA_p%h$xwc-EkHH4ZCLRGMSBqZOnc~ zl#@W|>4oO-G?(S-=XYrVK~#xEQXSHpVX}pz${-P|BQ)J5%nT$x&6|`m36J`6aYD$% zO8kbA+64F0)r>UB!c^tAu>s$P-C=v&4Buzwbq%la$HI4K_gF1n0B?#^2E(hy%OFML z=OEJ02+y+1Sc{ku8$9RY_YUlE5JDYfHJMu= z@L?HfEVa={+hD^^!zSH9cyd}Xdv-^Y`kECmZ-`XDocx*rdvg;?#&YE#@T*vJLnORT z#A+BRKCse3%SzSxd5H8ij;Rpsd3MGPxqRS%g8K#gN=U-2Re@FJXV^Kcr5baB4k9(2 zzrf;n9RH=5NSMx;ggjlaFN@V$)OQFh$$#}QtDJAs&j-{W{D)CBA%fid~1fW6>b zW5l7B?~9Q;lxMJx;QSivj6PHjm{8o(&%+w(HMnLh3cod2lp8<>Zdu2%s;Jc{XwIRF zk72?T)&UGwvpT4?vA~$MngV82=rj~F)6lFH=*iE5Zwc>XOdUs*9$jncf_(2QG}QC&_l^l!mU_qZ-8?qn^v3f}?? z>K42>t_pLaE(!Bkv)V?y1+Rk8#F;$l*Mn=p-H#Kqtqf*L>nCC@ct<1N+4%i0+<>R@ zJ?7tn{|n9yY5vX4Dq=&+fF~*b3)h0b_Y`&Uy#K@n7f1g$oSmMFV=j7Tu2#}bJ2$h? zf^V>@yee<2CP@+MIi4Vrq-ua|EJAz!_kh-+m_4XwR!E%{1yc~TB;*a=&v@D5>+^< z3W`j`Hcz}%9bpAEUNRZRNzY<9kDudj;ax)K5zV*J5nhjV=Sfm1AFN<7M`L_m!fQfm zcWJYtsGF5`Jd3Yn?f7$IC7Z=luvF@Fv_T;iy7G9*qx0)5jYmiofVt1`Jxct(0heaD*%$`IrNhc@dADp>rz%-@ zF0Ur}tHouX0ekP@U8MP}i{!E5ZGKo8#cE35@I##Jn`Kn@d7j9xLM>9Qxwx*(#Oiq` zPn7Pmc&Vy%P4VJa8CkcMRp}o-vlY=ebr`RRWbqry38NnRBTjtnJf(qLpOwWQXOxnh zsE#|Rj+w@mJV2K+^ntikSlBezszw4 z2mRuf(e_QNlEfXP-om3h-TZ$7{kN)hcpcm!Wbw)(kM|K~OZ*i3m|Y-NJG76LEJ31b zZ3>Q^r0(icejjC(^vzR$2&`T zhS~kW^c2g6p<9Z0qx0I>Ld0bBvR3?Eh)OEsoeK0I^Zg zK$aLH#X-gp)=DHoy?6{oi8y~6FQpm7i)osh|5kh5AcM(wEaXn$S6D@Z_ky zHcF7<@t|@s+o0Gm>2FYU@s2fqu;QKRiQ3z(%t1@537aw@i7@uMOtoi9b-00H?rDgc zwI@Rqe}x8C*=o7VB(DasybZ;V5H0`CubN7L+vmOwI0EvomUY_Sq< zq)~b(My$=Ut}GEg@Tbu8FY)L3cWjFsD}_lnl%p7Xe&db!di3sQVjD&>Q^f7XMSP;( z`(nq#TWVs_)p&BOZd7c7+>Mn{GokUBe4*@zI}11WktXr-IDnlbZByDyO=&%)Fk?4PPd|BgbI_=q`U%T$k6%sqz#QI1$^JNzx5e&QAzwY+i$V zva%k%I!H;_F?PXqhI_0RkzZ$D$$8K(82(GDU3@$$Nm_u$vWzE4{rC@jEaJ!c`|Lxw zB+T~b<&SV|uP0nQT$0p{b;BLh64p!cMlL7sj;#X>l+r!E0Z0AJiS!R}ck)iS{mZ~T zTC|Fh*o}#F0rnaEK^i1&#EHNpsfx0et;PLo7rq?345UYxP>j{fpL`JRsmHPx_%iIV zu9n}Emtq5~gVf6!Ica9qLB0qOd_qvNBChR#rpP zTzN2X6V+EZO*$R$JaZHu!&|9Q>NFNfnnKZu{54E(Bh^`IXYq;piaJ5fbF-GxcC{)9 z{$z^ehrcKqqLxz2sDtqFiVv{KlOUC18F(kD1^gKKTykH9*j^|@hLo?-BV4Gb}K3BKz>(kElp$NERozpg)gS5`eLklM`c{*mHW0V@eQ}eUAbr7p;d|Jx*b2zSrhpCkJg zZklN*SHV){IowMXd^K;QwpNF+1a*QKFPf_h<@b27dWG%d&G}?rNBxpNFXDJ@)tisQ zzdDuUZSh>PSurcUB=#!b@#*{kugBj~)7hJ9BmC)~&X@2?d=Ym$*d=we{5F5pXlQR@ zDY{!}&Bw4l>PzYw>qYD?^1>DWZk5as;X{cK4LTT73D=a zu?o*@eqmeKK>1fZNT3~F_e6Q z-R2zjiTonp$j2yOVk2rR`;=|vgV;8>4(1v1{e6&IvK~$@p-^9yx zL-6Gqd;|qMEv5y(VPj=~MMyS2j!(trP+RF`G}l9T-1PzW(o0HycVH%&bBCJdA?kU zeW+B%zEOg-N%>UStpu>GN+4UU)WLh;K`co*hHc2PtfkUINl>uM!dpnKm2ue781H5i zmFn0_ONC|u__ob1xdwaAXdJ$L2R5ljh!t!xG}~t_+o&%6m0YDB=c?%**CoYA%Um^a zjU{~MrKp~{dXJ5kI~%zkH`gRA0Sq?x7*|cChb>o=ii&ugwp)1&bM-IeD(*fu;&qMR z|H2hK&gXuD0Wm9v{0FXhVO;&7NIj9-vkI$m%3_APTwSa#RrA#=>ScA7xS?JLZH9V4J%Mu!kBj)8et{%b+}4!X==C_teS2V!e?=MO8@GjYOxx6R;GWZ5Bt{wlEp%B zD=B)Y!z?#K?WsPm4pM_up)LeA%dM_Zhr_3fWoi~2{SHSgRGlp9p<$7mX}L6L^&7B* zP*{6pZ?Cpj$HOfU3&eQ!k@}k0qCTf~vD|po32v{6*T9+5ml>W?%ZRz4cdECM*X_g) zfyAu68fWN1u}~vMX+5C>9rq#fB#|WMtMk<*5aoBo3za46A{-Q2rpBv7#1Jvia2X;4 z2W3*wCrpi_+x5QWO*CsIm_QU>c+pGbYO4K(}@+>?}MY@vs~SCJOQ$-0X-JOs+@BE9+* zr4^@ji{5HBFgw)p_;naG_`FPJdUoYAIF{$Gg{jJPr|}%@hT(EB+vectO&xAR=5O#5 zF*B_m9%MFz3*n{V!VMS3Bd}WglhKiw=pq+`9k&?Vi8h044%ZY84`s?>@kZ_;D~E@( z<#7Mqm^ac-oYP)$2$|GF>=e!>Z$wDV{6&kF^4zuJ;A`-}^CE*E@glsi;sld-6pMo< zn#H?XwrtgcvG?N5qqLvn(Ce2y@x}o>U35nCBdB~DC47Z&E=+Lxd42x{t(_m8tc?TB zCTIy3Yz=-~2oo{#H=uLHvcrk9qByriBA8(#9Q0hK zPr9hpbnjUvJF43hq0}y^29{Anyp5k=DSbByeM?t1gSFuH8CBy0SIRx zoB~$MWk*d3HI~fq`8L#R8{h`v!TNg0S{gM&r+)(~IGx@&s+m#cfvnUC`0B>;=4iutIjUC2uaTaQUu2 z>2elBtF$aaN1DSQ-DNHSx^@-zvC_e{6I0mM2K@?3`3eZdEu$ zY9*bLCd+%U_O2+ml(oVDP9CfK$Iks2{Qri&#iIO>v|BzYUzM-Rx8&P$H6>VSiG_Gu z+=Pr)#win&$%fR_-YGlm|*lwYpkUjaBu{m+)q5F@cInu?z=Tsuy-=(+W4q zm*fQyd|u%Xa%*Lz@>Y=&^aLkHdQdpHaB`uHt)X6p4(aHl8HM-wJ$}0ImBKabV+pqt z*eH8TDl2#3n%q{Nicc+muT+p%vr6(WN(nj8ja!&0{7dOFmz8g1p)^s>%YBt0g*BC} z(h23f@{@90@mE6&n-#|5wy7PSix1$h@_js?kC#5hZpJkn2WhX&P)ewNY87=C)@Uc> zAF*1yrrL4OR$lmv+9Fug6%9p*2o+&skCLfsB2vVPM&iEORJfaqI3bH1)g>y3mSO;J zCEAL1qJwx&B#QG`gWgmFFh%+ZU*U%g0fJVmO+ZnR+CWqkRj}l( zDiQ<}T|`IGN%RoCL_ZNF8jE-=EINyBqPloqydd0Sn5ZL0ic#VX@s?Xeh~8MTyd+)} z{l!=@1}lqkxE0P2YsCaH04t73Vz5XPQ^g!HLwq7W6@A6aVyDFK-NGxN|)L^IM!z42wut?kk9${o7eYJ{?);t0RK^Rnh&W|BD^p-0oDU%IT-akJOa zJ2$^CJ7&nA*Tvgk@N^x*;Fy5P?oEU%;KMMIeBX?*{zy9knn0u_hGC>ZC&o9B*d~N@ zeTE6MDmrz4;9FxXus1Q&w;@i~K8$sV&5;k`pYVEGzE;m2iQy-;A4G?~Dk$6WS0!iorIgQhF+^?~mL-va(H;-3Nk z1z^0<#Lgf*h+$_ach;wKQ_-V>A1M%l4jiLOK=D#v47#=;{^*gYGO z&#g!r;AN1PCX+V+XBLC2z@n7-O{7=1V2lVX*n-~%{3UdvymJ5_3^eKI0)DTu3C{x@ zV+oNCI3fc26Vv&K?6icyki#x(W`>1;1FQlT0j^=eivicQ;3a_bFwqkq9dLRB6V3p< z-=bLxxE5?nH17bmVZlIxF2kcPHrXn8IS`|*f>!{3x4D^NCE#Y5(JAvPz<1CF3C;wZ zje-%wBSE~ciFuKjt_HjcZ=n$Uo(0PmTn~9EeGSs95ls58MI^MT$#fmyosfV@W*@4$I!KHbhX4k&1rQ4*{`}7^R zwdHm5zmy%Nf@u0Su7(m;0bj`u5vjCRx?|a}5)mmAz{g+d)9+}tqzhkVe{e@TTT;qB zv-l0~&ZW}N$__cis|0f`KfCy{cc2^J4|Q;?r7lr;pSc#EM;M2t3PL;DzZ=cp&0PB^ z8TSZz2y4hF9IBC(jOzu|NXmG;r;1oQ{CxNYknDo&XtfaVB6zwM!!Lo?;WOZuV!2=} z(uy;y9ET;*Kbc+lKQQ|TFE1E)%0GE+zgQ#~+9+NBBH2Hf^^W>iEz^I(qW6DjNkzb> zIUpU83S~D@0*n)UX(DeztQ7%S#aqPtkW$x952d!VZkvC8OyQYT7dUZ{nOR7A-)fS zl4@4LoyA^@;t)#BwcrlWd!Gd_kHj+f7s$F5eRc!@zws;c@rj$^pVZ$cv(82O$FLF?10@J`rR!HxoP@D5Q%B((^&k2KJq5s5`PM5)e&;^9X{emm)3i#_j#n7d4 za1Ul)B*11O*o%s$%aE`*fg2Pjh@wMFlfo#WI0Xn&e*?iji-kd8Pc1SN-sp8@5kV6) zTe^%go+8LAPT=7{gs5QL27yHZQA9n(!edAx$h=yNz{A2*6-01=2%1Lf4TQH(FeThX zf>%?E<-Z`3(5 zM&H9QNf#l4%BE6&<9eD=ak}YLe%5uA?*No4|Vmp9#RLVo)(Wp|=yd9MA^{{gTyQJ*~}k!Gpe899<+^+8@YW9=S6B zcx|iqBy+cGGvR%J&mny2r|_;5g!TnGpU}&SRlcEl>Mfuv0G$rNYpI1Uk}b=F-d-F{ zZOh1=cgv0Je#m}-@UK~Rec-_tPfl-NBgsuVfc0%8?8ox&vREx2eW)o;frUuZL>U4Wyj!)_xEK- z7tT}d20ec21JS_p4KdNNP`%LM?dyIboszxH901KCE`U=&2w~vE;KSjk7Vi`!NZQ~3 z7pl#ms`CUdOo+_<&Xd_*OQUv9j5kF<&&o#zKiX=gi_EVAf95eh{Q>Z6S{P`fZ9IkF z4!oBKkD{yr0I5<0HI4@u3B2e=i!O5j$U!e6Jax6ShiLG$OI#eSno(o9v6%?=Sq;FG zzc|4O5O{rQ5tKkqZl8&cgj6XK1*Ezk0UsT1vb1^d8Az4zj-e}y(4$>Xp>qh0jeA#~ zksJ4hbeZiB-17;IHzHjHgsyHeHyba|>4iYY0-XuK?bYvz(G&RXgl`1=0RUbTt@coq z{Q{vI1AUXw?W`7ARCrn{{!Fe3&=~-{)<2zlGohOTokKvnHx^{y1A?)qqdEX-%}`Cv zE#C)f;c0>EK@myXbdbaW?Xo^7ty57P#giRk=(}eZ4uI=2f6^lL*y)?YKLfh%Xc8uH$+p6Dvzk1111r^ zBYY?LeaArJhBr)0%nFDs38>ESUEoRbn@=;#d<|4xf$dg|>i*MI2Z)OD6CV#RdNM*+ zQHeL*|3zk0DhZY`^FNq@ziEq{f1{#@FLV_Zng0Y8*`K8JkQEh~{yM7YY576r+Dr)g zVg;|A$}(;k%<)(OodF2{c&jx(P4GMj3W#8ewS=<>+(j(#EX0*L3lyiV3GQhYJwb4Q z2nNNOg+5Kt3j{ZbpxZMDdV?TiHV8Uc1QOMMaXnrDMGh#WZ!q_N13)(B{u7k+B5?Tx zycCCaT7*kYqa@(c3D}EAP0In8`LZaf4{+N7_#Z1ibEl-T<0*h~raird?s&OJGZ-~%JK;X69A~4z+gmUG)>4sVZfX^fR>1Z>9(ZUFyk5mI)P#j&9J^d}9 z2O@VS0RM@W%4YGVQHWnM2o4ZIZELEt2n?H`)=Y|8+aHnvOzu(YD?sNE`dV|7-eZtXt`i=7esO$J_S6N)J`CB@0eHn1U&fQUvpneS09Nz(R(ij3 z=!?UVe+2wU_)+jBtR4pttBuE9@@YDMi_Q=abe48(G@vo?W8sP4Z=p03a H4}AU~Cm7R< delta 344352 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%0A(=f(Gn?-dsn7Z$H5Ug}=rUgXYm&v(CZ-gVYH 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