Skip to content

Remove legacy plugin stubs; make @extism/extism WASM system canonical#34

Merged
Psyborgs-git merged 4 commits intomainfrom
copilot/remove-legacy-plugin-systems
Mar 7, 2026
Merged

Remove legacy plugin stubs; make @extism/extism WASM system canonical#34
Psyborgs-git merged 4 commits intomainfrom
copilot/remove-legacy-plugin-systems

Conversation

Copy link
Contributor

Copilot AI commented Mar 6, 2026

  • Remove plugins/telegram and plugins/whatsapp (legacy TypeScript class-based non-WASM plugins)
  • Remove stale hello-world.zip build artifact from repo root
  • Wire VaultHostFunctions and EventsHostFunctions into PluginSandbox
  • Update manager.ts / app.ts for vault/events DI
  • Fix error message normalization in events_subscribe/events_publish — use err instanceof Error ? err.message : String(err) to avoid invalid JSON and undefined setError calls
  • Remove vault key names from host warn logs (only values were protected before; now key identifiers also not logged)
  • Add events:publish permission check in EventsHostFunctions.publish() — was previously only namespace-enforced
  • Fix unused Serialize import in rust-example-plugin/src/lib.rs
  • Remove vault:read:example-api-key permission from rust-example-plugin (vault functions not demonstrated; JSPI-gated anyway) — update plugin.json, lib.rs, README
  • Fix AssemblyScript ABI: replace __newString (AS runtime heap) with Memory.fromString() from @extism/as-pdk; add @extism/as-pdk devDependency; update hello-world README and getting-started guide
  • Update docs/features/plugins.md security model: accurate vault logging statement
  • Remove tracked tsconfig.tsbuildinfo files from version control (.gitignore already has **/tsconfig.tsbuildinfo)
  • All 10 plugin-manager tests pass
Original prompt

Remove all other extensions/plugin systems from our codebase, making the @extism/extism based plugin system canonical. Document plugin usage well and also provide examples of creating plugins, and with a thorough cleanup remove all stale/legacy code for plugins or extensions.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits March 6, 2026 02:13
…e docs and examples

Co-authored-by: Psyborgs-git <49641518+Psyborgs-git@users.noreply.github.com>
Copilot AI changed the title [WIP] Remove all other extensions and make @extism/extism canonical Remove legacy plugin stubs; make @extism/extism WASM system canonical Mar 6, 2026
@Psyborgs-git Psyborgs-git requested a review from Copilot March 6, 2026 09:32
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes legacy non-Wasm “plugin” stubs and makes the @extism/extism-based WebAssembly plugin system in @orch/plugin-manager the sole canonical extension mechanism, with updated docs and new/updated example plugins.

Changes:

  • Deletes unused TypeScript “plugin” stub packages (Telegram/WhatsApp) and a stale zip artifact.
  • Wires Events/Vault host-function plumbing into PluginSandbox/PluginManager (including event delivery via on_event).
  • Rewrites plugin documentation and adds a Rust example plugin (plus refreshes the AssemblyScript “hello world” example).

Reviewed changes

Copilot reviewed 17 out of 22 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
vitest.config.ts Adds missing Vitest aliases for shared subpath imports.
packages/plugin-manager/src/sandbox.ts Exposes vault_* and events_* host functions and cleans up event subscriptions on close.
packages/plugin-manager/src/manager.ts Instantiates Vault/Events host functions and late-binds event delivery to on_event.
packages/plugin-manager/src/app.ts Optionally resolves VaultStore/EventBus from DI to enable related host functions.
plugins/whatsapp/src/index.ts Removes legacy non-Wasm stub.
plugins/whatsapp/package.json Removes legacy non-Wasm stub package metadata.
plugins/telegram/src/index.ts Removes legacy non-Wasm stub.
plugins/telegram/package.json Removes legacy non-Wasm stub package metadata.
packages/daemon/tsconfig.tsbuildinfo Updates a generated build artifact (should not be committed).
hello-world.zip Removes stale build artifact.
extensions/rust-example-plugin/src/lib.rs Adds a Rust example plugin demonstrating logging + events.
extensions/rust-example-plugin/plugin.json Adds manifest/permissions for the Rust example plugin.
extensions/rust-example-plugin/README.md Adds usage documentation for the Rust example plugin.
extensions/rust-example-plugin/Cargo.toml Adds Rust crate config for the example plugin.
extensions/hello-world-plugin/src/index.ts Updates AssemblyScript example and commentary.
extensions/hello-world-plugin/README.md Rewrites AssemblyScript example docs and install flow.
docs/index.md Updates docs homepage wording to reflect Wasm plugins.
docs/getting-started/plugin.md Rewrites plugin getting-started guide (Rust + AssemblyScript).
docs/features/plugins.md Rewrites plugin architecture/permissions/host function reference and security model.
Comments suppressed due to low confidence (1)

packages/plugin-manager/src/manager.ts:128

  • The on_start call result is being used as a truthiness check (if (await sandbox.call('on_start') ...)). PluginSandbox.call() returns a string; if the plugin returns an empty string (common for void lifecycle functions), this condition will be false even though on_start executed successfully. Call on_start for its side effects and log success based on the call completing, not based on its output; if you want “optional if exists”, detect the specific “missing export” error instead.
        // Optional: Call an 'on_start' function if it exists?
        // For now, we just load it.
        this.logger.info({ pluginId: record.id }, 'Plugin loaded');

        if (await sandbox.call('on_start').catch(() => false)) {
            this.logger.info({ pluginId: record.id }, 'Plugin on_start executed');
        }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +97 to +101
} catch (err: any) {
pluginLogger.warn({ err, topic }, 'events_subscribe failed');
callContext.setError(err.message);
return callContext.store(`{"error":${JSON.stringify(err.message)}}`);
}
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the events_subscribe error path, err.message can be undefined/non-string (e.g., thrown value is a string). JSON.stringify(err.message) can then evaluate to undefined, producing invalid JSON like {"error":undefined} and also passing undefined into callContext.setError(). Normalize to a string (e.g., err instanceof Error ? err.message : String(err)) before using it and always JSON-escape the resulting message.

Copilot uses AI. Check for mistakes.
Comment on lines +103 to +112
events_publish: (callContext: CallContext, topicOffset: bigint, payloadOffset: bigint) => {
if (!eventsHost) {
callContext.setError('No events host functions available');
return callContext.store('{"error":"No events host functions available"}');
}
const topic = callContext.read(topicOffset)?.string() ?? '';
const payload = callContext.read(payloadOffset)?.string() ?? '';
try {
eventsHost.publish(topic, payload);
return callContext.store('{"ok":true}');
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

events_publish is documented/declared as permission-gated (events:publish), but neither this wrapper nor EventsHostFunctions.publish() enforces that permission (it only enforces the plugin.<id>.* namespace). This currently allows a plugin without events:publish to publish events. Add an explicit permission check for events:publish (ideally in EventsHostFunctions.publish(), so all callers are covered).

Copilot uses AI. Check for mistakes.
Comment on lines +47 to +48
| `log_info(ptr)` | Log a UTF-16 string at `ptr` at INFO level |
| `__newString(str)` | AssemblyScript runtime helper — allocates `str` and returns its address |
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This README claims log_info(ptr) logs a UTF-16 string allocated by __newString. The current host implementation reads strings via callContext.read(offset)?.string(), which expects an Extism-formatted string buffer (generally UTF-8 bytes in an Extism memory block), not an AssemblyScript runtime string. Please update the README to match the actual ABI/encoding (or update the AssemblyScript example to use an Extism-compatible guest SDK/allocation scheme).

Suggested change
| `log_info(ptr)` | Log a UTF-16 string at `ptr` at INFO level |
| `__newString(str)` | AssemblyScript runtime helper — allocates `str` and returns its address |
| `log_info(ptr)` | Log at INFO level the UTF-8 string stored in an Extism-formatted string buffer starting at `ptr` |
| `__newString(str)` | AssemblyScript runtime helper — allocates `str` as a UTF-16 string in the AssemblyScript heap. This pointer is **not** directly compatible with `log_info`; use an Extism guest SDK helper that allocates Extism-formatted UTF-8 strings when passing data to the host. |

Copilot uses AI. Check for mistakes.
Comment on lines +143 to +164
declare function log_info(ptr: usize): void;

@external("extism:host/user", "events_subscribe")
declare function events_subscribe(topicPtr: usize): usize;

// AssemblyScript memory helper — allocates a UTF-16 string
// and returns its linear-memory address as a u32.
declare function __newString(str: string): usize;

/** Called once when the plugin is loaded. */
export function on_start(): void {
const msg = __newString("my-as-plugin started!");
log_info(msg);

// Subscribe to a system event
const topic = __newString("container.started");
events_subscribe(topic);
}

/** Called whenever a subscribed event fires. */
export function on_event(payloadPtr: usize): void {
log_info(payloadPtr); // payload is already a string pointer
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The AssemblyScript example uses __newString (AssemblyScript UTF-16 runtime strings) and passes the pointer directly to log_info / events_subscribe, and it defines on_event(payloadPtr: usize) as if the host passes a string pointer. The current host side reads arguments using callContext.read(offset)?.string() and invokes guest exports via plugin.call(funcName, inputString), which are Extism ABI conventions rather than raw AssemblyScript string pointers. Please adjust this guide to use an Extism-compatible guest SDK for AssemblyScript (or clearly document the required ABI/encoding) so the example matches the real runtime behavior.

Suggested change
declare function log_info(ptr: usize): void;
@external("extism:host/user", "events_subscribe")
declare function events_subscribe(topicPtr: usize): usize;
// AssemblyScript memory helper — allocates a UTF-16 string
// and returns its linear-memory address as a u32.
declare function __newString(str: string): usize;
/** Called once when the plugin is loaded. */
export function on_start(): void {
const msg = __newString("my-as-plugin started!");
log_info(msg);
// Subscribe to a system event
const topic = __newString("container.started");
events_subscribe(topic);
}
/** Called whenever a subscribed event fires. */
export function on_event(payloadPtr: usize): void {
log_info(payloadPtr); // payload is already a string pointer
// Example using an Extism-compatible AssemblyScript SDK.
// The SDK is responsible for encoding/decoding strings to the Extism ABI,
// so we work only with AssemblyScript `string` values here.
import { Host, inputString } from "@extism/as-sdk";
/** Called once when the plugin is loaded. */
export function on_start(): void {
Host.logInfo("my-as-plugin started!");
// Subscribe to a system event via an Extism host function.
// The SDK handles converting this AssemblyScript string into
// the UTF-8/Extism representation expected by the host.
Host.call("extism:host/user", "events_subscribe", "container.started");
}
/** Called whenever a subscribed event fires.
* The host invokes this export via `plugin.call("on_event", payload)`,
* where `payload` is provided as the Extism input buffer.
* `inputString()` reads that buffer as a UTF-8 AssemblyScript string.
*/
export function on_event(): void {
const payload = inputString();
Host.logInfo(payload);

Copilot uses AI. Check for mistakes.
// events:publish

use extism_pdk::*;
use serde::{Deserialize, Serialize};
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Serialize is imported but not used in this example (use serde::{Deserialize, Serialize};). This will trigger an unused-import warning (and may fail CI if warnings are denied). Remove Serialize or use it.

Suggested change
use serde::{Deserialize, Serialize};
use serde::Deserialize;

Copilot uses AI. Check for mistakes.
Comment on lines +72 to +84
pluginLogger.warn({ key }, 'vault_read called; async host functions require runInWorker+JSPI');
callContext.setError('Async vault_read requires JSPI support');
return callContext.store('{"error":"Async vault_read requires JSPI support"}');
},
vault_write: (callContext: CallContext, keyOffset: bigint, _valueOffset: bigint) => {
// _valueOffset intentionally unused: async vault writes require JSPI support.
// The key is logged for diagnostics; value is not read to avoid leaking secrets.
if (!vaultHost) {
callContext.setError('No vault host functions available');
return callContext.store('{"error":"No vault host functions available"}');
}
const key = callContext.read(keyOffset)?.string() ?? '';
pluginLogger.warn({ key }, 'vault_write called; async host functions require runInWorker+JSPI');
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vault_read/vault_write currently log the vault key (pluginLogger.warn({ key }, ...)). Vault key names can be sensitive metadata, and this also contradicts the documentation claim that vault keys are never logged. Consider removing the key from logs (or logging only a redacted/hash form) and rely on pluginId + permission checks for diagnostics.

Suggested change
pluginLogger.warn({ key }, 'vault_read called; async host functions require runInWorker+JSPI');
callContext.setError('Async vault_read requires JSPI support');
return callContext.store('{"error":"Async vault_read requires JSPI support"}');
},
vault_write: (callContext: CallContext, keyOffset: bigint, _valueOffset: bigint) => {
// _valueOffset intentionally unused: async vault writes require JSPI support.
// The key is logged for diagnostics; value is not read to avoid leaking secrets.
if (!vaultHost) {
callContext.setError('No vault host functions available');
return callContext.store('{"error":"No vault host functions available"}');
}
const key = callContext.read(keyOffset)?.string() ?? '';
pluginLogger.warn({ key }, 'vault_write called; async host functions require runInWorker+JSPI');
pluginLogger.warn('vault_read called; async host functions require runInWorker+JSPI');
callContext.setError('Async vault_read requires JSPI support');
return callContext.store('{"error":"Async vault_read requires JSPI support"}');
},
vault_write: (callContext: CallContext, keyOffset: bigint, _valueOffset: bigint) => {
// _valueOffset intentionally unused: async vault writes require JSPI support.
// The key and value are not logged to avoid leaking sensitive metadata or secrets.
if (!vaultHost) {
callContext.setError('No vault host functions available');
return callContext.store('{"error":"No vault host functions available"}');
}
const key = callContext.read(keyOffset)?.string() ?? '';
pluginLogger.warn('vault_write called; async host functions require runInWorker+JSPI');

Copilot uses AI. Check for mistakes.
{"fileNames":["../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/smol-toml@1.6.0/node_modules/smol-toml/dist/date.d.ts","../../node_modules/.pnpm/smol-toml@1.6.0/node_modules/smol-toml/dist/primitive.d.ts","../../node_modules/.pnpm/smol-toml@1.6.0/node_modules/smol-toml/dist/util.d.ts","../../node_modules/.pnpm/smol-toml@1.6.0/node_modules/smol-toml/dist/parse.d.ts","../../node_modules/.pnpm/smol-toml@1.6.0/node_modules/smol-toml/dist/stringify.d.ts","../../node_modules/.pnpm/smol-toml@1.6.0/node_modules/smol-toml/dist/error.d.ts","../../node_modules/.pnpm/smol-toml@1.6.0/node_modules/smol-toml/dist/index.d.ts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/index.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/enumUtil.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/partialUtil.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/standard-schema.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.d.cts","../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.d.cts","../shared/dist/errors.d.ts","../shared/dist/types.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/constructor.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/lazy-helpers.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/providers/class-provider.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/providers/value-provider.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/transform.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/providers/injection-token.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/providers/token-provider.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/providers/provider.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/providers/factory-provider.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/lifecycle.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/registration-options.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/disposable.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/frequency.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/interceptor-options.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/dependency-container.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/dictionary.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/types/index.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/auto-injectable.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/inject.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/injectable.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/registry.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/singleton.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/inject-all.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/inject-all-with-transform.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/providers/index.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/inject-with-transform.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/scoped.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/decorators/index.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/factories/factory-function.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/factories/instance-caching-factory.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/factories/instance-per-container-caching-factory.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/factories/predicate-aware-class-factory.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/factories/index.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/dependency-container.d.ts","../../node_modules/.pnpm/tsyringe@4.10.0/node_modules/tsyringe/dist/typings/index.d.ts","../shared/dist/app/index.d.ts","../shared/dist/tokens.d.ts","../shared/dist/config.d.ts","../shared/dist/index.d.ts","./src/config.ts","../../node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/types/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/code.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/scope.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/codegen/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/rules.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/util.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/subschema.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/errors.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/validate/dataType.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/format.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/errors.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/types/json-schema.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/types/jtd-schema.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/runtime/validation_error.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/ref_error.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/core.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/resolve.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/types/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/ajv.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/jtd/error.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/jtd/type.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/jtd/values.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/jtd/index.d.ts","../../node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/jtd.d.ts","../../node_modules/.pnpm/@fastify+ajv-compiler@4.0.5/node_modules/@fastify/ajv-compiler/types/index.d.ts","../../node_modules/.pnpm/@fastify+error@4.2.0/node_modules/@fastify/error/types/index.d.ts","../../node_modules/.pnpm/fast-json-stringify@6.3.0/node_modules/fast-json-stringify/types/index.d.ts","../../node_modules/.pnpm/@fastify+fast-json-stringify-compiler@5.0.3/node_modules/@fastify/fast-json-stringify-compiler/types/index.d.ts","../../node_modules/.pnpm/find-my-way@9.5.0/node_modules/find-my-way/index.d.ts","../../node_modules/.pnpm/light-my-request@6.6.0/node_modules/light-my-request/types/index.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/utils.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/schema.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/type-provider.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/reply.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/blob.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/console.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/encoding.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/utility.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/client-stats.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/round-robin-pool.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/snapshot-agent.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@7.18.2/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/importmeta.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/messaging.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/performance.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/timers.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/web-globals/url.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/inspector/promises.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/path/posix.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/path/win32.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/quic.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/test/reporters.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/util/types.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@25.3.0/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.d.ts","../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/index.d.ts","../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.d.ts","../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/logger.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/plugin.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/register.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/instance.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/hooks.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/route.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/context.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/request.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/content-type-parser.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/errors.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/types/server-factory.d.ts","../../node_modules/.pnpm/fastify@5.7.4/node_modules/fastify/fastify.d.ts","../../node_modules/.pnpm/pino@9.14.0/node_modules/pino/pino.d.ts","./src/logging.ts","./src/health.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/context.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/ExtData.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/ExtensionCodec.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/Encoder.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/encode.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/CachedKeyDecoder.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/Decoder.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/decode.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/utils/stream.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/decodeAsync.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/DecodeError.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/timestamp.d.ts","../../node_modules/.pnpm/@msgpack+msgpack@3.1.3/node_modules/@msgpack/msgpack/dist.esm/index.d.ts","./src/protocol.ts","../../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/index.d.mts","./src/router.ts","./src/server.ts","./src/signal.ts","../../node_modules/.pnpm/@types+node-windows@0.1.6/node_modules/@types/node-windows/index.d.ts","./src/service/install.ts","./src/service/uninstall.ts","./src/service/index.ts","./src/pid.ts","./src/index.ts","../../node_modules/.pnpm/@types+ws@8.18.1/node_modules/@types/ws/index.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/types.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/diff/base.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/diff/character.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/diff/word.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/diff/line.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/diff/sentence.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/diff/css.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/diff/json.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/diff/array.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/patch/apply.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/patch/parse.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/patch/reverse.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/patch/create.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/convert/dmp.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/convert/xml.d.ts","../../node_modules/.pnpm/diff@8.0.3/node_modules/diff/libcjs/index.d.ts"],"fileIdsList":[[175,179,188,201,264,272,276,279,281,282,283,296],[201,264,272,276,279,281,282,283,296],[191,201,264,272,276,279,281,282,283,296],[201,264,272,276,279,281,282,283,296,341,343,346],[201,264,272,276,279,281,282,283,296,341,343],[201,264,272,276,279,281,282,283,296,342],[201,264,272,276,279,281,282,283,296,341,347],[201,264,272,276,279,281,282,283,296,341,347,349],[201,264,272,276,279,281,282,283,296,341,344],[201,264,272,276,279,281,282,283,296,342,343,344,345,347,348,350,351,352],[201,264,265,272,275,276,279,281,282,283,296,321],[201,261,262,264,272,276,279,281,282,283,296],[201,263,264,272,276,279,281,282,283,296],[264,272,276,279,281,282,283,296],[201,264,272,276,279,281,282,283,296,304],[201,264,265,270,272,275,276,279,281,282,283,285,296,301,313],[201,264,265,266,272,275,276,279,281,282,283,296],[201,264,267,272,276,279,281,282,283,296,314],[201,264,268,269,272,276,279,281,282,283,287,296],[201,264,269,272,276,279,281,282,283,296,301,310],[201,264,270,272,275,276,279,281,282,283,285,296],[201,263,264,271,272,276,279,281,282,283,296],[201,264,272,273,276,279,281,282,283,296],[201,264,272,274,275,276,279,281,282,283,296],[201,263,264,272,275,276,279,281,282,283,296],[201,264,272,275,276,277,279,281,282,283,296,301,313],[201,264,272,275,276,277,279,281,282,283,296,301,304],[201,251,264,272,275,276,278,279,281,282,283,285,296,301,313],[201,264,272,275,276,278,279,281,282,283,285,296,301,310,313],[201,264,272,276,278,279,280,281,282,283,296,301,310,313],[199,200,201,202,203,204,205,206,207,208,209,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320],[201,264,272,275,276,279,281,282,283,296],[201,264,272,276,279,281,283,296],[201,264,272,276,279,281,282,283,284,296,313],[201,264,272,275,276,279,281,282,283,285,296,301],[201,264,272,276,279,281,282,283,287,296],[201,264,272,276,279,281,282,283,288,296],[201,264,272,275,276,279,281,282,283,291,296],[201,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320],[201,264,272,276,279,281,282,283,293,296],[201,264,272,276,279,281,282,283,294,296],[201,264,269,272,276,279,281,282,283,285,296,304],[201,264,272,275,276,279,281,282,283,296,297],[201,264,272,276,279,281,282,283,296,298,314,317],[201,264,272,275,276,279,281,282,283,296,301,303,304],[201,264,272,276,279,281,282,283,296,302,304],[201,264,272,276,279,281,282,283,296,304,314],[201,264,272,276,279,281,282,283,296,305],[201,261,264,272,276,279,281,282,283,296,301,307,313],[201,264,272,276,279,281,282,283,296,301,306],[201,264,272,275,276,279,281,282,283,296,308,309],[201,264,272,276,279,281,282,283,296,308,309],[201,264,269,272,276,279,281,282,283,285,296,301,310],[201,264,272,276,279,281,282,283,296,311],[201,264,272,276,279,281,282,283,285,296,312],[201,264,272,276,278,279,281,282,283,294,296,313],[201,264,272,276,279,281,282,283,296,314,315],[201,264,269,272,276,279,281,282,283,296,315],[201,264,272,276,279,281,282,283,296,301,316],[201,264,272,276,279,281,282,283,284,296,317],[201,264,272,276,279,281,282,283,296,318],[201,264,267,272,276,279,281,282,283,296],[201,264,269,272,276,279,281,282,283,296],[201,264,272,276,279,281,282,283,296,314],[201,251,264,272,276,279,281,282,283,296],[201,264,272,276,279,281,282,283,296,313],[201,264,272,276,279,281,282,283,296,319],[201,264,272,276,279,281,282,283,291,296],[201,264,272,276,279,281,282,283,296,309],[201,251,264,272,275,276,277,279,281,282,283,291,296,301,304,313,316,317,319],[201,264,272,276,279,281,282,283,296,301,320],[201,264,272,275,276,278,279,280,281,282,283,285,296,301,310,313,320,321],[138,139,143,170,171,173,174,175,177,178,201,264,272,276,279,281,282,283,296],[136,137,201,264,272,276,279,281,282,283,296],[136,201,264,272,276,279,281,282,283,296],[138,178,201,264,272,276,279,281,282,283,296],[138,139,175,176,178,201,264,272,276,279,281,282,283,296],[178,201,264,272,276,279,281,282,283,296],[135,178,179,201,264,272,276,279,281,282,283,296],[138,139,177,178,201,264,272,276,279,281,282,283,296],[138,139,141,142,177,178,201,264,272,276,279,281,282,283,296],[138,139,140,177,178,201,264,272,276,279,281,282,283,296],[138,139,143,170,171,172,173,174,177,178,201,264,272,276,279,281,282,283,296],[138,143,172,173,174,175,177,178,187,201,264,272,276,279,281,282,283,296],[135,138,139,143,175,177,201,264,272,276,279,281,282,283,296],[143,178,201,264,272,276,279,281,282,283,296],[145,146,147,148,149,150,151,152,153,154,178,201,264,272,276,279,281,282,283,296],[168,178,201,264,272,276,279,281,282,283,296],[144,155,163,164,165,166,167,169,201,264,272,276,279,281,282,283,296],[168,178,180,201,264,272,276,279,281,282,283,296],[178,180,201,264,272,276,279,281,282,283,296],[178,181,182,183,184,185,186,201,264,272,276,279,281,282,283,296],[143,178,180,201,264,272,276,279,281,282,283,296],[148,178,201,264,272,276,279,281,282,283,296],[156,157,158,159,160,161,162,178,201,264,272,276,279,281,282,283,296],[201,264,272,276,279,281,282,283,296,366],[201,264,272,276,279,281,282,283,296,366,367],[201,264,272,276,279,281,282,283,296,366,367,370],[201,264,272,276,279,281,282,283,296,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380],[179,201,264,272,276,279,281,282,283,296],[189,190,192,193,194,195,196,197,198,201,264,272,276,278,279,280,281,282,283,285,296,326,327,328,329,330,331,332,333,334,335,336],[195,196,197,201,264,272,276,279,281,282,283,296,331,333],[195,201,264,272,276,279,281,282,283,296,331],[190,201,264,272,276,279,281,282,283,296],[190,195,196,197,198,201,264,272,276,279,281,282,283,296,301,326,327,328,329,331,333],[190,193,194,195,196,197,198,201,264,272,276,278,279,281,282,283,285,296,326,328,330,331,333,334,337],[190,195,196,197,198,201,264,272,276,279,281,282,283,296,325,329,331,333],[195,197,201,264,272,276,279,281,282,283,296,326,329],[195,201,264,272,276,279,281,282,283,296,326,327,329,337],[195,196,197,201,264,272,276,279,281,282,283,296,326,329,331,333],[189,195,196,197,201,264,272,276,279,281,282,283,296,326,329,331,332],[190,193,195,196,197,198,201,264,272,276,279,281,282,283,296,326,329,330,332,333],[189,192,201,264,272,276,279,281,282,283,296,337],[195,201,264,272,276,278,279,280,281,282,283,296],[195,196,201,264,272,276,279,281,282,283,296,331],[201,264,272,276,278,279,280,281,282,283,296],[201,264,272,276,278,279,281,282,283,296],[201,264,272,276,278,279,281,282,283,296,301],[201,264,272,276,278,279,281,282,283,296,321],[201,264,272,275,276,279,281,282,283,296,319,322,323,324],[201,264,272,275,276,279,281,282,283,296,319,322,323],[72,74,75,76,77,201,264,272,276,279,281,282,283,296],[73,74,201,264,272,276,279,281,282,283,296],[72,201,264,272,276,279,281,282,283,296],[201,264,272,275,276,279,281,282,283,296,321],[201,264,272,275,276,279,281,282,283,296,319],[95,201,264,272,276,279,281,282,283,296],[112,113,114,115,116,117,118,120,121,201,264,272,276,279,281,282,283,296],[99,100,201,264,272,276,279,281,282,283,296],[100,201,264,272,276,279,281,282,283,296],[99,119,201,264,272,276,279,281,282,283,296],[95,100,201,264,272,276,279,281,282,283,296],[100,102,105,201,264,272,276,279,281,282,283,296],[95,104,119,201,264,272,276,279,281,282,283,296],[95,100,102,105,109,201,264,272,276,279,281,282,283,296],[109,201,264,272,276,279,281,282,283,296],[123,124,125,126,201,264,272,276,279,281,282,283,296],[123,201,264,272,276,279,281,282,283,296],[95,109,123,201,264,272,276,279,281,282,283,296],[96,111,119,122,127,128,201,264,272,276,279,281,282,283,296],[95,96,102,201,264,272,276,279,281,282,283,296],[102,109,201,264,272,276,279,281,282,283,296],[97,98,100,101,102,103,201,264,272,276,279,281,282,283,296],[95,96,99,201,264,272,276,279,281,282,283,296],[97,98,101,103,201,264,272,276,279,281,282,283,296],[100,102,201,264,272,276,279,281,282,283,296],[102,201,264,272,276,279,281,282,283,296],[95,97,98,100,101,103,105,106,108,201,264,272,276,279,281,282,283,296],[95,99,104,105,106,107,108,109,110,201,264,272,276,279,281,282,283,296],[107,201,264,272,276,279,281,282,283,296],[104,201,264,272,276,279,281,282,283,296],[201,216,219,222,223,264,272,276,279,281,282,283,296,313],[201,219,264,272,276,279,281,282,283,296,301,313],[201,219,223,264,272,276,279,281,282,283,296,313],[201,264,272,276,279,281,282,283,296,301],[201,213,264,272,276,279,281,282,283,296],[201,217,264,272,276,279,281,282,283,296],[201,215,216,219,264,272,276,279,281,282,283,296,313],[201,264,272,276,279,281,282,283,285,296,310],[201,264,272,276,279,281,282,283,296,321],[201,213,264,272,276,279,281,282,283,296,321],[201,215,219,264,272,276,279,281,282,283,285,296,313],[201,210,211,212,214,218,264,272,275,276,279,281,282,283,296,301,313],[201,219,228,236,264,272,276,279,281,282,283,296],[201,211,217,264,272,276,279,281,282,283,296],[201,219,245,246,264,272,276,279,281,282,283,296],[201,211,214,219,264,272,276,279,281,282,283,296,304,313,321],[201,219,264,272,276,279,281,282,283,296],[201,215,219,264,272,276,279,281,282,283,296,313],[201,210,264,272,276,279,281,282,283,296],[201,213,214,215,217,218,219,220,221,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,246,247,248,249,250,264,272,276,279,281,282,283,296],[201,219,238,241,264,272,276,279,281,282,283,296],[201,219,228,229,230,264,272,276,279,281,282,283,296],[201,217,219,229,231,264,272,276,279,281,282,283,296],[201,218,264,272,276,279,281,282,283,296],[201,211,213,219,264,272,276,279,281,282,283,296],[201,219,223,229,231,264,272,276,279,281,282,283,296],[201,223,264,272,276,279,281,282,283,296],[201,217,219,222,264,272,276,279,281,282,283,296,313],[201,211,215,219,228,264,272,276,279,281,282,283,296],[201,219,238,264,272,276,279,281,282,283,296],[201,231,264,272,276,279,281,282,283,296],[201,213,219,245,264,272,276,279,281,282,283,296,304,319,321],[91,201,264,272,276,279,281,282,283,296],[79,80,81,201,264,272,276,279,281,282,283,296],[82,83,201,264,272,276,279,281,282,283,296],[79,80,82,84,85,90,201,264,272,276,279,281,282,283,296],[80,82,201,264,272,276,279,281,282,283,296],[90,201,264,272,276,279,281,282,283,296],[82,201,264,272,276,279,281,282,283,296],[79,80,82,85,86,87,88,89,201,264,272,276,279,281,282,283,296],[78,92,133,201,264,272,276,279,281,282,283,288,296],[201,264,272,276,279,281,282,283,296,337,339],[134,201,264,272,276,279,281,282,283,296,339,340,354,356,357,358,362,363],[201,264,272,276,279,281,282,283,296,338],[201,264,265,272,276,279,281,282,283,288,296,339],[92,133,201,264,272,276,279,281,282,283,296,353],[133,201,264,272,276,279,281,282,283,296,339,354,355],[133,134,201,264,272,276,279,280,281,282,283,296,339,354,355,356],[201,264,272,276,279,281,282,283,296,360,361],[201,264,265,272,276,279,281,282,283,288,296,359],[201,264,272,276,279,281,282,283,296,339],[129,201,264,272,276,279,281,282,283,296],[93,94,130,131,132,201,264,272,276,279,281,282,283,296]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7ad3531c131f2b5b246b2d208b75c5403475ad155b7661fa2d673104b806791","impliedFormat":99},{"version":"e280a713f408497aacba06c0b058e5ceef3418819ff901fa145d065ef5fcc669","impliedFormat":99},{"version":"8f3f902140fe673679da77cbfbb44dd113d1e4217fd05c4f6e5d9bee8b395b4c","impliedFormat":99},{"version":"92f6be0d7e2937e9c13fec8bb38b0e1186db1cd654af86a8bbb2f78d40ba8b9d","impliedFormat":99},{"version":"c9a75924aa75b4e60542ff06437b3abd9679ee9f740245080fbe528f05fb8763","impliedFormat":99},{"version":"c5ada15420e52bcc8a451a7c4f2daff318e6d0bf5f8c691b25158555a4508f0e","impliedFormat":99},{"version":"4ef8ce05fffa05c691083bc96f9e65bac35f79e0b4517c426a30d1123b09ba1e","impliedFormat":99},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"9c57a4482760182a3a24aa29e158b87481aa0b6586a472fbd5461252d3f21241","impliedFormat":99},{"version":"c48dc64c78dea591e9aa4acbe22575d1b91cd01b6555eb6cbd3cdeedbbaccf39","impliedFormat":99},{"version":"dc9db798c605d6aca65d8671c7c83708f6f21c468c6a5154c2c215db716e85de","impliedFormat":1},{"version":"f4e1782993dd70717ee36648fe233c0d3ca092d262591227067a7ead3a125e1a","impliedFormat":1},{"version":"2c9dd6a0d4560397e574fa5bee2c91bf7b3324ce263f2f9e5ce3bc958b1e9c37","impliedFormat":1},{"version":"ff7b207d9330382e879e5f6b7400e3654a7aff89fdd3772fa68fa8d249090bfa","impliedFormat":1},{"version":"0bce4a5303f795de76667a9f1a1f27eea3ac35cb373ff2fb5447b6c83017192c","impliedFormat":1},{"version":"60ed20c995d33b96065518989ff8058491e1714dde308cbd8276b5e6ec194f63","impliedFormat":1},{"version":"4cdc739297d1472c5be48be0a533eddfb48744979337d0d44b23baa80642b682","impliedFormat":1},{"version":"4965db36895b5c73e1ffb8618693273d8bff1023f34827782c453e2308d5e901","impliedFormat":1},{"version":"d23463a649a21062f25db690d6bf4d132b039caff460f2df7c19e0637b2cad24","impliedFormat":1},{"version":"c442590ef92fcb502f7762f61913c0db9027839a63f04b12fcd687996853e2f0","impliedFormat":1},{"version":"81698b4d02b5402da4c93e9c42fed5871eb7db309b7197ba0a5c88209c9166a9","impliedFormat":1},{"version":"07740ea8049f2d198d58efd84cf0f5336275f2faa4638a9b85ad9fe0ea45aa24","impliedFormat":1},{"version":"b09577e6d3e3d30676bbe845435fe9c54d3bc35d2080746b8b6311a0cad051a8","impliedFormat":1},{"version":"4a414077d6debe40ef7c90dea94a659dfce04fe6b13dd4b54c5809da432623fa","impliedFormat":1},{"version":"c134fb7af7604a2d726ae20bed9a06a318b19bc2348b0f58f1b34c9a24021481","impliedFormat":1},{"version":"b79fbdf51e1f2d9f9ddb5d2f0f268e6994a6995a6fd4c8dc7d15bbcf14898368","impliedFormat":1},{"version":"0047be65cc043f837700d309d7cd5303ca254641ca88866929e03b0e2d01fc71","impliedFormat":1},{"version":"5936874e57154afe573f2be06aff14c0633fba79c933e64a96dd700b61420159","impliedFormat":1},{"version":"da995c896f6e89945f308b55cd55b482606befd093320e3bf9e7fc69e32bf614","impliedFormat":1},{"version":"f7f35650fc43a8277846d1cbf6835da5bbf517609263f9d1e7b1613bcdb3860a","impliedFormat":1},{"version":"486db679bd2a44646d50cc0f2ca117c57f3077bb583917dc7ee8af6aad88f1da","impliedFormat":1},{"version":"f2ab5958425520dbbb16293b42fbdf8c8ddc287758a513cad37b73c614542e88","impliedFormat":1},{"version":"55c35d24857fd10b99a0233ee2aa4bbecd92b35b0489241df9f31757a847aaa4","impliedFormat":1},{"version":"8efca061f43daa2dfd081be78a39b58b791369eea85852d00dad0aca9d4b3e54","impliedFormat":1},{"version":"9be18c81419bcee8b2d07485f10980bffd711adf319d27eac3a8bb623624e883","impliedFormat":1},{"version":"ea6c23043dff1adfc676e61219c20dfa5c4077dc9f9b600903cf1163874a5edd","impliedFormat":1},{"version":"9760150ca6e8646fac3d89eac6b2a29892671dfcfcafdb590bf9248b512389b1","impliedFormat":1},{"version":"88b1ab4925fb25ba67cb06994203487fc42d77706f83c5ff7c007890bedfd580","impliedFormat":1},{"version":"b62917efdaa93203b769e6dd3924fbd560e5ed1077ae9bf4302dc859e2732fc9","impliedFormat":1},{"version":"7bcf1ebe7527831bbe01b7bea8cf1621d0df7c8de0b1fcfeab2147da433cd0d7","impliedFormat":1},{"version":"d29b1c1ed9ed02dfd097d22b010f2bc464f01b2fdd8598f1535ffa60d02bc836","impliedFormat":1},{"version":"308f5a6feb41ed9399c2c566d5a651cc1260967a90449c79d63ffe51ad855e9b","impliedFormat":1},{"version":"a0ac2951002254928898562ffb771a1dc0e9dac7fc4b4c4e77149354888ed645","impliedFormat":1},{"version":"da88a126c1c6fbdba4e0b525c4658b4ef33ae9ccead34c5c583966ea7f7201ca","impliedFormat":1},{"version":"ece80ae193eb00bbfd1768b05fbe42edf8172c044b7e7f2bc4d4a3247ab055b0","impliedFormat":1},{"version":"55e755489af4115faeb263d06b19a8e99ebe5b480e62b39854c8fe14d1f83bde","impliedFormat":99},{"version":"c4172b6ee8cf6263cb0fe8bcc50f456728909ea9c323ef671b422d02ea74e464","impliedFormat":99},{"version":"435e54bba75c07d8920881032243beb111fe7f56aeb1510dbcf98a29ce588b31","impliedFormat":99},{"version":"3e83f57513346a715f363509d6fb0d6dc037dde07b7140d7e5b130744f2c0e51","impliedFormat":99},{"version":"42f4e765b9e1c097bdaf1fd921c0843c1bdafe66064241ce5bfacb41b608e6bd","signature":"de9a87eb81e08dff4b782653b6719fa8ce79572acf70814687aba3bc281ab5f1","impliedFormat":99},{"version":"84bcc7c6b06f4d643a55dc63b56be0c81d990f8d549b66ea615c553268774dc3","impliedFormat":1},{"version":"2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff","impliedFormat":1},{"version":"6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001","impliedFormat":1},{"version":"c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618","impliedFormat":1},{"version":"2973b1b7857ca144251375b97f98474e9847a890331e27132d5a8b3aea9350a8","impliedFormat":1},{"version":"0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b","impliedFormat":1},{"version":"237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b","impliedFormat":1},{"version":"cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","impliedFormat":1},{"version":"58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","impliedFormat":1},{"version":"7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043","impliedFormat":1},{"version":"a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5","impliedFormat":1},{"version":"ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8","impliedFormat":1},{"version":"8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336","impliedFormat":1},{"version":"a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f","impliedFormat":1},{"version":"8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332","impliedFormat":1},{"version":"1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285","impliedFormat":1},{"version":"5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1","impliedFormat":1},{"version":"ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a","impliedFormat":1},{"version":"6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1","impliedFormat":1},{"version":"dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35","impliedFormat":1},{"version":"eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e","impliedFormat":1},{"version":"25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624","impliedFormat":1},{"version":"62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295","impliedFormat":1},{"version":"cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d","impliedFormat":1},{"version":"4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296","impliedFormat":1},{"version":"360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97","impliedFormat":1},{"version":"1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab","impliedFormat":1},{"version":"7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4","impliedFormat":1},{"version":"b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7","impliedFormat":1},{"version":"596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e","impliedFormat":1},{"version":"adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf","impliedFormat":1},{"version":"d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6","impliedFormat":1},{"version":"d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd","impliedFormat":1},{"version":"3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e","impliedFormat":1},{"version":"423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f","impliedFormat":1},{"version":"2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6","impliedFormat":1},{"version":"feeb73d48cc41c6dd23d17473521b0af877751504c30c18dc84267c8eeea429a","impliedFormat":1},{"version":"25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052","impliedFormat":1},{"version":"cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","impliedFormat":1},{"version":"3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","impliedFormat":1},{"version":"4304f640f7cb4724ea82441accb7c7607fa7207541182470d625adda99b2900b","impliedFormat":1},{"version":"e0205f04611bea8b5b82168065b8ef1476a8e96236201494eb8c785331c43118","impliedFormat":1},{"version":"62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07","impliedFormat":1},{"version":"9941cbf7ca695e95d588f5f1692ab040b078d44a95d231fa9a8f828186b7b77d","impliedFormat":1},{"version":"41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05","impliedFormat":1},{"version":"a6613ee552418429af38391e37389036654a882c342a1b81f2711e8ddac597f2","impliedFormat":1},{"version":"da47cb979ae4a849f9b983f43ef34365b7050c4f5ae2ebf818195858774e1d67","impliedFormat":1},{"version":"ac3bcb82d7280fc313a967f311764258d18caf33db6d2b1a0243cde607ff01a0","impliedFormat":1},{"version":"c9b5632d6665177030428d02603aeac3e920d31ec83ac500b55d44c7da74bd84","impliedFormat":1},{"version":"46456824df16d60f243a7e386562b27bac838aaba66050b9bc0f31e1ab34c1f2","impliedFormat":1},{"version":"b91034069e217212d8dda6c92669ee9f180b4c36273b5244c3be2c657f9286c7","impliedFormat":1},{"version":"0697277dd829ac2610d68fe1b457c9e758105bb52d40e149d9c15e5e2fe6dca4","impliedFormat":1},{"version":"b0d06dbb409369169143ede5df1fb58b2fca8d44588e199bd624b6f6d966bf08","impliedFormat":1},{"version":"88dfdb2a44912a28aea3ebb657dc7fcec6ba59f7233005e3405824995b713dac","impliedFormat":1},{"version":"f38a45cbc0356dfb6455211e75ecd0f8aeaedbacd4cb8d6646c818d36a46d195","impliedFormat":1},{"version":"cc2d5d5687bdf9d7c49b6946b8769ac7abcbdcd1701d9bb9ca70a8bc1b003e8b","impliedFormat":1},{"version":"6f1fabd39b8c9a66a3232030a4b28ed4fb4f857dcffef0add3220dab4bbba77a","impliedFormat":1},{"version":"9c0623d67471ddc5b9d82b4e06252c746d54f7ae8ccff8701cd51c249f7e7694","impliedFormat":1},{"version":"49f6e5eb1e6d34bd4a63d26294f48c046e467e9f58b5ed10943aae4cabb778da","impliedFormat":1},{"version":"f69b484edf398d636992757d587e7e38ea91844a66dbca9d682c9cf7858b77cf","impliedFormat":1},{"version":"37d852b3e6b30b974178674dbf2a7974a1ea4bbdbec26d0bdb8f34632cab94a2","impliedFormat":1},{"version":"c3ccf44723b474b5d7a87c53eed9711e81422f0e29b3e8f8f8d42775fa802243","impliedFormat":1},{"version":"faeaf9586ba4505448bd0fdb332509a7e3ecca5d8ae10208950a5d03e8b4ea28","impliedFormat":1},{"version":"c3a0295707fde0cb51ca784ecb799aa95ca71c40337b5ee4a81a8f7134dd7e92","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"24371e69a38fc33e268d4a8716dbcda430d6c2c414a99ff9669239c4b8f40dea","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"c63b9ada8c72f95aac5db92aea07e5e87ec810353cdf63b2d78f49a58662cf6c","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"435b3711465425770ed2ee2f1cf00ce071835265e0851a7dc4600ab4b007550e","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"237ba5ac2a95702a114a309e39c53a5bddff5f6333b325db9764df9b34f3502b","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"1d024184fb57c58c5c91823f9d10b4915a4867b7934e89115fd0d861a9df27c8","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"b0b69c61b0f0ec8ca15db4c8c41f6e77f4cacb784d42bca948f42dea33e8757e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f96a48183254c00d24575401f1a761b4ce4927d927407e7862a83e06ce5d6964","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"f83fb2b1338afbb3f9d733c7d6e8b135826c41b0518867df0c0ace18ae1aa270","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"757227c8b345c57d76f7f0e3bbad7a91ffca23f1b2547cbed9e10025816c9cb7","impliedFormat":1},{"version":"42a05d8f239f74587d4926aba8cc54792eed8e8a442c7adc9b38b516642aadfe","impliedFormat":1},{"version":"5d21b58d60383cc6ab9ad3d3e265d7d25af24a2c9b506247e0e50b0a884920be","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"ae6757460f37078884b1571a3de3ebaf724d827d7e1d53626c02b3c2a408ac63","affectsGlobalScope":true,"impliedFormat":1},{"version":"9451a46a89ed209e2e08329e6cac59f89356eae79a7230f916d8cc38725407c7","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"e236b5eba291f51bdf32c231673e6cab81b5410850e61f51a7a524dddadc0f95","impliedFormat":1},{"version":"f7ba0e839daa0702e3ff1a1a871c0d8ea2d586ce684dd8a72c786c36a680b1d9","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"af4ab0aa8908fc9a655bb833d3bc28e117c4f0e1038c5a891546158beb25accb","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"f64deb26664af64dc274637343bde8d82f930c77af05a412c7d310b77207a448","impliedFormat":1},{"version":"ed4f674fc8c0c993cc7e145069ac44129e03519b910c62be206a0cc777bdc60b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"bce309f4d9b67c18d4eeff5bba6cf3e67b2b0aead9f03f75d6060c553974d7ba","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"2a00d005e3af99cd1cfa75220e60c61b04bfb6be7ca7453bfe2ef6cca37cc03c","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"14d4bd22d1b05824971b98f7e91b2484c90f1a684805c330476641417c3d9735","impliedFormat":1},{"version":"c3877fef8a43cd434f9728f25a97575b0eb73d92f38b5c87c840daccc3e21d97","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"1dbd83860e7634f9c236647f45dbc5d3c4f9eba8827d87209d6e9826fdf4dbd5","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"b37f83e7deea729aa9ce5593f78905afb45b7532fdff63041d374f60059e7852","impliedFormat":1},{"version":"e1cb68f3ef3a8dd7b2a9dfb3de482ed6c0f1586ba0db4e7d73c1d2147b6ffc51","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"4fe80f12b1d5189384a219095c2eabadbb389c2d3703aae7c5376dbaa56061df","impliedFormat":1},{"version":"9eb1d2dceae65d1c82fc6be7e9b6b19cf3ca93c364678611107362b6ad4d2d41","impliedFormat":1},{"version":"e34aecf8d244b86b519e778b9a85e05f877119f4e920c635f8ee024bb4c354c8","impliedFormat":1},{"version":"e40f9840e4686053a5d42b39fddfd6774172a3d12fa61c1edb8c35b452a5e74a","impliedFormat":1},{"version":"0c27f4ad317e7af86961e2eb09fb5e97de1b85d58f2958e81ef16baf920b9a60","impliedFormat":1},{"version":"479a021fec9328c8ab37f9372dcdc1022d79aeedde6febf03942b4456d1591c9","impliedFormat":1},{"version":"68d25a0614893e256a9e6fe18e2b125dbdad694381b57e63320de6a7518e47fc","impliedFormat":1},{"version":"49b89a0b4b3b3e18cbf726a9c608d622b4f6d49304076fc01c10f93833c70f09","impliedFormat":1},{"version":"4f62dc739ef3b99a93779255f85e51f02ce411d63cf294ee654258ff8c1978e4","impliedFormat":1},{"version":"af7cfe3f859bd980d09f008b41bff896fcfb77473f53a162438fae49c6a3baa6","impliedFormat":1},{"version":"64102e00cb41de7f423608037d17dff83954904383e5c45f1054c2246cf5e184","impliedFormat":1},{"version":"0721d2a27bcb10c815a0df1ab95a54e3a765ffe4b8d0794a47ee85d0e4dd9f29","impliedFormat":1},{"version":"05e29a500e59cc5697947ee0fa9390e88ff008ec76be1f859152bda8ec01f13d","impliedFormat":1},{"version":"625c8806866d06fd0b2d335d356b7f9566dcec39b75642ad34c6ead83cc96d37","impliedFormat":1},{"version":"44b227ad122395768f07a8f1b84041b096220335b34ff7af3b8caa61731b294d","impliedFormat":1},{"version":"01352346792bfdada4746d7e0187df0db156d5502bb0b69c6670322e47529147","impliedFormat":1},{"version":"8065e20ac0ad0536d4f1c8d4c2303272a4d25c450bea8d25deb25697d19300e5","impliedFormat":1},{"version":"2439ba13569c7c1b95583d3b78acb8b1ffc057e68142cee5ef18f4e60abd44fa","signature":"f2b31f3b3bd279b855d33d9c5a420b40fff48c5eb53e549da251bf15ea2d062c","impliedFormat":99},{"version":"c9a2d72a62681a2935962a52d2485dca75679cccebcdce0dd73ca788f8ae7a91","signature":"36f5dca5c7b184ba4a7a7090ab9ae7f3f712b1f006ad6a2cf19f385419dcbe50","impliedFormat":99},{"version":"76f1e52f66b3a59557b00ab5f216765d6a3b438c9c1e691fa72ee1d26af8a116","impliedFormat":1},{"version":"8f4e8a25fe6b0ed5b95f2c4b938d523a7e8736a8317f1d4be5a619a6a5fce3be","impliedFormat":1},{"version":"d92047d9cccea5cbc281cf891c4d47f263bab96fd724dc1ee9f05926566c5edd","impliedFormat":1},{"version":"5a90b7e7a69e5019d1d5d5604727ac102c74468c02b29a871de12dfb02fab7a6","impliedFormat":1},{"version":"d9dd11a255a584b632104812b36144a1eb6fe477f6b275631f94cb1c0ef35444","impliedFormat":1},{"version":"8fcb72d6a301b5a46346ca3cc3310b11878a84fc69ac0e64e0bdafa19d1b2848","impliedFormat":1},{"version":"49055d812816977329d1ecf4da7138e938df980184b290a62f15dc586095a806","impliedFormat":1},{"version":"8b2e4b7bf54aed59f03e8ac2311153d248c61709257b3b98a425610a0a8b2bb6","impliedFormat":1},{"version":"528b5d1edc40ee17017cd48681ff6cc888600b865b9dbef4d89c35495c19d1c1","impliedFormat":1},{"version":"8f6196c0c213614eeeec7fa1e8fce57a04d7857a1f96154be6fdcaa0148d2ce2","impliedFormat":1},{"version":"92d336c64a358427c66973be728c8af7c3181cf2e766423ca6bde047d703668a","impliedFormat":1},{"version":"8766c124b24064a8cbaf9f0a1594f8b8dd8dbb7671c8075e95d5c35e514276ea","impliedFormat":1},{"version":"3f2a47e9ba5aa970f1bb3111bc8d30e3425e05e04f88856557638284d94e5664","impliedFormat":1},{"version":"56ab984c42bf324b0e5e4584c4c4e3c5ca08905a646d6490561ee5d13f043315","signature":"d285ff10c4af723481c1e899744b3e9424bb9dfe9eca6505167b4a7bc650d971","impliedFormat":99},{"version":"316f1486e15cbf7896425f0a16dfe12d447dd57cfb3244b8b119c77df870858f","impliedFormat":99},{"version":"d524e2e2dd63112d7a9c7265700fb1cd3383ca11b4b2616c2c534b5f6b71ce97","signature":"c9e6619dd1d1f1888647b75267b20dd3af3f31cab19be9f8f985deff0a84ef5e","impliedFormat":99},{"version":"c6ff33aa5b2475e1da94c0a7649b7f1535230cca82e3a7598c429a98497b8c94","signature":"e507da453bb0e75171bfb0ff021ebc04e998ddc84e79c2f53bb90bfa395657ef","impliedFormat":99},{"version":"c7eb445ba7576046daf0708d75806d2a6bc7036a1be3b83063a7edb60fbe99de","signature":"f515a2b2d37bb294c9b36416cf7507f470c9f0223059863d8ee2de8591088633","impliedFormat":99},{"version":"81d5f8ada9a96e5878d7b0be4f39d558aab6815e8210113419e5299151742960","impliedFormat":1},{"version":"05baf1a5bb70e66be9775428b144d41d23111ef8fee30c5326472288bd5cd065","signature":"1692b70a805d84b99a8962c0498642298e9f4f9fd2931e8bb5645484ab2313b9","impliedFormat":99},{"version":"b981663438dcc8620dad3bc705b082f02cdd8fe8577e78cdf4120a534dbf0859","signature":"fb3de98d8244d402e1698ece391a984941cab23f0666bc6a54858e74821a8b61","impliedFormat":99},{"version":"03e08066ac2188d0f0bee42f646024717a7f9c09c665fa7791c529be413a55ca","impliedFormat":99},{"version":"d5a944bd52de48e1109a5987fbeacec47438f9f77e91b57f746aafd36ec1c794","signature":"8181ede5c2882f124e2a50ccf4d4434fcc5666a30ff843bb85f2b74089655c9d","impliedFormat":99},{"version":"859eda1d2af10ed7ffda607886f24ecadbc1b64c3c9884b7ed941b276d434390","signature":"eeb5284b2f1fe78827371d7197c263ab752502623aa3795e1c871c8e43d6f721","impliedFormat":99},{"version":"1ba59c8bbeed2cb75b239bb12041582fa3e8ef32f8d0bd0ec802e38442d3f317","impliedFormat":1},{"version":"ae996e7801933656a48936259a736b25252ea29ad7f2e502f37360da3b1ddb5c","impliedFormat":1},{"version":"5f31f61b497fd98b889a67865516a339b52a846c3e1e15406b1137864a6c444f","impliedFormat":1},{"version":"3d46e269720a54a3348bb4495a4f4f520f1e1b23f5c9a017f98fc87810de6c16","impliedFormat":1},{"version":"d9518fe8e1e265b1088352b9117628910a9f251974a2abc2aa904f7f4f71fa53","impliedFormat":1},{"version":"7ea29ad18f6242a9f51f3003df2323030d3830f7a2dbda788f52fd1da71bfe36","impliedFormat":1},{"version":"129a1cd246cb69ece363ac69ae257d426bf471cce3cc5a978397d5143cde8c2d","impliedFormat":1},{"version":"04848d258a86d4bfaef951ad304251f6c917408f89fad419e28ce6c84f0a1674","impliedFormat":1},{"version":"e44a9c7bbbfb42ee61b76c1a9041113d758ca8d8b41cefb0c4524689766e5a9f","impliedFormat":1},{"version":"1e9b3e4e3d802df7b85f23318ab4dde8e9a83fbae6e197441d815147067d2fa4","impliedFormat":1},{"version":"0affed2881f6bc1652807c4cb53c87b51255995fe30a68dbcb7127114ff426b3","impliedFormat":1},{"version":"46b2bff13c747143a9a39614cfebc8972c8e1ef3a140139314f454a04580327d","impliedFormat":1},{"version":"23b03a7cf8d6a63de30d7f104f6367127dde524181017e1d8879c00d999dca05","impliedFormat":1},{"version":"7ecf84cf6ee490224075c1b6d96613994ff38b57689cd1c9561c17afa7d6ee22","impliedFormat":1},{"version":"69018d625163e38107ac82f8a9ef723b601b600d3ca0140a35a9c6eb94b552a3","impliedFormat":1},{"version":"867c654176fa4def1058ee8f50c055e58d6a15dedfb0567439986e836070cf00","impliedFormat":1},{"version":"32b8757ab7aafbb8019ff96d2ae01fc5e040034cf0ccecae89689a3aaa483208","impliedFormat":1}],"root":[134,339,340,354,[356,358],[360,364]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"experimentalDecorators":true,"module":199,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":11,"verbatimModuleSyntax":true},"referencedMap":[[189,1],[190,2],[192,3],[346,2],[351,2],[347,4],[344,5],[342,2],[343,6],[341,2],[348,7],[350,8],[345,9],[353,10],[352,2],[349,2],[359,11],[261,12],[262,12],[263,13],[201,14],[264,15],[265,16],[266,17],[199,2],[267,18],[268,19],[269,20],[270,21],[271,22],[272,23],[273,23],[274,24],[275,25],[276,26],[277,27],[202,2],[200,2],[278,28],[279,29],[280,30],[321,31],[281,32],[282,33],[283,32],[284,34],[285,35],[287,36],[288,37],[289,37],[290,37],[291,38],[292,39],[293,40],[294,41],[295,42],[296,43],[297,43],[298,44],[299,2],[300,2],[301,45],[302,46],[303,45],[304,47],[305,48],[306,49],[307,50],[308,51],[309,52],[310,53],[311,54],[312,55],[313,56],[314,57],[315,58],[316,59],[317,60],[318,61],[203,32],[204,2],[205,62],[206,63],[207,2],[208,64],[209,2],[252,65],[253,66],[254,67],[255,67],[256,68],[257,2],[258,15],[259,69],[260,66],[319,70],[320,71],[355,72],[365,72],[179,73],[136,2],[138,74],[137,75],[142,76],[177,77],[174,78],[176,79],[139,78],[140,80],[144,80],[143,81],[141,82],[175,83],[188,84],[173,78],[178,85],[171,2],[172,2],[145,86],[150,78],[152,78],[147,78],[148,86],[154,78],[155,87],[146,78],[151,78],[153,78],[149,78],[169,88],[168,78],[170,89],[164,78],[185,90],[183,91],[182,78],[180,76],[187,92],[184,93],[181,91],[186,91],[166,78],[165,78],[161,78],[167,94],[162,78],[163,95],[156,78],[157,78],[158,78],[159,78],[160,78],[286,2],[379,96],[380,96],[374,97],[367,96],[368,97],[372,97],[373,98],[370,97],[371,97],[369,97],[381,99],[375,96],[378,96],[376,96],[377,96],[366,2],[191,100],[135,2],[337,101],[334,102],[332,103],[335,104],[330,105],[329,106],[326,107],[327,108],[328,109],[198,110],[333,111],[331,112],[196,113],[336,114],[197,115],[195,116],[193,117],[194,118],[322,119],[325,120],[338,121],[72,2],[77,2],[78,122],[75,123],[73,124],[76,2],[74,124],[323,125],[324,126],[112,127],[122,128],[118,129],[117,130],[120,131],[113,130],[114,132],[115,133],[121,134],[116,127],[128,135],[123,136],[127,137],[124,138],[125,138],[126,139],[129,140],[96,127],[97,141],[103,142],[119,143],[100,144],[102,145],[101,146],[98,147],[95,2],[109,148],[110,2],[106,2],[107,2],[111,149],[108,150],[104,2],[105,151],[99,2],[70,2],[71,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[22,2],[23,2],[4,2],[24,2],[28,2],[25,2],[26,2],[27,2],[29,2],[30,2],[31,2],[5,2],[32,2],[33,2],[34,2],[35,2],[6,2],[39,2],[36,2],[37,2],[38,2],[40,2],[7,2],[41,2],[46,2],[47,2],[42,2],[43,2],[44,2],[45,2],[8,2],[51,2],[48,2],[49,2],[50,2],[52,2],[9,2],[53,2],[54,2],[55,2],[57,2],[56,2],[58,2],[59,2],[10,2],[60,2],[61,2],[62,2],[11,2],[63,2],[64,2],[65,2],[66,2],[67,2],[1,2],[68,2],[69,2],[228,152],[240,153],[225,154],[241,155],[250,156],[216,157],[217,158],[215,159],[249,160],[244,161],[248,162],[219,163],[237,164],[218,165],[247,166],[213,167],[214,161],[220,168],[221,2],[227,169],[224,168],[211,170],[251,171],[242,172],[231,173],[230,168],[232,174],[235,175],[229,176],[233,177],[245,160],[222,178],[223,179],[236,180],[212,155],[239,181],[238,168],[226,179],[234,182],[243,2],[210,2],[246,183],[92,184],[82,185],[84,186],[91,187],[86,2],[87,2],[85,188],[88,189],[79,2],[80,2],[81,184],[83,190],[89,2],[90,191],[134,192],[340,193],[364,194],[339,195],[363,196],[354,197],[356,198],[357,199],[362,200],[360,201],[361,201],[358,202],[130,203],[132,203],[93,2],[133,204],[131,2],[94,2]],"latestChangedDtsFile":"./dist/index.d.ts","version":"5.9.3"}
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tsconfig.tsbuildinfo is a generated TypeScript incremental build artifact and typically should not be committed. Keeping it in the repo adds noise to PRs and can cause frequent merge conflicts. Please remove this file from version control and add it to the appropriate .gitignore (and/or ensure build steps don’t stage it).

Copilot uses AI. Check for mistakes.
Comment on lines 19 to 35
/**
* Allocates `str` in Wasm linear memory and returns its address.
* Provided by the AssemblyScript runtime; declared here so the compiler
* knows about it. The `usize` return keeps the types consistent.
*/
declare function __newString(str: string): usize;

// The runtime helper used by AssemblyScript to allocate a string in WASM memory.
// We declare it explicitly so that the compiler knows about it. Using `number`
// keeps TypeScript happy in the editor, asc will still treat it as a u32.
declare function __newString(str: string): number;
// ── Exported lifecycle functions ──────────────────────────────────────────

// Standard entrypoint called by the plugin manager on startup.
/**
* Called once by PluginManager immediately after the plugin is loaded.
* Use this function for one-time initialization work.
*/
export function on_start(): void {
const msg = "Hello from TypeScript plugin!";
const ptr = __newString(msg);
log_info(ptr);
const msg = __newString("Hello from AssemblyScript plugin!");
log_info(msg);
}
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example passes an AssemblyScript string pointer from __newString() into log_info. However, the host implementation reads the argument via callContext.read(offset)?.string(), which expects an Extism-encoded string (as produced by Extism guest SDKs like extism_pdk::Memory::from_bytes), not an AssemblyScript runtime string object. As written, this example is very likely to log garbled data or fail at runtime. Use an Extism guest SDK for AssemblyScript (or a compatible allocation/encoding approach) and document the expected encoding (typically UTF-8 bytes in an Extism memory block).

Copilot uses AI. Check for mistakes.
Comment on lines +129 to +133
Subscribe to or publish on the system event bus (`HooksEventBus`). When a subscribed event fires, the host will call your plugin's exported `on_event(payload: i64) -> i64` function with a JSON payload `{"topic":"...","payload":...}`.

- `events_subscribe` requires `events:subscribe:<topic>` or `events:subscribe:*` permission.
- `events_publish` requires `events:publish` permission and can only publish to the `plugin.<id>.*` namespace.

Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc states that events_publish requires the events:publish permission, but the current implementation of EventsHostFunctions.publish() does not check for that permission (only the plugin.<id>.* namespace is enforced). Please either enforce the permission in code or update the docs to reflect the actual policy (namespace-only).

Copilot uses AI. Check for mistakes.
- Host functions validate permissions on every call.
- Plugins cannot access the host filesystem, network, or other processes unless those capabilities are explicitly provided as host functions (currently none are).
- The `events:publish` permission is restricted to the `plugin.<id>.*` namespace so plugins cannot impersonate system events.
- Vault keys are never logged by the host, even in debug mode.
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The security model claims “Vault keys are never logged by the host”, but the current host-side implementation logs vault keys in multiple places (e.g., vault_read/vault_write warnings and VaultHostFunctions permission-denied logs). Please either remove/redact vault key logging in code to match this guarantee, or soften/qualify this documentation statement.

Suggested change
- Vault keys are never logged by the host, even in debug mode.
- Vault keys are treated as sensitive: the host avoids logging secret values, but vault key identifiers may appear in diagnostic or permission-denied logs.

Copilot uses AI. Check for mistakes.
@Psyborgs-git
Copy link
Owner

@copilot apply changes based on the comments in this thread

…rmission, vault key logging, AS ABI, unused imports, stale tsbuildinfo

Co-authored-by: Psyborgs-git <49641518+Psyborgs-git@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 7, 2026

@copilot apply changes based on the comments in this thread

Applied all review comments in b6e25bc:

  • Error normalization (sandbox.ts): events_subscribe/events_publish error paths now use err instanceof Error ? err.message : String(err) to guarantee a string before setError() and JSON.stringify().
  • Vault key logging (sandbox.ts): Removed vault key names from warn logs — neither key nor value is logged. Also dropped now-unused _keyOffset reads.
  • events:publish permission (host/events.ts): Added explicit events:publish permission check before the namespace check.
  • Unused Serialize (rust-example-plugin/src/lib.rs): Removed.
  • Vault permission in rust example (rust-example-plugin/plugin.json, lib.rs, README.md): Removed vault:read:example-api-key — vault functions are JSPI-gated and not demonstrated.
  • AssemblyScript ABI (hello-world-plugin/src/index.ts, README.md, docs/getting-started/plugin.md): Replaced __newString (AS runtime heap, incompatible with Extism memory) with Memory.fromString() from @extism/as-pdk. Added @extism/as-pdk as a devDependency and updated docs to explain why the PDK allocator is required.
  • Docs (docs/features/plugins.md): Corrected vault logging claim ("values never logged, key identifiers may appear in permission-denied messages") and updated events_publish description to accurately reflect the enforced permission.
  • tsconfig.tsbuildinfo: Removed all four files from version control (git rm --cached); .gitignore already had **/tsconfig.tsbuildinfo.

@Psyborgs-git Psyborgs-git marked this pull request as ready for review March 7, 2026 13:44
@Psyborgs-git Psyborgs-git merged commit 5c3b0f2 into main Mar 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants