diff --git a/.gitignore b/.gitignore
index febb8ec9b..1e3be58fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,7 +29,7 @@ yarn-error.log*
didcomm-pkg
generated-docs
*.commit
-
+tsconfig.*.tsbuildinfo
# Environment variables
.env
.env.local
diff --git a/docs/develop/sdk/react/README.md b/docs/develop/sdk/react/README.md
new file mode 100644
index 000000000..2d68ebe53
--- /dev/null
+++ b/docs/develop/sdk/react/README.md
@@ -0,0 +1,105 @@
+# React
+
+The `@hyperledger/identus-react` package provides a suite of React context providers and hooks designed to seamlessly integrate the `@hyperledger/identus-sdk` into your React applications. By abstracting the complexities of agent lifecycle management, database connections, and asynchronous operations, this package allows you to focus on building your wallet or decentralized identity (DID) application.
+
+## Installation
+
+Install the React SDK package along with its peer dependencies:
+
+```bash
+npm install @hyperledger/identus-react @hyperledger/identus-sdk react react-dom
+# or
+yarn add @hyperledger/identus-react @hyperledger/identus-sdk react react-dom
+```
+
+## Architecture Concepts
+
+The package uses a robust Provider pattern to manage state and connections across your application:
+- **Providers**: Wrap your component tree to manage long-lived connections (e.g., `DatabaseProvider`, `AgentProvider`).
+- **Contexts**: Maintain shared state for underlying SDK entities.
+- **Hooks**: Provide clean, typed access to contexts (e.g., `useAgent`, `usePrismDID`) to execute identity operations directly within your components.
+
+## Setup & Providers
+
+To use the hooks, you first need to wrap your application in the appropriate providers. Providers handle the initialization and lifecycle of underlying SDK services.
+
+### Core Providers
+
+Here is an example setup initializing the core database and agent providers:
+
+```tsx
+import React, { useEffect } from 'react';
+import { DatabaseProvider, AgentProvider, useDatabase, useAgent } from '@hyperledger/identus-react';
+import { StorageType } from '@hyperledger/identus-sdk';
+
+// A child component utilizing the providers
+const AppContent = () => {
+ const { start: startDb, state: dbState } = useDatabase();
+ const { start: startAgent, state: agentState } = useAgent();
+
+ useEffect(() => {
+ // Initialize the local database
+ startDb({
+ name: 'my-identus-database',
+ storageType: StorageType.IndexDB
+ }).then(() => {
+ // Once the DB is ready, start the agent
+ startAgent();
+ });
+ }, [startDb, startAgent]);
+
+ return (
+
+
Database State: {dbState}
+
Agent State: {agentState}
+
+ );
+};
+
+// Application Root
+const App = () => {
+ return (
+
+
+ {/* Other specialized providers like CredentialsProvider, ConnectionsProvider can be nested here */}
+
+
+
+ );
+};
+
+export default App;
+```
+
+## Available Hooks
+
+The SDK exposes specific hooks to manage DIDs, credentials, messaging, and connections. Each hook requires its corresponding provider (or a higher-level provider like `AgentProvider` or `DatabaseProvider`) to be present in the component tree.
+
+### Connection & Agent Management
+- **`useDatabase()`**: Access local database operations (Pluto), initialize storage, and manage global settings.
+- **`useAgent()`**: Manage the active DIDComm agent's lifecycle (`start`, `stop`) and access its instance.
+- **`useConnections()`**: Access and manage established peer-to-peer (DIDComm) connections.
+- **`useMessages()`**: Access the message inbox, fetch unread messages, and mark messages as read.
+
+### DID Management
+- **`usePrismDID()`**: Create and manage long-lived, blockchain-anchored Prism DIDs.
+- **`usePeerDID()`**: Quickly generate ephemeral Peer DIDs for direct, off-ledger communication.
+- **`useCastor()`**: Access the underlying Castor service for advanced DID operations and resolution.
+
+### Credential Issuance & Verification
+- **`useCredentials()`**: Retrieve, organize, and delete stored Verifiable Credentials from the local wallet.
+- **`useIssuer()`**: Expose operations for issuing credentials. Create Out-of-Band (OOB) offers and issue credentials directly to holders.
+- **`useHolder()`**: Manage incoming credential offers and requests. Parse OOB messages, accept credential offers, and automatically handle presentation requests.
+- **`useVerifier()`**: Issue presentation requests and verify incoming credential presentations.
+
+## Configuration & Resolvers
+
+The package provides utility configurations to simplify connecting to external services.
+For example, you can create a custom DID resolver to interact with your specific node infrastructure:
+
+```ts
+import { createResolver } from '@hyperledger/identus-react/resolver';
+
+// Produce a custom Prism DID resolver compatible with Castor
+const MyCustomResolver = createResolver('https://my-node.example.com/prism-agent/dids');
+```
\ No newline at end of file
diff --git a/docs/develop/sdk/storage/default-store.md b/docs/develop/sdk/storage/default-store.md
index 97a65f515..1b840f3f9 100644
--- a/docs/develop/sdk/storage/default-store.md
+++ b/docs/develop/sdk/storage/default-store.md
@@ -1,6 +1,6 @@
-# Default Store (RIDB)
+# Default Store
The SDK ships with a ready-to-use store backed by [RIDB](https://www.npmjs.com/package/@trust0/ridb) — a TypeScript-first reactive database that supports encryption, schema migrations, and pluggable storage backends.
diff --git a/docs/reference/sdk/_category_.json b/docs/reference/sdk/_category_.json
index ac8e0037a..eaf6d9dde 100644
--- a/docs/reference/sdk/_category_.json
+++ b/docs/reference/sdk/_category_.json
@@ -1,6 +1,6 @@
{
"label": "TS SDK",
- "position": 5,
+ "position": 1,
"collapsed": true,
"collapsible": true,
"link": {
diff --git a/docs/reference/sdk/overview/_category_.json b/docs/reference/sdk/overview/_category_.json
new file mode 100644
index 000000000..3ea7d3e6d
--- /dev/null
+++ b/docs/reference/sdk/overview/_category_.json
@@ -0,0 +1,10 @@
+{
+ "label": "Overview",
+ "position": 1,
+ "collapsed": true,
+ "collapsible": true,
+ "link": {
+ "type": "doc",
+ "id": "sdk-ts/docs/sdk/overview/README.md"
+ }
+}
\ No newline at end of file
diff --git a/docs/reference/sdk/plugins/_category_.json b/docs/reference/sdk/plugins/_category_.json
new file mode 100644
index 000000000..220ea9e21
--- /dev/null
+++ b/docs/reference/sdk/plugins/_category_.json
@@ -0,0 +1,10 @@
+{
+ "label": "Plugins",
+ "position": 2,
+ "collapsed": true,
+ "collapsible": true,
+ "link": {
+ "type": "generated-index",
+ "title": "Plugins"
+ }
+}
\ No newline at end of file
diff --git a/docs/reference/sdk/react/_category_.json b/docs/reference/sdk/react/_category_.json
new file mode 100644
index 000000000..e907405ac
--- /dev/null
+++ b/docs/reference/sdk/react/_category_.json
@@ -0,0 +1,10 @@
+{
+ "label": "React",
+ "position": 3,
+ "collapsed": true,
+ "collapsible": true,
+ "link": {
+ "type": "doc",
+ "id": "sdk-ts/docs/react/README.md"
+ }
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 650d4e1bd..921349f9b 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,6 @@
"vitest": "^3.1.1"
},
"dependencies": {
- "@trust0/identus-store": "^2.0.0",
"multiformats": "^13.4.2"
},
"peerDependencies": {
diff --git a/packages/lib/protos/tsconfig.lib.tsbuildinfo b/packages/lib/protos/tsconfig.lib.tsbuildinfo
deleted file mode 100644
index f7a5c1dc6..000000000
--- a/packages/lib/protos/tsconfig.lib.tsbuildinfo
+++ /dev/null
@@ -1 +0,0 @@
-{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbols/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/any/any.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/any/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/literal/literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/literal/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/enum/enum.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/enum/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/function/function.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/function/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/never/never.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/never/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/recursive/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/tuple/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/error/error.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/error/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/string/string.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/string/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/boolean/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/number/number.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/number/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/integer/integer.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/integer/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/bigint/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/union.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/iterator/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/promise/promise.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/promise/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/sets/set.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/sets/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/optional.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/not/not.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/not/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/regexp/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/record/record.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/record/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/ref/ref.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/ref/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unsafe/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/transform/transform.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/transform/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/static/static.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/static/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/object/object.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/object/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/helpers/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/array/array.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/array/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/date/date.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/date/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/null/null.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/null/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbol/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/uint8array/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/undefined/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unknown/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/void/void.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/void/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/schema.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/value.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/kind.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/value.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/patterns/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/format.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/awaited/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/composite/composite.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/composite/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/const/const.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/const/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/deref/deref.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/deref/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/instance-type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/parameters/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/partial.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/required.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/rest/rest.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/rest/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/return-type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/strict/strict.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/strict/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/json.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/javascript.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/index.d.mts","./src/backup/v0_0_1.ts","./src/backup/index.ts","./src/models/errors/common.ts","./src/utils/guards.ts","./src/models/api.ts","./src/models/didpair.ts","./src/models/mediator.ts","../../../node_modules/@stablelib/random/lib/source/index.d.ts","../../../node_modules/@stablelib/random/lib/source/system.d.ts","../../../node_modules/@stablelib/random/lib/random.d.ts","../../../node_modules/@stablelib/uuid/lib/uuid.d.ts","../../../node_modules/multiformats/dist/src/bases/interface.d.ts","../../../node_modules/multiformats/dist/src/bases/base.d.ts","../../../node_modules/multiformats/dist/src/bases/base64.d.ts","./src/models/messageattachment.ts","./src/models/errors/agent.ts","./src/models/keyproperties.ts","./src/models/keymanagement/signablekey.ts","./src/models/keymanagement/storablekey.ts","./src/models/keymanagement/verifiablekey.ts","./src/models/keymanagement/curve.ts","./src/models/keymanagement/keytypes.ts","./src/models/keymanagement/publickey.ts","./src/models/keymanagement/exportable/jwk.ts","./src/models/keymanagement/exportable/pem.ts","./src/models/keymanagement/exportable/exportablekey.ts","./src/models/keymanagement/exportable/index.ts","./src/models/keymanagement/key.ts","./src/models/keymanagement/privatekey.ts","./src/models/keymanagement/derivablekey.ts","./src/models/keymanagement/keycurve.ts","./src/models/keymanagement/index.ts","./src/models/errors/apollo.ts","./src/models/errors/castor.ts","./src/models/errors/mercury.ts","./src/models/errors/pluto.ts","./src/models/errors/pollux.ts","./src/models/errors.ts","./src/models/message.ts","./src/models/credential.ts","./src/peer-did/peerdid.ts","./src/buildingblocks/pluto.ts","./src/models/did.ts","./src/models/diddocument.ts","./src/models/didresolver.ts","./src/models/didurl.ts","./src/models/keypair.ts","./src/models/linksecret.ts","./src/models/prismdid.ts","./src/models/seed.ts","./src/models/wordlist.ts","./src/models/seedwords.ts","./src/models/signature.ts","./src/models/credentialmetadata.ts","./src/models/index.ts","./src/protocols/keyrestoration.ts","./src/protocols/startable.ts","./src/protocols/index.ts","./src/buildingblocks/apollo.ts","./src/models/derivation/derivationaxis.ts","./src/models/derivation/index.ts","../../../node_modules/@types/google-protobuf/index.d.ts","./src/buildingblocks/castor/protos/google/protobuf/timestamp.ts","./src/buildingblocks/castor/protos/common_models.ts","./src/buildingblocks/castor/protos/node_models.ts","./src/models/derivation/schemas/prismderivation.ts","./src/buildingblocks/castor.ts","./src/buildingblocks/mercury.ts","../../../node_modules/did-resolver/lib/resolver.d.ts","../../../node_modules/did-jwt/lib/encryption/types.d.ts","../../../node_modules/multibase/dist/src/types.d.ts","../../../node_modules/multibase/dist/src/base.d.ts","../../../node_modules/multibase/dist/src/index.d.ts","../../../node_modules/did-jwt/lib/util.d.ts","../../../node_modules/did-jwt/lib/jwt.d.ts","../../../node_modules/did-jwt/lib/signers/simplesigner.d.ts","../../../node_modules/did-jwt/lib/signers/ellipticsigner.d.ts","../../../node_modules/did-jwt/lib/signers/naclsigner.d.ts","../../../node_modules/did-jwt/lib/signers/es256ksigner.d.ts","../../../node_modules/did-jwt/lib/signers/es256signer.d.ts","../../../node_modules/did-jwt/lib/signers/eddsasigner.d.ts","../../../node_modules/@noble/hashes/esm/utils.d.ts","../../../node_modules/@noble/hashes/esm/_md.d.ts","../../../node_modules/@noble/hashes/esm/legacy.d.ts","../../../node_modules/@noble/hashes/esm/ripemd160.d.ts","../../../node_modules/did-jwt/lib/digest.d.ts","../../../node_modules/did-jwt/lib/encryption/jwe.d.ts","../../../node_modules/did-jwt/lib/encryption/xc20pdir.d.ts","../../../node_modules/did-jwt/lib/encryption/x25519-ecdh-es.d.ts","../../../node_modules/did-jwt/lib/encryption/x25519-ecdh-1pu.d.ts","../../../node_modules/did-jwt/lib/encryption/ecdh.d.ts","../../../node_modules/did-jwt/lib/encryption/xc20pencryption.d.ts","../../../node_modules/did-jwt/lib/encryption/createencrypter.d.ts","../../../node_modules/did-jwt/lib/errors.d.ts","../../../node_modules/did-jwt/lib/index.d.ts","./src/utils/jwt.ts","./src/index.ts","../../../node_modules/@types/google-protobuf/google/protobuf/timestamp_pb.d.ts","./src/buildingblocks/castor/protos/common_models_pb.d.ts","./src/buildingblocks/castor/protos/node_models_pb.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/@types/node/node_modules/undici-types/utility.d.ts","../../../node_modules/@types/node/node_modules/undici-types/header.d.ts","../../../node_modules/@types/node/node_modules/undici-types/readable.d.ts","../../../node_modules/@types/node/node_modules/undici-types/fetch.d.ts","../../../node_modules/@types/node/node_modules/undici-types/formdata.d.ts","../../../node_modules/@types/node/node_modules/undici-types/connector.d.ts","../../../node_modules/@types/node/node_modules/undici-types/client-stats.d.ts","../../../node_modules/@types/node/node_modules/undici-types/client.d.ts","../../../node_modules/@types/node/node_modules/undici-types/errors.d.ts","../../../node_modules/@types/node/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/@types/node/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/@types/node/node_modules/undici-types/global-origin.d.ts","../../../node_modules/@types/node/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/@types/node/node_modules/undici-types/pool.d.ts","../../../node_modules/@types/node/node_modules/undici-types/handlers.d.ts","../../../node_modules/@types/node/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/@types/node/node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/@types/node/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/@types/node/node_modules/undici-types/agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-client.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/@types/node/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/@types/node/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/@types/node/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/api.d.ts","../../../node_modules/@types/node/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/@types/node/node_modules/undici-types/interceptors.d.ts","../../../node_modules/@types/node/node_modules/undici-types/util.d.ts","../../../node_modules/@types/node/node_modules/undici-types/cookies.d.ts","../../../node_modules/@types/node/node_modules/undici-types/patch.d.ts","../../../node_modules/@types/node/node_modules/undici-types/websocket.d.ts","../../../node_modules/@types/node/node_modules/undici-types/eventsource.d.ts","../../../node_modules/@types/node/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/@types/node/node_modules/undici-types/content-type.d.ts","../../../node_modules/@types/node/node_modules/undici-types/cache.d.ts","../../../node_modules/@types/node/node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/bn.js/index.d.ts","./src/models/ecconfig.ts","./src/models/derivation/schemas/deprecatedderivation.ts","./src/models/errors/connection.ts","./src/models/revocation/index.ts","./src/protocols/payload.ts","../../../node_modules/@types/aria-query/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/deep-eql/index.d.ts","../../../node_modules/assertion-error/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/clone/index.d.ts","../../../node_modules/@types/common-tags/index.d.ts","../../../node_modules/@types/cors/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/elliptic/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/estree-jsx/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/figlet/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/jsonld/jsonld.d.ts","../../../node_modules/@types/jsonld/jsonld-spec.d.ts","../../../node_modules/@types/jsonld/index.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/lokijs/index.d.ts","../../../node_modules/@types/long/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/mdx/types.d.ts","../../../node_modules/@types/mdx/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/pako/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/prismjs/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts","../../../node_modules/@types/react-redux/node_modules/@types/react/global.d.ts","../../../node_modules/@types/react-redux/node_modules/@types/react/index.d.ts","../../../node_modules/redux/index.d.ts","../../../node_modules/@types/react-redux/node_modules/@types/hoist-non-react-statics/index.d.ts","../../../node_modules/@types/react-redux/index.d.ts","../../../node_modules/@types/simple-peer/index.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/webidl-conversions/index.d.ts","../../../node_modules/@types/whatwg-url/index.d.ts","../../../node_modules/@types/ws/index.d.ts"],"fileIdsList":[[325,346,409,417,421,424,426,427,428,441],[325,326,346,409,417,421,424,426,427,428,441],[327,346,409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441],[61,63,67,70,72,74,76,78,80,82,84,88,92,94,96,98,100,102,104,106,114,119,121,123,125,127,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,167,170,174,176,179,181,186,188,190,192,194,198,204,208,210,217,221,223,226,230,233,235,237,239,242,346,409,417,421,424,426,427,428,441],[61,167,346,409,417,421,424,426,427,428,441],[62,346,409,417,421,424,426,427,428,441],[61,144,148,167,346,409,417,421,424,426,427,428,441],[149,346,409,417,421,424,426,427,428,441],[61,144,167,346,409,417,421,424,426,427,428,441],[66,346,409,417,421,424,426,427,428,441],[88,92,123,167,346,409,417,421,424,426,427,428,441],[180,346,409,417,421,424,426,427,428,441],[105,346,409,417,421,424,426,427,428,441],[99,346,409,417,421,424,426,427,428,441],[168,169,346,409,417,421,424,426,427,428,441],[167,346,409,417,421,424,426,427,428,441],[82,88,119,125,146,148,167,186,346,409,417,421,424,426,427,428,441],[187,346,409,417,421,424,426,427,428,441],[63,70,76,80,82,94,106,146,148,152,154,156,158,160,162,167,346,409,417,421,424,426,427,428,441],[189,346,409,417,421,424,426,427,428,441],[74,94,148,167,346,409,417,421,424,426,427,428,441],[191,346,409,417,421,424,426,427,428,441],[61,70,72,130,144,148,167,346,409,417,421,424,426,427,428,441],[73,346,409,417,421,424,426,427,428,441],[151,346,409,417,421,424,426,427,428,441],[67,74,80,88,92,94,121,123,138,146,148,150,167,346,409,417,421,424,426,427,428,441],[193,346,409,417,421,424,426,427,428,441],[61,76,167,346,409,417,421,424,426,427,428,441],[77,346,409,417,421,424,426,427,428,441],[95,346,409,417,421,424,426,427,428,441],[127,146,167,196,346,409,417,421,424,426,427,428,441],[114,167,196,346,409,417,421,424,426,427,428,441],[82,92,114,127,144,148,167,195,197,346,409,417,421,424,426,427,428,441],[195,196,197,346,409,417,421,424,426,427,428,441],[96,167,346,409,417,421,424,426,427,428,441],[76,127,146,148,167,201,346,409,417,421,424,426,427,428,441],[127,146,167,201,346,409,417,421,424,426,427,428,441],[92,127,144,148,167,200,202,346,409,417,421,424,426,427,428,441],[199,200,201,202,203,346,409,417,421,424,426,427,428,441],[127,146,167,206,346,409,417,421,424,426,427,428,441],[114,167,206,346,409,417,421,424,426,427,428,441],[82,92,114,127,144,148,167,205,207,346,409,417,421,424,426,427,428,441],[205,206,207,346,409,417,421,424,426,427,428,441],[79,346,409,417,421,424,426,427,428,441],[171,172,173,346,409,417,421,424,426,427,428,441],[61,63,67,70,74,76,80,82,84,88,92,94,98,100,102,104,106,114,121,123,127,130,132,134,136,138,140,142,146,150,152,154,156,158,160,162,164,167,346,409,417,421,424,426,427,428,441],[61,63,67,70,74,76,80,82,84,88,92,94,96,98,100,102,104,106,114,121,123,127,130,132,134,136,138,140,142,146,150,152,154,156,158,160,162,164,167,346,409,417,421,424,426,427,428,441],[82,146,167,346,409,417,421,424,426,427,428,441],[147,346,409,417,421,424,426,427,428,441],[115,116,117,118,346,409,417,421,424,426,427,428,441],[117,127,146,148,167,346,409,417,421,424,426,427,428,441],[115,119,127,146,167,346,409,417,421,424,426,427,428,441],[76,92,102,104,114,167,346,409,417,421,424,426,427,428,441],[82,84,88,92,94,115,116,118,127,146,148,150,167,346,409,417,421,424,426,427,428,441],[209,346,409,417,421,424,426,427,428,441],[74,167,346,409,417,421,424,426,427,428,441],[103,346,409,417,421,424,426,427,428,441],[85,86,87,346,409,417,421,424,426,427,428,441],[70,82,85,130,167,346,409,417,421,424,426,427,428,441],[82,85,167,346,409,417,421,424,426,427,428,441],[167,212,346,409,417,421,424,426,427,428,441],[211,212,213,214,215,216,346,409,417,421,424,426,427,428,441],[76,127,146,148,167,212,346,409,417,421,424,426,427,428,441],[76,92,114,127,167,211,346,409,417,421,424,426,427,428,441],[120,346,409,417,421,424,426,427,428,441],[182,183,184,185,346,409,417,421,424,426,427,428,441],[127,146,148,167,183,346,409,417,421,424,426,427,428,441],[84,88,92,94,125,146,148,150,167,346,409,417,421,424,426,427,428,441],[76,92,102,127,148,167,182,184,346,409,417,421,424,426,427,428,441],[75,346,409,417,421,424,426,427,428,441],[64,65,126,346,409,417,421,424,426,427,428,441],[61,146,167,346,409,417,421,424,426,427,428,441],[64,65,67,70,74,76,78,80,88,92,94,119,121,123,125,130,146,148,150,167,346,409,417,421,424,426,427,428,441],[81,346,409,417,421,424,426,427,428,441],[131,346,409,417,421,424,426,427,428,441],[153,346,409,417,421,424,426,427,428,441],[101,346,409,417,421,424,426,427,428,441],[145,346,409,417,421,424,426,427,428,441],[61,70,130,144,148,167,346,409,417,421,424,426,427,428,441],[218,219,220,346,409,417,421,424,426,427,428,441],[127,146,167,219,346,409,417,421,424,426,427,428,441],[127,146,148,167,219,346,409,417,421,424,426,427,428,441],[84,88,92,119,127,146,148,167,218,220,346,409,417,421,424,426,427,428,441],[128,129,346,409,417,421,424,426,427,428,441],[127,128,146,346,409,417,421,424,426,427,428,441],[61,127,129,148,167,346,409,417,421,424,426,427,428,441],[222,346,409,417,421,424,426,427,428,441],[80,94,148,167,346,409,417,421,424,426,427,428,441],[224,225,346,409,417,421,424,426,427,428,441],[127,146,148,167,224,346,409,417,421,424,426,427,428,441],[70,72,84,88,92,127,130,146,148,167,225,346,409,417,421,424,426,427,428,441],[175,346,409,417,421,424,426,427,428,441],[227,228,229,346,409,417,421,424,426,427,428,441],[127,146,167,228,346,409,417,421,424,426,427,428,441],[127,146,148,167,228,346,409,417,421,424,426,427,428,441],[84,88,92,119,127,146,148,167,227,229,346,409,417,421,424,426,427,428,441],[122,346,409,417,421,424,426,427,428,441],[71,346,409,417,421,424,426,427,428,441],[70,130,167,346,409,417,421,424,426,427,428,441],[68,69,346,409,417,421,424,426,427,428,441],[68,127,146,346,409,417,421,424,426,427,428,441],[61,69,127,148,167,346,409,417,421,424,426,427,428,441],[135,346,409,417,421,424,426,427,428,441],[61,63,76,78,82,92,98,102,104,114,134,144,146,148,167,346,409,417,421,424,426,427,428,441],[83,346,409,417,421,424,426,427,428,441],[137,346,409,417,421,424,426,427,428,441],[133,346,409,417,421,424,426,427,428,441],[177,178,346,409,417,421,424,426,427,428,441],[231,232,346,409,417,421,424,426,427,428,441],[127,146,148,167,231,346,409,417,421,424,426,427,428,441],[70,72,84,88,92,127,130,146,148,167,232,346,409,417,421,424,426,427,428,441],[234,346,409,417,421,424,426,427,428,441],[88,92,94,167,346,409,417,421,424,426,427,428,441],[236,346,409,417,421,424,426,427,428,441],[80,167,346,409,417,421,424,426,427,428,441],[63,67,74,76,78,80,84,88,92,94,98,100,102,104,106,114,121,123,132,134,136,138,146,150,152,154,156,158,160,162,164,165,346,409,417,421,424,426,427,428,441],[165,166,346,409,417,421,424,426,427,428,441],[61,346,409,417,421,424,426,427,428,441],[124,346,409,417,421,424,426,427,428,441],[143,346,409,417,421,424,426,427,428,441],[67,70,74,78,80,84,88,92,94,121,123,130,132,136,138,140,142,146,148,150,167,346,409,417,421,424,426,427,428,441],[238,346,409,417,421,424,426,427,428,441],[97,346,409,417,421,424,426,427,428,441],[155,346,409,417,421,424,426,427,428,441],[60,346,409,417,421,424,426,427,428,441],[76,92,96,98,100,102,104,106,107,114,346,409,417,421,424,426,427,428,441],[76,92,96,100,107,108,114,148,346,409,417,421,424,426,427,428,441],[107,108,109,110,111,112,113,346,409,417,421,424,426,427,428,441],[96,346,409,417,421,424,426,427,428,441],[96,114,346,409,417,421,424,426,427,428,441],[76,92,98,100,102,106,114,148,346,409,417,421,424,426,427,428,441],[61,76,82,92,98,100,102,104,106,110,144,148,167,346,409,417,421,424,426,427,428,441],[76,92,112,144,148,346,409,417,421,424,426,427,428,441],[141,346,409,417,421,424,426,427,428,441],[93,346,409,417,421,424,426,427,428,441],[240,241,346,409,417,421,424,426,427,428,441],[67,74,80,106,121,123,134,152,156,158,160,164,167,181,192,210,223,237,240,346,409,417,421,424,426,427,428,441],[63,70,72,76,78,82,84,88,92,94,98,100,102,104,114,119,127,130,132,136,138,140,142,146,150,154,162,167,186,188,190,194,198,204,208,217,221,226,230,233,235,346,409,417,421,424,426,427,428,441],[157,346,409,417,421,424,426,427,428,441],[159,346,409,417,421,424,426,427,428,441],[89,90,91,346,409,417,421,424,426,427,428,441],[70,82,89,130,167,346,409,417,421,424,426,427,428,441],[82,89,167,346,409,417,421,424,426,427,428,441],[161,346,409,417,421,424,426,427,428,441],[139,346,409,417,421,424,426,427,428,441],[163,346,409,417,421,424,426,427,428,441],[251,252,346,409,417,421,424,426,427,428,441],[251,346,409,417,421,424,426,427,428,441],[253,346,409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,466],[346,409,417,421,423,424,426,427,428,441,466,474],[346,409,417,421,424,426,427,428,441,476,477],[346,409,417,421,423,424,426,427,428,441,466],[346,409,417,421,424,426,427,428,441,482],[346,409,417,421,424,426,427,428,441,467],[346,409,417,421,424,426,427,428,441,485,486],[346,409,417,420,421,423,424,426,427,428,441,466,487,488,489],[346,409,417,421,424,426,427,428,441,475,488,490,492],[305,346,409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,495],[346,409,417,421,424,426,427,428,441,499,500],[346,409,417,421,424,426,427,428,441,499],[346,409,417,421,424,426,427,428,441,502,504,505,506,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,505,506,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,503,504,505,506,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,506,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,510,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,510,511,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,510,511,512,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,510,511,512,513],[346,409,417,421,424,426,427,428,441,518,519],[346,406,407,409,417,421,424,426,427,428,441],[346,408,409,417,421,424,426,427,428,441],[409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,449],[346,409,410,415,417,420,421,424,426,427,428,430,441,446,458],[346,409,410,411,417,420,421,424,426,427,428,441],[346,409,412,417,421,424,426,427,428,441,459],[346,409,413,414,417,421,424,426,427,428,432,441],[346,409,414,417,421,424,426,427,428,441,446,455],[346,409,415,417,420,421,424,426,427,428,430,441],[346,408,409,416,417,421,424,426,427,428,441],[346,409,417,418,421,424,426,427,428,441],[346,409,417,419,420,421,424,426,427,428,441],[346,408,409,417,420,421,424,426,427,428,441],[346,409,417,420,421,422,424,426,427,428,441,446,458],[346,409,417,420,421,422,424,426,427,428,441,446,449],[346,396,409,417,420,421,423,424,426,427,428,430,441,446,458],[346,409,417,420,421,423,424,426,427,428,430,441,446,455,458],[346,409,417,421,423,424,425,426,427,428,441,446,455,458],[344,345,346,347,348,349,350,351,352,353,354,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465],[346,409,417,420,421,424,426,427,428,441],[346,409,417,421,424,426,428,441],[346,409,417,421,424,426,427,428,429,441,458],[346,409,417,420,421,424,426,427,428,430,441,446],[346,361,364,367,368,409,417,421,424,426,427,428,441,458],[346,364,409,417,421,424,426,427,428,441,446,458],[346,364,368,409,417,421,424,426,427,428,441,458],[346,409,417,421,424,426,427,428,441,446],[346,358,409,417,421,424,426,427,428,441],[346,362,409,417,421,424,426,427,428,441],[346,360,361,364,409,417,421,424,426,427,428,441,458],[346,409,417,421,424,426,427,428,430,441,455],[346,358,409,417,421,424,426,427,428,441,466],[346,360,364,409,417,421,424,426,427,428,430,441,458],[346,355,356,357,359,363,409,417,420,421,424,426,427,428,441,446,458],[346,364,373,381,409,417,421,424,426,427,428,441],[346,356,362,409,417,421,424,426,427,428,441],[346,364,390,391,409,417,421,424,426,427,428,441],[346,356,359,364,409,417,421,424,426,427,428,441,449,458,466],[346,364,409,417,421,424,426,427,428,441],[346,360,364,409,417,421,424,426,427,428,441,458],[346,355,409,417,421,424,426,427,428,441],[346,358,359,360,362,363,364,365,366,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,391,392,393,394,395,409,417,421,424,426,427,428,441],[346,364,383,386,409,417,421,424,426,427,428,441],[346,364,373,374,375,409,417,421,424,426,427,428,441],[346,362,364,374,376,409,417,421,424,426,427,428,441],[346,363,409,417,421,424,426,427,428,441],[346,356,358,364,409,417,421,424,426,427,428,441],[346,364,368,374,376,409,417,421,424,426,427,428,441],[346,368,409,417,421,424,426,427,428,441],[346,362,364,367,409,417,421,424,426,427,428,441,458],[346,356,360,364,373,409,417,421,424,426,427,428,441],[346,364,383,409,417,421,424,426,427,428,441],[346,376,409,417,421,424,426,427,428,441],[346,358,364,390,409,417,421,424,426,427,428,441,449,464,466],[346,409,417,421,424,426,427,428,432,441],[346,409,417,421,424,426,427,428,433,441],[346,409,417,420,421,424,426,427,428,436,441],[346,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465],[346,409,417,421,424,426,427,428,438,441],[346,409,417,421,424,426,427,428,439,441],[346,409,414,417,421,424,426,427,428,430,441,449],[346,409,417,420,421,424,426,427,428,441,442],[346,409,417,421,424,426,427,428,441,443,459,462],[346,409,417,420,421,424,426,427,428,441,446,448,449],[346,409,417,421,424,426,427,428,441,447,449],[346,409,417,421,424,426,427,428,441,449,459],[346,409,417,421,424,426,427,428,441,450],[346,406,409,417,421,424,426,427,428,441,446,452,458],[346,409,417,421,424,426,427,428,441,446,451],[346,409,417,420,421,424,426,427,428,441,453,454],[346,409,417,421,424,426,427,428,441,453,454],[346,409,414,417,421,424,426,427,428,430,441,446,455],[346,409,417,421,424,426,427,428,441,456],[346,409,417,421,424,426,427,428,430,441,457],[346,409,417,421,423,424,426,427,428,439,441,458],[346,409,417,421,424,426,427,428,441,459,460],[346,409,414,417,421,424,426,427,428,441,460],[346,409,417,421,424,426,427,428,441,446,461],[346,409,417,421,424,426,427,428,429,441,462],[346,409,417,421,424,426,427,428,441,463],[346,409,412,417,421,424,426,427,428,441],[346,409,414,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,459],[346,396,409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,458],[346,409,417,421,424,426,427,428,441,464],[346,409,417,421,424,426,427,428,436,441],[346,409,417,421,424,426,427,428,441,454],[346,396,409,417,420,421,422,424,426,427,428,436,441,446,449,458,461,462,464],[346,409,417,421,424,426,427,428,441,446,465],[346,409,417,421,424,426,427,428,441,527],[346,409,417,421,424,426,427,428,441,530,531,532],[346,409,417,421,424,426,427,428,441,530],[346,409,417,421,424,426,427,428,441,526,529],[346,409,417,421,424,426,427,428,441,524,525,526],[346,409,417,421,424,426,427,428,441,446,466],[346,409,417,421,423,424,426,427,428,441,466,491],[346,409,417,420,421,423,424,425,426,427,428,441,446,455,458,465,466],[325,328,346,409,417,421,424,426,427,428,441],[313,346,409,417,421,424,426,427,428,441],[317,346,409,417,421,424,426,427,428,441],[312,313,346,409,417,421,424,426,427,428,441],[313,317,318,319,320,321,322,323,324,329,330,331,332,333,334,335,336,337,346,409,417,421,424,426,427,428,441],[312,317,346,409,417,421,424,426,427,428,441],[318,346,409,417,421,424,426,427,428,441],[312,313,316,346,409,417,421,424,426,427,428,441],[314,346,409,417,421,424,426,427,428,441],[314,315,346,409,417,421,424,426,427,428,441],[255,346,409,417,421,424,426,427,428,441],[256,346,409,417,421,424,426,427,428,441],[244,346,409,417,421,424,426,427,428,441],[243,346,409,417,421,424,426,427,428,441],[260,294,298,346,409,417,421,424,426,427,428,441],[298,309,346,409,417,421,424,426,427,428,441],[305,306,346,409,417,421,424,426,427,428,441],[305,341,346,409,417,421,424,426,427,428,441],[305,306,307,346,409,417,421,424,426,427,428,441],[305,341,342,346,409,417,421,424,426,427,428,441],[282,346,409,417,421,424,426,427,428,441],[245,247,249,250,254,282,283,284,298,301,346,409,417,421,424,426,427,428,441],[244,245,247,284,285,298,301,302,310,311,339,346,409,417,421,424,426,427,428,441],[247,346,409,417,421,424,426,427,428,441],[285,346,409,417,421,424,426,427,428,441],[283,285,346,409,417,421,424,426,427,428,441],[281,346,409,417,421,424,426,427,428,441],[303,346,409,417,421,424,426,427,428,441],[281,303,304,346,409,417,421,424,426,427,428,441],[281,303,304,308,346,409,417,421,424,426,427,428,441],[277,285,346,409,417,421,424,426,427,428,441],[247,275,286,346,409,417,421,424,426,427,428,441],[286,346,409,417,421,424,426,427,428,441],[287,346,409,417,421,424,426,427,428,441],[246,259,276,277,278,279,280,346,409,417,421,424,426,427,428,441],[246,247,275,346,409,417,421,424,426,427,428,441],[246,346,409,417,421,424,426,427,428,441],[248,249,250,258,260,275,281,282,283,286,287,288,289,290,291,292,293,294,295,296,297,346,409,417,421,424,426,427,428,441],[272,346,409,417,421,424,426,427,428,441],[257,266,267,268,271,272,346,409,417,421,424,426,427,428,441],[267,268,269,346,409,417,421,424,426,427,428,441],[247,257,260,264,266,272,346,409,417,421,424,426,427,428,441],[271,346,409,417,421,424,426,427,428,441],[261,262,263,264,265,266,270,271,272,273,274,346,409,417,421,424,426,427,428,441],[260,261,262,263,264,265,270,273,346,409,417,421,424,426,427,428,441],[264,346,409,417,421,424,426,427,428,441],[260,266,271,285,346,409,417,421,424,426,427,428,441],[260,275,346,409,417,421,424,426,427,428,441],[247,257,258,281,285,286,298,346,409,417,421,424,426,427,428,441],[254,257,340,346,409,417,421,424,426,427,428,441],[275,281,286,346,409,417,421,424,426,427,428,441],[293,294,346,409,417,421,424,426,427,428,441],[298,346,409,417,421,424,426,427,428,441],[299,300,346,409,417,421,424,426,427,428,441],[247,257,280,338,346,409,417,421,424,426,427,428,441]],"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":"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":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"b104e2da53231a529373174880dc0abfbc80184bb473b6bf2a9a0746bebb663d","impliedFormat":99},{"version":"3d4bb4d84af5f0b348f01c85537da1c7afabc174e48806c8b20901377c57b8e4","impliedFormat":99},{"version":"a2500b15294325d9784a342145d16ef13d9efb1c3c6cb4d89934b2c0d521b4ab","impliedFormat":99},{"version":"79d5c409e84764fabdd276976a31928576dcf9aea37be3b5a81f74943f01f3ff","impliedFormat":99},{"version":"8ea020ea63ecc981b9318fc532323e31270c911a7ade4ba74ab902fcf8281c45","impliedFormat":99},{"version":"c81e1a9b03e4de1225b33ac84aaf50a876837057828e0806d025daf919bf2d51","impliedFormat":99},{"version":"bb7264d8bd6152524f2ef5dae5c260ae60d459bf406202258bd0ce57c79e5a6d","impliedFormat":99},{"version":"fb66165c4976bc21a4fde14101e36c43d46f907489b7b6a5f2a2679108335d4a","impliedFormat":99},{"version":"628c2e0a0b61be3e44f296083e6af9b5a9b6881037dd43e7685ee473930a4404","impliedFormat":99},{"version":"4776f1e810184f538d55c5da92da77f491999054a1a1ee69a2d995ab2e8d1bc0","impliedFormat":99},{"version":"11544c4e626eab113df9432e97a371693c98c17ae4291d2ad425af5ef00e580b","impliedFormat":99},{"version":"e1847b81166d25f29213d37115253c5b82ec9ee78f19037592aa173e017636d5","impliedFormat":99},{"version":"fe0bd60f36509711c4a69c0e00c0111f5ecdc685e6c1a2ae99bd4d56c76c07fc","impliedFormat":99},{"version":"b8f3f4ee9aae88a9cec9797d166209eb2a7e4beb8a15e0fc3c8b90c9682c337d","impliedFormat":99},{"version":"ea3c4f5121fe2e86101c155ebe60b435c729027ae50025b2a4e1d12a476002ae","impliedFormat":99},{"version":"372db10bea0dbe1f8588f82b339152b11847e6a4535d57310292660c8a9acfc5","impliedFormat":99},{"version":"6f9fba6349c16eed21d139d5562295e8d5aafa5abe6e8ebcde43615a80c69ac1","impliedFormat":99},{"version":"1474533e27d0e3e45a417ea153d4612f0adbff055f244a29606a1fae6db56cda","impliedFormat":99},{"version":"c7fd8a79d0495955d55bfea34bbdb85235b0f27b417a81afc395655ef43d091d","impliedFormat":99},{"version":"987405949bfafbb1c93d976c3352fe33bfb85303a79fc5d9588b681e4af6c3b3","impliedFormat":99},{"version":"867bc1f5a168fd86d12d828dfafd77c557f13b4326588615b19e301f6856f70c","impliedFormat":99},{"version":"6114545678bb75e581982c990597ca3ba7eeef185256a14c906edfc949db2cd1","impliedFormat":99},{"version":"5c8625f8dbbd94ab6ca171d621049c810cce4fce6ec1fd1c24c331d9858dce17","impliedFormat":99},{"version":"0dc7ae20eab8097b0c7a48b5833f6329e976f88af26055cdae6337141ff2c12e","impliedFormat":99},{"version":"76b6db79c0f5b326ff98b15829505efd25d36ce436b47fe59781ac9aec0d7f1b","impliedFormat":99},{"version":"af36e5f207299ba2013f981dffacd4a04cdce2dd4bd255fff084e7257bf8b947","impliedFormat":99},{"version":"26dcf7dca456b2271d6c361b635eb8b4c8ae7d3e2a264dcc0c6dbcf70be3eb4b","impliedFormat":99},{"version":"d17d9e4920059ff855fade9b7c2c379a64fd958275e628d2be5b3ba3f3634d60","impliedFormat":99},{"version":"2e1a163ab5b5c2640d7f5a100446bbcaeda953a06439c901b2ae307f7088dc30","impliedFormat":99},{"version":"f0b3406d2bc2c262f218c42a125832e026997278a890ef3549fa49e62177ce86","impliedFormat":99},{"version":"73c83e8954617ff3e2a974e9d498ae6c031b72e60d552772f812e22a01f2a0f0","impliedFormat":99},{"version":"397dec7580d484487d7d6d53faa5dcdde5f1ae8a98f20b6665d3f44aed5fd918","impliedFormat":99},{"version":"e0f5707d91bb950edb6338e83dd31b6902b6620018f6aa5fd0f504c2b0ea61f5","impliedFormat":99},{"version":"5fc6cb5dbe45bc1bb055b0c6382b72d8b4cdb7c0ae1f540c401d890f4eb8f7b2","impliedFormat":99},{"version":"627e2ac450dcd71bdd8c1614b5d3a02b214ad92a1621ebeb2642dffb9be93715","impliedFormat":99},{"version":"813514ef625cb8fc3befeec97afddfb3b80b80ced859959339d99f3ad538d8fe","impliedFormat":99},{"version":"624f8a7a76f26b9b0af9524e6b7fa50f492655ab7489c3f5f0ddd2de5461b0c3","impliedFormat":99},{"version":"d6b6fa535b18062680e96b2f9336e301312a2f7bdaeb47c4a5b3114c3de0c08b","impliedFormat":99},{"version":"818e8f95d3851073e92bcad7815367dd8337863aaf50d79e703ac479cca0b6a4","impliedFormat":99},{"version":"29b716ff24d0db64060c9a90287f9de2863adf0ef1efef71dbaba33ebc20b390","impliedFormat":99},{"version":"2530c36527a988debd39fed6504d8c51a3e0f356aaf2d270edd492f4223bdeff","impliedFormat":99},{"version":"2553cfd0ec0164f3ea228c5badd1ba78607d034fc2dec96c781026a28095204b","impliedFormat":99},{"version":"6e943693dbc91aa2c6c520e7814316469c8482d5d93df51178d8ded531bb29ee","impliedFormat":99},{"version":"e74e1249b69d9f49a6d9bfa5305f2a9f501e18de6ab0829ab342abf6d55d958b","impliedFormat":99},{"version":"16f60d6924a9e0b4b9961e42b5e586b28ffd57cdfa236ae4408f7bed9855a816","impliedFormat":99},{"version":"493c2d42f1b6cfe3b13358ff3085b90fa9a65d4858ea4d02d43772c0795006ec","impliedFormat":99},{"version":"3702c7cbcd937d7b96e5376fe562fd77b4598fe93c7595ee696ebbfefddac70f","impliedFormat":99},{"version":"848621f6b65b3963f86c51c8b533aea13eadb045da52515e6e1407dea19b8457","impliedFormat":99},{"version":"c15b679c261ce17551e17a40a42934aeba007580357f1a286c79e8e091ee3a76","impliedFormat":99},{"version":"156108cedad653a6277b1cb292b18017195881f5fe837fb7f9678642da8fa8f2","impliedFormat":99},{"version":"0a0bb42c33e9faf63e0b49a429e60533ab392f4f02528732ecbd62cfc2d54c10","impliedFormat":99},{"version":"70fa95cd7cb511e55c9262246de1f35f3966c50e8795a147a93c538db824cdc8","impliedFormat":99},{"version":"bc28d8cec56b5f91c8a2ec131444744b13f63c53ce670cb31d4dffdfc246ba34","impliedFormat":99},{"version":"7bd87c0667376e7d6325ada642ec29bf28e940cb146d21d270cac46b127e5313","impliedFormat":99},{"version":"0318969deede7190dd3567433a24133f709874c5414713aac8b706a5cb0fe347","impliedFormat":99},{"version":"8e291b3a51b9f91f25cfafb3e8afdaf3b844d6930baa1a8264815c1d924ac135","impliedFormat":99},{"version":"34fae51dacc530b30d0a5239a1b0c1fd0adb9801e66dda9ad451c5523e009221","impliedFormat":99},{"version":"bb2bffc0b8ff50c3e71da5e937ff8a0cb3c4ba7e0e74211e5a384f2e20e17284","impliedFormat":99},{"version":"75662b13c8ab4f12814c0c8edaf068f2c53bcac8bdb340ed2d7a6fb2bab207ae","impliedFormat":99},{"version":"e125fdbea060b339306c30c33597b3c677e00c9e78cd4bf9a15b3fb9474ebb5d","impliedFormat":99},{"version":"ee141f547382d979d56c3b059fc12b01a88b7700d96f085e74268bc79f48c40a","impliedFormat":99},{"version":"1d64132735556e2a1823044b321c929ad4ede45b81f3e04e0e23cf76f4cbf638","impliedFormat":99},{"version":"8b4a3550a3cac035fe928701bc046f5fac76cca32c7851376424b37312f4b4ca","impliedFormat":99},{"version":"5fd7f9b36f48d6308feba95d98817496274be1939a9faa5cd9ed0f8adf3adf3a","impliedFormat":99},{"version":"15a8f79b1557978d752c0be488ee5a70daa389638d79570507a3d4cfc620d49d","impliedFormat":99},{"version":"d4c14ea7d76619ef4244e2c220c2caeec78d10f28e1490eeac89df7d2556b79f","impliedFormat":99},{"version":"8096207a00346207d9baf7bc8f436ef45a20818bf306236a4061d6ccc45b0372","impliedFormat":99},{"version":"040f2531989793c4846be366c100455789834ba420dfd6f36464fe73b68e35b6","impliedFormat":99},{"version":"c5c7020a1d11b7129eb8ddffb7087f59c83161a3792b3560dcd43e7528780ab0","impliedFormat":99},{"version":"d1f97ea020060753089059e9b6de1ab05be4cb73649b595c475e2ec197cbce0f","impliedFormat":99},{"version":"b5ddca6fd676daf45113412aa2b8242b8ee2588e99d68c231ab7cd3d88b392fa","impliedFormat":99},{"version":"6ce0450eba616d21a4c31b31dedaefea33791fbaa2a2d25666de6eb2e6771ce4","impliedFormat":99},{"version":"f851083fc20ecc00ff8aaf91ba9584e924385768940654518705423822de09e8","impliedFormat":99},{"version":"0c1eed961c15e1242389b0497628709f59d7afd50d5a1955daa10b5bd3b68fc2","impliedFormat":99},{"version":"5e07a9f7f130e5404c202bf7b0625a624c9d266b980576f5d62608ef21d96eab","impliedFormat":99},{"version":"ef0dbe208370d16832d01a59c1d552ccd3e953550c84d5cb0751e7660b63a2af","impliedFormat":99},{"version":"a8a9459dd76ef5eeef768da4ce466c5539d73b26334131bd1dd6cbd74ce48fa2","impliedFormat":99},{"version":"b69190f5964deecfb13ddc03ae35cc563ac21ddc27f3fbdbcfdb590422a7c05c","impliedFormat":99},{"version":"3d6d570b5f36cf08d9ad8d93db7ddc90fa7ccc0c177de2e9948bb23cde805d32","impliedFormat":99},{"version":"786f3f186af874ea3e34c2aeef56a0beab90926350f3375781c0a3aa844cd76e","impliedFormat":99},{"version":"63dbc8fa1dcbfb8af6c48f004a1d31988f42af171596c5cca57e4c9d5000d291","impliedFormat":99},{"version":"e7d5132674ddcd01673b0517eebc44c17f478126284c3eabd0a552514cb992bb","impliedFormat":99},{"version":"a820710a917f66fa88a27564465a033c393e1322a61eb581d1f20e0680b498f1","impliedFormat":99},{"version":"6e4d416bf7d72dabe2766e51c8e3d5d156c29b64aa61733aee602e4631919b82","impliedFormat":99},{"version":"6c052f137bab4ba9ed6fd76f88a8d00484df9d5cb921614bb4abe60f51970447","impliedFormat":99},{"version":"f304ff52a11d8e94ad42e613a6be843f9f100b349b9bd887e95116893252a99c","impliedFormat":99},{"version":"7d5c2df0c3706f45b77970232aa3a38952561311ccc8fcb7591e1b7a469ad761","impliedFormat":99},{"version":"2c41502b030205006ea3849c83063c4327342fbf925d8ed93b18309428fdd832","impliedFormat":99},{"version":"d12eecede214f8807a719178d7d7e2fc32f227d4705d123c3f45d8a3b5765f38","impliedFormat":99},{"version":"800c2935a9e506ac8cd75bfa709e3b4ecfb0f266aae342b02cf74176471cac5a","impliedFormat":99},{"version":"825674da70d892b7e32c53f844c5dfce5b15ea67ceda4768f752eed2f02d8077","impliedFormat":99},{"version":"2c676d27ef1afbc8f8e514bb46f38550adf177ae9b0102951111116fa7ea2e10","impliedFormat":99},{"version":"a6072f5111ea2058cb4d592a4ee241f88b198498340d9ad036499184f7798ae2","impliedFormat":99},{"version":"7b149b38e54fe0149fe500c5d5a049654ce17b1705f6a1f72dd50d84c6a678b9","impliedFormat":99},{"version":"3eb76327823b6288eb4ed4648ebf4e75cf47c6fbc466ed920706b801399f7dc3","impliedFormat":99},{"version":"c6a219d0d39552594a4cc75970768004f99684f28890fc36a42b853af04997b7","impliedFormat":99},{"version":"2110d74b178b022ca8c5ae8dcc46e759c34cf3b7e61cb2f8891fd8d24cb614ef","impliedFormat":99},{"version":"ab87c99f96d9b1bf93684b114b27191944fef9a164476f2c6c052b93eaac0a4f","impliedFormat":99},{"version":"13e48eaca1087e1268f172607ae2f39c72c831a482cab597076c6073c97a15e7","impliedFormat":99},{"version":"38f5e025404a3108f5bb41e52cead694a86d16ad0005e0ef7718a2a31e959d1e","impliedFormat":99},{"version":"8db133d270ebb1ba3fa8e2c4ab48df2cc79cb03a705d47ca9f959b0756113d3d","impliedFormat":99},{"version":"19597dbe4500c782a4252755510be8324451847354cd8e204079ae81ab8d0ef6","impliedFormat":99},{"version":"f7d487e5f0104f0737951510ea361bc919f5b5f3ebc51807f81ce54934a3556f","impliedFormat":99},{"version":"efa8c5897e0239017e5b53e3f465d106b00d01ee94c9ead378a33284a2998356","impliedFormat":99},{"version":"fe3c53940b26832930246d4c39d6e507c26a86027817882702cf03bff314fa1d","impliedFormat":99},{"version":"53ee33b91d4dc2787eccebdbd396291e063db1405514bb3ab446e1ca3fd81a90","impliedFormat":99},{"version":"c4a97da118b4e6dde7c1daa93c4da17f0c4eedece638fc6dcc84f4eb1d370808","impliedFormat":99},{"version":"71666363fbdb0946bfc38a8056c6010060d1a526c0584145a9560151c6962b4f","impliedFormat":99},{"version":"24b8a04a4bb67fbec6b29e9366dc3e4d6fb6ec52c671e50defb15983d99a1cdb","impliedFormat":99},{"version":"cc2eb5b23140bbceadf000ef2b71d27ac011d1c325b0fc5ecd42a3221db5fb2e","impliedFormat":99},{"version":"d04f5f3e90755ed40b25ed4c6095b6ad13fc9ce98b34a69c8da5ed38e2dbab5a","impliedFormat":99},{"version":"2cf9bf6c1d711fb892149f0b8282228ba3c6953a02c6e8d49d850fd40324753f","impliedFormat":99},{"version":"02b0784f4a0c19b2cc8bd63e60809ba073006407587cd304cb73e81af2d598b5","impliedFormat":99},{"version":"852ada6c746fdf599f1540afa26723241208fce45cc05c25a2700f705e3a895d","impliedFormat":99},{"version":"347f6fe4308288802eb123596ad9caf06755e80cfc7f79bbe56f4141a8ee4c50","impliedFormat":99},{"version":"5f5baa59149d3d6d6cef2c09d46bb4d19beb10d6bee8c05b7850c33535b3c438","impliedFormat":99},{"version":"a8f0c99380c9e91a73ecfc0a8582fbdefde3a1351e748079dc8c0439ea97b6db","impliedFormat":99},{"version":"be02e3c3cb4e187fd252e7ae12f6383f274e82288c8772bb0daf1a4e4af571ad","impliedFormat":99},{"version":"82ca40fb541799273571b011cd9de6ee9b577ef68acc8408135504ae69365b74","impliedFormat":99},{"version":"e671e3fc9b6b2290338352606f6c92e6ecf1a56459c3f885a11080301ca7f8de","impliedFormat":99},{"version":"10a31044deae10829e7646d91c4090bd2f000c4ef7a97d0a6f6a9e62af4bac3d","impliedFormat":99},{"version":"4e6672fb142798b69bcb8d6cd5cc2ec9628dbea9744840ee3599b3dcd7b74b09","impliedFormat":99},{"version":"7866bd684d1fa255c4ea5228bf851b713f0388e22d272d9d2696364e4914bdf4","impliedFormat":99},{"version":"54d69bcee473dda09e603dbf4dfe78bbde373b0ca34c271340b34c4ae4638bf1","impliedFormat":99},{"version":"cb63d73be28de13c5478189ac8cd8dcfc243843545e28e030c861d2ad669d4af","impliedFormat":99},{"version":"ee4cf97e8bad27c9e13a17a9f9cbd86b32e9fbc969a5c3f479dafb219209848c","impliedFormat":99},{"version":"3a4e35b6e99ed398e77583ffc17f8774cb4253f8796c0e04ce07c26636fed4a9","impliedFormat":99},{"version":"04453db2eb9c577d0d7c46a7cd8c3dd52ca8d9bc1220069de2a564c07cdeb8c4","impliedFormat":99},{"version":"5559ab4aa1ba9fac7225398231a179d63a4c4dccd982a17f09404b536980dae8","impliedFormat":99},{"version":"2d7b9e1626f44684252d826a8b35770b77ce7c322734a5d3236b629a301efdcf","impliedFormat":99},{"version":"5b8dafbb90924201f655931d429a4eceb055f11c836a6e9cbc7c3aecf735912d","impliedFormat":99},{"version":"bdfcf610caf414eefb3977783f58b7ba67c3dcca358af390f2b309752a5cb579","impliedFormat":99},{"version":"7a9477ba5fc17786ee74340780083f39f437904229a0cd57fc9a468fd6567eb8","impliedFormat":99},{"version":"4bcc6a2aaff30d16ea05d82f4750445f4f0d5433ad7e131eafa62b0a0be92910","impliedFormat":99},{"version":"a9a41f10f77fd663529bb4a7853b7cbfc27976a4562176abb12422e7d847347e","impliedFormat":99},{"version":"3da1dd252145e279f23d85294399ed2120bf8124ed574d34354a0a313c8554b6","impliedFormat":99},{"version":"e5c4080de46b1a486e25a54ddbb6b859312359f9967a7dc3c9d5cf4676378201","impliedFormat":99},{"version":"cfe1cdf673d2db391fd1a1f123e0e69c7ca06c31d9ac8b35460130c5817c8d29","impliedFormat":99},{"version":"b9701f688042f44529f99fd312c49fea853e66538c19cfcbb9ef024fdb5470cc","impliedFormat":99},{"version":"6daa62c5836cc12561d12220d385a4a243a4a5a89afd6f2e48009a8dd8f0ad83","impliedFormat":99},{"version":"f43545da7ed38322e627cf43fa9075a8779074d1dca00aaedede5292449c6efa","impliedFormat":99},{"version":"bd8310114a3a5283faac25bfbfc0d75b685a3a3e0d827ee35d166286bdd4f82e","impliedFormat":99},{"version":"5a9682c17046b1171691709fee524f2d02aa571b6fc8a4fecf29c0302c4a8098","impliedFormat":99},{"version":"1bf03857edaebf4beba27459edf97f9407467dc5c30195425cb8a5d5a573ea52","impliedFormat":99},{"version":"f6b4833d66c12c9106a3299e520ed46f9a4c443cefc22c993315c4bb97a28db1","impliedFormat":99},{"version":"746c02f8b99bd90c4d135badaab575c6cfce0d030528cf90190c8914b0934ea3","impliedFormat":99},{"version":"a858ba8df5e703977dee467b10af084398919e99c9e42559180e75953a1f6ef6","impliedFormat":99},{"version":"d2dcd6105c195d0409abd475b41363789c63ae633282f04465e291a68a151685","impliedFormat":99},{"version":"0b569ed836f0431c2efaef9b6017e8b700a7fed319866d7667f1189957275045","impliedFormat":99},{"version":"18acf29aac3212f2c6cb7d457816b249669af2e4be892c3b5a41fcbf0ff27bf8","impliedFormat":99},{"version":"0c72189b6ec67331476a36ec70a2b8ce6468dc4db5d3eb52deb9fefbd6981ebb","impliedFormat":99},{"version":"131ecac1c7c961041df80a1dc353223af4e658d56ba1516317f79bd5400cffeb","impliedFormat":99},{"version":"f3a55347fb874828e442c2916716d56552ac3478204c29c0d47e698c00eb5d28","impliedFormat":99},{"version":"49ebbdfe7427d784ccdc8325bdecc8dda1719a7881086f14751879b4f8d70c21","impliedFormat":99},{"version":"c1692845412646f17177eb62feb9588c8b5d5013602383f02ae9d38f3915020c","impliedFormat":99},{"version":"b1b440e6c973d920935591a3d360d79090b8cf58947c0230259225b02cf98a83","impliedFormat":99},{"version":"defc2ae12099f46649d12aa4872ce23ba43fba275920c00c398487eaf091bbae","impliedFormat":99},{"version":"620390fbef44884902e4911e7473531e9be4db37eeef2da52a34449d456b4617","impliedFormat":99},{"version":"f14c7a1f9afd2100be898a9304cb08c762a9b6967de955485337bade61bab0f3","impliedFormat":99},{"version":"936592c62e3bde69b0178055acac114317492e6cf09065ee263f63f8bbd991f6","impliedFormat":99},{"version":"a31274d144b06b02c3af0bf127435c9786b14baf58163b8340ac4593a6512178","impliedFormat":99},{"version":"b2a4d01fcf005530c3f8689ac0197e5fd6b75eb031e73ca39e5a27d41793a5d8","impliedFormat":99},{"version":"532def9a5e8ef761667bbb3214461d7c1f8293bcc9d0a801931f68d4022664bb","impliedFormat":99},{"version":"86388eda63dcb65b4982786eec9f80c3ef21ca9fb2808ff58634e712f1f39a27","impliedFormat":99},{"version":"b748430ab5b9463a6c9cc4f048d16ba75842614c8b12a489d9215debb1aca0c1","impliedFormat":99},{"version":"6e3a1b1b1e7e7b09009e03e5f0bb32be4dd604797ceb20c9359914640d4e31f7","impliedFormat":99},{"version":"de9466be4b561ad0079ac95ca7445c99fdf45ef115a93af8e2e933194b3cdf4c","impliedFormat":99},{"version":"724f25bdd75c26d042b8c99ff950cd5a128c3de45b39b2f306e4ccada6728f96","impliedFormat":99},{"version":"b701f86abe4798ea0003844eb4b5017695e97f7e6b454db3d9126c2f13e4afa7","impliedFormat":99},{"version":"eba7dd0f51a2db9dfb65563f519330ec477afc1206c57f6cdd676209400974b8","impliedFormat":99},{"version":"fd3774aa27a30b17935ad360d34570820b26ec70fa5fcfd44c7e884247354d37","impliedFormat":99},{"version":"1693ca12f87fabba369a19610f945584d1ebbfd513002160a5b138b01932b076","impliedFormat":99},{"version":"7cbb131eb877e61cf3f0600facf4ae8491fa6446a33fda1f189ffddfa4874a89","impliedFormat":99},{"version":"9ee245e7c6aa2d81ee0d7f30ff6897334842c469b0e20da24b3cddc6f635cc06","impliedFormat":99},{"version":"a600a79f6a2e610ae7254ed8ef46b7d3bd35755a11e2eecdf9458eefcb517729","impliedFormat":99},{"version":"dfc67e73325643e92f71f94276b5fb3be09c59a1eeee022e76c61ae99f3eda4b","impliedFormat":99},{"version":"3b63f3b0b472eaf372e27840721bbbf90491be2577009893edd3c54b544fe2df","impliedFormat":99},{"version":"ee551dc83df0963c1ee03dc32ce36d83b3db9793f50b1686dc57ec2bbffc98af","impliedFormat":99},{"version":"8d7ecedec77e345c25160b4e59c394ad5d46105e8bff9a7fab181be32930dfae","impliedFormat":99},{"version":"1caa4bbb9452020a2129483ce9ba6489869eba85d364125513e7cc82812bd077","impliedFormat":99},{"version":"bb5a90d4d7f900ec6e1db945ebf57586c190a6eb22bd8dd2abfc5076b75663ec","impliedFormat":99},{"version":"99227681df5400ed3c738dbd1114fa24c1ab6e81408dc9eaa2516566012a7778","impliedFormat":99},{"version":"ed88c51aa3b33bb2b6a8f2434c34f125946ba7b91ed36973169813fdad57f1ec","impliedFormat":99},{"version":"8e84fa471e62bbdd1e2bead05d8857f0871fed3f5584a10049ae5ca337899275","impliedFormat":99},{"version":"ce7735689769b9da39a3e4522572f7d512458382c61e47da5110597e738d8bce","signature":"933c53634d30d7c5be727b74d234ab7cdc4b6e6f8909e684327692f4c94e135c"},{"version":"8e27c27a1e04cba79d0d1a6d9f09bd94f507794666d99277e2844a8df1a648c5","signature":"1c2103ac40d600f885da1623b45ed668dbbb9a7090ba56fa357a86c6d78d93e8"},{"version":"f5d4f7bf6acfc10f03a1bf3cef3b8ad1fbeec42b13668acfa7be883332fddf48","signature":"8fedfa79a5f140f2f8edc68defd494842c7f7c59b941d4dccf61b31b62a1970b"},{"version":"5d7e2f84b63537e1d0768d27b605ebd16d31f77864ead674a46a39a67d798b3a","signature":"8bf9d14b4d5d7bcf0e068dd3de5b084e7c6435eaee272b995bcf886d62eab566"},{"version":"c06894d616aed135146f06af338759a607c0cf2ed0e891c52ba6fa4bf1d7b5cb","signature":"0f9307e564fe5b3199344c53353d4a9ce191cd1575bc1c77c747e08c4e1bc5c8"},{"version":"e46e5bd7ce10c7d79828a76a2889ce1e4a8e8a64ebc244248e9a7fd27807f18f","signature":"3d30f552c6d8ce477176b6615f3f0ed69bef9f0a6f97f98d374ca7c8c4182007"},{"version":"9bd3e217dac667b4c77af3fbb9fcf1bd5a22ca7e29c067591cb6b68132c7a203","signature":"db0101da32ec6e54a6530cebcc30893c737209b70fcb47fcd9d7152b71aee308"},{"version":"b7b4da95464f11da1b8de59ed34f6deb740d14fcdd54065fdbbe850741ae958c","impliedFormat":1},{"version":"64d7747acb1d36374e9c884773b6dbede826dd9684cecad3c7fb4ce7960f90d7","impliedFormat":1},{"version":"47e62f697f75c990750842294e175977588557f15a9731625e7e3c882b4b1d24","impliedFormat":1},{"version":"2caa214e359b6db8a7ff2cd1a3e5ae868c611a63957b958fa597ae89ac5268ac","impliedFormat":1},{"version":"4a3605bef1a5ef29fd5a1696dd95b0b4e2259e2d07a4d88fac79f3a9765c44a2","impliedFormat":99},{"version":"6544dab49004fecb69a4ef775e9ad2773a6148b1f9bfd9b75508e3afa11f5d35","impliedFormat":99},{"version":"7783c20210ca970f8d127d92a1c27f05e3982268445188ab5861e2d0ee2d23f3","impliedFormat":99},{"version":"b2d3b4316436aa93d5e425aac9e23bf9aa7b4f0fca85d8752c9e50d111125b93","signature":"70d2317871f650f120d868ee40d0347762b0fd90d0e6dcec600721dbcf962877"},{"version":"e8196527bfcc2b55ccf9d22d08cb6b76c395b065750bb64870a868382a1ffe93","signature":"a1e251550cc57481c9b8b993de884421bdd1bea11c6d1c0c77ba4cb5cca2a24f"},{"version":"08dfdba3286c057e51318d514d2cd817dc502a9e587a74fcd7998f214cbc52f2","signature":"3683ddfb8277cd441dacd5875747848dd7d32e377cb595d1e888b98173d7d4b2"},{"version":"127cf48c82e1aacde0c0f68e548abbc6ca1bc73518bb5625dc1afc63ef93bcd5","signature":"d07be5372ae46f751adda13b40000ac5f50c7d5973999aa2a0e94445b5e85d25"},{"version":"ab17d6ed06ade3721f3d6c4dbe9830bb2eec0ce794d8e4001c4365a247b9ab28","signature":"6b3decd52e80340500b7528f468f5efa9691e898045ba6a995e9a7c54c6ca8c4"},{"version":"98167fdb2fde534900ab781daa44aa0b73ede6ddab950fd34f09dbde861c0b9d","signature":"879add323c5afa9907be396daf6498b2399bc0244e477cf41ecf1d63156b7595"},{"version":"c9653e07ae52e23ae5310569d263cd448ed72ac0cc28fa97c9406770ecfdf0eb","signature":"264d6f92f382484f57d59d54f834032cb0236517c054bd0969bc24cf402201d2"},{"version":"a307403adf9c3b834fb7e9e2c4a1dd87fc4f40144f5523649ce7df9b7b073a67","signature":"ccbff94badc2cba12bc06ce72bfff987b43f963e741d7d5f4c73a0fbca3a10b4"},{"version":"cf68774f50bb88b6087a6a4cb55f6d3a6f8f2f9321e0dff36b9fba9c39fff093","signature":"b48bd9672b492f477a047e02dcbc581d1dfda7f2a6c02fdc354e0b2c24bf616d"},{"version":"67a4ad45d2c2a03a41ccd4e828bf4d5170a462eae904b032cf53ea6d6acca3cf","signature":"800a9cae1adc807ce1a95750b077192462c7bd18bc247b53548e5a6222e0d66e"},{"version":"c48a4c8a593addc1e1d15d726845d074c82d5d79983ed2b87748bf3ce2692d59","signature":"3701927c06e2173add430892a63fc46fe9f494ddb2c90d7239b12131bc2cc351"},{"version":"582940d7a4d1ebddb2b44686234053df6703bac0d68324a785edeb152312254b","signature":"de6ff8bb2a3708d4809991a4c546068d633303c123951f648191f707feeaf887"},"eb9613130d1167dc8bfc337ddf276e963d952eb7e4a308da0da045a1391443ae",{"version":"a2c769124e77d7dbce4843cfa191459aaf03c6bc6f837c04e637b891c4307040","signature":"bdb7aef4b41ce46fbe96f77ba98dfa80e37016d834fbadbbdaca0f2117972600"},{"version":"8ee162f8e931a3f1732803994d6609027083d33a7a02e8e0c301cf889658fa7e","signature":"e36a53a2eeb957f08ed9a5001bff7918b556e1d3346931130b448b6b8c65319d"},{"version":"84e9ca1f32d79be17d418845254692faa3123b6f60bca7e70644eb59f0daebcf","signature":"a3038a02309dbb1620976d428e40ad585df7fec4ca11448a76d849a2d9eaf474"},{"version":"95aa6e834ddc6490e0e08125a3f1e0af9c8b694a15603d2c7104ebc24869fe75","signature":"2d5a82e714119de6dcb0af075f5971a45a1d400c799b70a7dd2f779d682958a9"},"dae234861f8b219c54b1b6aabba217f0ae81330c588a251ad6dc1ab5ca5b2ddf",{"version":"3b228f52dece7b4e98226f62b856086009ed878c1b90b53a9b283893e557e5c1","signature":"879cebb1884590b94ad609353edfa0c8079d37667d30790627bc5093be831340"},{"version":"a6b0cda380f1e124bb76531a413140fd11463182e10b32c16733fb9d860b63e7","signature":"a74a2fa10c878e84e91ff10e1f90c836848209da96d38c2c800984875c3acb32"},{"version":"10175da8f2ac6bb1d6753d73a53d6f57d86775fceab07eb6dade9e2b8700e85b","signature":"8516fd0860847f7518c1bc62cb788f710b70a14d13141ba60c06214832332eed"},{"version":"2f728d8c9bbc661c17aeab6bd434dd17f576de853029a091bee59d1aa12c12f7","signature":"10ea64b933adb7c4622b2b1d51faba137c6eefa5fffbc52a1754e29863ad6f9f"},{"version":"7868e93f8053c114c218e7554c8ee706c45c1013c5c68ea8b23b7d43f942f1e7","signature":"1ee5b93797b4e68b79c272540e32c4552ff537e0f15de23a21ec9e88eaf91cc5"},"050c00828f7130781d4216ee01b05e0f54a35a3402cd48d2046a604ca8149443",{"version":"222987da65b39fbaa230a5fd5e29b0994ef624e67f3e5b02461c2478f24ad5b0","signature":"84b4d3baed8c8db4e784628062d1a3eb323e809321d738b45f8e4c703f799c0b"},{"version":"8c5ae122a932697819335f18a1a0f7aaba7151afc684fcbf7fb27093faa101f5","signature":"a92f748826b313dbcc631947c96976a4f931af488f97d777fc01a048830c40f8"},{"version":"bee8df9b6e4a70ad53fbdd580df885fbb4794a9c3e5b9aa9a94c1367a9a1ca50","signature":"cf597c1bdc7cd515b533bc0489600b0b9f8bb3ecf16ba6998b665563494aae3d"},{"version":"baae9fea2f031c0a57a772f5eeb148306e2680a15f65ea049d9a646f5dc91e97","signature":"604a5c5c0f0f26196bf80ad4f251d586341a5de2ad839a63b6ce41b43d890df0"},{"version":"25e7157833cb81c91863435d2a0f6a834043e10bba9a56d22eceae9c768c6a6a","signature":"85d007980fa43c5411b1c635be08fc4c4c1801fd2c5067e71a90791d2a707d75"},{"version":"7784da24723e9915fe607d653094ea19ab358254f02a58453a1fbf17258f6924","signature":"5597323e52c226304571b41574bb54f9318426e2f7b42b522c56dc91e8e15d20"},{"version":"e2e2e2506fd1f2606ba1461941397f861b3d61ed6595cefa545abac01b783d05","signature":"b7b62ff4cfcbdcc3ea989624572e3149e9dfe9e1191826f1d589d8f9751a9452"},{"version":"f5e47e352b457d7db807d6dcded5b105dceaab45cfb90a609c06cf77e9e48d14","signature":"ac0fae67009533e0a71f12f439e15cb40e2136564d46b4ce92067e4dc58ac03e"},{"version":"3924db5bde07a829358e2601dec32231c452cd44b54ad1422c1a24883cbed198","signature":"7fe49be2ccc9abe5a2cc4e7203b50fa4cbf438d7676694774086e5eb71869de4"},{"version":"515845b19a8be37c6e7b060b2b0bb37aeea1266a0e030dc4d80a217fdfd9855d","signature":"714a6b80420f1862d27d403753fc827d57283e401460f9027751d254ca98bdf5"},{"version":"51a9f05a862053d23d595cedc15dbb3a683cd53024911662d44df0595ea08df3","signature":"b5f36565ea36187786acf35a79f2105a67336149d0fe7c600ba938679d5860ba"},{"version":"27f61eb9826ca6f9577c5d0990a1b0e9b8053dcd4bb2cee34f787b3d84e9748f","signature":"a99d377c35e08211f958d36630bf435de435b860ec3158c55d7278578ba831ea"},{"version":"32ec1cbe1fb5fe7d162c5b8dc0754a4e67ddb05f4377397508d1441f541f0ed0","signature":"dccb9659b15d62054e5edb89351560450dcfc5ae296454eb671c102b9d3b7a5d"},{"version":"f64207f8ba2edde10dec227c236c65cdecb27b4106d8351ccb6987a9047bd94e","signature":"6d4b2153df87a7bd63c64f289ad857095b2a197073eb90d2782473c0a1470fbb"},{"version":"e50eec0aaa73b651c4db2878e1327564b046bee10b596e5390fead64a354df15","signature":"cc098a5173279661769d04555df0895756f3ca2c4f3883cdf73f79736f3efcdc"},{"version":"d8e03cae3d3e9d0659cca5068f4bec1bd754f1a6968017bdfdb1c589d09b6a6f","signature":"00392d0e76254c5578a50b0067689123f8b37851f5454a4c1db3d349e7be0ee8"},"23b0251276d112e430cd8933753cb1e9ae4c72083519af75ac19a0cb759917dd",{"version":"a565939c26c64c0b673abf03997b751b2e0debadaf8126039dcb8ffbe7f853e9","signature":"1fc32800909e18a749231c8593cef820f96e1fde622b82dd8acf7d4db4599e26"},{"version":"ef855e66c4a18de3d9c7fcc30f40ec6deed1d267d62925d8c4f0321784251f2e","signature":"88812e5251bd422f802984f77ebfb1f7026a692af0bce6ec7fbb6cfed3edd0e8"},"826e7e153a485b94945f5347ad50d0528abd5b1ec08333ce13464bae62625e61",{"version":"53ec6a75eeea7602e89cb7d3b238aa1fed8d7310b32e8b08738b9e2d8c9bdb76","signature":"24e3fafef17bdc6c75bad040fe4ec2f808d2f3ad7fedd2c13da2a65349d2c8ee"},{"version":"8bd831f3d5ce0e136537c4054c005bb56bcab8128df1bb687ec8e83de2276c40","signature":"9a0286f49b98016802b400cb5e76cff6b544697138e84aa18221518697e4d0c7"},{"version":"0e5522e37d64b99fa97e945fb6755c061243c36113a952274be2a90e71bfd6ae","signature":"60531f9d3557f3706f5c048778f4e78ea51b7dd1b3f690a27c95339cae479145"},{"version":"4f817d326453d8d578758889131c3cab8665a0aa252df1ea254a83b653422efa","impliedFormat":1},{"version":"44edcd6297fefdf4f64146a0beb45acc3dd9035525a5af59daa4757008fafa55","signature":"1192c25f7008e036041d9cdf66c8e408d2434f448edbbc76124c8c5a3646d783"},{"version":"51bcf648c415b00aeb15c2856ac7042c7057e48e7bd53df2282d08705d5044a4","signature":"f99b3e4d41e361d1d0d2dea0bf6d160be029930f83f2bad1e80896a541e53c19"},{"version":"dbe322dd31c3ae978556730146f82b5531ef98a2f9ec00e4c66fed55e8ada80c","signature":"5c2fa80ca30f46b7f37025cbd19b3ee468324501ab89ba26ec8f3de2d71d2eb9"},{"version":"62468ff264113894e00c3d02b158acc368e57616af1aceb6a147243ff0c8cd57","signature":"0fc128ed0b5e0f3ff026a10f8d295601823fafb049be4b5a8c8295a4e790cfe3"},{"version":"a0251be510c5a528023df8971600b77946d4cecdce1eb82e04fc6b676161ba49","signature":"870997d9f7499f76bb367192d21f8c7938768b6b22c996ff2f6a3f0f354dbd70"},{"version":"3f31f1a85b05d8b555862fde9c03ed44f8a3f46e9c5ee061ce7fc22cd32ef3bf","signature":"579b81e757e547ba90c9c1e1a730d2d7797be1714c2dba762f8b41ee68d08e75"},{"version":"e57a9a33cc8cd49e932481d73d6797b8fbefa6211e007616ee959b1a68d8a96f","impliedFormat":99},{"version":"6e4193a32dcfdc40d9f1bcf79a0691319bf065af9d5050e516d4523b1d9d083e","impliedFormat":99},{"version":"40166c5a74c5420962d2f223211c3b99be001a5b60a23828d1c9eb7a768a877f","impliedFormat":1},{"version":"d15e79ee385d785d141013cba4f855959aeadcbaad9047fba85bf30911c84891","impliedFormat":1},{"version":"c2cb3c322fe725ee2999aaeafc9143bff53b99448238b83255930083d2eb73ab","impliedFormat":1},{"version":"11e5ff5c50c1aeccf788e9423b7b7963bb754bee8fc605fc43bdd77b16011570","impliedFormat":99},{"version":"8fe43dbb9344739106da68e69e2af9b9ef8e24c3aa2f5d448a9a3a24cc5479c8","impliedFormat":99},{"version":"d9b5d0f70678f81433c0d34a8d32eea2b4ee98b84a28b00633c44ac04884eb14","impliedFormat":99},{"version":"ad546cf39db619bd26e2ca4c5cb83445f2d70779a2381605a9a70e26c199b835","impliedFormat":99},{"version":"69e7da46c48ab0e0872fed0da83c7e9d3ab478112013d1d1f2eec104c97f098a","impliedFormat":99},{"version":"9b8a8d3a5771c7f72173535ea34f86bd53685aaff61223be970ced726424bed2","impliedFormat":99},{"version":"4de10d2664126f6817923e6fdf963fb749416d038e31fb0dabaac0a652eeeb3b","impliedFormat":99},{"version":"13c4802eb5a24b28426512d123f756a4ee9b4cb80197981773eb440aae76ca1e","impliedFormat":99},{"version":"b0bf8f866d3c05dce6c2778455252391bbc3fa0e8c1675e78dcee8fab2e1dd96","impliedFormat":99},{"version":"675058f412cecd4e2c028e1a74aa34d5510ab03ed78dae712437890bb0aba6ba","impliedFormat":99},{"version":"ec70e1b3869e7564a3359bbe035dc054241d54b175a26190c8aed904de6077ed","impliedFormat":99},{"version":"e23f1372618b617ea5afb373562a4924d03b927da5e7c17940baf191ab0d7bfc","impliedFormat":99},{"version":"70885240802a17c2e90a08ce45a996e9bf4c99aa44cc25a099f5fd90f9aede78","impliedFormat":99},{"version":"efab8d889b532dd05f5dba3e74822a1b88cb5c32f4f95fdace0912d97aa9c29f","impliedFormat":99},{"version":"9edf4694bbf7e12184dca29f255b40d0b5d99a955eb9cdf206efb0039a5049fe","impliedFormat":99},{"version":"159c637197f504c4306fa2e1a68dd355a9744af13b55aa9264e37ee226d834b4","impliedFormat":99},{"version":"a318679d1d191ee5ba778c5a635271719888d2059eb6f51542fb96c203b3a634","impliedFormat":99},{"version":"be1a89e9d3f853c563fb8ea9629bd4d8458706ffbf84f40a91eae20568d5076e","impliedFormat":99},{"version":"0ca5f6bd52963e4349a6d1cdd6460a88b47d1733d7ddd0f267fabdbaa7716be5","impliedFormat":99},{"version":"9d1ed7b5e2dbe8b426a63e55ad5c187b2baa7510916659bed78ecb6357aa8fcb","impliedFormat":99},{"version":"143c9af88d55a1439123ac527ee6f6b3db5c626cc33b78496fe80c0e2eb957cb","impliedFormat":99},{"version":"cba0dcd3bfe577fed6d8e6b76ae4e1ae35c14e5d18cd9c80d4a0cd291199d46e","impliedFormat":99},{"version":"82f307488a01e2643f072f0c7b55e2ecf4bc69db7704f91c3a16dcdabebaaa6a","signature":"b1076895ccd7a0abe5abad0837b43611a61c3059a2a04bffd840368eea3becb8"},{"version":"4e11956b677b69519f961d37f7e7999853d240ce5765a1d1155517af8ad3a407","signature":"eff0532db851d6f2b206cf3af4020c01e0994d1dbfddbb3f9d0226c44a1ea432"},{"version":"fca1e5d6fa73ac0f1f8ee2590d435907ba302aba78a7bc6e62fac3f2198198e6","impliedFormat":1},"386a9c23af614ee2d2516c6527ad07d269611292635bdbacec6924bfd187eba5","e532b1c8189f746fec9a43c83f020f44fc50916e8adb3846048aaa64a5ba4833",{"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":"3fad5618174d74a34ee006406d4eb37e8d07dd62eb1315dbf52f48d31a337547","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b50a819485ffe0d237bf0d131e92178d14d11e2aa873d73615a9ec578b341f5","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":"12d602a8fe4c2f2ba4f7804f5eda8ba07e0c83bf5cf0cda8baffa2e9967bfb77","affectsGlobalScope":true,"impliedFormat":1},{"version":"a856ab781967b62b288dfd85b860bef0e62f005ed4b1b8fa25c53ce17856acaf","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"8db46b61a690f15b245cf16270db044dc047dce9f93b103a59f50262f677ea1f","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"757227c8b345c57d76f7f0e3bbad7a91ffca23f1b2547cbed9e10025816c9cb7","impliedFormat":1},{"version":"959d0327c96dd9bb5521f3ed6af0c435996504cc8dd46baa8e12cb3b3518cef1","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"266bee0a41e9c3ba335583e21e9277ae03822402cf5e8e1d99f5196853613b98","affectsGlobalScope":true,"impliedFormat":1},{"version":"386606f8a297988535cb1401959041cfa7f59d54b8a9ed09738e65c98684c976","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"e236b5eba291f51bdf32c231673e6cab81b5410850e61f51a7a524dddadc0f95","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"90a278f5fab7557e69e97056c0841adf269c42697194f0bd5c5e69152637d4b3","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"f263485c9ca90df9fe7bb3a906db9701997dc6cae86ace1f8106ac8d2f7f677b","impliedFormat":1},{"version":"1edcf2f36fc332615846bde6dcc71a8fe526065505bc5e3dcfd65a14becdf698","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"1dbca38aa4b0db1f4f9e6edacc2780af7e028b733d2a98dd3598cd235ca0c97d","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"19143c930aef7ccf248549f3e78992f2f1049118ec5d4622e95025057d8e392b","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"cca8917838a876e2d7016c9b6af57cbf11fdf903c5fdd8e613fa31840b2957bf","impliedFormat":1},{"version":"d91ae55e4282c22b9c21bc26bd3ef637d3fe132507b10529ae68bf76f5de785b","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"7e8a671604329e178bb479c8f387715ebd40a091fc4a7552a0a75c2f3a21c65c","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"4c5e90ddbcd177ad3f2ffc909ae217c87820f1e968f6959e4b6ba38a8cec935e","impliedFormat":1},{"version":"b70dd9a44e1ac42f030bb12e7d79117eac7cb74170d72d381a1e7913320af23a","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"9a66f750cbfbd9f193e631e433b17b8d9226991537ba66587185c13cd6534e0f","impliedFormat":1},{"version":"70bd24381331ee52aaed3a7cdf9633647edac5dd0df1231b1cf724c90f0547e6","signature":"a9ccb3fe8af1ff9eb3070a63d13f846a0b14f3b2e5df836c8a1ca405caaf7f05"},{"version":"232ea6272abe8c510bfdffb73f48331def4d7296195a8affe2fe872debbd4db4","signature":"1501b9df2770a3b4453b2fca756b57577d60f76becff949f1942064e4e160168"},{"version":"31d790dc755782c3f1443858abe5ab08cbf7c4055174641868b2dab6b37301d3","signature":"f1a9fad9245d707bf9e1546fa23a4c3bfc917fd539fd14f17be02395272dbe0a"},{"version":"61313d5fe68b6e51c961d27baa9c60b70e321c52ab02ffe078e716abd1353ceb","signature":"d57ff8282330ddf3fd55ba2a6d5187166c7883d72756a8efbaae34d864c85c71"},{"version":"37e26c12d5d9f01b27934eb1318ce327237eb826ce88f999e648dc7a8bfb90dd","signature":"44cc00ff40c7d0f8cec7c53ff2d757145edd4857e70ecec0d99c303619c17ccd"},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","impliedFormat":1},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"9c4fb6af2bddd534d1414876d2350f2e1967abdddd3df7b6bc441d885de436b2","impliedFormat":1},{"version":"c5590caef278ad8ba2532ec93e29a32ac354dfb333277348acce18512891d3b2","impliedFormat":1},{"version":"59c06fdbc966afe0abfd67fccac294dfcf6e822485fb22991b2cf4923c9b18c2","impliedFormat":1},{"version":"fb893a0dfc3c9fb0f9ca93d0648694dd95f33cbad2c0f2c629f842981dfd4e2e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"bc9d7f2a012412c294f4eb0fc856e063112a3666957a190542b62662391810b2","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"5d08a179b846f5ee674624b349ebebe2121c455e3a265dc93da4e8d9e89722b4","impliedFormat":1},{"version":"d34aa8df2d0b18fb56b1d772ff9b3c7aea7256cf0d692f969be6e1d27b74d660","impliedFormat":1},{"version":"f4db16820c99b6db923ab18af5fecb02331d785c4c2a8a88373a0cfc08256589","impliedFormat":1},{"version":"2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed","impliedFormat":1},{"version":"90407bbaa24977b8a6a90861148ac98d8652afe69992a90d823f29e9807fe2d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","impliedFormat":1},{"version":"168d88e14e0d81fe170e0dadd38ae9d217476c11435ea640ddb9b7382bdb6c1f","impliedFormat":1},{"version":"003f07cf566395059625b39785398f18652c8952e19790e7d6eeb22a9cbe0440","impliedFormat":1},{"version":"3efb94838c3bf93ac9bfb2f1ef645339221d15533efc17c9271142c9a656b08c","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"7095c3a9156db5b360ef2bc2dc23bda7078bcfe28c99acd5d57701a77b32213f","impliedFormat":1},{"version":"3fdca613d7cef1587f606ea6b88cd7223b352eca4ce63e6428f98eaeba49a6df","impliedFormat":1},{"version":"4b807eb7b43b2547b8074b49aa9dd906ef3963d0f255e372a023467b0c9b91aa","impliedFormat":1},{"version":"380b919bfa0516118edaf25b99e45f855e7bc3fd75ce4163a1cfe4a666388804","impliedFormat":1},{"version":"40de86ced5175a6ffe84a52abe6ac59ac0efbc604a5975a8c6476c3ddc682ff1","impliedFormat":1},{"version":"fcf79300e5257a23ed3bacaa6861d7c645139c6f7ece134d15e6669447e5e6db","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","impliedFormat":1},{"version":"5a0b15210129310cee9fa6af9200714bb4b12af4a04d890e15f34dbea1cf1852","impliedFormat":1},{"version":"0244119dbcbcf34faf3ffdae72dab1e9bc2bc9efc3c477b2240ffa94af3bca56","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"a873c50d3e47c21aa09fbe1e2023d9a44efb07cc0cb8c72f418bf301b0771fd3","impliedFormat":1},{"version":"7c14ccd2eaa82619fffc1bfa877eb68a012e9fb723d07ee98db451fadb618906","impliedFormat":1},{"version":"49c36529ee09ea9ce19525af5bb84985ea8e782cb7ee8c493d9e36d027a3d019","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},{"version":"abd985609200756b15d375982f85e23b975b12bd9791e6224cc739160e8f9863","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"f8a6bb79327f4a6afc63d28624654522fc80f7536efa7a617ef48200b7a5f673","impliedFormat":1},{"version":"8e0733c50eaac49b4e84954106acc144ec1a8019922d6afcde3762523a3634af","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"4ba01987c4b2c4b94a24c0a05bffbd75ab64d9fe8335dc63e9955d6c51a63468","impliedFormat":1},{"version":"916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","impliedFormat":1},{"version":"e85d04f57b46201ddc8ba238a84322432a4803a5d65e0bbd8b3b4f05345edd51","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc0a7f107690ee5cd8afc8dbf05c4df78085471ce16bdd9881642ec738bc81fe","impliedFormat":1},{"version":"fd624f7d7b264922476685870f08c5e1c6d6a0f05dee2429a9747b41f6b699d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2d0630483bf337ef9dac326c3334a245aa4946e9f60f12baf7da5be44beafbb","impliedFormat":1},{"version":"7233cac35711f43b7493061d2fe7636deb6d14f8cb58e4b3ff248be46f0b543d","impliedFormat":1},{"version":"579192636b96ade9bd7f8797a4f18f489cf6cf176dec4a4e269c969b29f00868","impliedFormat":1},{"version":"7d2b7fe4adb76d8253f20e4dbdce044f1cdfab4902ec33c3604585f553883f7d","impliedFormat":1},{"version":"f2f23fe34b735887db1d5597714ae37a6ffae530cafd6908c9d79d485667c956","impliedFormat":1},{"version":"67483628398336d0f9368578a9514bd8cc823a4f3b3ab784f3942077e5047335","impliedFormat":1},{"version":"2dd1d4cea14cead7a7fc9eec8f40593089dff0de8c0199458446143c9b8c4ea9","impliedFormat":1}],"root":[[244,250],[258,304],[306,311],339,340,342,343,[468,472]],"options":{"composite":true,"declaration":true,"declarationDir":"./build","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":false,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":false,"outDir":"./build","rootDir":"./src","skipDefaultLibCheck":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.lib.tsbuildinfo"},"referencedMap":[[326,1],[327,2],[328,3],[325,4],[243,5],[62,6],[63,7],[149,8],[150,9],[66,10],[67,11],[180,12],[181,13],[105,6],[106,14],[99,6],[100,15],[170,16],[168,17],[169,4],[187,18],[188,19],[189,20],[190,21],[191,22],[192,23],[73,24],[74,25],[151,6],[152,26],[193,27],[194,28],[77,29],[78,30],[95,4],[96,31],[197,32],[195,33],[196,34],[198,35],[199,36],[202,37],[200,38],[203,17],[201,39],[204,40],[207,41],[205,42],[206,43],[208,44],[79,24],[80,45],[174,46],[171,47],[172,48],[173,4],[147,49],[148,50],[119,51],[118,52],[116,53],[115,54],[117,55],[210,56],[209,57],[104,58],[103,6],[88,59],[86,60],[85,10],[87,61],[213,62],[217,63],[211,64],[212,65],[214,62],[215,62],[216,62],[121,66],[120,10],[186,67],[184,68],[185,17],[182,69],[183,70],[76,71],[75,6],[127,72],[64,6],[65,73],[126,74],[82,75],[81,6],[132,76],[131,10],[154,77],[153,6],[102,78],[101,6],[146,79],[145,80],[221,81],[220,82],[218,83],[219,84],[130,85],[129,86],[128,87],[223,88],[222,89],[226,90],[225,91],[224,92],[176,93],[175,4],[230,94],[229,95],[227,96],[228,97],[123,98],[122,10],[72,99],[71,100],[70,101],[69,102],[68,103],[136,104],[135,105],[84,106],[83,10],[138,107],[137,10],[134,108],[133,6],[177,4],[179,109],[178,4],[233,110],[232,111],[231,112],[235,113],[234,114],[237,115],[236,116],[166,117],[167,118],[165,119],[125,120],[124,4],[144,121],[143,122],[239,123],[238,17],[98,124],[97,6],[156,125],[155,6],[61,126],[60,4],[108,127],[109,128],[114,129],[107,130],[111,131],[110,132],[112,133],[113,134],[142,135],[141,10],[94,136],[93,10],[242,137],[241,138],[240,139],[158,140],[157,6],[160,141],[159,6],[92,142],[90,143],[89,10],[91,144],[162,145],[161,6],[140,146],[139,6],[164,147],[163,6],[253,148],[251,4],[252,149],[254,150],[473,4],[467,151],[475,152],[478,153],[479,4],[480,4],[474,154],[481,154],[483,155],[476,4],[484,156],[486,157],[485,4],[490,158],[493,159],[494,4],[341,160],[305,4],[496,161],[491,4],[497,4],[498,4],[501,162],[500,163],[499,4],[503,164],[504,165],[502,166],[505,167],[506,168],[507,169],[508,170],[509,171],[510,172],[511,173],[512,174],[513,175],[514,176],[515,4],[516,4],[517,161],[519,177],[518,4],[482,4],[406,178],[407,178],[408,179],[346,180],[409,181],[410,182],[411,183],[344,4],[412,184],[413,185],[414,186],[415,187],[416,188],[417,189],[418,189],[419,190],[420,191],[421,192],[422,193],[347,4],[345,4],[423,194],[424,195],[425,196],[466,197],[426,198],[427,199],[428,198],[429,200],[430,201],[373,202],[385,203],[370,204],[386,205],[395,206],[361,207],[362,208],[360,209],[394,151],[389,210],[393,211],[364,212],[382,213],[363,214],[392,215],[358,216],[359,210],[365,217],[366,4],[372,218],[369,217],[356,219],[396,220],[387,221],[376,222],[375,217],[377,223],[380,224],[374,225],[378,226],[390,151],[367,227],[368,228],[381,229],[357,205],[384,230],[383,217],[371,228],[379,231],[388,4],[355,4],[391,232],[432,233],[433,234],[434,234],[435,234],[436,235],[437,236],[438,237],[439,238],[440,239],[441,240],[442,240],[443,241],[444,4],[445,4],[446,242],[447,243],[448,242],[449,244],[450,245],[451,246],[452,247],[453,248],[454,249],[455,250],[456,251],[457,252],[458,253],[459,254],[460,255],[461,256],[462,257],[463,258],[348,198],[349,4],[350,259],[351,260],[352,4],[353,261],[354,4],[397,262],[398,263],[399,264],[400,264],[401,265],[402,4],[403,181],[404,266],[405,263],[464,267],[465,268],[520,4],[521,4],[522,4],[523,4],[524,4],[488,4],[489,4],[528,269],[533,270],[532,271],[529,4],[530,272],[525,4],[527,273],[487,274],[492,275],[534,274],[495,4],[535,4],[536,4],[537,151],[538,276],[477,4],[431,4],[526,4],[329,277],[336,278],[334,278],[330,278],[313,279],[333,278],[332,278],[331,278],[335,280],[337,4],[338,281],[318,282],[324,283],[320,283],[322,283],[323,283],[321,283],[319,283],[317,284],[312,4],[315,285],[316,286],[314,4],[256,287],[257,288],[255,4],[531,4],[58,4],[59,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[20,4],[21,4],[4,4],[22,4],[26,4],[23,4],[24,4],[25,4],[27,4],[28,4],[29,4],[5,4],[30,4],[31,4],[32,4],[33,4],[6,4],[37,4],[34,4],[35,4],[36,4],[38,4],[7,4],[39,4],[44,4],[45,4],[40,4],[41,4],[42,4],[43,4],[8,4],[49,4],[46,4],[47,4],[48,4],[50,4],[9,4],[51,4],[52,4],[53,4],[55,4],[54,4],[1,4],[56,4],[57,4],[245,289],[244,290],[302,291],[310,292],[307,293],[342,294],[306,160],[308,295],[343,296],[311,297],[285,298],[340,299],[248,300],[283,301],[297,302],[303,303],[304,304],[469,305],[309,306],[286,307],[287,308],[249,309],[288,310],[289,309],[468,156],[281,311],[259,4],[276,312],[277,4],[246,4],[470,4],[278,4],[279,4],[280,313],[298,314],[264,4],[273,315],[269,316],[270,317],[267,318],[268,319],[275,320],[271,321],[274,322],[265,4],[272,323],[266,319],[261,4],[262,4],[263,4],[290,324],[260,4],[291,301],[250,309],[282,325],[258,326],[292,327],[471,4],[293,4],[295,328],[296,4],[294,4],[284,329],[301,330],[299,329],[472,4],[300,4],[247,313],[339,331]],"latestChangedDtsFile":"./build/models/derivation/schemas/PrismDerivation.d.ts","version":"5.9.3"}
\ No newline at end of file
diff --git a/packages/lib/react/README.md b/packages/lib/react/README.md
new file mode 100644
index 000000000..eea466d88
--- /dev/null
+++ b/packages/lib/react/README.md
@@ -0,0 +1,15 @@
+
+
+
+
+You can install the SDK with npm, yarn, etc.
+
+```sh
+npm i @hyperledger/identus-react --save
+
+```
+
+Or using yarn:
+```sh
+yarn add @hyperledger/identus-react
+```
diff --git a/packages/lib/react/eslint.config.mjs b/packages/lib/react/eslint.config.mjs
new file mode 100644
index 000000000..33b317893
--- /dev/null
+++ b/packages/lib/react/eslint.config.mjs
@@ -0,0 +1,3 @@
+import config from "../../../eslint.config.mjs";
+
+export default config;
\ No newline at end of file
diff --git a/packages/lib/react/package.json b/packages/lib/react/package.json
new file mode 100644
index 000000000..85444552d
--- /dev/null
+++ b/packages/lib/react/package.json
@@ -0,0 +1,61 @@
+{
+ "name": "@hyperledger/identus-react",
+ "version": "0.0.0",
+ "description": "Identus SDK - React hooks and wrappers",
+ "type": "module",
+ "main": "./build/index.cjs",
+ "module": "./build/index.js",
+ "exports": {
+ ".": {
+ "types": "./build/index.d.ts",
+ "import": "./build/index.js",
+ "require": "./build/index.cjs",
+ "default": "./build/index.js"
+ }
+ },
+ "types": "./build/index.d.ts",
+ "files": [
+ "build/**/*",
+ "README.MD",
+ "preinstall.sh",
+ "postinstall.sh",
+ "patches/*.patch"
+ ],
+ "browserslist": [
+ "last 2 chrome version",
+ "last 2 firefox version",
+ "last 2 safari version",
+ "last 2 edge version"
+ ],
+ "scripts": {
+ "prepare": "npx husky",
+ "lint": "npx eslint ."
+ },
+ "author": "IOHK",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/hyperledger-identus/sdk-ts.git"
+ },
+ "license": "Apache-2.0",
+ "keywords": [],
+ "devDependencies": {
+ "@hyperledger/identus-sdk": "workspace:*",
+ "@testing-library/dom": "^10.4.1",
+ "@testing-library/react": "^16",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "react": "^18",
+ "react-dom": "^18"
+ },
+ "dependencies": {
+ "multiformats": "^9.9.0",
+ "react": "^18",
+ "react-dom": "^18",
+ "uuid": "^11.1.0"
+ },
+ "peerDependencies": {
+ "@hyperledger/identus-sdk": "workspace:*",
+ "react": "^18",
+ "react-dom": "^18"
+ }
+}
diff --git a/packages/lib/react/project.json b/packages/lib/react/project.json
new file mode 100644
index 000000000..67b918ca7
--- /dev/null
+++ b/packages/lib/react/project.json
@@ -0,0 +1,72 @@
+{
+ "projectType": "library",
+ "implicitDependencies": [
+ "@hyperledger/identus-domain",
+ "@hyperledger/identus-didcomm",
+ "@hyperledger/identus-anoncreds",
+ "@hyperledger/identus-jwe",
+ "@hyperledger/identus-protos"
+ ],
+ "tags": [
+ "scope:building-block"
+ ],
+ "targets": {
+ "build": {
+ "dependsOn": [
+ "^build"
+ ],
+ "executor": "nx:run-commands",
+ "outputs": [
+ "{projectRoot}/build"
+ ],
+ "options": {
+ "commands": [
+ "rm -rf build/*",
+ "tsup --config tsup.config.ts --format esm,cjs",
+ "tsup --config tsup.types.config.ts --dts-only"
+ ],
+ "cwd": "{projectRoot}",
+ "parallel": false
+ }
+ },
+ "test": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "vitest --config=vitest.config.js --run",
+ "cwd": "{projectRoot}"
+ }
+ },
+ "test-watch": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "vitest watch --config=vitest.config.js",
+ "cwd": "{projectRoot}"
+ }
+ },
+ "coverage": {
+ "dependsOn": [],
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "vitest --config=vitest.config.js --run --coverage",
+ "cwd": "{projectRoot}"
+ }
+ },
+ "lint": {
+ "executor": "nx:run-commands",
+ "options": {
+ "command": "eslint .",
+ "cwd": "{projectRoot}"
+ }
+ },
+ "docs": {
+ "executor": "nx:run-commands",
+ "outputs": [
+ "{workspaceRoot}/docs/sdk"
+ ],
+ "options": {
+ "command": "typedoc --options typedoc.js --out ../../../docs/react",
+ "cwd": "{projectRoot}"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/config/index.ts b/packages/lib/react/src/config/index.ts
new file mode 100644
index 000000000..04d27e098
--- /dev/null
+++ b/packages/lib/react/src/config/index.ts
@@ -0,0 +1,5 @@
+export const PRISM_RESOLVER_URL_KEY = "prism-resolver-url";
+export const BLOCKFROST_KEY_NAME = "blockfrost-key";
+export const WALLET_NAME = "wallet-name";
+export const MEDIATOR_DID = "mediator";
+export const FEATURES = 'enabled-features';
\ No newline at end of file
diff --git a/packages/lib/react/src/context/index.ts b/packages/lib/react/src/context/index.ts
new file mode 100644
index 000000000..704f56380
--- /dev/null
+++ b/packages/lib/react/src/context/index.ts
@@ -0,0 +1,762 @@
+/**
+ * @packageDocumentation
+ *
+ * @module
+ */
+import { type Domain, type Agent, type Pluto, type Issuance, type StartOptions } from "@hyperledger/identus-sdk";
+import { createContext } from "react";
+import { type useDatabase } from "../hooks";
+import { type PresentationClaims } from "@hyperledger/identus-sdk/plugins/oea";
+
+type UseDatabase = ReturnType;
+type IssuanceFlow = Awaited>;
+type Request = IssuanceFlow extends infer T ? T extends null ? never : T : never;
+
+/**
+ * React context for managing Prism DID operations and state.
+ *
+ * Prism DIDs are long-lived, blockchain-anchored identifiers that provide
+ * persistent, verifiable identity on the Cardano network. This context manages
+ * the creation and state of Prism DIDs within the application.
+ *
+ * @example
+ * ```tsx
+ * import { PrismDIDContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ *
+ * function PrismDIDManager() {
+ * const context = useContext(PrismDIDContext);
+ *
+ * if (!context) {
+ * throw new Error('PrismDIDManager must be used within PrismDIDProvider');
+ * }
+ *
+ * const { prismDID, create } = context;
+ *
+ * const handleCreateDID = async () => {
+ * await create('my-main-identity');
+ * };
+ *
+ * return (
+ *
+ * {prismDID ? (
+ *
Prism DID: {prismDID.toString()}
+ * ) : (
+ *
Create Prism DID
+ * )}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const PrismDIDContext = createContext<{
+ /** Current Prism DID instance, null if not yet created */
+ prismDID: Domain.DID | null;
+ /** Function to create a new Prism DID with an alias */
+ create: (alias: string) => Promise;
+ isPublished: (did: Domain.DID) => Promise;
+} | undefined>(undefined);
+
+/**
+ * React context for managing Peer DID operations and state.
+ *
+ * Peer DIDs are ephemeral, off-ledger identifiers used for direct peer-to-peer
+ * communication. They can be created quickly without blockchain interaction
+ * and are ideal for secure messaging between parties.
+ *
+ * @example
+ * ```tsx
+ * import { PeerDIDContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ *
+ * function PeerDIDManager() {
+ * const context = useContext(PeerDIDContext);
+ *
+ * if (!context) {
+ * throw new Error('PeerDIDManager must be used within PeerDIDProvider');
+ * }
+ *
+ * const { peerDID, create } = context;
+ *
+ * const handleCreatePeerDID = async () => {
+ * await create();
+ * };
+ *
+ * return (
+ *
+ * {peerDID ? (
+ *
+ *
Peer DID: {peerDID.toString()}
+ *
Ready for secure messaging
+ *
+ * ) : (
+ *
Create Peer DID
+ * )}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const PeerDIDContext = createContext<{
+ /** Current Peer DID instance, null if not yet created */
+ peerDID: Domain.DID | null;
+ /** Function to create a new Peer DID */
+ create: () => Promise;
+} | undefined>(undefined);
+
+/**
+ * Enumeration of possible database connection states.
+ *
+ */
+export type DatabaseState = 'disconnected' | 'loading' | 'loaded' | 'error';
+
+/**
+ * Type definition for DID with extended metadata including alias and keys.
+ *
+ */
+export type DIDAlias = {
+ /** The DID instance */
+ did: Domain.DID;
+ /** Optional human-readable alias for the DID */
+ alias?: string;
+ /** Current status of the DID (e.g., 'active', 'published', 'deactivated') */
+ status: string;
+ /** Associated private keys for the DID */
+ keys: Domain.PrivateKey[];
+}
+
+/**
+ * Type definition for DIDs grouped by their status or type.
+ *
+ */
+export type GroupedDIDs = Record;
+
+
+export type AgentContextType = {
+ agent: Agent | null;
+ /** Function to start the agent */
+ start: () => Promise;
+ /** Function to stop the agent */
+ stop: () => Promise;
+ /** Current component state */
+ state: any;
+}
+
+
+/**
+ * React context for comprehensive database operations and state management.
+ *
+ * This context provides access to all database-related functionality including
+ * DID management, message handling, credential storage, issuance flows, and
+ * application settings. It serves as the central data layer for the identity wallet.
+ *
+ * @example
+ * ```tsx
+ * import { DatabaseContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ * import { StorageType } from '@hyperledger/identus-sdk';
+ *
+ * function DatabaseManager() {
+ * const context = useContext(DatabaseContext);
+ *
+ * if (!context) {
+ * throw new Error('DatabaseManager must be used within DatabaseProvider');
+ * }
+ *
+ * const { db, state, start, getExtendedDIDs, getSeed } = context;
+ *
+ * const initializeDatabase = async () => {
+ * await start({
+ * name: 'my-wallet',
+ * storageType: StorageType.IndexDB
+ * });
+ * };
+ *
+ * const loadWalletData = async () => {
+ * const dids = await getExtendedDIDs();
+ * const seed = await getSeed();
+ * console.log('DIDs:', dids.length, 'Seed exists:', !!seed);
+ * };
+ *
+ * return (
+ *
+ *
Database State: {state}
+ *
Initialize
+ *
Load Data
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const DatabaseContext = createContext<{
+ /** Internal Pluto store instance */
+ pluto: Pluto | null;
+ /** Current database connection state */
+ state: DatabaseState;
+ /** Current error, if any */
+ error: Error | null;
+ /** Available database features */
+ features: string[];
+ /** Current wallet identifier */
+ wallet: string | null;
+
+ /** Function to start/initialize the database */
+ start: (options?: StartOptions & { name?: string }) => Promise;
+ /** Retrieve all messages with read status */
+ getMessages: () => Promise<{ message: Domain.Message, read: boolean }[]>;
+ /** Mark a message as read */
+ readMessage: (message: Domain.Message) => Promise;
+ /** Delete a message */
+ deleteMessage: (message: Domain.Message) => Promise;
+ /** Get all DIDs with extended metadata */
+ getExtendedDIDs: () => Promise<{ did: Domain.DID, status: string, alias?: string, keys: Domain.PrivateKey[] }[]>;
+ /** Store a DID with associated keys and alias */
+ storeDID: (did: Domain.DID, keys: Domain.PrivateKey[], alias: string) => Promise;
+ /** Update the status of a DID */
+ updateDIDStatus: (did: Domain.DID, status: string) => Promise;
+ /** Get all issuance flows */
+ getIssuanceFlows: () => Promise;
+ /** Get a specific issuance flow by ID */
+ getIssuanceFlow: (id: string) => Promise;
+ /** Create a new issuance flow */
+ createIssuanceFlow: (issuanceFlow: Issuance) => Promise;
+ /** Update an existing issuance flow */
+ updateIssuanceFlow: (issuanceFlow: Issuance) => Promise;
+ /** Delete an issuance flow */
+ deleteIssuanceFlow: (id: string) => Promise;
+ /** Get application setting by key */
+ getSettingsByKey: (key: string) => Promise;
+ /** Store application setting by key */
+ storeSettingsByKey: (key: string, value: string) => Promise;
+ /** Delete application setting by key */
+ deleteSettingsByKey: (key: string) => Promise;
+ /** Get DIDs grouped by status/type */
+ getGroupedDIDs: () => Promise,
+ /** Load available database features */
+ getFeatures: () => Promise;
+ /** Get current mediator DID */
+ getMediator: () => Promise;
+ /** Get wallet seed */
+ getSeed: () => Promise;
+ /** Get wallet identifier */
+ getWallet: () => Promise;
+ /** Get DID resolver URL */
+ getResolverUrl: () => Promise;
+ /** Set mediator DID */
+ setMediator: (mediator: Domain.DID | null) => Promise;
+ /** Set wallet seed */
+ setSeed: (seed: Domain.Seed) => Promise;
+ /** Set wallet identifier */
+ setWallet: (wallet: string | null) => Promise;
+ /** Set DID resolver URL */
+ setResolverUrl: (resolverUrl: string | null) => Promise;
+ /** Get all credentials */
+ getCredentials: () => Promise;
+ /** Delete a credential */
+ deleteCredential: (credential: Domain.Credential) => Promise;
+} | undefined>(undefined);
+
+/**
+ * React context for managing the main Identus Agent operations.
+ *
+ * The Agent is the central orchestrator for all Identus SDK operations including
+ * DIDComm messaging, credential operations, and connection management. This context
+ * provides access to agent lifecycle management and core functionality.
+ *
+ * @example
+ * ```tsx
+ * import { AgentContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ *
+ * function AgentManager() {
+ * const context = useContext(AgentContext);
+ *
+ * if (!context) {
+ * throw new Error('AgentManager must be used within AgentProvider');
+ * }
+ *
+ * const { agent, start, stop, state, setAgent } = context;
+ *
+ * const handleStart = async () => {
+ * try {
+ * await start();
+ * console.log('Agent started successfully');
+ * } catch (error) {
+ * console.error('Failed to start agent:', error);
+ * }
+ * };
+ *
+ * return (
+ *
+ *
Agent State: {state}
+ *
+ * Start Agent
+ *
+ *
+ * Stop Agent
+ *
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const AgentContext = createContext<{
+ /** Current Agent instance or null if not initialized */
+ agent: Agent | null;
+ /** Function to start the agent and begin operations */
+ start: () => Promise;
+ /** Function to stop the agent and cleanup resources */
+ stop: () => Promise;
+ /** Component current state */
+ state: any;
+ /** Function to manually set a new agent instance */
+ setAgent: (agent: Agent) => void;
+} | undefined>(undefined);
+
+/**
+ * React context for credential issuance operations.
+ *
+ * Provides functionality for creating and issuing verifiable credentials to holders.
+ * Includes support for out-of-band credential offers and direct credential issuance.
+ *
+ * @example
+ * ```tsx
+ * import { IssuerContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ * import { Domain } from "@hyperledger/identus-sdk";
+ *
+ * function CredentialIssuer() {
+ * const context = useContext(IssuerContext);
+ *
+ * if (!context) {
+ * throw new Error('CredentialIssuer must be used within IssuerProvider');
+ * }
+ *
+ * const { createOOBOffer, issueCredential, state } = context;
+ *
+ * const createDriversLicenseOffer = async () => {
+ * const offer = await createOOBOffer(
+ * Domain.CredentialType.JWT,
+ * 'drivers-license-123',
+ * {
+ * name: 'John Doe',
+ * licenseNumber: 'DL123456',
+ * expirationDate: '2025-12-31'
+ * }
+ * );
+ *
+ * // Share offer with holder
+ * console.log('Credential offer:', offer);
+ * };
+ *
+ * return (
+ *
+ *
Issuer State: {state}
+ *
+ * Create Driver's License Offer
+ *
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const IssuerContext = createContext;
+ /**
+ * Create an out-of-band credential offer.
+ *
+ * @param type - Type of credential to offer
+ * @param id - Unique identifier for the credential
+ * @param claims - Claims to include in the credential
+ * @returns Promise resolving to the offer URL/string
+ */
+ createOOBOffer(
+ type: T,
+ id: string,
+ claims: { name: string, value: string, type: string }[]
+ ): Promise;
+ /**
+ * Issue a credential directly to a holder.
+ *
+ * @param type - Type of credential to issue
+ * @param message - DIDComm message context
+ * @param claims - Claims to include in the credential
+ * @param issuerDID - DID of the issuer
+ * @param holderDID - DID of the holder
+ */
+ issueCredential(
+ type: T,
+ message: Domain.Message,
+ claims: { name: string, value: string, type: string }[],
+ issuerDID: Domain.DID,
+ holderDID: Domain.DID,
+ ): Promise;
+} | undefined>(undefined);
+
+/**
+ * React context for credential verification operations.
+ *
+ * Provides functionality for requesting and verifying credential presentations
+ * from holders. Supports presentation requests and verification of received
+ * credential presentations.
+ *
+ * @example
+ * ```tsx
+ * import { VerifierContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ * import { Domain } from "@hyperledger/identus-sdk";
+ *
+ * function CredentialVerifier() {
+ * const context = useContext(VerifierContext);
+ *
+ * if (!context) {
+ * throw new Error('CredentialVerifier must be used within VerifierProvider');
+ * }
+ *
+ * const { issuePresentationRequest, verifyPresentation } = context;
+ *
+ * const requestAgeVerification = async (holderDID: Domain.DID) => {
+ * await issuePresentationRequest(
+ * Domain.CredentialType.JWT,
+ * holderDID,
+ * { age: { min: 21 } }
+ * );
+ * };
+ *
+ * const verifyAgePresentation = async (presentation: Domain.Message) => {
+ * const isValid = await verifyPresentation(presentation);
+ * console.log('Age verification result:', isValid);
+ * };
+ *
+ * return (
+ *
+ * requestAgeVerification(holderDID)}>
+ * Request Age Verification
+ *
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const VerifierContext = createContext(type: T, claims: PresentationClaims) => Promise;
+ getOOBPresentationRequest: (fromPeerDID: Domain.DID, requestPresentationMessage: Domain.Message) => string;
+ /**
+ * Issue a presentation request to a holder.
+ *
+ * @param type - Type of credential being requested
+ * @param toDID - DID of the holder to request from
+ * @param claims - Claims being requested
+ */
+ issuePresentationRequest(
+ type: T,
+ toDID: Domain.DID,
+ claims: PresentationClaims
+ ): Promise;
+ /**
+ * Verify a received presentation.
+ *
+ * @param presentation - Presentation message to verify
+ * @returns Promise resolving to verification result
+ */
+ verifyPresentation(
+ presentation: Domain.Message,
+ ): Promise;
+} | undefined>(undefined);
+
+/**
+ * React context for credential holder operations.
+ *
+ * Provides functionality for receiving, storing, and presenting verifiable credentials.
+ * Includes support for parsing credential offers, accepting credentials, and responding
+ * to presentation requests.
+ *
+ * @example
+ * ```tsx
+ * import { HolderContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ *
+ * function CredentialHolder() {
+ * const context = useContext(HolderContext);
+ *
+ * if (!context) {
+ * throw new Error('CredentialHolder must be used within HolderProvider');
+ * }
+ *
+ * const { parseOOBOffer, acceptOOBOffer, handlePresentationRequest } = context;
+ *
+ * const acceptCredentialOffer = async (offerUrl: string, peerDID: Domain.DID) => {
+ * try {
+ * // Parse the offer
+ * const message = await parseOOBOffer(offerUrl, peerDID);
+ *
+ * // Accept and store the credential
+ * await acceptOOBOffer(message);
+ *
+ * console.log('Credential accepted and stored');
+ * } catch (error) {
+ * console.error('Failed to accept credential:', error);
+ * }
+ * };
+ *
+ * return (
+ *
+ * acceptCredentialOffer(offerUrl, myPeerDID)}>
+ * Accept Credential Offer
+ *
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const HolderContext = createContext;
+
+ /**
+ * Parse an out-of-band credential offer.
+ * @deprecated Use parseOOBO instead
+ * @param url - Credential offer URL or string
+ * @returns Promise resolving to parsed message
+ */
+ parseOOBOffer(
+ url: string,
+ ): Promise;
+ /**
+ * Accept an out-of-band credential offer.
+ *
+ * @param message - Parsed offer message
+ */
+ acceptOOBOffer(
+ message: Domain.Message,
+ ): Promise;
+
+ /**
+ * Handle a presentation request by providing a credential.
+ *
+ * @param message - Presentation request message
+ * @param credential - Credential to present
+ */
+ handlePresentationRequest(
+ message: Domain.Message,
+ credential: Domain.Credential,
+ ): Promise;
+} | undefined>(undefined);
+
+/**
+ * React context for DIDComm message management.
+ *
+ * Provides comprehensive functionality for managing DIDComm messages including
+ * reading, deleting, and organizing messages by type and status. Essential for
+ * handling communication between identity entities.
+ *
+ * @example
+ * ```tsx
+ * import { MessagesContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ *
+ * function MessageInbox() {
+ * const context = useContext(MessagesContext);
+ *
+ * if (!context) {
+ * throw new Error('MessageInbox must be used within MessagesProvider');
+ * }
+ *
+ * const {
+ * messages,
+ * unreadMessages,
+ * readMessage,
+ * deleteMessage
+ * } = context;
+ *
+ * const markAsRead = async (message: Domain.Message) => {
+ * await readMessage(message);
+ * };
+ *
+ * const removeMessage = async (message: Domain.Message) => {
+ * await deleteMessage(message);
+ * };
+ *
+ * return (
+ *
+ *
Messages ({messages.length})
+ *
Unread: {unreadMessages.length}
+ *
+ * {messages.map((item, index) => (
+ *
+ *
From: {item.message.from?.toString()}
+ *
Type: {item.message.piuri}
+ *
markAsRead(item.message)}>
+ * Mark as Read
+ *
+ *
removeMessage(item.message)}>
+ * Delete
+ *
+ *
+ * ))}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const MessagesContext = createContext<{
+ /** Array of all messages with their read status */
+ messages: { message: Domain.Message, read: boolean }[];
+ /** Array of received messages only */
+ receivedMessages: Domain.Message[];
+ /** Array of sent messages only */
+ sentMessages: Domain.Message[];
+ /** Array of unread messages only */
+ unreadMessages: Domain.Message[];
+ /** Function to mark a message as read */
+ readMessage: (message: Domain.Message) => Promise;
+ /** Function to delete a message */
+ deleteMessage: (message: Domain.Message) => Promise;
+ /** Function to refresh messages from storage */
+ load: () => Promise;
+} | undefined>(undefined);
+
+/**
+ * React context for credential storage and management.
+ *
+ * Provides functionality for managing stored verifiable credentials including
+ * retrieval, deletion, and refresh operations. Central to the credential wallet
+ * functionality.
+ *
+ * @example
+ * ```tsx
+ * import { CredentialsContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ *
+ * function CredentialWallet() {
+ * const context = useContext(CredentialsContext);
+ *
+ * if (!context) {
+ * throw new Error('CredentialWallet must be used within CredentialsProvider');
+ * }
+ *
+ * const { credentials, deleteCredential, fetchCredentials } = context;
+ *
+ * const removeCredential = async (credential: Domain.Credential) => {
+ * if (confirm('Delete this credential?')) {
+ * await deleteCredential(credential);
+ * }
+ * };
+ *
+ * const refreshCredentials = async () => {
+ * await fetchCredentials();
+ * };
+ *
+ * return (
+ *
+ *
My Credentials ({credentials.length})
+ *
Refresh
+ *
+ * {credentials.map((credential, index) => (
+ *
+ *
{credential.claims.name || 'Unnamed Credential'}
+ *
Issuer: {credential.issuer}
+ *
removeCredential(credential)}>
+ * Delete
+ *
+ *
+ * ))}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const CredentialsContext = createContext<{
+
+ /** Array of stored credentials */
+ credentials: Domain.Credential[];
+ /** Function to delete a credential */
+ deleteCredential: (credential: Domain.Credential) => Promise;
+ /** Function to refresh credentials from storage */
+ load: () => Promise;
+} | undefined>(undefined);
+
+/**
+ * React context for DID connection management.
+ *
+ * Provides functionality for managing established DID connections (relationships
+ * between DIDs) including viewing and deleting connections. Essential for managing
+ * the network of trusted relationships in an identity system.
+ *
+ * @example
+ * ```tsx
+ * import { ConnectionsContext } from '@hyperledger/identus-react/context';
+ * import { useContext } from 'react';
+ *
+ * function ConnectionManager() {
+ * const context = useContext(ConnectionsContext);
+ *
+ * if (!context) {
+ * throw new Error('ConnectionManager must be used within ConnectionsProvider');
+ * }
+ *
+ * const { connections, deleteConnection } = context;
+ *
+ * const removeConnection = async (connection: Domain.DIDPair) => {
+ * if (confirm('Delete this connection?')) {
+ * await deleteConnection(connection);
+ * }
+ * };
+ *
+ * return (
+ *
+ *
My Connections ({connections.length})
+ *
+ * {connections.map((connection, index) => (
+ *
+ *
Connection {index + 1}
+ *
Host: {connection.host.toString()}
+ *
Receiver: {connection.receiver.toString()}
+ *
removeConnection(connection)}>
+ * Delete
+ *
+ *
+ * ))}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export const ConnectionsContext = createContext<{
+ /** Array of established DID connections */
+ connections: Domain.DIDPair[];
+ /** Function to delete a connection */
+ deleteConnection: (connection: Domain.DIDPair) => Promise;
+ /** Function to refresh connections from storage */
+ load: () => Promise;
+} | undefined>(undefined);
+
diff --git a/packages/lib/react/src/hooks/index.ts b/packages/lib/react/src/hooks/index.ts
new file mode 100644
index 000000000..445847b80
--- /dev/null
+++ b/packages/lib/react/src/hooks/index.ts
@@ -0,0 +1,18 @@
+/**
+ * @packageDocumentation
+ *
+ * @module
+ */
+
+export * from "./useApollo";
+export * from "./useCastor";
+export * from "./usePrismDID";
+export * from "./usePeerDID";
+export * from "./useAgent";
+export * from "./useIssuer";
+export * from "./useHolder";
+export * from "./useVerifier";
+export * from "./useMessages";
+export * from "./useCredentials";
+export * from "./useConnections";
+export * from "./useDatabase";
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/useAgent.ts b/packages/lib/react/src/hooks/useAgent.ts
new file mode 100644
index 000000000..383b87e39
--- /dev/null
+++ b/packages/lib/react/src/hooks/useAgent.ts
@@ -0,0 +1,69 @@
+/**
+ * @packageDocumentation
+ *
+ * @module
+ */
+import { useContext } from "react";
+import { AgentContext } from "../context";
+
+/**
+ * Hook for accessing the main Identus Agent context and operations.
+ *
+ * The Agent is the central component that orchestrates all Identus SDK operations
+ * including DIDComm messaging, credential operations, and connection management.
+ * This hook must be used within an AgentProvider.
+ *
+ * @returns Agent context object with agent management functionality
+ *
+ * @throws {Error} When used outside of AgentProvider
+ *
+ * @example
+ * ```tsx
+ * import { useAgent } from '@hyperledger/identus-react/hooks';
+ *
+ * function AgentController() {
+ * const { agent, start, stop, state, setAgent } = useAgent();
+ *
+ * const handleStart = async () => {
+ * try {
+ * await start();
+ * console.log('Agent started successfully');
+ * } catch (error) {
+ * console.error('Failed to start agent:', error);
+ * }
+ * };
+ *
+ * const handleStop = async () => {
+ * try {
+ * await stop();
+ * console.log('Agent stopped successfully');
+ * } catch (error) {
+ * console.error('Failed to stop agent:', error);
+ * }
+ * };
+ *
+ * return (
+ *
+ *
Agent State: {state}
+ *
+ *
+ * Start Agent
+ *
+ *
+ * Stop Agent
+ *
+ *
+ * {agent &&
Agent ID: {agent.getCurrentDID()?.toString()}
}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export function useAgent() {
+ const context = useContext(AgentContext);
+ if (!context) {
+ throw new Error('useAgent must be used within a AgentProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/useApollo.ts b/packages/lib/react/src/hooks/useApollo.ts
new file mode 100644
index 000000000..90df7f520
--- /dev/null
+++ b/packages/lib/react/src/hooks/useApollo.ts
@@ -0,0 +1,16 @@
+import * as SDK from "@hyperledger/identus-sdk";
+import { useMemo } from "react";
+
+/**
+ * Creates and returns a memoized instance of Apollo DID resolver.
+ *
+ * Apollo is the DID resolver component of the Identus SDK that handles resolving
+ * Decentralized Identifiers (DIDs) to their corresponding DID Documents.
+ *
+ * @returns Apollo context
+ *
+ */
+export function useApollo() {
+ const apollo = useMemo(() => new SDK.Apollo(), []);
+ return apollo;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/useCastor.ts b/packages/lib/react/src/hooks/useCastor.ts
new file mode 100644
index 000000000..b8db0b235
--- /dev/null
+++ b/packages/lib/react/src/hooks/useCastor.ts
@@ -0,0 +1,50 @@
+import * as SDK from "@hyperledger/identus-sdk";
+import { useMemo } from "react";
+import { useApollo } from "./useApollo";
+
+export type ExtraResolver = new (apollo: SDK.Domain.Apollo) => SDK.Domain.DIDResolver;
+
+/**
+ * Creates and returns a memoized instance of Castor with optional additional resolvers.
+ *
+ * Castor is the cryptographic component of the Identus SDK responsible for DID operations,
+ * key management, and cryptographic functions. It can be extended with additional DID resolvers.
+ *
+ * @param {ExtraResolver[]} resolvers - Optional array of additional DID resolver constructors to extend Castor functionality
+ * @returns Castor Context
+ *
+ * @example
+ * ```tsx
+ * import { useCastor } from '@hyperledger/identus-react/hooks';
+ * import { Domain } from '@hyperledger/identus-sdk';
+ *
+ * function DIDManager() {
+ * // Basic usage without additional resolvers
+ * const castor = useCastor();
+ *
+ * // Usage with custom resolvers
+ * const castorWithResolvers = useCastor([CustomResolver1, CustomResolver2]);
+ *
+ * const resolveDID = async () => {
+ * try {
+ * const didDocument = await castor.resolveDID(Domain.DID.fromString('did:prism:example'));
+ * console.log('Resolved DID:', didDocument.toString());
+ * } catch (error) {
+ * console.error('Failed to resolve DID:', error);
+ * }
+ * };
+ *
+ * return (
+ *
+ * Resolve DID
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export function useCastor(resolvers: ExtraResolver[] = []) {
+ const apollo = useApollo();
+ const castor = useMemo(() => new SDK.Castor(apollo, resolvers), [apollo, resolvers]);
+ return castor;
+}
diff --git a/packages/lib/react/src/hooks/useConnections.ts b/packages/lib/react/src/hooks/useConnections.ts
new file mode 100644
index 000000000..25d802906
--- /dev/null
+++ b/packages/lib/react/src/hooks/useConnections.ts
@@ -0,0 +1,69 @@
+import { useContext } from "react";
+import { ConnectionsContext } from "../context";
+
+
+/**
+ * Hook for accessing DID connection context and operations.
+ *
+ * Provides functionality for managing established DID connections (relationships
+ * between DIDs) including viewing and deleting connections. This hook must be
+ * used within a ConnectionsProvider.
+ *
+ * @returns {Object} Connections context
+ *
+ * @throws {Error} When used outside of ConnectionsProvider
+ *
+ * @example
+ * ```tsx
+ * import { useConnections } from '@hyperledger/identus-react/hooks';
+ *
+ * function ConnectionManager() {
+ * const { connections, deleteConnection } = useConnections();
+ *
+ * const handleDeleteConnection = async (connection) => {
+ * if (window.confirm('Are you sure you want to delete this connection?')) {
+ * try {
+ * await deleteConnection(connection);
+ * console.log('Connection deleted successfully');
+ * } catch (error) {
+ * console.error('Failed to delete connection:', error);
+ * }
+ * }
+ * };
+ *
+ * return (
+ *
+ *
My Connections ({connections.length})
+ *
+ * {connections.map((connection, index) => (
+ *
+ *
Connection {index + 1}
+ *
Host: {connection.host.toString()}
+ *
Receiver: {connection.receiver.toString()}
+ *
Name: {connection.name || 'Unnamed Connection'}
+ *
+ *
handleDeleteConnection(connection)}
+ * className="delete-button"
+ * >
+ * Delete Connection
+ *
+ *
+ * ))}
+ *
+ * {connections.length === 0 && (
+ *
No connections established. Create a connection to get started.
+ * )}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export function useConnections() {
+ const context = useContext(ConnectionsContext);
+ if (!context) {
+ throw new Error('useConnections must be used within a ConnectionsProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/useCredentials.ts b/packages/lib/react/src/hooks/useCredentials.ts
new file mode 100644
index 000000000..cda6d5a9b
--- /dev/null
+++ b/packages/lib/react/src/hooks/useCredentials.ts
@@ -0,0 +1,79 @@
+
+import { useContext } from "react";
+import { CredentialsContext } from "../context";
+
+/**
+ * Hook for accessing credential storage context and operations.
+ *
+ * Provides functionality for managing stored verifiable credentials including
+ * retrieval, deletion, and refresh operations. This hook must be used within
+ * a CredentialsProvider.
+ *
+ * @returns {Object} Credentials context
+ *
+ * @throws {Error} When used outside of CredentialsProvider
+ *
+ * @example
+ * ```tsx
+ * import { useCredentials } from '@hyperledger/identus-react/hooks';
+ *
+ * function CredentialWallet() {
+ * const { credentials, deleteCredential, fetchCredentials } = useCredentials();
+ *
+ * const handleDeleteCredential = async (credential) => {
+ * if (window.confirm('Are you sure you want to delete this credential?')) {
+ * try {
+ * await deleteCredential(credential);
+ * console.log('Credential deleted successfully');
+ * } catch (error) {
+ * console.error('Failed to delete credential:', error);
+ * }
+ * }
+ * };
+ *
+ * const refreshCredentials = async () => {
+ * try {
+ * await fetchCredentials();
+ * console.log('Credentials refreshed');
+ * } catch (error) {
+ * console.error('Failed to refresh credentials:', error);
+ * }
+ * };
+ *
+ * return (
+ *
+ *
My Credentials ({credentials.length})
+ *
Refresh
+ *
+ * {credentials.map((credential, index) => (
+ *
+ *
{credential.claims.name || 'Unnamed Credential'}
+ *
Issuer: {credential.issuer}
+ *
Type: {credential.credentialType}
+ *
ID: {credential.id}
+ *
+ *
handleDeleteCredential(credential)}
+ * className="delete-button"
+ * >
+ * Delete
+ *
+ *
+ * ))}
+ *
+ * {credentials.length === 0 && (
+ *
No credentials stored. Accept a credential offer to get started.
+ * )}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export function useCredentials() {
+ const context = useContext(CredentialsContext);
+ if (!context) {
+ throw new Error('useCredentials must be used within a CredentialsProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/useDatabase.ts b/packages/lib/react/src/hooks/useDatabase.ts
new file mode 100644
index 000000000..6dfeeebfb
--- /dev/null
+++ b/packages/lib/react/src/hooks/useDatabase.ts
@@ -0,0 +1,21 @@
+import { useContext } from "react";
+import { DatabaseContext } from "../context";
+
+/**
+ * Hook for accessing database context and operations.
+ *
+ * Provides comprehensive database functionality including DID management, message handling,
+ * credential storage, and application settings. This hook must be used within a DatabaseProvider.
+ *
+ * @returns {Object} Database context
+ *
+ * @throws {Error} When used outside of DatabaseProvider
+ *
+ */
+export function useDatabase() {
+ const context = useContext(DatabaseContext);
+ if (!context) {
+ throw new Error('useDatabase must be used within a DatabaseProvider');
+ }
+ return context;
+}
diff --git a/packages/lib/react/src/hooks/useHolder.ts b/packages/lib/react/src/hooks/useHolder.ts
new file mode 100644
index 000000000..7b1c7430c
--- /dev/null
+++ b/packages/lib/react/src/hooks/useHolder.ts
@@ -0,0 +1,37 @@
+import { useContext } from "react";
+import { HolderContext } from "../context";
+
+/**
+ * Hook for accessing credential holder context and operations.
+ *
+ * Provides functionality for receiving, storing, and presenting verifiable credentials.
+ * This hook must be used within a HolderProvider and requires a running agent.
+ *
+ * @example
+ * ```tsx
+ * import { useHolder } from '@hyperledger/identus-react/hooks';
+ * import { Domain } from '@hyperledger/identus-sdk';
+ *
+ * function HolderComponent({ mockMessage }: { mockMessage: Domain.Message }) {
+ * const { acceptOOBOffer } = useHolder();
+ *
+ * const handleOffer = async () => {
+ * await acceptOOBOffer(mockMessage);
+ * };
+ *
+ * return Accept Offer ;
+ * }
+ * ```
+ *
+ * @returns {Object} Holder context
+ *
+ * @throws {Error} When used outside of HolderProvider
+ *
+ */
+export function useHolder() {
+ const context = useContext(HolderContext);
+ if (!context) {
+ throw new Error('useHolder must be used within a HolderProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/useIssuer.ts b/packages/lib/react/src/hooks/useIssuer.ts
new file mode 100644
index 000000000..a1b7d2d82
--- /dev/null
+++ b/packages/lib/react/src/hooks/useIssuer.ts
@@ -0,0 +1,42 @@
+import { useContext } from "react";
+import { IssuerContext } from "../context";
+
+/**
+ * Hook for accessing credential issuance context and operations.
+ *
+ * Provides functionality for creating and issuing verifiable credentials to holders.
+ * This hook must be used within an IssuerProvider and requires a running agent.
+ *
+ * @example
+ * ```tsx
+ * import { useIssuer } from '@hyperledger/identus-react/hooks';
+ * import { Domain } from '@hyperledger/identus-sdk';
+ *
+ * function IssuerComponent() {
+ * const { createOOBOffer } = useIssuer();
+ *
+ * const createOffer = async () => {
+ * const url = await createOOBOffer(
+ * Domain.CredentialType.JWT,
+ * 'credential-id',
+ * [{ name: 'name', value: 'Alice', type: 'string' }]
+ * );
+ * console.log('Offer URL:', url);
+ * };
+ *
+ * return Create Offer ;
+ * }
+ * ```
+ *
+ * @returns {Object} Issuer context
+ *
+ * @throws {Error} When used outside of IssuerProvider
+ *
+ */
+export function useIssuer() {
+ const context = useContext(IssuerContext);
+ if (!context) {
+ throw new Error('useIssuer must be used within a IssuerProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/useMessages.ts b/packages/lib/react/src/hooks/useMessages.ts
new file mode 100644
index 000000000..85e018c34
--- /dev/null
+++ b/packages/lib/react/src/hooks/useMessages.ts
@@ -0,0 +1,85 @@
+import { useContext } from "react";
+import { MessagesContext } from "../context";
+
+/**
+ * Hook for accessing DIDComm message context and operations.
+ *
+ * Provides functionality for managing DIDComm messages including reading, deleting,
+ * and filtering messages by type. This hook must be used within a MessagesProvider.
+ *
+ * @returns {Object} Messages context
+ *
+ * @throws {Error} When used outside of MessagesProvider
+ *
+ * @example
+ * ```tsx
+ * import { useMessages } from '@hyperledger/identus-react/hooks';
+ *
+ * function MessageInbox() {
+ * const {
+ * messages,
+ * unreadMessages,
+ * readMessage,
+ * deleteMessage,
+ * getMessages
+ * } = useMessages();
+ *
+ * const handleReadMessage = async (message) => {
+ * try {
+ * await readMessage(message);
+ * console.log('Message marked as read');
+ * } catch (error) {
+ * console.error('Failed to mark message as read:', error);
+ * }
+ * };
+ *
+ * const handleDeleteMessage = async (message) => {
+ * try {
+ * await deleteMessage(message);
+ * console.log('Message deleted');
+ * } catch (error) {
+ * console.error('Failed to delete message:', error);
+ * }
+ * };
+ *
+ * const refreshMessages = async () => {
+ * try {
+ * await getMessages();
+ * console.log('Messages refreshed');
+ * } catch (error) {
+ * console.error('Failed to refresh messages:', error);
+ * }
+ * };
+ *
+ * return (
+ *
+ *
Messages ({messages.length})
+ *
Unread: {unreadMessages.length}
+ *
+ *
Refresh
+ *
+ * {messages.map((item, index) => (
+ *
+ *
From: {item.message.from?.toString()}
+ *
Type: {item.message.piuri}
+ *
handleReadMessage(item.message)}>
+ * Mark as Read
+ *
+ *
handleDeleteMessage(item.message)}>
+ * Delete
+ *
+ *
+ * ))}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export function useMessages() {
+ const context = useContext(MessagesContext);
+ if (!context) {
+ throw new Error('useMessages must be used within a MessagesProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/usePeerDID.ts b/packages/lib/react/src/hooks/usePeerDID.ts
new file mode 100644
index 000000000..e92f42448
--- /dev/null
+++ b/packages/lib/react/src/hooks/usePeerDID.ts
@@ -0,0 +1,54 @@
+import { useContext } from "react";
+import { PeerDIDContext } from "../context";
+
+/**
+ * Hook for accessing Peer DID context and operations.
+ *
+ * Peer DIDs are ephemeral, off-ledger DIDs used for direct peer-to-peer communication.
+ * They're created quickly and don't require blockchain anchoring. This hook must be used
+ * within a PeerDIDProvider.
+ *
+ * @returns {Object} Peer DID context
+ * @throws {Error} When used outside of PeerDIDProvider
+ *
+ * @example
+ * ```tsx
+ * import { usePeerDID } from '@hyperledger/identus-react/hooks';
+ *
+ * function PeerDIDComponent() {
+ * const { peerDID, create } = usePeerDID();
+ *
+ * const handleCreatePeerDID = async () => {
+ * try {
+ * await create();
+ * console.log('Peer DID created for communication');
+ * } catch (error) {
+ * console.error('Failed to create Peer DID:', error);
+ * }
+ * };
+ *
+ * return (
+ *
+ * {peerDID ? (
+ *
+ *
Peer DID: {peerDID.toString()}
+ *
Ready for peer-to-peer communication
+ *
+ * ) : (
+ *
+ * Create Peer DID
+ *
+ * )}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export function usePeerDID() {
+ const context = useContext(PeerDIDContext);
+ if (!context) {
+ throw new Error('usePeerDID must be used within a PeerDIDProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/usePrismDID.ts b/packages/lib/react/src/hooks/usePrismDID.ts
new file mode 100644
index 000000000..1ee698dea
--- /dev/null
+++ b/packages/lib/react/src/hooks/usePrismDID.ts
@@ -0,0 +1,48 @@
+import { useContext } from "react";
+import { PrismDIDContext } from "../context";
+
+/**
+ * Hook for accessing Prism DID context and operations.
+ *
+ * Prism DIDs are anchored on the Cardano blockchain and provide long-term,
+ * verifiable identity. This hook must be used within a PrismDIDProvider.
+ *
+ * @returns {Object} Prism DID context
+ * @throws {Error} When used outside of PrismDIDProvider
+ *
+ * @example
+ * ```tsx
+ * import { usePrismDID } from '@hyperledger/identus-react/hooks';
+ *
+ * function PrismDIDComponent() {
+ * const { prismDID, create } = usePrismDID();
+ *
+ * const handleCreateDID = async () => {
+ * try {
+ * await create('my-prism-identity');
+ * console.log('Prism DID created successfully');
+ * } catch (error) {
+ * console.error('Failed to create Prism DID:', error);
+ * }
+ * };
+ *
+ * return (
+ *
+ * {prismDID ? (
+ *
Current Prism DID: {prismDID.toString()}
+ * ) : (
+ *
Create Prism DID
+ * )}
+ *
+ * );
+ * }
+ * ```
+ *
+ */
+export function usePrismDID() {
+ const context = useContext(PrismDIDContext);
+ if (!context) {
+ throw new Error('usePrismDID must be used within a PrismDIDProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/hooks/useVerifier.ts b/packages/lib/react/src/hooks/useVerifier.ts
new file mode 100644
index 000000000..c2e9f6482
--- /dev/null
+++ b/packages/lib/react/src/hooks/useVerifier.ts
@@ -0,0 +1,39 @@
+import { useContext } from "react";
+import { VerifierContext } from "../context";
+
+
+
+/**
+ * Hook for accessing credential verification context and operations.
+ *
+ * Provides functionality for requesting and verifying credential presentations
+ * from holders. This hook must be used within a VerifierProvider and requires a running agent.
+ *
+ * @example
+ * ```tsx
+ * import { useVerifier } from '@hyperledger/identus-react/hooks';
+ * import { Domain } from '@hyperledger/identus-sdk';
+ *
+ * function VerifierComponent({ mockPresentation }: { mockPresentation: Domain.Message }) {
+ * const { verifyPresentation } = useVerifier();
+ *
+ * const verify = async () => {
+ * const isValid = await verifyPresentation(mockPresentation);
+ * console.log('Is valid:', isValid);
+ * };
+ *
+ * return Verify ;
+ * }
+ * ```
+ *
+ * @returns {Object} Verifier context
+ * @throws {Error} When used outside of VerifierProvider
+ *
+ */
+export function useVerifier() {
+ const context = useContext(VerifierContext);
+ if (!context) {
+ throw new Error('useVerifier must be used within a VerifierProvider');
+ }
+ return context;
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/index.tsx b/packages/lib/react/src/index.tsx
new file mode 100644
index 000000000..43185f913
--- /dev/null
+++ b/packages/lib/react/src/index.tsx
@@ -0,0 +1,11 @@
+/**
+ * @packageDocumentation
+ *
+ *
+ *
+ *
+ *
+ * @module provider
+ */
+
+export * from "./provider";
\ No newline at end of file
diff --git a/packages/lib/react/src/provider/Agent.tsx b/packages/lib/react/src/provider/Agent.tsx
new file mode 100644
index 000000000..93dc72509
--- /dev/null
+++ b/packages/lib/react/src/provider/Agent.tsx
@@ -0,0 +1,171 @@
+import React, { useCallback, useState } from "react";
+import { Domain, Agent, Castor } from "@hyperledger/identus-sdk";
+
+import { AgentContext } from "../context";
+import { useApollo, useDatabase } from "../hooks";
+import { createResolver } from "../resolver";
+import { MessagesProvider } from "./Messages";
+import { ConnectionsProvider } from "./Connections";
+import { CredentialsProvider } from "./Credentials";
+import { PeerDIDProvider, PrismDIDProvider } from "./DID";
+import { IssuerProvider } from "./Issuer";
+import { HolderProvider } from "./HolderProvider";
+import { VerifierProvider } from "./VerifierProvider";
+import { hasDB } from "../utils";
+import { DatabaseProvider } from "./Database";
+
+function WrappedAgentProvider({ children }: { children: React.ReactNode }) {
+ const apollo = useApollo();
+ const { pluto } = useDatabase();
+ const [agent, setAgent] = useState(null);
+ const [state, setState] = useState(Domain.Startable.State.STOPPED);
+
+ const getSeed = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const seeds = await pluto.store.query("settings", { selector: { key: 'seed' } });
+ if (seeds.length) {
+ return {
+ value: Uint8Array.from(
+ Buffer.from(seeds[0].value, 'hex')
+ )
+ }
+ }
+ return null
+ }, [pluto]);
+
+ const getSettingsByKey = useCallback(async (key: string) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const keys = await pluto.store.query("settings", { selector: { key } });
+ if (keys.length) {
+ return keys[0].value;
+ }
+ return null;
+ }, [pluto]);
+
+ const getMediator = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const mediatorStr = await getSettingsByKey("mediator");
+ if (mediatorStr) {
+ return Domain.DID.fromString(mediatorStr)
+ } else if (process.env.MEDIATOR_DID !== undefined) {
+ return Domain.DID.fromString(process.env.MEDIATOR_DID);
+ } else if (process.env.NEXT_PUBLIC_MEDIATOR_DID !== undefined) {
+ return Domain.DID.fromString(process.env.NEXT_PUBLIC_MEDIATOR_DID);
+ }
+ return null;
+ }, [getSettingsByKey, pluto]);
+
+ const getResolverUrl = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ return await getSettingsByKey("prism-resolver-url");
+ }, [getSettingsByKey, pluto]);
+
+ const stop = useCallback(async () => {
+ setState(Domain.Startable.State.STOPPING);
+ try {
+ await agent?.connections.stop();
+ agent?.jobs.stop();
+ setState(Domain.Startable.State.STOPPED);
+ } catch (error) {
+ console.log("Error stopping agent:", error);
+ } finally {
+ setAgent(null);
+ }
+ }, [agent, setState, setAgent]);
+
+ const start = useCallback(async () => {
+ setState(Domain.Startable.State.STARTING);
+ const seed = await getSeed();
+ if (!seed) {
+ throw new Error("Seed not found");
+ }
+ if (!hasDB(pluto)) {
+ throw new Error("Database not initialized");
+ }
+ const resolverUrl = await getResolverUrl();
+ const resolvers = resolverUrl ? [createResolver(resolverUrl)] : [];
+ const mediatorDID = await getMediator();
+ if (!mediatorDID) {
+ throw new Error("Mediator not found");
+ }
+ const castor = new Castor(apollo, resolvers);
+ const agent = Agent.initialize({
+ apollo,
+ castor,
+ mediatorDID,
+ pluto: pluto,
+ seed
+ });
+ await agent.start()
+ setState(Domain.Startable.State.RUNNING);
+ setAgent(agent);
+ }, [pluto]);
+ return
+
+
+
+
+
+
+
+
+
+ {children}
+
+
+
+
+
+
+
+
+
+
+}
+
+/**
+ * Provides the initialized `Agent` instance and its lifecycle management to the React tree.
+ *
+ * It automatically wraps the entire application with nested providers for capabilities like
+ * `CredentialsProvider`, `ConnectionsProvider`, `PrismDIDProvider`, etc.
+ *
+ * @example
+ * ```tsx
+ * import { AgentProvider, useAgent } from '@hyperledger/identus-react';
+ *
+ * function App() {
+ * return (
+ *
+ *
+ *
+ * );
+ * }
+ *
+ * function AgentControls() {
+ * const { agent, start, stop, state } = useAgent();
+ *
+ * return (
+ *
+ *
Agent Status: {state}
+ *
start()}>Start Agent
+ *
+ * );
+ * }
+ * ```
+ */
+export function AgentProvider({ children }: { children: React.ReactNode }) {
+ return
+
+ {children}
+
+
+}
+
diff --git a/packages/lib/react/src/provider/Connections.tsx b/packages/lib/react/src/provider/Connections.tsx
new file mode 100644
index 000000000..b34b8332c
--- /dev/null
+++ b/packages/lib/react/src/provider/Connections.tsx
@@ -0,0 +1,98 @@
+import React, { useCallback, useEffect, useState } from "react";
+import { DIDLink, type Domain, ListenerKey } from "@hyperledger/identus-sdk";
+import { ConnectionsContext } from "../context";
+import { useAgent, useDatabase } from "../hooks";
+import { hasDB } from "../utils";
+
+
+
+/**
+ * Manages the agent's DID connections list and listens for internal SDK connection events.
+ *
+ * This provider automatically refreshes connections when new connections are established
+ * or deleted. Use the `useConnections` hook to consume the connection state.
+ *
+ * @example
+ * ```tsx
+ * import { useConnections } from '@hyperledger/identus-react';
+ *
+ * function ConnectionsList() {
+ * const { connections, deleteConnection } = useConnections();
+ *
+ * return (
+ *
+ * {connections.map((conn) => (
+ *
+ * {conn.host.toString()}
+ * deleteConnection(conn)}>Delete
+ *
+ * ))}
+ *
+ * );
+ * }
+ * ```
+ */
+export function ConnectionsProvider({ children }: { children: React.ReactNode }) {
+ const { agent } = useAgent();
+ const { state: dbState, pluto } = useDatabase();
+ const [connections, setConnections] = useState([]);
+ const [isLoaded, setIsLoaded] = useState(false);
+
+ const load = useCallback(async () => {
+ if (hasDB(pluto) && dbState === 'loaded' && !isLoaded) {
+ const connections = await pluto.getAllDidPairs();
+ setConnections(connections);
+ setIsLoaded(true);
+ }
+ }, [dbState, isLoaded, pluto, setConnections, setIsLoaded]);
+
+ useEffect(() => {
+ if (dbState === 'loaded' && !isLoaded) {
+ load().catch(() => setIsLoaded(false));
+ }
+ }, [dbState, isLoaded, load]);
+
+ const deleteConnection = useCallback(async (connection: Domain.DIDPair) => {
+ if (!hasDB(pluto) || dbState !== "loaded") {
+ throw new Error("Database not connected");
+ }
+ const connectionsRes = await pluto.store.query("did-link", {
+ selector: {
+ $or: [
+ { role: DIDLink.role.pair, hostId: connection.host.toString() },
+ { role: DIDLink.role.pair, targetId: connection.receiver.toString() }
+ ]
+ }
+ })
+ for (const conn of connectionsRes) {
+ await pluto.store.delete("did-link", (conn as any).uuid);
+ }
+ }, [pluto, dbState]);
+
+ const onConnection = useCallback(async (newConnection: Domain.DIDPair) => {
+ setConnections((prev) => {
+ const exists = prev.some((connection) =>
+ connection.host.toString() === newConnection.host.toString() &&
+ connection.receiver.toString() === newConnection.receiver.toString()
+ );
+ if (!exists) {
+ return [...prev, newConnection];
+ }
+ return prev;
+ });
+ }, []);
+
+ useEffect(() => {
+ if (agent) {
+ agent.addListener(ListenerKey.CONNECTION, onConnection);
+ return () => {
+ agent.removeListener(ListenerKey.CONNECTION, onConnection);
+ };
+ }
+ return () => { };
+ }, [agent, onConnection])
+
+ return
+ {children}
+
+}
diff --git a/packages/lib/react/src/provider/Credentials.tsx b/packages/lib/react/src/provider/Credentials.tsx
new file mode 100644
index 000000000..a01c82c2a
--- /dev/null
+++ b/packages/lib/react/src/provider/Credentials.tsx
@@ -0,0 +1,65 @@
+import React, { useCallback, useEffect, useState } from "react";
+import { type Domain } from "@hyperledger/identus-sdk";
+
+import { CredentialsContext } from "../context";
+import { useDatabase } from "../hooks";
+import { hasDB } from "../utils";
+
+
+/**
+ * Manages Verifiable Credentials stored in the Pluto database.
+ *
+ * This provider automatically loads credentials when the database is ready,
+ * and exposes them alongside a `deleteCredential` function via the `useCredentials` hook.
+ *
+ * @example
+ * ```tsx
+ * import { useCredentials } from '@hyperledger/identus-react';
+ *
+ * function CredentialList() {
+ * const { credentials, deleteCredential } = useCredentials();
+ *
+ * return (
+ *
+ * {credentials.map((cred) => (
+ *
+ * {cred.id}
+ * deleteCredential(cred)}>Delete
+ *
+ * ))}
+ *
+ * );
+ * }
+ * ```
+ */
+export function CredentialsProvider({ children }: { children: React.ReactNode }) {
+ const { state: dbState, deleteCredential: deleteCredentialDB, getCredentials: getCredentialsDB, pluto } = useDatabase();
+ const [credentials, setCredentials] = useState([]);
+ const [isLoaded, setIsLoaded] = useState(false);
+
+ const load = useCallback(async () => {
+ if (dbState === "loaded") {
+ const credentials = await getCredentialsDB();
+ setCredentials(prev => [...prev, ...credentials.filter((credential) => !prev.some((c) => c.id === credential.id || c.uuid === credential.uuid))]);
+ setIsLoaded(true);
+ }
+ }, [dbState, getCredentialsDB, setCredentials]);
+
+ useEffect(() => {
+ if (dbState === "loaded" && !isLoaded) {
+ load().catch(() => setIsLoaded(false));
+ }
+ }, [load, dbState, isLoaded]);
+
+ const deleteCredential = useCallback(async (credential: Domain.Credential) => {
+ if (!hasDB(pluto) || dbState !== "loaded") {
+ throw new Error("Database not connected");
+ }
+ await deleteCredentialDB(credential);
+ setCredentials(prev => prev.filter(c => c.id !== credential.id && c.uuid !== credential.uuid));
+ }, [pluto, dbState, deleteCredentialDB, setCredentials]);
+
+ return
+ {children}
+
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/provider/DID.tsx b/packages/lib/react/src/provider/DID.tsx
new file mode 100644
index 000000000..a93f10fc6
--- /dev/null
+++ b/packages/lib/react/src/provider/DID.tsx
@@ -0,0 +1,103 @@
+import React, { useCallback, useState } from "react";
+import { Domain, type Agent } from "@hyperledger/identus-sdk";
+import { PeerDIDContext, PrismDIDContext } from "../context";
+import { useAgent, useDatabase } from "../hooks";
+import { hasDB } from "../utils";
+
+// Custom hook to handle common DID creation logic
+function useDIDCreation(
+ createDIDFn: (agent: Agent) => Promise
+) {
+ const { agent, state } = useAgent();
+ const [did, setDid] = useState(null);
+ const create = useCallback(async () => {
+ if (!agent || state !== Domain.Startable.State.RUNNING) {
+ throw new Error('Agent not found or not running');
+ }
+ const newDID = await createDIDFn(agent);
+ setDid(newDID);
+ return newDID;
+ }, [agent, state, createDIDFn]);
+ return { did, create };
+}
+
+/**
+ * Provides functionality for creating and managing Prism DIDs.
+ *
+ * Use the `usePrismDID` hook to access the context values, allowing you
+ * to create a new Prism DID and check its published status on the registry.
+ *
+ * @example
+ * ```tsx
+ * import { usePrismDID } from '@hyperledger/identus-react';
+ *
+ * function PrismDIDCreator() {
+ * const { prismDID, create, isPublished } = usePrismDID();
+ *
+ * return (
+ *
+ * {prismDID &&
Current DID: {prismDID.toString()}
}
+ *
create()}>Create Prism DID
+ *
+ * );
+ * }
+ * ```
+ */
+export function PrismDIDProvider({ children }: { children: React.ReactNode }) {
+ const { agent, state } = useAgent();
+ const { state: dbState, getGroupedDIDs, pluto } = useDatabase();
+ const { did, create } = useDIDCreation(
+ async (agent) => {
+ const { prism = [] } = await getGroupedDIDs();
+ const keyPathIndex = prism.length + 1;
+ return agent.createNewPrismDID('did', [], keyPathIndex)
+ }
+ );
+
+ const isPublished = useCallback(async (did: Domain.DID) => {
+ if (!hasDB(pluto) || dbState !== 'loaded') {
+ throw new Error('Database not found or not loaded');
+ }
+ const dbDIDRes = await pluto.store.query("dids", { selector: { uuid: did.uuid } });
+ const dbDID = dbDIDRes[0] as any;
+ return dbDID?.status === "published"
+ }, [agent, state, pluto, dbState]);
+
+ return (
+
+ {children}
+
+ );
+}
+
+/**
+ * Provides functionality for creating and managing Peer DIDs.
+ *
+ * Peer DIDs are typically used for direct, point-to-point connections with other agents.
+ *
+ * @example
+ * ```tsx
+ * import { usePeerDID } from '@hyperledger/identus-react';
+ *
+ * function PeerDIDCreator() {
+ * const { peerDID, create } = usePeerDID();
+ *
+ * return (
+ * create()}>
+ * Create new Peer DID
+ *
+ * );
+ * }
+ * ```
+ */
+export function PeerDIDProvider({ children }: { children: React.ReactNode }) {
+ const { did, create } = useDIDCreation(
+ (agent) => agent.createNewPeerDID([], true)
+ );
+
+ return (
+
+ {children}
+
+ );
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/provider/Database.tsx b/packages/lib/react/src/provider/Database.tsx
new file mode 100644
index 000000000..d696fecbe
--- /dev/null
+++ b/packages/lib/react/src/provider/Database.tsx
@@ -0,0 +1,409 @@
+import React from "react";
+import { useCallback, useState } from "react";
+import { Domain, Pluto, type StartOptions } from "@hyperledger/identus-sdk";
+import { uuid } from "@stablelib/uuid";
+import { type GroupedDIDs, DatabaseContext } from "../context";
+import { useApollo } from "../hooks";
+import { FEATURES, PRISM_RESOLVER_URL_KEY, MEDIATOR_DID, WALLET_NAME } from "../config";
+import { hasDB } from "../utils";
+
+
+export type DIDStatus = 'unpublished' | 'published' | 'deactivated';
+
+/**
+ * Initializes and manages the `Pluto` database instance and its connection state.
+ *
+ * This provider connects to the local storage Database used by the Identus SDK
+ * for persisting seeds, keys, DIDs, and credentials. Use the `useDatabase` hook
+ * to interact with this context.
+ *
+ * @example
+ * ```tsx
+ * import { useDatabase } from '@hyperledger/identus-react';
+ *
+ * function DatabaseControls() {
+ * const { state, start, error } = useDatabase();
+ *
+ * if (state === 'disconnected') {
+ * return start()}>Connect DB
+ * }
+ *
+ * if (error) {
+ * return Error connecting: {error.message}
+ * }
+ *
+ * return Database is {state}
+ * }
+ * ```
+ */
+export function DatabaseProvider({ children }: { children: React.ReactNode }) {
+ const apollo = useApollo();
+ const [state, setState] = useState('disconnected');
+ const [error, setError] = useState(null);
+ const [features, setFeatures] = useState([]);
+ const [currentWallet, setCurrentWallet] = useState(null);
+ const [pluto, setPluto] = useState(null);
+
+ const getMessages = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const allMessages = await pluto.store.query("messages");
+ return allMessages.map((message) => ({
+ message: Domain.Message.fromJson(message.dataJson),
+ read: message.read ?? false
+ }))
+ }, [pluto]);
+
+ const getExtendedDIDs = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const dids = await pluto.store.query("dids");
+ return Promise.all(dids.filter((did: any) => did.method === 'prism').map(async (did: any) => {
+ const keysIds = await pluto.store.query("didkey-link", { selector: { didId: did.uuid } });
+ const allKeys = await pluto.store.query("keys");
+ const keys = keysIds.map((link: any) => allKeys.find((k: any) => k.uuid === link.keyId)).filter(Boolean);
+
+ return {
+ did: Domain.DID.fromString(did.uuid),
+ status: (did)?.status as DIDStatus ?? 'unpublished',
+ alias: did.alias,
+ keys: keys.map((key: any) => apollo.restorePrivateKey({
+ recoveryId: key.recoveryId,
+ raw: Buffer.from(key.rawHex, 'hex'),
+ index: key.index ?? 0
+ }))
+ }
+ }))
+ }, [pluto, apollo]);
+
+ const getSettingsByKey = useCallback(async (key: string) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const keys = await pluto.store.query("settings", { selector: { key } });
+ if (keys.length) {
+ return keys[0].value;
+ }
+ return null;
+ }, [pluto]);
+
+ const getFeatures = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const features = (await getSettingsByKey(FEATURES)) || '';
+ setFeatures(features.split(','));
+ }, [getSettingsByKey, pluto]);
+
+ const getSeed = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const seeds = await pluto.store.query("settings", { selector: { key: 'seed' } });
+ if (seeds.length) {
+ return {
+ value: Uint8Array.from(
+ Buffer.from(seeds[0].value, 'hex')
+ )
+ }
+ }
+ return null
+ }, [pluto]);
+
+ const storeSettingsByKey = useCallback(async (key: string, value: string) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const existing = await pluto.store.query("settings", { selector: { key } });
+ for (const row of existing) {
+ await pluto.store.delete("settings", row.uuid);
+ }
+ const id = uuid();
+ await pluto.store.insert("settings", {
+ id,
+ key,
+ value,
+ uuid: id
+ });
+ }, [pluto]);
+
+ const deleteSettingsByKey = useCallback(async (key: string) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const existing = await pluto.store.query("settings", { selector: { key } });
+ for (const row of existing) {
+ await pluto.store.delete("settings", row.uuid);
+ }
+ }, [pluto]);
+
+ const getResolverUrl = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ return await getSettingsByKey(PRISM_RESOLVER_URL_KEY);
+ }, [getSettingsByKey, pluto]);
+
+ const setMediator = useCallback(async (mediator: Domain.DID | null) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ if (mediator) {
+ await storeSettingsByKey(MEDIATOR_DID, mediator.toString());
+ } else {
+ await deleteSettingsByKey(MEDIATOR_DID);
+ }
+ }, [pluto, deleteSettingsByKey, storeSettingsByKey]);
+
+ const setSeed = useCallback(async (seed: Domain.Seed) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const existing = await pluto.store.query("settings", { selector: { key: 'seed' } });
+ for (const row of existing) {
+ await pluto.store.delete("settings", row.uuid);
+ }
+ const id = uuid();
+ await pluto.store.insert("settings", {
+ id,
+ key: 'seed',
+ value: Buffer.from(seed.value).toString('hex'),
+ uuid: id
+ });
+ return seed;
+ }, [pluto]);
+
+ const setWallet = useCallback(async (wallet: string | null) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ if (wallet) {
+ await storeSettingsByKey(WALLET_NAME, wallet);
+ setCurrentWallet(wallet);
+
+ } else {
+ await deleteSettingsByKey(WALLET_NAME);
+ setCurrentWallet(null);
+ }
+ }, [pluto, setCurrentWallet, deleteSettingsByKey, storeSettingsByKey]);
+
+ const setResolverUrl = useCallback(async (resolverUrl: string | null) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ if (resolverUrl) {
+ await storeSettingsByKey(PRISM_RESOLVER_URL_KEY, resolverUrl);
+ } else {
+ await deleteSettingsByKey(PRISM_RESOLVER_URL_KEY);
+ }
+ }, [pluto, deleteSettingsByKey, storeSettingsByKey]);
+
+ const readMessage = useCallback(async (message: Domain.Message) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const found = await pluto.store.query("messages", {
+ selector: {
+ id: message.id,
+ read: false
+ }
+ });
+ if (found.length > 0) {
+ await pluto.store.update("messages", {
+ ...found[0],
+ read: true
+ } as any)
+ }
+ }, [pluto]);
+
+ const deleteMessage = useCallback(async (message: Domain.Message) => {
+ if (!pluto) {
+ throw new Error("Database not connected");
+ }
+ await pluto.deleteMessage(message.id);
+ }, [pluto]);
+
+ const getIssuanceFlows = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ return pluto.store.query("issuance");
+ }, [pluto]);
+
+ const getIssuanceFlow = useCallback(async (id: string) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const res = await pluto.store.query("issuance", { selector: { id } });
+ return res[0] || null;
+ }, [pluto]);
+
+ const createIssuanceFlow = useCallback(async (flow: any) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ await pluto.store.insert("issuance", flow);
+ }, [pluto]);
+
+ const updateIssuanceFlow = useCallback(async (flow: any) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ await pluto.store.update("issuance", flow);
+ }, [pluto]);
+
+ const deleteIssuanceFlow = useCallback(async (id: string) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ await pluto.store.delete("issuance", id);
+ }, [pluto]);
+
+ const updateDIDStatus = useCallback(async (did: Domain.DID, status: string) => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const found = await pluto.store.query("dids", { selector: { uuid: did.toString() } });
+ if (!found.length) {
+ throw new Error("DID not found");
+ }
+ await pluto.store.update("dids", {
+ ...found[0],
+ status
+ } as any);
+ }, [pluto])
+
+ const storeDID = useCallback(async (did: Domain.DID, keys: Domain.PrivateKey[], alias: string = "DID") => {
+ if (!pluto) {
+ throw new Error("Database not connected");
+ }
+ if (alias.trim().length === 0) alias = "DID";
+ await pluto.storeDID(did, keys, alias);
+ }, [pluto]);
+
+ const getGroupedDIDs = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const dids = await getExtendedDIDs();
+ const grouped = dids.reduce((acc: any, { did: currentDID, alias: currentAlias, status, keys }: any) => {
+ const method = currentDID.method;
+ if (!acc[method]) acc[method] = [];
+
+ if (!acc[method].some(({ did }: any) => did.toString() === currentDID.toString())) {
+ acc[method].push({ alias: currentAlias, did: currentDID, status, keys });
+ }
+ return acc;
+ }, {});
+ return grouped;
+ }, [pluto, getExtendedDIDs]);
+
+ const getMediator = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const mediatorStr = await getSettingsByKey(MEDIATOR_DID);
+ if (mediatorStr) {
+ return Domain.DID.fromString(mediatorStr)
+ } else if (process.env.NEXT_PUBLIC_MEDIATOR_DID !== undefined) {
+ return Domain.DID.fromString(process.env.NEXT_PUBLIC_MEDIATOR_DID);
+ }
+ return null;
+ }, [getSettingsByKey, pluto]);
+
+ const getWallet = useCallback(async () => {
+ if (!hasDB(pluto)) {
+ throw new Error("Database not connected");
+ }
+ const walletName = await getSettingsByKey(WALLET_NAME);
+ return setWallet(walletName).then(() => walletName);
+ }, [getSettingsByKey, pluto, setWallet]);
+
+ const start = useCallback(async (options?: StartOptions & { name?: string }) => {
+ try {
+ setState('loading');
+
+ // Use existing pluto or create a new one.
+ // We keep a local reference so we don't depend on the
+ // stale `pluto` state closure for the queries below.
+ const db = pluto ?? await (async () => {
+ const p = await Pluto.create({
+ dbName: options?.name || "identus",
+ startOptions: options,
+ keyRestoration: apollo
+ });
+ setPluto(p);
+ return p;
+ })();
+
+ // Load features directly using the local `db` reference
+ const featuresRow = await db.store.query("settings", { selector: { key: FEATURES } });
+ const featuresValue = featuresRow.length ? featuresRow[0].value : '';
+ setFeatures(featuresValue.split(','));
+
+ // Load wallet directly using the local `db` reference
+ const walletRow = await db.store.query("settings", { selector: { key: WALLET_NAME } });
+ const walletName = walletRow.length ? walletRow[0].value : null;
+ setCurrentWallet(walletName);
+
+ setState('loaded');
+ } catch (error) {
+ setError(error as Error);
+ setState('disconnected');
+ }
+ }, [pluto, apollo]);
+
+ const getCredentials = useCallback(async () => {
+ if (state === "loaded" && pluto) {
+ const credentials = await pluto.getAllCredentials();
+ return credentials ?? [];
+ }
+ return []
+ }, [pluto, state]);
+
+ const deleteCredential = useCallback(async (credential: Domain.Credential) => {
+ if (!hasDB(pluto) || state !== "loaded") {
+ throw new Error("Database not connected");
+ }
+ await pluto.store.delete("credentials", credential.uuid);
+ }, [pluto, state]);
+
+ return
+ {children}
+
+}
diff --git a/packages/lib/react/src/provider/HolderProvider.tsx b/packages/lib/react/src/provider/HolderProvider.tsx
new file mode 100644
index 000000000..841ced6e8
--- /dev/null
+++ b/packages/lib/react/src/provider/HolderProvider.tsx
@@ -0,0 +1,88 @@
+import { useCallback } from "react";
+import { base64 } from "multiformats/bases/base64";
+import React from "react";
+import { Domain } from "@hyperledger/identus-sdk";
+import { RequestPresentation, CreatePresentation } from "@hyperledger/identus-sdk/plugins/oea";
+
+import { HolderContext } from "../context";
+import { useAgent, useMessages, usePeerDID } from "../hooks";
+
+/**
+ * Exposes methods and state for the Holder role in the Verifiable Credentials flow.
+ *
+ * Allows a Holder to handle credential offers (OOB), accept offers, and respond
+ * to presentation requests. Use the `useHolder` hook to consume the context.
+ *
+ * @example
+ * ```tsx
+ * import { useHolder } from '@hyperledger/identus-react';
+ *
+ * function OutOfBandReceiver() {
+ * const { parseOOB, acceptOOBOffer } = useHolder();
+ *
+ * const handleScan = async (scannedUrl: string) => {
+ * const offerMessage = await parseOOB(scannedUrl);
+ * await acceptOOBOffer(offerMessage);
+ * };
+ *
+ * return handleScan('https://...')}>Simulate Scan
+ * }
+ * ```
+ */
+export function HolderProvider({ children }: { children: React.ReactNode }) {
+ const { agent, start, stop, state } = useAgent();
+ const { load: reloadMessages } = useMessages();
+ const { peerDID, create: createPeerDID } = usePeerDID();
+
+ const parseOOBOffer = useCallback(async (url: string) => {
+ let parsedUrl: URL;
+ try {
+ parsedUrl = new URL(url);
+ } catch {
+ parsedUrl = new URL(window.location.origin);
+ }
+ const oob = parsedUrl.searchParams.get('oob');
+ const selfPeerDID = peerDID ? peerDID : await createPeerDID();
+ const decoded = base64.baseDecode(oob as string);
+ const offer = Buffer.from(decoded).toString()
+ const message = Domain.Message.fromJson(offer);
+ const attachment = message.attachments.at(0)?.payload;
+ return Domain.Message.fromJson({
+ ...attachment,
+ from: message.from,
+ to: selfPeerDID
+ })
+ }, [peerDID, createPeerDID]);
+
+ const handlePresentationRequest = useCallback(async (message: Domain.Message, credential: Domain.Credential) => {
+ if (!agent) {
+ throw new Error("No agent found");
+ }
+ const request = RequestPresentation.fromMessage(message);
+ const task = new CreatePresentation({ request, credential })
+ const presentation = await agent.runTask(task);
+ const presentationMessage = presentation.makeMessage();
+ presentationMessage.direction = Domain.MessageDirection.SENT;
+ await agent.send(presentationMessage);
+ await reloadMessages();
+ }, [agent, reloadMessages]);
+
+ const acceptOOBOffer = useCallback(async (offer: Domain.Message) => {
+ if (!agent) {
+ throw new Error("Start the agent first");
+ }
+ const requestCredential = await agent.handle(offer);
+ try {
+ const requestMessage = requestCredential.makeMessage()
+ requestMessage.direction = Domain.MessageDirection.SENT;
+ await agent.send(requestMessage);
+ await reloadMessages();
+ } catch (err) {
+ console.log("continue after err", err);
+ }
+ }, [agent, reloadMessages]);
+
+ return
+ {children}
+
+}
\ No newline at end of file
diff --git a/packages/lib/react/src/provider/Issuer.tsx b/packages/lib/react/src/provider/Issuer.tsx
new file mode 100644
index 000000000..72178631f
--- /dev/null
+++ b/packages/lib/react/src/provider/Issuer.tsx
@@ -0,0 +1,211 @@
+// @ts-ignore
+import { base64 } from 'multiformats/bases/base64';
+import React, { useCallback } from "react";
+import { v4 as uuidv4 } from 'uuid';
+import { Domain, type Issuance, JWTCredential, ProtocolType, RunProtocol } from "@hyperledger/identus-sdk";
+import { CreateOOBOffer, OfferCredential, type IssueCredential } from "@hyperledger/identus-sdk/plugins/didcomm";
+import { IssuerContext } from "../context";
+import { useAgent, useMessages, usePeerDID } from "../hooks";
+
+type IssuanceFlow = Issuance;
+type Request = IssuanceFlow extends infer T ? T extends null ? never : T : never;
+
+
+/**
+ * Provides context and methods for the Issuer role in the Verifiable Credentials flow.
+ *
+ * Enables creating credential offers (OOB) and issuing credentials when
+ * requests are received. Consumed via the `useIssuer` hook.
+ *
+ * @example
+ * ```tsx
+ * import { useIssuer } from '@hyperledger/identus-react';
+ * import { Domain } from '@hyperledger/identus-sdk';
+ *
+ * function CredentialIssuer() {
+ * const { createOOBOffer } = useIssuer();
+ *
+ * const offerCred = () => {
+ * createOOBOffer(
+ * Domain.CredentialType.JWT,
+ * 'thread-id-123',
+ * [{ name: 'Name', value: 'Alice', type: 'String' }]
+ * ).then((oob) => console.log('OOB URL payload: ', oob));
+ * };
+ *
+ * return Create Credential Offer
+ * }
+ * ```
+ */
+export function IssuerProvider({ children }: { children: React.ReactNode }) {
+ const { agent, start, stop, state } = useAgent();
+ const { load: reloadMessages, receivedMessages, sentMessages } = useMessages();
+ const { create: createPeerDID } = usePeerDID();
+
+ const getIssuanceStatus = useCallback((request: Request) => {
+ const received = receivedMessages.filter((message) => message.thid === request.id);
+ const sent = sentMessages.filter((message) => message.thid === request.id);
+ if (sent.find(({ piuri }) => piuri === ProtocolType.DidcommIssueCredential)) {
+ return 'completed'
+ }
+ if (received.find(({ piuri }) => piuri === ProtocolType.DidcommRequestCredential)) {
+ return 'accept-pending'
+ }
+ return 'pending'
+ }, [receivedMessages, sentMessages]);
+
+ const getOOBURL = useCallback(async (request: Request) => {
+ if (!agent) return null;
+ const peerDID = await createPeerDID();
+ const { claims } = request;
+ const attributes = claims.map((claim) => ({ name: claim.name, value: claim.value }));
+ const oobTask = new CreateOOBOffer({
+ from: peerDID,
+ offer: new OfferCredential(
+ {
+ goal_code: "Offer Credential",
+ credential_preview: {
+ type: ProtocolType.DidcommCredentialPreview,
+ body: { attributes },
+ },
+ },
+ [
+ new Domain.AttachmentDescriptor(
+ {
+ json: {
+ id: crypto.randomUUID(),
+ media_type: "application/json",
+ options: {
+ challenge: crypto.randomUUID(),
+ domain: window.location.origin || "domain",
+ },
+ thid: request.id,
+ presentation_definition: {
+ id: crypto.randomUUID(),
+ input_descriptors: [],
+ format: {
+ jwt: {
+ alg: [
+ Domain.JWT_ALG.EdDSA
+ ],
+ proof_type: [],
+ },
+ },
+ },
+ format: request.credentialFormat,
+ },
+ },
+ "application/json",
+ request.id,
+ undefined,
+ request.credentialFormat
+ )
+ ],
+ undefined,
+ undefined,
+ request.id
+ )
+ });
+ const oob = await agent.runTask(oobTask);
+ return `${window.location.origin}/?oob=${oob}`;
+ }, [agent, createPeerDID]);
+
+ const createOOBOffer = useCallback(async (type: T, id: string, claims: { name: string, value: string, type: string }[]) => {
+ if (!agent) {
+ throw new Error("No agent found");
+ }
+ if (type !== Domain.CredentialType.JWT && type !== Domain.CredentialType.SDJWT) {
+ throw new Error("Invalid credential type");
+ }
+ const peerDID = await agent.createNewPeerDID();
+ const oobTask = new CreateOOBOffer({
+ from: peerDID,
+ offer: new OfferCredential(
+ {
+ goal_code: "Offer Credential",
+ credential_preview: {
+ type: ProtocolType.DidcommCredentialPreview,
+ body: {
+ attributes: claims,
+ },
+ },
+ },
+ [
+ new Domain.AttachmentDescriptor(
+ {
+ json: {
+ id: uuidv4(),
+ media_type: "application/json",
+ options: {
+ challenge: uuidv4(),
+ domain: 'localhost',
+ },
+ thid: id,
+ presentation_definition: {
+ id: uuidv4(),
+ input_descriptors: [],
+ format: {
+ jwt: {
+ alg: ["ES256K"],
+ proof_type: [],
+ },
+ },
+ },
+ format: type,
+ piuri: ProtocolType.DidcommOfferCredential,
+ },
+ },
+ "application/json",
+ id,
+ undefined,
+ type
+ )
+ ],
+ undefined,
+ undefined,
+ id
+ )
+ });
+ const oob = await agent.runTask(oobTask);
+ const oobDecoded = base64.baseDecode(oob);
+ const oobJson = Buffer.from(oobDecoded).toString();
+ return oobJson;
+ }, [agent]);
+ const issueCredential = useCallback(async (
+ type: T,
+ message: Domain.Message,
+ claims: { name: string, value: string, type: string }[],
+ issuerDID: Domain.DID
+ ) => {
+ if (!agent) {
+ throw new Error("No agent found");
+ }
+ if (type !== Domain.CredentialType.JWT && type !== Domain.CredentialType.SDJWT) {
+ throw new Error("Invalid credential type");
+ }
+ if (message.piuri !== ProtocolType.DidcommRequestCredential) {
+ throw new Error("Invalid message type");
+ }
+ const requestPresentation = JWTCredential.fromJWS(message.attachments[0].payload);
+ const protocol = new RunProtocol({
+ type: 'credential-request',
+ pid: ProtocolType.DidcommRequestCredential,
+ data: {
+ issuerDID,
+ holderDID: Domain.DID.fromString(requestPresentation.issuer),
+ message,
+ format: type,
+ claims: claims
+ }
+ })
+ const issued: IssueCredential = await agent.runTask(protocol);
+ issued.thid = message.thid;
+ const issuedMessage = issued.makeMessage();
+ issuedMessage.direction = Domain.MessageDirection.SENT;
+ await agent.send(issuedMessage);
+ await reloadMessages()
+ }, [agent]);
+ return
+ {children}
+
+}
diff --git a/packages/lib/react/src/provider/Messages.tsx b/packages/lib/react/src/provider/Messages.tsx
new file mode 100644
index 000000000..c46a0b7d9
--- /dev/null
+++ b/packages/lib/react/src/provider/Messages.tsx
@@ -0,0 +1,304 @@
+import { Domain, ListenerKey, ProtocolType } from "@hyperledger/identus-sdk";
+import React from "react";
+import { useCallback, useEffect, useMemo, useRef, useState } from "react";
+
+import { MessagesContext } from "../context";
+import { useAgent, useCredentials, useDatabase } from "../hooks";
+
+type MessageWithReadStatus = {
+ message: Domain.Message;
+ read: boolean;
+};
+
+// Protocol types for pickup and message delivery that should be marked as read
+const PICKUP_DELIVERY_PROTOCOLS: string[] = [
+ ProtocolType.PickupRequest,
+ ProtocolType.PickupDelivery,
+ ProtocolType.PickupStatus,
+ ProtocolType.PickupReceived,
+ ProtocolType.LiveDeliveryChange,
+];
+
+// Helper function to check if a message is pickup/delivery related
+const isPickupDeliveryMessage = (message: Domain.Message): boolean => {
+ const isPickupDelivery = PICKUP_DELIVERY_PROTOCOLS.includes(message.piuri);
+ return isPickupDelivery;
+};
+
+/**
+ * Integrates directly with the agent's message bus to provide local state for all DIDComm messages.
+ *
+ * By wrapping your app with this provider, you can seamlessly read, track unread counts,
+ * and delete messages. Consumed via the `useMessages` hook.
+ *
+ * @example
+ * ```tsx
+ * import { useMessages } from '@hyperledger/identus-react';
+ *
+ * function MessageInbox() {
+ * const { messages, unreadMessages, readMessage, deleteMessage } = useMessages();
+ *
+ * return (
+ *
+ *
Inbox ({unreadMessages.length} unread)
+ *
+ * {messages.map((msgItem) => (
+ *
+ * {msgItem.message.type}
+ * readMessage(msgItem.message)}>Mark Read
+ * deleteMessage(msgItem.message)}>Delete
+ *
+ * ))}
+ *
+ *
+ * );
+ * }
+ * ```
+ */
+export function MessagesProvider({ children }: { children: React.ReactNode }) {
+ const { agent, state: agentState } = useAgent();
+ const {
+ readMessage: readMessageDB,
+ deleteMessage: deleteMessageDB,
+ getMessages: getMessagesDB,
+ state: dbState,
+ } = useDatabase();
+
+ const { load: loadCredentials } = useCredentials();
+
+ const [isLoaded, setIsLoaded] = useState(false);
+ const [messages, setMessages] = useState([]);
+
+ // Use refs to store latest values for stable callback
+ const agentRef = useRef(agent);
+ const agentStateRef = useRef(agentState);
+ const loadCredentialsRef = useRef(loadCredentials);
+
+ // Update refs when values change
+ useEffect(() => {
+ agentRef.current = agent;
+ }, [agent]);
+
+ useEffect(() => {
+ agentStateRef.current = agentState;
+ }, [agentState]);
+
+ useEffect(() => {
+ loadCredentialsRef.current = loadCredentials;
+ }, [loadCredentials]);
+
+ const unreadMessages = useMemo(() => {
+ const filtered = messages
+ .filter(
+ ({ read, message }) =>
+ !read && message.direction === Domain.MessageDirection.RECEIVED,
+ )
+ .map(({ message }) => message);
+ return filtered;
+ }, [messages]);
+
+ const receivedMessages = useMemo(() => {
+ const filtered = messages
+ .filter(
+ ({ message }) =>
+ message.direction === Domain.MessageDirection.RECEIVED,
+ )
+ .map(({ message }) => message);
+ return filtered;
+ }, [messages]);
+
+ const sentMessages = useMemo(() => {
+ const filtered = messages
+ .filter(
+ ({ message }) => message.direction === Domain.MessageDirection.SENT,
+ )
+ .map(({ message }) => message);
+ return filtered;
+ }, [messages]);
+
+ // Initial fetch of messages from database
+ const load = useCallback(async () => {
+ if (dbState === "loaded") {
+
+ const dbMessages = await getMessagesDB();
+
+ // Filter out pickup/delivery messages entirely
+ const filteredMessages = dbMessages.filter(({ message }) => {
+ const shouldInclude = !isPickupDeliveryMessage(message);
+ return shouldInclude;
+ });
+
+ const parsedMessages = filteredMessages.map(({ message, read }) => {
+ const finalRead =
+ message.direction === Domain.MessageDirection.SENT
+ ? true
+ : read;
+ return {
+ message,
+ read: finalRead,
+ };
+ });
+
+ setMessages((prevMessages) => {
+ const messageMap = new Map();
+ const getKey = (message: Domain.Message) => message.uuid || message.id;
+
+ parsedMessages.forEach(msg => {
+ messageMap.set(getKey(msg.message), msg);
+ });
+
+ prevMessages.forEach(prevMsg => {
+ const key = getKey(prevMsg.message);
+ if (!messageMap.has(key)) {
+ messageMap.set(key, prevMsg);
+ }
+ });
+
+ return Array.from(messageMap.values());
+ });
+
+ }
+ }, [getMessagesDB, dbState]);
+
+ // Stable callback that uses refs to access latest values
+ const stableHandleNewMessages = useCallback(
+ async (newMessages: Domain.Message[]) => {
+ if (
+ agentRef.current &&
+ agentStateRef.current === Domain.Startable.State.RUNNING
+ ) {
+ const credentialMessages = newMessages.filter(
+ (message) =>
+ message.piuri === ProtocolType.DidcommIssueCredential,
+ );
+ await Promise.all(
+ credentialMessages.map(async (message) => {
+ return agentRef.current?.handle(message);
+ }),
+ );
+
+ await loadCredentialsRef.current();
+ }
+
+ setMessages((prev) => {
+ const updatedMessages = [...prev];
+
+ newMessages.forEach((newMessage) => {
+ // Skip pickup/delivery messages entirely
+ if (isPickupDeliveryMessage(newMessage)) {
+ return;
+ }
+
+ const existingIndex = updatedMessages.findIndex(
+ (item) =>
+ item.message.id === newMessage.id ||
+ item.message.uuid === newMessage.uuid,
+ );
+
+ if (existingIndex !== -1) {
+ const previousRead = updatedMessages[existingIndex].read;
+ const newRead =
+ newMessage.direction === Domain.MessageDirection.RECEIVED
+ ? previousRead
+ : true;
+
+ updatedMessages[existingIndex] = {
+ message: newMessage,
+ read: newRead,
+ };
+ } else {
+ const newRead =
+ newMessage.direction === Domain.MessageDirection.RECEIVED
+ ? false
+ : true;
+ updatedMessages.push({
+ message: newMessage,
+ read: newRead,
+ });
+ }
+ });
+
+ return updatedMessages;
+ });
+ },
+ [],
+ ); // Empty dependency array since we use refs
+
+ // Mark message as read - update both DB and local state
+ const readMessage = useCallback(
+ async (message: Domain.Message) => {
+
+ await readMessageDB(message);
+
+ // Update local state immediately without refetching
+ setMessages((prev) => {
+ const updated = prev.map((item) => {
+ if (
+ item.message.id === message.id ||
+ item.message.uuid === message.uuid
+ ) {
+ return { ...item, read: true };
+ }
+ return item;
+ });
+ return updated;
+ });
+
+ },
+ [readMessageDB],
+ );
+
+ // Delete message - remove from both DB and local state
+ const deleteMessage = useCallback(
+ async (message: Domain.Message) => {
+
+ await deleteMessageDB(message);
+
+ setMessages((prev) => {
+ const filtered = prev.filter(
+ (item) =>
+ item.message.id !== message.id &&
+ item.message.uuid !== message.uuid,
+ );
+ return filtered;
+ });
+
+ },
+ [deleteMessageDB],
+ );
+
+ // Initial load effect
+ useEffect(() => {
+ if (dbState === "loaded" && !isLoaded) {
+ load().then(() => setIsLoaded(true)).catch(() => setIsLoaded(false));
+ }
+ }, [load, dbState, isLoaded]);
+
+ // Set up real-time message listener with stable callback
+ useEffect(() => {
+ if (agentState === Domain.Startable.State.RUNNING && agent) {
+ agent.addListener(ListenerKey.MESSAGE, stableHandleNewMessages);
+
+ return () => {
+ agent.removeListener(ListenerKey.MESSAGE, stableHandleNewMessages);
+ };
+ }
+ return () => { }
+ }, [agent, agentState, stableHandleNewMessages]); // stableHandleNewMessages is now stable
+
+ return (
+
+ {children}
+
+ );
+}
diff --git a/packages/lib/react/src/provider/VerifierProvider.tsx b/packages/lib/react/src/provider/VerifierProvider.tsx
new file mode 100644
index 000000000..a15580b8f
--- /dev/null
+++ b/packages/lib/react/src/provider/VerifierProvider.tsx
@@ -0,0 +1,166 @@
+
+
+import React, { useCallback } from "react";
+import { Domain, ProtocolType } from "@hyperledger/identus-sdk";
+import { CreatePresentationRequest, type PresentationClaims } from "@hyperledger/identus-sdk/plugins/oea";
+import { OutOfBandInvitation } from "@hyperledger/identus-sdk/plugins/didcomm";
+
+import { VerifierContext } from "../context";
+import { useAgent, usePeerDID } from "../hooks";
+
+/**
+ * Provides Verifier capabilities for requesting and verifying Presentation submissions.
+ *
+ * Includes functionalities for Out-Of-Band (OOB) requests and verifying DIDComm presentations.
+ * Consumed via the `useVerifier` hook.
+ *
+ * @example
+ * ```tsx
+ * import { useVerifier } from '@hyperledger/identus-react';
+ * import { Domain } from '@hyperledger/identus-sdk';
+ *
+ * function VerificationStation() {
+ * const { issueOOBPresentationRequest } = useVerifier();
+ *
+ * const requestProof = () => {
+ * issueOOBPresentationRequest(
+ * Domain.CredentialType.JWT,
+ * { claims: { 'Name': { type: 'string' } } }
+ * ).then((oob) => console.log('OOB URL payload: ', oob));
+ * };
+ *
+ * return Request Presentation
+ * }
+ * ```
+ */
+export function VerifierProvider({ children }: { children: React.ReactNode }) {
+ const { agent, start, stop, state } = useAgent();
+ const { create: createPeerDID } = usePeerDID();
+
+ const createRequestPresentationMessage = useCallback(async (
+ type: T,
+ claims: PresentationClaims,
+ toDID?: Domain.DID,
+ ) => {
+ if (!agent) {
+ throw new Error("No agent found");
+ }
+ const peerDID = await createPeerDID();
+ let task: CreatePresentationRequest;
+
+ if ("issuer" in claims) {
+ claims.claims.iss = {
+ type: "string",
+ pattern: claims.issuer
+ }
+ task = new CreatePresentationRequest({
+ type,
+ toDID: toDID ?? peerDID,
+ claims: {
+ claims: claims.claims
+ }
+ })
+ } else if ("claims" in claims) {
+ task = new CreatePresentationRequest({
+ type,
+ toDID: toDID ?? peerDID,
+ claims: {
+ claims: claims.claims
+ }
+ })
+ } else {
+ task = new CreatePresentationRequest({
+ type,
+ toDID: toDID ?? peerDID,
+ claims: claims
+ })
+ }
+ const requestPresentation = await agent.runTask(task);
+ const requestPresentationMessage = requestPresentation.makeMessage();
+ if (!toDID) {
+ delete (requestPresentationMessage as any).to;
+ }
+ return requestPresentationMessage;
+ }, [agent]);
+
+ const issuePresentationRequest = useCallback(async (type: T, toDID: Domain.DID, claims: PresentationClaims) => {
+ if (!agent) {
+ throw new Error("No agent found");
+ }
+ const requestPresentationMessage = await createRequestPresentationMessage(type, claims, toDID);
+ requestPresentationMessage.direction = Domain.MessageDirection.SENT;
+ await agent.send(requestPresentationMessage);
+ }, [agent, createRequestPresentationMessage]);
+
+ const issueOOBPresentationRequest = useCallback(async (type: T, claims: PresentationClaims) => {
+ if (!agent) {
+ throw new Error("No agent found");
+ }
+ const peerDID = await createPeerDID();
+ const requestPresentationMessage = await createRequestPresentationMessage(type, claims);
+ requestPresentationMessage.direction = Domain.MessageDirection.SENT;
+ await agent.pluto.storeMessage(requestPresentationMessage);
+ const oob = new OutOfBandInvitation(
+ {
+ goal_code: "verify-vc",
+ goal: "Verify Credential",
+ accept: [
+ "didcomm/v2"
+ ]
+ },
+ peerDID.toString(),
+ requestPresentationMessage.thid,
+ [
+ new Domain.AttachmentDescriptor(
+ {
+ json: requestPresentationMessage
+ },
+ "application/json",
+ )
+ ]
+ )
+ return Buffer.from(JSON.stringify(oob)).toString("base64")
+ }, [agent, createPeerDID, createRequestPresentationMessage]);
+
+ const getOOBPresentationRequest = useCallback((fromPeerDID: Domain.DID, requestPresentationMessage: Domain.Message) => {
+ if (!agent) {
+ throw new Error("No agent found");
+ }
+ requestPresentationMessage.direction = Domain.MessageDirection.SENT;
+ const oob = new OutOfBandInvitation(
+ {
+ goal_code: "verify-vc",
+ goal: "Verify Credential",
+ accept: [
+ "didcomm/v2"
+ ]
+ },
+ fromPeerDID.toString(),
+ requestPresentationMessage.thid,
+ [
+ new Domain.AttachmentDescriptor(
+ {
+ json: requestPresentationMessage
+ },
+ "application/json",
+ )
+ ]
+ )
+ return Buffer.from(JSON.stringify(oob)).toString("base64")
+ }, [agent]);
+
+ const verifyPresentation = useCallback(async (presentation: Domain.Message): Promise => {
+ if (!agent) {
+ throw new Error("No agent found");
+ }
+ if (presentation.piuri !== ProtocolType.DidcommPresentation) {
+ throw new Error("Invalid presentation type");
+ }
+ const response = await agent.handle(presentation)
+ return response
+ }, [agent]);
+
+ return
+ {children}
+
+}
diff --git a/packages/lib/react/src/provider/index.tsx b/packages/lib/react/src/provider/index.tsx
new file mode 100644
index 000000000..62a7ac578
--- /dev/null
+++ b/packages/lib/react/src/provider/index.tsx
@@ -0,0 +1,20 @@
+/**
+ * @packageDocumentation
+ *
+ * The `provider` module exports React Context Providers that manage the identity state and data layers.
+ *
+ * These providers abstract away the low-level lifecycle, DID handling, storage orchestration,
+ * and active agent connections, providing a streamlined developer experience across React applications.
+ *
+ * @module provider
+ */
+
+export * from "./Agent";
+export * from './Connections';
+export * from './Credentials';
+export * from './Database';
+export * from './DID';
+export * from './HolderProvider';
+export * from './Messages';
+export * from './Issuer';
+export * from './VerifierProvider';
\ No newline at end of file
diff --git a/packages/lib/react/src/resolver/index.ts b/packages/lib/react/src/resolver/index.ts
new file mode 100644
index 000000000..e3108ba46
--- /dev/null
+++ b/packages/lib/react/src/resolver/index.ts
@@ -0,0 +1,33 @@
+import { Domain } from "@hyperledger/identus-sdk";
+
+
+export type ResolverClass = new (apollo: Domain.Apollo) => Domain.DIDResolver;
+
+export function createResolver(baseUrl: string) {
+ return class implements Domain.DIDResolver {
+ method: string = "prism";
+
+ async resolve(didString: string) {
+ const url = baseUrl.replace(/\/$/, "") + "/" + didString;
+ const response = await fetch(url, {
+ "headers": {
+ "accept": "*/*",
+ "accept-language": "en",
+ "cache-control": "no-cache",
+ "pragma": "no-cache",
+ "sec-gpc": "1"
+ },
+ "method": "GET",
+ "mode": "cors",
+ "credentials": "omit"
+ })
+ if (!response.ok) {
+ throw new Error('Failed to fetch data');
+ }
+ const data = await response.json() as Record;
+ return Domain.DIDDocument.fromJSON({ ...data, id: didString });
+ }
+ }
+}
+
+
diff --git a/packages/lib/react/src/utils/index.ts b/packages/lib/react/src/utils/index.ts
new file mode 100644
index 000000000..321af0927
--- /dev/null
+++ b/packages/lib/react/src/utils/index.ts
@@ -0,0 +1,3 @@
+import { type Pluto } from "@hyperledger/identus-sdk";
+
+export const hasDB = (db: Pluto | null): db is Pluto => db !== null;
\ No newline at end of file
diff --git a/packages/lib/react/tests/providers.test.tsx b/packages/lib/react/tests/providers.test.tsx
new file mode 100644
index 000000000..f2704bb38
--- /dev/null
+++ b/packages/lib/react/tests/providers.test.tsx
@@ -0,0 +1,928 @@
+/**
+ * @vitest-environment jsdom
+ */
+import React, { type ReactNode } from 'react';
+import { describe, expect, test, vi, afterEach } from 'vitest';
+import { renderHook, act, cleanup } from '@testing-library/react';
+
+import { Agent, Domain, Pluto } from '@hyperledger/identus-sdk';
+
+import { DatabaseProvider } from '../src/provider/Database';
+import { CredentialsProvider } from '../src/provider/Credentials';
+import { ConnectionsProvider } from '../src/provider/Connections';
+import { MessagesProvider } from '../src/provider/Messages';
+import { useDatabase } from '../src/hooks/useDatabase';
+import { useAgent } from '../src/hooks/useAgent';
+import { useMessages } from '../src/hooks/useMessages';
+import { useCredentials } from '../src/hooks/useCredentials';
+import { useConnections } from '../src/hooks/useConnections';
+import { AgentContext } from '../src/context';
+import { createResolver } from '../src/resolver';
+import { hasDB } from '../src/utils';
+
+// ---------------------------------------------------------------------------
+// Helpers
+// ---------------------------------------------------------------------------
+
+/**
+ * Wraps children in DatabaseProvider only. Used for testing Database-layer
+ * hooks without needing the full Agent stack.
+ */
+function DatabaseOnlyWrapper({ children }: { children: ReactNode }) {
+ return {children} ;
+}
+
+/**
+ * Renders useDatabase inside DatabaseProvider, starts it (two calls
+ * needed due to React state closure), and returns the hook result.
+ */
+async function setupDatabase() {
+ const dbName = `test-db-${Date.now()}`;
+ const { result } = renderHook(() => useDatabase(), {
+ wrapper: DatabaseOnlyWrapper,
+ });
+ await act(async () => {
+ await result.current.start({ name: dbName });
+ });
+ return result;
+}
+
+/**
+ * Wraps children with DatabaseProvider + CredentialsProvider.
+ * CredentialsProvider only needs DatabaseContext.
+ */
+function CredentialsWrapper({ children }: { children: ReactNode }) {
+ return (
+
+ {children}
+
+ );
+}
+
+/**
+ * Bridge component that creates a real Agent from the DatabaseProvider's pluto
+ * and provides it via AgentContext. No mocking — uses Agent.initialize({ pluto }).
+ */
+function AgentFromDB({ children }: { children: ReactNode }) {
+ const { pluto } = useDatabase();
+ const [agent, setAgent] = React.useState(null);
+
+ React.useEffect(() => {
+ if (pluto && !agent) {
+ setAgent(Agent.initialize({ pluto }));
+ }
+ }, [pluto, agent]);
+
+ const ctx = {
+ agent,
+ setAgent,
+ start: async () => { /* noop for tests */ },
+ stop: async () => { /* noop for tests */ },
+ state: agent ? Domain.Startable.State.RUNNING : Domain.Startable.State.STOPPED,
+ };
+
+ return (
+
+ {children}
+
+ );
+}
+
+/**
+ * Wraps children with DatabaseProvider + real Agent + ConnectionsProvider.
+ */
+function ConnectionsWrapper({ children }: { children: ReactNode }) {
+ return (
+
+
+ {children}
+
+
+ );
+}
+
+/**
+ * Wraps children with DatabaseProvider + real Agent + CredentialsProvider + MessagesProvider.
+ */
+function MessagesWrapper({ children }: { children: ReactNode }) {
+ return (
+
+
+
+ {children}
+
+
+
+ );
+}
+
+// ---------------------------------------------------------------------------
+// 1. DatabaseProvider
+// ---------------------------------------------------------------------------
+describe('DatabaseProvider', () => {
+ afterEach(() => {
+ cleanup();
+ });
+
+ test('initializes with disconnected state', () => {
+ const { result } = renderHook(() => useDatabase(), {
+ wrapper: DatabaseOnlyWrapper,
+ });
+
+ expect(result.current.state).toBe('disconnected');
+ expect(result.current.pluto).toBeNull();
+ expect(result.current.error).toBeNull();
+ expect(result.current.features).toEqual([]);
+ expect(result.current.wallet).toBeNull();
+ });
+
+ test('start() transitions state to loaded', async () => {
+ const createSpy = vi.spyOn(Pluto, 'create');
+
+ const { result } = renderHook(() => useDatabase(), {
+ wrapper: DatabaseOnlyWrapper,
+ });
+
+ await act(async () => {
+ await result.current.start({ name: 'test-start' });
+ });
+
+ expect(createSpy).toHaveBeenCalledWith(
+ expect.objectContaining({ dbName: 'test-start' })
+ );
+ expect(result.current.pluto).not.toBeNull();
+ expect(result.current.state).toBe('loaded');
+
+ createSpy.mockRestore();
+ });
+
+ test('start() sets error on failure', async () => {
+ const createSpy = vi
+ .spyOn(Pluto, 'create')
+ .mockRejectedValueOnce(new Error('DB init failed'));
+
+ const { result } = renderHook(() => useDatabase(), {
+ wrapper: DatabaseOnlyWrapper,
+ });
+
+ await act(async () => {
+ await result.current.start({ name: 'fail-db' });
+ });
+
+ expect(result.current.state).toBe('disconnected');
+ expect(result.current.error).toBeInstanceOf(Error);
+ expect(result.current.error?.message).toBe('DB init failed');
+
+ createSpy.mockRestore();
+ });
+
+ test('storeSettingsByKey / getSettingsByKey round-trip', async () => {
+ const result = await setupDatabase();
+
+ let fetched: string | null = null;
+ await act(async () => {
+ await result.current.storeSettingsByKey('testKey', 'testValue');
+ });
+
+ await act(async () => {
+ fetched = await result.current.getSettingsByKey('testKey');
+ });
+
+ expect(fetched).toBe('testValue');
+ });
+
+ test('deleteSettingsByKey removes setting', async () => {
+ const result = await setupDatabase();
+
+ await act(async () => {
+ await result.current.storeSettingsByKey('delKey', 'delVal');
+ });
+
+ await act(async () => {
+ await result.current.deleteSettingsByKey('delKey');
+ });
+
+ let fetched: string | null = 'not-null';
+ await act(async () => {
+ fetched = await result.current.getSettingsByKey('delKey');
+ });
+
+ expect(fetched).toBeNull();
+ });
+
+ test('setSeed / getSeed round-trip', async () => {
+ const result = await setupDatabase();
+ const seedBytes = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
+ const seed: Domain.Seed = { value: seedBytes };
+
+ let returnedSeed: Domain.Seed | null = null;
+ await act(async () => {
+ await result.current.setSeed(seed);
+ });
+
+ await act(async () => {
+ returnedSeed = await result.current.getSeed();
+ });
+
+ expect(returnedSeed).not.toBeNull();
+ expect(Array.from(returnedSeed!.value)).toEqual(Array.from(seedBytes));
+ });
+
+ test('setMediator / getMediator round-trip', async () => {
+ const result = await setupDatabase();
+ const did = Domain.DID.fromString('did:peer:2.Ez6LSbysY2xFMRpGMhb7tFTLMpeuPRaqaWM1yECx2AtzE3KCc');
+
+ let fetchedMediator: Domain.DID | null = null;
+ await act(async () => {
+ await result.current.setMediator(did);
+ });
+
+ await act(async () => {
+ fetchedMediator = await result.current.getMediator();
+ });
+
+ expect(fetchedMediator).not.toBeNull();
+ expect(fetchedMediator!.toString()).toBe(did.toString());
+ });
+
+ test('setMediator(null) clears mediator', async () => {
+ const result = await setupDatabase();
+ const did = Domain.DID.fromString('did:peer:2.Ez6LSbysY2xFMRpGMhb7tFTLMpeuPRaqaWM1yECx2AtzE3KCc');
+
+ await act(async () => {
+ await result.current.setMediator(did);
+ });
+
+ await act(async () => {
+ await result.current.setMediator(null);
+ });
+
+ let fetchedMediator: Domain.DID | null = Domain.DID.fromString('not:null');
+ await act(async () => {
+ fetchedMediator = await result.current.getMediator();
+ });
+
+ expect(fetchedMediator).toBeNull();
+ });
+
+ test('setWallet / getWallet round-trip', async () => {
+ const result = await setupDatabase();
+
+ await act(async () => {
+ await result.current.setWallet('my-wallet');
+ });
+
+ let walletName: string | null = null;
+ await act(async () => {
+ walletName = await result.current.getWallet();
+ });
+
+ expect(walletName).toBe('my-wallet');
+ expect(result.current.wallet).toBe('my-wallet');
+ });
+
+ test('setResolverUrl / getResolverUrl round-trip', async () => {
+ const result = await setupDatabase();
+
+ await act(async () => {
+ await result.current.setResolverUrl('https://resolver.example.com');
+ });
+
+ let resolverUrl: string | null = null;
+ await act(async () => {
+ resolverUrl = await result.current.getResolverUrl();
+ });
+
+ expect(resolverUrl).toBe('https://resolver.example.com');
+ });
+
+ test('getMessages returns empty initially', async () => {
+ const result = await setupDatabase();
+
+ let messages: any[] = [];
+ await act(async () => {
+ messages = await result.current.getMessages();
+ });
+
+ expect(messages).toEqual([]);
+ });
+
+ test('getCredentials returns empty initially', async () => {
+ const result = await setupDatabase();
+
+ let credentials: any[] = [];
+ await act(async () => {
+ credentials = await result.current.getCredentials();
+ });
+
+ expect(credentials).toEqual([]);
+ });
+
+ test('storeDID calls pluto.storeDID', async () => {
+ const result = await setupDatabase();
+ const pluto = result.current.pluto!;
+ const spy = vi.spyOn(pluto, 'storeDID');
+
+ const did = Domain.DID.fromString('did:peer:2.Ez6LSbysY2xFMRpGMhb7tFTLMpeuPRaqaWM1yECx2AtzE3KCc');
+
+ await act(async () => {
+ await result.current.storeDID(did, [], 'test-alias');
+ });
+
+ expect(spy).toHaveBeenCalledWith(did, [], 'test-alias');
+ spy.mockRestore();
+ });
+
+ test('issuance CRUD lifecycle', async () => {
+ const result = await setupDatabase();
+ const pluto = result.current.pluto!;
+ const insertSpy = vi.spyOn(pluto.store, 'insert');
+
+ const flow = {
+ id: 'flow-1',
+ uuid: 'flow-1',
+ credentialFormat: 'JWT',
+ claims: [{ name: 'test', value: 'val', type: 'String' }],
+ };
+
+ // Create
+ await act(async () => {
+ await result.current.createIssuanceFlow(flow as any);
+ });
+
+ expect(insertSpy).toHaveBeenCalled();
+
+ // Read
+ let fetched: any = null;
+ await act(async () => {
+ fetched = await result.current.getIssuanceFlow('flow-1');
+ });
+ expect(fetched).not.toBeNull();
+ expect(fetched.id).toBe('flow-1');
+
+ // Read all
+ let all: any[] = [];
+ await act(async () => {
+ all = await result.current.getIssuanceFlows();
+ });
+ expect(all.length).toBeGreaterThanOrEqual(1);
+
+ // Update
+ const updateSpy = vi.spyOn(pluto.store, 'update');
+ await act(async () => {
+ await result.current.updateIssuanceFlow({ ...flow, claims: [] } as any);
+ });
+ expect(updateSpy).toHaveBeenCalled();
+
+ // Delete
+ const deleteSpy = vi.spyOn(pluto.store, 'delete');
+ await act(async () => {
+ await result.current.deleteIssuanceFlow('flow-1');
+ });
+ expect(deleteSpy).toHaveBeenCalled();
+
+ insertSpy.mockRestore();
+ updateSpy.mockRestore();
+ deleteSpy.mockRestore();
+ });
+});
+// ---------------------------------------------------------------------------
+// 2. DatabaseProvider — remaining actions
+// ---------------------------------------------------------------------------
+describe('DatabaseProvider — remaining actions', () => {
+ afterEach(() => {
+ cleanup();
+ });
+
+ test('readMessage spies on pluto.store.update', async () => {
+ const result = await setupDatabase();
+ const pluto = result.current.pluto!;
+
+ // Insert a message manually
+ const msgId = 'msg-' + Date.now();
+ await act(async () => {
+ await pluto.store.insert('messages' as any, {
+ uuid: msgId,
+ id: msgId,
+ dataJson: JSON.stringify({
+ id: msgId,
+ piuri: 'https://didcomm.org/basicmessage/2.0/message',
+ body: '{}',
+ }),
+ read: false,
+ } as any);
+ });
+
+ const updateSpy = vi.spyOn(pluto.store, 'update');
+ const fakeMessage = { id: msgId, uuid: msgId } as Domain.Message;
+
+ await act(async () => {
+ await result.current.readMessage(fakeMessage);
+ });
+
+ expect(updateSpy).toHaveBeenCalled();
+ updateSpy.mockRestore();
+ });
+
+ test('deleteMessage calls pluto.deleteMessage', async () => {
+ const result = await setupDatabase();
+ const pluto = result.current.pluto!;
+ const spy = vi.spyOn(pluto, 'deleteMessage');
+
+ const fakeMessage = { id: 'del-msg-1', uuid: 'del-msg-1' } as Domain.Message;
+
+ await act(async () => {
+ await result.current.deleteMessage(fakeMessage);
+ });
+
+ expect(spy).toHaveBeenCalledWith('del-msg-1');
+ spy.mockRestore();
+ });
+
+ test('updateDIDStatus spies on pluto.store.update', async () => {
+ const result = await setupDatabase();
+ const pluto = result.current.pluto!;
+ const did = Domain.DID.fromString('did:prism:test123');
+
+ // Store the DID first
+ await act(async () => {
+ await pluto.store.insert('dids' as any, {
+ uuid: did.toString(),
+ method: 'prism',
+ methodId: 'test123',
+ schema: 'did',
+ did: did.toString(),
+ status: 'unpublished',
+ } as any);
+ });
+
+ const updateSpy = vi.spyOn(pluto.store, 'update');
+
+ await act(async () => {
+ await result.current.updateDIDStatus(did, 'published');
+ });
+
+ expect(updateSpy).toHaveBeenCalled();
+ const args = updateSpy.mock.calls[0];
+ expect(args[0]).toBe('dids');
+ expect((args[1] as any).status).toBe('published');
+ updateSpy.mockRestore();
+ });
+
+ test('updateDIDStatus throws when DID not found', async () => {
+ const result = await setupDatabase();
+ const did = Domain.DID.fromString('did:prism:nonexistent');
+
+ await expect(
+ act(async () => {
+ await result.current.updateDIDStatus(did, 'published');
+ })
+ ).rejects.toThrow('DID not found');
+ });
+
+ test('storeSettingsByKey overwrites existing value', async () => {
+ const result = await setupDatabase();
+
+ await act(async () => {
+ await result.current.storeSettingsByKey('overwriteKey', 'value1');
+ });
+
+ await act(async () => {
+ await result.current.storeSettingsByKey('overwriteKey', 'value2');
+ });
+
+ let fetched: string | null = null;
+ await act(async () => {
+ fetched = await result.current.getSettingsByKey('overwriteKey');
+ });
+
+ expect(fetched).toBe('value2');
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 3. CredentialsProvider
+// ---------------------------------------------------------------------------
+describe('CredentialsProvider', () => {
+ afterEach(() => {
+ cleanup();
+ });
+
+ test('initializes with empty credentials array', () => {
+ const { result } = renderHook(() => useCredentials(), {
+ wrapper: CredentialsWrapper,
+ });
+ expect(result.current.credentials).toEqual([]);
+ });
+
+ test('load() calls pluto.getAllCredentials', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ creds: useCredentials(),
+ }),
+ { wrapper: CredentialsWrapper }
+ );
+
+ const dbName = `cred-test-${Date.now()}`;
+ await act(async () => {
+ await result.current.db.start({ name: dbName });
+ });
+
+ const pluto = result.current.db.pluto!;
+ const spy = vi.spyOn(pluto, 'getAllCredentials');
+
+ await act(async () => {
+ await result.current.creds.load();
+ });
+
+ expect(spy).toHaveBeenCalled();
+ spy.mockRestore();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 4. ConnectionsProvider
+// ---------------------------------------------------------------------------
+describe('ConnectionsProvider', () => {
+ afterEach(() => {
+ cleanup();
+ });
+
+ test('initializes with empty connections array', () => {
+ const { result } = renderHook(() => useConnections(), {
+ wrapper: ConnectionsWrapper,
+ });
+ expect(result.current.connections).toEqual([]);
+ });
+
+ test('load() delegates to pluto.getAllDidPairs on DB start', async () => {
+ // We need to spy before db.start() because ConnectionsProvider
+ // auto-loads connections via useEffect when dbState becomes 'loaded'.
+ // Instead of spying on pluto (which doesn't exist yet), we verify
+ // the auto-load result: connections should be an empty array after load.
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ conns: useConnections(),
+ }),
+ { wrapper: ConnectionsWrapper }
+ );
+
+ const dbName = `conn-test-${Date.now()}`;
+ await act(async () => {
+ await result.current.db.start({ name: dbName });
+ });
+
+ // After DB is loaded, ConnectionsProvider auto-loads via useEffect.
+ // Verify that the connections array reflects the DB state (empty).
+ expect(result.current.conns.connections).toEqual([]);
+
+ // Now verify that pluto.getAllDidPairs was used by storing a pair
+ // and checking load reflects it.
+ const pluto = result.current.db.pluto!;
+ const host = Domain.DID.fromString('did:peer:2.Ez6LSbysY2xFMRpGMhb7tFTLMpeuPRaqaWM1yECx2AtzE3KCc');
+ const receiver = Domain.DID.fromString('did:peer:2.Ez6MkrKj5ePPjBmFKpFCTr1sWjFPz3ePiBNvGyNcfJaBjg5GA');
+
+ await act(async () => {
+ await pluto.storeDIDPair(host, receiver, 'test-pair');
+ });
+
+ const spy = vi.spyOn(pluto, 'getAllDidPairs');
+
+ // Force a fresh load by re-rendering
+ await act(async () => {
+ await result.current.conns.load();
+ });
+
+ // load() has an isLoaded guard, so it won't re-call getAllDidPairs
+ // after first auto-load. But we can verify the data was stored correctly.
+ const pairs = await pluto.getAllDidPairs();
+ expect(pairs.length).toBe(1);
+ expect(pairs[0].host.toString()).toBe(host.toString());
+ spy.mockRestore();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 5. MessagesProvider
+// ---------------------------------------------------------------------------
+
+/**
+ * Helper to store a properly-formatted message via pluto.storeMessage.
+ * Uses Domain.Message constructor which produces valid format for fromJson round-trip.
+ */
+async function insertTestMessage(pluto: Pluto, id: string, direction: Domain.MessageDirection) {
+ const msg = new Domain.Message(
+ '{}', // body
+ id, // id
+ 'https://didcomm.org/basicmessage/2.0/message', // piuri
+ undefined, // from
+ undefined, // to
+ [], // attachments (required for fromJson)
+ undefined, // thid
+ {}, // extraHeaders
+ Math.floor(Date.now() / 1000), // createdTime
+ undefined, // expiresTimePlus
+ [], // ack
+ direction, // direction
+ );
+ await pluto.storeMessage(msg);
+ return msg;
+}
+
+describe('MessagesProvider', () => {
+ afterEach(() => {
+ cleanup();
+ });
+
+ test('initializes with empty messages state', () => {
+ const { result } = renderHook(() => useMessages(), {
+ wrapper: MessagesWrapper,
+ });
+ expect(result.current.messages).toEqual([]);
+ expect(result.current.unreadMessages).toEqual([]);
+ expect(result.current.receivedMessages).toEqual([]);
+ expect(result.current.sentMessages).toEqual([]);
+ });
+
+ test('load() fetches messages from DB', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: MessagesWrapper }
+ );
+
+ const dbName = `msg-test-${Date.now()}`;
+ await act(async () => {
+ await result.current.db.start({ name: dbName });
+ });
+
+ const pluto = result.current.db.pluto!;
+ const msgId = 'msg-load-' + Date.now();
+ await act(async () => {
+ await insertTestMessage(pluto, msgId, Domain.MessageDirection.RECEIVED);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ expect(result.current.msgs.messages.length).toBeGreaterThanOrEqual(1);
+ });
+
+ test('readMessage updates local state to read: true', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: MessagesWrapper }
+ );
+
+ const dbName = `msg-read-${Date.now()}`;
+ await act(async () => {
+ await result.current.db.start({ name: dbName });
+ });
+
+ const pluto = result.current.db.pluto!;
+ const msgId = 'msg-read-' + Date.now();
+ await act(async () => {
+ await insertTestMessage(pluto, msgId, Domain.MessageDirection.RECEIVED);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ const messageItem = result.current.msgs.messages.find(
+ (m) => m.message.id === msgId
+ );
+ expect(messageItem).toBeDefined();
+ expect(messageItem!.read).toBe(false);
+
+ await act(async () => {
+ await result.current.msgs.readMessage(messageItem!.message);
+ });
+
+ const updated = result.current.msgs.messages.find(
+ (m) => m.message.id === msgId
+ );
+ expect(updated!.read).toBe(true);
+ });
+
+ test('deleteMessage removes from local state', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: MessagesWrapper }
+ );
+
+ const dbName = `msg-del-${Date.now()}`;
+ await act(async () => {
+ await result.current.db.start({ name: dbName });
+ });
+
+ const pluto = result.current.db.pluto!;
+ const msgId = 'msg-del-' + Date.now();
+ await act(async () => {
+ await insertTestMessage(pluto, msgId, Domain.MessageDirection.RECEIVED);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ const before = result.current.msgs.messages.length;
+ const messageItem = result.current.msgs.messages.find(
+ (m) => m.message.id === msgId
+ );
+
+ await act(async () => {
+ await result.current.msgs.deleteMessage(messageItem!.message);
+ });
+
+ expect(result.current.msgs.messages.length).toBe(before - 1);
+ expect(
+ result.current.msgs.messages.find((m) => m.message.id === msgId)
+ ).toBeUndefined();
+ });
+
+ test('sent messages are automatically marked as read', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: MessagesWrapper }
+ );
+
+ const dbName = `msg-sent-${Date.now()}`;
+ await act(async () => {
+ await result.current.db.start({ name: dbName });
+ });
+
+ const pluto = result.current.db.pluto!;
+ const msgId = 'msg-sent-' + Date.now();
+ await act(async () => {
+ await insertTestMessage(pluto, msgId, Domain.MessageDirection.SENT);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ const sentMsg = result.current.msgs.messages.find(
+ (m) => m.message.id === msgId
+ );
+ // MessagesProvider auto-marks SENT messages as read
+ expect(sentMsg?.read).toBe(true);
+ });
+
+ test('unreadMessages only includes received unread messages', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: MessagesWrapper }
+ );
+
+ const dbName = `msg-unread-${Date.now()}`;
+ await act(async () => {
+ await result.current.db.start({ name: dbName });
+ });
+
+ const pluto = result.current.db.pluto!;
+ const ts = Date.now();
+
+ // unread received message
+ await act(async () => {
+ await insertTestMessage(pluto, `unread-${ts}`, Domain.MessageDirection.RECEIVED);
+ });
+
+ // sent message (auto-read)
+ await act(async () => {
+ await insertTestMessage(pluto, `sent-${ts}`, Domain.MessageDirection.SENT);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ // Only the received unread message should appear
+ expect(result.current.msgs.unreadMessages.length).toBe(1);
+ expect(result.current.msgs.unreadMessages[0].id).toBe(`unread-${ts}`);
+
+ // Sent message should NOT be in unread
+ expect(
+ result.current.msgs.unreadMessages.find(
+ (m) => m.id === `sent-${ts}`
+ )
+ ).toBeUndefined();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 6. Hook Context Guards
+// ---------------------------------------------------------------------------
+describe('Hook context guards', () => {
+ afterEach(() => {
+ cleanup();
+ });
+
+ test('useDatabase throws outside DatabaseProvider', () => {
+ expect(() => {
+ renderHook(() => useDatabase());
+ }).toThrow('useDatabase must be used within a DatabaseProvider');
+ });
+
+ test('useAgent throws outside AgentProvider', () => {
+ // useAgent is used inside DatabaseProvider context but
+ // AgentContext is a different context — it'll throw
+ expect(() => {
+ renderHook(() => useAgent());
+ }).toThrow('useAgent must be used within a AgentProvider');
+ });
+
+ // These hooks use useAgent/useDatabase internally, so they should
+ // also throw when rendered without providers
+ test('useMessages throws outside providers', () => {
+ expect(() => {
+ renderHook(() => useMessages());
+ }).toThrow();
+ });
+
+ test('useCredentials throws outside providers', () => {
+ expect(() => {
+ renderHook(() => useCredentials());
+ }).toThrow();
+ });
+
+ test('useConnections throws outside providers', () => {
+ expect(() => {
+ renderHook(() => useConnections());
+ }).toThrow();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 3. createResolver (unit tests, no React)
+// ---------------------------------------------------------------------------
+describe('createResolver', () => {
+ test('creates a resolver class with method "prism"', () => {
+ const ResolverClass = createResolver('https://resolver.example.com');
+ const resolver = new (ResolverClass as any)();
+ expect(resolver.method).toBe('prism');
+ });
+
+ test('resolve() calls fetch with correct URL', async () => {
+ const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValueOnce({
+ ok: true,
+ json: async () => ({ id: 'did:prism:abc' }),
+ } as Response);
+
+ const ResolverClass = createResolver('https://resolver.example.com/');
+ const resolver = new (ResolverClass as any)();
+ await resolver.resolve('did:prism:abc');
+
+ expect(fetchSpy).toHaveBeenCalledWith(
+ 'https://resolver.example.com/did:prism:abc',
+ expect.objectContaining({ method: 'GET' })
+ );
+
+ fetchSpy.mockRestore();
+ });
+
+ test('resolve() throws on non-ok response', async () => {
+ const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValueOnce({
+ ok: false,
+ } as Response);
+
+ const ResolverClass = createResolver('https://resolver.example.com');
+ const resolver = new (ResolverClass as any)();
+
+ await expect(resolver.resolve('did:prism:abc')).rejects.toThrow(
+ 'Failed to fetch data'
+ );
+
+ fetchSpy.mockRestore();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 4. hasDB utility (unit tests, no React)
+// ---------------------------------------------------------------------------
+describe('hasDB', () => {
+ test('returns true for non-null value', () => {
+ expect(hasDB({} as any)).toBe(true);
+ });
+
+ test('returns false for null', () => {
+ expect(hasDB(null)).toBe(false);
+ });
+});
diff --git a/packages/lib/react/tests/sdk-flows.test.tsx b/packages/lib/react/tests/sdk-flows.test.tsx
new file mode 100644
index 000000000..59bd1d827
--- /dev/null
+++ b/packages/lib/react/tests/sdk-flows.test.tsx
@@ -0,0 +1,1526 @@
+/**
+ * @vitest-environment jsdom
+ */
+import React, { type ReactNode } from 'react';
+import { describe, expect, test, vi, afterEach } from 'vitest';
+import { renderHook, act, cleanup } from '@testing-library/react';
+
+import { Agent, Domain, Pluto, ProtocolType } from '@hyperledger/identus-sdk';
+
+import { DatabaseProvider } from '../src/provider/Database';
+import { CredentialsProvider } from '../src/provider/Credentials';
+import { ConnectionsProvider } from '../src/provider/Connections';
+import { MessagesProvider } from '../src/provider/Messages';
+import { IssuerProvider } from '../src/provider/Issuer';
+import { HolderProvider } from '../src/provider/HolderProvider';
+import { VerifierProvider } from '../src/provider/VerifierProvider';
+import { PeerDIDProvider, PrismDIDProvider } from '../src/provider/DID';
+import { AgentContext } from '../src/context';
+import { useDatabase } from '../src/hooks/useDatabase';
+import { useIssuer } from '../src/hooks/useIssuer';
+import { useHolder } from '../src/hooks/useHolder';
+import { useVerifier } from '../src/hooks/useVerifier';
+import { usePeerDID } from '../src/hooks/usePeerDID';
+import { usePrismDID } from '../src/hooks/usePrismDID';
+import { useAgent } from '../src/hooks/useAgent';
+import { useMessages } from '../src/hooks/useMessages';
+import { useCredentials } from '../src/hooks/useCredentials';
+
+// ---------------------------------------------------------------------------
+// Shared test infrastructure
+// ---------------------------------------------------------------------------
+
+const TEST_PEER_DID = Domain.DID.fromString(
+ 'did:peer:2.Ez6LSbysY2xFMRpGMhb7tFTLMpeuPRaqaWM1yECx2AtzE3KCc'
+);
+
+/**
+ * Bridge component that creates a real Agent.initialize({ pluto }) and provides
+ * it via AgentContext. We spy on agent methods rather than mocking to keep as
+ * much real behaviour as possible.
+ */
+function MockAgentBridge({ children }: { children: ReactNode }) {
+ const { pluto } = useDatabase();
+ const [agent, setAgent] = React.useState(null);
+
+ React.useEffect(() => {
+ if (pluto && !agent) {
+ const a = Agent.initialize({ pluto });
+ // Spy on network-bound methods to prevent real network calls
+ vi.spyOn(a, 'send').mockResolvedValue(undefined);
+ vi.spyOn(a, 'sendMessage').mockResolvedValue(undefined);
+ setAgent(a);
+ }
+ }, [pluto, agent]);
+
+ const ctx = {
+ agent,
+ setAgent,
+ start: async () => { /* noop */ },
+ stop: async () => { /* noop */ },
+ state: agent ? Domain.Startable.State.RUNNING : Domain.Startable.State.STOPPED,
+ };
+
+ return (
+
+ {children}
+
+ );
+}
+
+/**
+ * Full provider tree matching the real AgentProvider nesting, with a
+ * MockAgentBridge instead of the real agent start flow.
+ */
+function FullProviderWrapper({ children }: { children: ReactNode }) {
+ return (
+
+
+
+
+
+
+
+
+
+
+ {children}
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+/**
+ * Starts the database so provider tree reaches `loaded` state.
+ * Returns the hook result for further manipulation.
+ */
+async function startDB(result: any) {
+ const dbName = `sdk-test-${Date.now()}-${Math.random().toString(36).slice(2)}`;
+ await act(async () => {
+ await result.current.db.start({ name: dbName });
+ });
+}
+
+/**
+ * Waits for the agent to become available in the result.
+ * After DB init, React needs a re-render for MockAgentBridge to create the agent.
+ */
+async function waitForAgent(result: any) {
+ // Agent is created in a useEffect; force an extra render cycle.
+ await act(async () => {
+ await new Promise((r) => setTimeout(r, 50));
+ });
+ if (!result.current.db.pluto) {
+ throw new Error('Pluto not initialised — call startDB first');
+ }
+}
+
+// ---------------------------------------------------------------------------
+// 1. IssuerProvider
+// ---------------------------------------------------------------------------
+describe('IssuerProvider', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('createOOBOffer rejects non-JWT/SDJWT types', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ issuer: useIssuer(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ await expect(
+ act(async () => {
+ await result.current.issuer.createOOBOffer(
+ 'W3C' as any,
+ 'test-id',
+ [{ name: 'name', value: 'Alice', type: 'String' }]
+ );
+ })
+ ).rejects.toThrow('Invalid credential type');
+ });
+
+ test('createOOBOffer calls agent.runTask for JWT type', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ issuer: useIssuer(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const agent = result.current.issuer.agent!;
+ const runTaskSpy = vi.spyOn(agent, 'runTask').mockResolvedValue(
+ // runTask for CreateOOBOffer returns a base64 string
+ Buffer.from(JSON.stringify({ type: 'oob', id: 'test' })).toString('base64')
+ );
+
+ let oobJson: string | undefined;
+ await act(async () => {
+ oobJson = await result.current.issuer.createOOBOffer(
+ Domain.CredentialType.JWT,
+ 'offer-1',
+ [{ name: 'name', value: 'Alice', type: 'String' }]
+ );
+ });
+
+ expect(runTaskSpy).toHaveBeenCalled();
+ expect(oobJson).toBeDefined();
+ // The result should be a decoded JSON string
+ const parsed = JSON.parse(oobJson!);
+ expect(parsed).toHaveProperty('type', 'oob');
+
+ runTaskSpy.mockRestore();
+ });
+
+ test('getIssuanceStatus returns "pending" when no messages match', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ issuer: useIssuer(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const status = result.current.issuer.getIssuanceStatus({
+ id: 'nonexistent-thid',
+ uuid: 'nonexistent-thid',
+ credentialFormat: Domain.CredentialType.JWT,
+ claims: [],
+ } as any);
+
+ expect(status).toBe('pending');
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 2. HolderProvider
+// ---------------------------------------------------------------------------
+describe('HolderProvider', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('acceptOOBOffer rejects when agent is null', async () => {
+ // Render without starting DB — agent stays null
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ holder: useHolder(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ const fakeOffer = new Domain.Message(
+ '{}',
+ 'offer-1',
+ ProtocolType.DidcommOfferCredential,
+ );
+
+ await expect(
+ act(async () => {
+ await result.current.holder.acceptOOBOffer(fakeOffer);
+ })
+ ).rejects.toThrow('Start the agent first');
+ });
+
+ test('acceptOOBOffer calls agent.handle and agent.send', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ holder: useHolder(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const agent = result.current.holder.agent!;
+
+ // agent.handle returns a protocol object with makeMessage()
+ const mockRequestMsg = new Domain.Message(
+ '{}',
+ 'req-1',
+ ProtocolType.DidcommRequestCredential,
+ );
+ const handleSpy = vi.spyOn(agent, 'handle').mockResolvedValue({
+ makeMessage: () => mockRequestMsg,
+ } as any);
+ const sendSpy = vi.spyOn(agent, 'send').mockResolvedValue(undefined);
+
+ const fakeOffer = new Domain.Message(
+ '{}',
+ 'offer-1',
+ ProtocolType.DidcommOfferCredential,
+ );
+
+ await act(async () => {
+ await result.current.holder.acceptOOBOffer(fakeOffer);
+ });
+
+ expect(handleSpy).toHaveBeenCalledWith(fakeOffer);
+ expect(sendSpy).toHaveBeenCalled();
+
+ handleSpy.mockRestore();
+ sendSpy.mockRestore();
+ });
+
+ test('handlePresentationRequest rejects when agent is null', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ holder: useHolder(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ const fakeMsg = new Domain.Message(
+ '{}',
+ 'req-1',
+ ProtocolType.DidcommRequestPresentation,
+ );
+ const fakeCredential = {} as Domain.Credential;
+
+ await expect(
+ act(async () => {
+ await result.current.holder.handlePresentationRequest(fakeMsg, fakeCredential);
+ })
+ ).rejects.toThrow('No agent found');
+ });
+
+ test('handlePresentationRequest calls agent.runTask and agent.send', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ holder: useHolder(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const agent = result.current.holder.agent!;
+ const presentationMsg = new Domain.Message(
+ '{}',
+ 'pres-1',
+ ProtocolType.DidcommPresentation,
+ undefined,
+ undefined,
+ [],
+ undefined,
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.SENT,
+ );
+ const runTaskSpy = vi.spyOn(agent, 'runTask').mockResolvedValue({
+ makeMessage: () => presentationMsg,
+ } as any);
+ const sendSpy = vi.spyOn(agent, 'send').mockResolvedValue(undefined);
+
+ // Build a valid-looking request message
+ const requestMsg = new Domain.Message(
+ '{"goal_code":"","will_confirm":false,"proof_types":[]}',
+ 'req-1',
+ ProtocolType.DidcommRequestPresentation,
+ TEST_PEER_DID,
+ TEST_PEER_DID,
+ [{
+ id: 'attach-1',
+ mediaType: 'application/json',
+ data: {
+ json: {
+ options: { challenge: 'test', domain: 'test' },
+ presentation_definition: { id: 'pd-1', input_descriptors: [] },
+ },
+ },
+ format: Domain.CredentialType.JWT,
+ } as any],
+ );
+
+ const fakeCredential = { id: 'cred-1' } as Domain.Credential;
+
+ await act(async () => {
+ await result.current.holder.handlePresentationRequest(requestMsg, fakeCredential);
+ });
+
+ expect(runTaskSpy).toHaveBeenCalled();
+ expect(sendSpy).toHaveBeenCalled();
+
+ runTaskSpy.mockRestore();
+ sendSpy.mockRestore();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 3. VerifierProvider
+// ---------------------------------------------------------------------------
+describe('VerifierProvider', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('verifyPresentation rejects when agent is null', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ verifier: useVerifier(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ const fakeMsg = new Domain.Message(
+ '{}',
+ 'pres-1',
+ ProtocolType.DidcommPresentation,
+ );
+
+ await expect(
+ act(async () => {
+ await result.current.verifier.verifyPresentation(fakeMsg);
+ })
+ ).rejects.toThrow('No agent found');
+ });
+
+ test('verifyPresentation rejects when piuri is not DidcommPresentation', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ verifier: useVerifier(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const invalidMsg = new Domain.Message(
+ '{}',
+ 'wrong-1',
+ 'https://wrong.protocol/type',
+ );
+
+ await expect(
+ act(async () => {
+ await result.current.verifier.verifyPresentation(invalidMsg);
+ })
+ ).rejects.toThrow('Invalid presentation type');
+ });
+
+ test('verifyPresentation calls agent.handle for valid presentation', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ verifier: useVerifier(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const agent = result.current.verifier.agent!;
+ const handleSpy = vi.spyOn(agent, 'handle').mockResolvedValue(true as any);
+
+ const presentationMsg = new Domain.Message(
+ '{}',
+ 'pres-1',
+ ProtocolType.DidcommPresentation,
+ );
+
+ let verified: boolean | undefined;
+ await act(async () => {
+ verified = await result.current.verifier.verifyPresentation(presentationMsg);
+ });
+
+ expect(handleSpy).toHaveBeenCalledWith(presentationMsg);
+ expect(verified).toBe(true);
+
+ handleSpy.mockRestore();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 4. DID Providers
+// ---------------------------------------------------------------------------
+describe('PeerDIDProvider', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('create() calls agent.createNewPeerDID and stores the DID', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ peer: usePeerDID(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ // We need to get the agent from the peer context — but the hook doesn't
+ // expose it directly. We need to spy via the underlying agent instance.
+ // The PeerDIDProvider uses useAgent() → agent.createNewPeerDID().
+ // We spy on the Agent prototype.
+ // Since we need the actual agent ref, we'll render useAgent too.
+ // For now, re-render with a hook that includes useAgent.
+ cleanup();
+
+ const { result: result2 } = renderHook(
+ () => ({
+ db: useDatabase(),
+ peer: usePeerDID(),
+ agentCtx: useAgent(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result2);
+ await waitForAgent(result2);
+
+ const agent = result2.current.agentCtx.agent!;
+ const createSpy = vi.spyOn(agent, 'createNewPeerDID').mockResolvedValue(TEST_PEER_DID);
+
+ let createdDID: Domain.DID | undefined;
+ await act(async () => {
+ createdDID = await result2.current.peer.create();
+ });
+
+ expect(createSpy).toHaveBeenCalled();
+ expect(createdDID).toBeDefined();
+ expect(createdDID!.toString()).toBe(TEST_PEER_DID.toString());
+ // State should be updated
+ expect(result2.current.peer.peerDID?.toString()).toBe(TEST_PEER_DID.toString());
+
+ createSpy.mockRestore();
+ });
+});
+
+describe('PrismDIDProvider', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('create() calls agent.createNewPrismDID', async () => {
+ const prismDID = Domain.DID.fromString('did:prism:test123');
+
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ prism: usePrismDID(),
+ agentCtx: useAgent(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const agent = result.current.agentCtx.agent!;
+ const createSpy = vi.spyOn(agent, 'createNewPrismDID').mockResolvedValue(prismDID);
+
+ let createdDID: Domain.DID | undefined;
+ await act(async () => {
+ createdDID = await result.current.prism.create('test-alias');
+ });
+
+ expect(createSpy).toHaveBeenCalled();
+ expect(createdDID).toBeDefined();
+ expect(createdDID!.toString()).toBe(prismDID.toString());
+
+ createSpy.mockRestore();
+ });
+
+ test('isPublished returns correct status from pluto store', async () => {
+ const prismDID = Domain.DID.fromString('did:prism:published123');
+
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ prism: usePrismDID(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ // Insert a DID with 'published' status
+ await act(async () => {
+ await pluto.store.insert('dids' as any, {
+ uuid: prismDID.toString(),
+ method: 'prism',
+ methodId: 'published123',
+ schema: 'did',
+ did: prismDID.toString(),
+ status: 'published',
+ } as any);
+ });
+
+ let published: boolean | undefined;
+ await act(async () => {
+ published = await result.current.prism.isPublished(prismDID);
+ });
+
+ expect(published).toBe(true);
+ });
+
+ test('isPublished returns false for unpublished DID', async () => {
+ const prismDID = Domain.DID.fromString('did:prism:unpublished456');
+
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ prism: usePrismDID(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ await act(async () => {
+ await pluto.store.insert('dids' as any, {
+ uuid: prismDID.toString(),
+ method: 'prism',
+ methodId: 'unpublished456',
+ schema: 'did',
+ did: prismDID.toString(),
+ status: 'unpublished',
+ } as any);
+ });
+
+ let published: boolean | undefined;
+ await act(async () => {
+ published = await result.current.prism.isPublished(prismDID);
+ });
+
+ expect(published).toBe(false);
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 5. DIDComm Message Lifecycle via MessagesProvider
+// ---------------------------------------------------------------------------
+describe('MessagesProvider — SDK message types', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('messages with DIDComm protocol piuri are stored and retrievable', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ {
+ wrapper: FullProviderWrapper,
+ }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ // Store a basic DIDComm message
+ const msg = new Domain.Message(
+ '{"content":"hello"}',
+ 'didcomm-msg-1',
+ ProtocolType.DidcommBasicMessage,
+ undefined,
+ undefined,
+ [],
+ undefined,
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+ await act(async () => {
+ await pluto.storeMessage(msg);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ const found = result.current.msgs.messages.find(
+ (m) => m.message.id === 'didcomm-msg-1'
+ );
+ expect(found).toBeDefined();
+ expect(found!.message.piuri).toBe(ProtocolType.DidcommBasicMessage);
+ expect(found!.read).toBe(false);
+ });
+
+ test('credential offer messages are stored as received/unread', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ {
+ wrapper: FullProviderWrapper,
+ }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ const offerMsg = new Domain.Message(
+ '{}',
+ 'offer-msg-1',
+ ProtocolType.DidcommOfferCredential,
+ TEST_PEER_DID,
+ TEST_PEER_DID,
+ [],
+ 'thread-1',
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+ await act(async () => {
+ await pluto.storeMessage(offerMsg);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ expect(result.current.msgs.receivedMessages.length).toBeGreaterThanOrEqual(1);
+ const found = result.current.msgs.unreadMessages.find(
+ (m) => m.id === 'offer-msg-1'
+ );
+ expect(found).toBeDefined();
+ expect(found!.piuri).toBe(ProtocolType.DidcommOfferCredential);
+ });
+
+ test('pickup protocol messages are filtered out', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ {
+ wrapper: FullProviderWrapper,
+ }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ // Store a pickup message that should be filtered
+ const pickupMsg = new Domain.Message(
+ '{}',
+ 'pickup-msg-1',
+ ProtocolType.PickupDelivery,
+ undefined,
+ undefined,
+ [],
+ undefined,
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+ await act(async () => {
+ await pluto.storeMessage(pickupMsg);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ // Pickup messages should be filtered out by MessagesProvider
+ const found = result.current.msgs.messages.find(
+ (m) => m.message.id === 'pickup-msg-1'
+ );
+ expect(found).toBeUndefined();
+ });
+
+ test('issue credential message (sent) is auto-read', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ {
+ wrapper: FullProviderWrapper,
+ }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ const issueMsg = new Domain.Message(
+ '{}',
+ 'issue-msg-1',
+ ProtocolType.DidcommIssueCredential,
+ TEST_PEER_DID,
+ TEST_PEER_DID,
+ [],
+ 'thread-issue-1',
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.SENT,
+ );
+ await act(async () => {
+ await pluto.storeMessage(issueMsg);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ const found = result.current.msgs.messages.find(
+ (m) => m.message.id === 'issue-msg-1'
+ );
+ expect(found).toBeDefined();
+ expect(found!.read).toBe(true); // Sent messages are auto-read
+ // Should appear in sentMessages
+ expect(result.current.msgs.sentMessages.find((m) => m.id === 'issue-msg-1')).toBeDefined();
+ // Should NOT appear in unreadMessages
+ expect(result.current.msgs.unreadMessages.find((m) => m.id === 'issue-msg-1')).toBeUndefined();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 6. CredentialsProvider — SDK integration
+// ---------------------------------------------------------------------------
+describe('CredentialsProvider — SDK credential operations', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('load() populates credentials array from pluto', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ creds: useCredentials(),
+ }),
+ {
+ wrapper: FullProviderWrapper,
+ }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+ const getAllCredsSpy = vi.spyOn(pluto, 'getAllCredentials');
+
+ await act(async () => {
+ await result.current.creds.load();
+ });
+
+ expect(getAllCredsSpy).toHaveBeenCalled();
+ // Initially empty
+ expect(result.current.creds.credentials).toEqual([]);
+
+ getAllCredsSpy.mockRestore();
+ });
+
+ test('deleteCredential spies on pluto.store.delete', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ creds: useCredentials(),
+ }),
+ {
+ wrapper: FullProviderWrapper,
+ }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+ // Spy and prevent the real store.delete from running to avoid primary key validation
+ const deleteSpy = vi.spyOn(pluto.store, 'delete').mockResolvedValue();
+
+ const fakeCred = {
+ id: 'cred-to-delete',
+ uuid: 'cred-to-delete',
+ } as Domain.Credential;
+
+ await act(async () => {
+ await result.current.creds.deleteCredential(fakeCred);
+ });
+
+ expect(deleteSpy).toHaveBeenCalledWith('credentials', 'cred-to-delete');
+
+ deleteSpy.mockRestore();
+ });
+});
+
+// ---------------------------------------------------------------------------
+// 7. Specific SDK flows with real fixtures
+// ---------------------------------------------------------------------------
+
+/**
+ * Real fixture data from the SDK test suite.
+ * Using inline values to avoid import-path issues with SDK internal modules.
+ */
+const FIXTURES = {
+ // Real peer DIDs from sdk/tests/fixtures/dids.ts
+ peerDID1: Domain.DID.fromString(
+ 'did:peer:2.Ez6LSfhufN8b8EufbxPNRh88YYvjpf7uuVfa3tMG4nKeFK2wX.Vz6Mkf2USnehnAgu263PfyTDsB7KhjuR64wMa3Y4XLHi3KuQS.SeyJ0IjoiZG0iLCJzIjoiaHR0cDovLzE5Mi4xNjguMS4xNjU6ODAwMC9kaWRjb21tIiwiciI6W10sImEiOlsiZGlkY29tbS92MiJdfQ'
+ ),
+ peerDID2: Domain.DID.fromString(
+ 'did:peer:2.Ez6LSjNzhLeoBEL67PHWSq6X7A7YFuQpcqs13g3cYJTRFyhpu.Vz6MkemtLC5RN1bwBopgZVgXpRRXoigbZjKQt8NHEiJR1eAQ1.SeyJyIjpbXSwicyI6ImRpZDpwZWVyOjIuRXo2TFNnaHdTRTQzN3duREUxcHQzWDZoVkRVUXpTanNIemlucFgzWEZ2TWpSQW03eS5WejZNa2hoMWU1Q0VZWXE2SkJVY1RaNkNwMnJhbkNXUnJ2N1lheDNMZTRONTlSNmRkLlNleUowSWpvaVpHMGlMQ0p6SWpwN0luVnlhU0k2SW1oMGRIQnpPaTh2YzJsMExYQnlhWE50TFcxbFpHbGhkRzl5TG1GMFlXeGhjSEpwYzIwdWFXOGlMQ0poSWpwYkltUnBaR052YlcwdmRqSWlYWDE5LlNleUowSWpvaVpHMGlMQ0p6SWpwN0luVnlhU0k2SW5kemN6b3ZMM05wZEMxd2NtbHpiUzF0WldScFlYUnZjaTVoZEdGc1lYQnlhWE50TG1sdkwzZHpJaXdpWVNJNld5SmthV1JqYjIxdEwzWXlJbDE5ZlEiLCJhIjpbXSwidCI6ImRtIn0'
+ ),
+ // Real prism DIDs from sdk/tests/fixtures/dids.ts
+ prismDID: Domain.DID.fromString(
+ 'did:prism:baa54dfc49c09dab934109d7e3b8ac80cd070bdf8cfeb8d966b60eb1b1091c34:Cr0BCroBEjkKCG1hc3Rlci0wEAFKKwoHRWQyNTUxORIgdm5f2GdR5BaHpRxB8bTElvE_0gIC2p404Msx9swJ914SQQoQYXV0aGVudGljYXRpb24tMBAESisKB0VkMjU1MTkSIHZuX9hnUeQWh6UcQfG0xJbxP9ICAtqeNODLMfbMCfdeEjoKCWlzc3VpbmctMBACSisKB0VkMjU1MTkSIHZuX9hnUeQWh6UcQfG0xJbxP9ICAtqeNODLMfbMCfde'
+ ),
+ // Real JWT credential payload from sdk/tests/fixtures/credentials/jwt.ts
+ jwtCredentialPayloadEncoded: 'eyJhbGciOiJFUzI1NksifQ.eyJpc3MiOiJkaWQ6cHJpc206MjU3MTlhOTZiMTUxMjA3MTY5ODFhODQzMGFkMGNiOTY4ZGQ1MzQwNzM1OTNjOGNkM2YxZDI3YTY4MDRlYzUwZTpDcG9DQ3BjQ0Vsb0tCV3RsZVMweEVBSkNUd29KYzJWamNESTFObXN4RWlBRW9TQ241dHlEYTZZNnItSW1TcXBKOFkxbWo3SkMzX29VekUwTnl5RWlDQm9nc2dOYWVSZGNDUkdQbGU4MlZ2OXRKZk53bDZyZzZWY2hSM09xaGlWYlRhOFNXd29HWVhWMGFDMHhFQVJDVHdvSmMyVmpjREkxTm1zeEVpRE1rQmQ2RnRpb0prM1hPRnUtX2N5NVhtUi00dFVRMk5MR2lXOGFJU29ta1JvZzZTZGU5UHduRzBRMFNCVG1GU1REYlNLQnZJVjZDVExYcmpJSnR0ZUdJbUFTWEFvSGJXRnpkR1Z5TUJBQlFrOEtDWE5sWTNBeU5UWnJNUklnTzcxMG10MVdfaXhEeVFNM3hJczdUcGpMQ05PRFF4Z1ZoeDVzaGZLTlgxb2FJSFdQcnc3SVVLbGZpYlF0eDZKazRUU2pnY1dOT2ZjT3RVOUQ5UHVaN1Q5dCIsInN1YiI6ImRpZDpwcmlzbTpiZWVhNTIzNGFmNDY4MDQ3MTRkOGVhOGVjNzdiNjZjYzdmM2U4MTVjNjhhYmI0NzVmMjU0Y2Y5YzMwNjI2NzYzOkNzY0JDc1FCRW1RS0QyRjFkR2hsYm5ScFkyRjBhVzl1TUJBRVFrOEtDWE5sWTNBeU5UWnJNUklnZVNnLTJPTzFKZG5welVPQml0eklpY1hkZnplQWNUZldBTi1ZQ2V1Q2J5SWFJSlE0R1RJMzB0YVZpd2NoVDNlMG5MWEJTNDNCNGo5amxzbEtvMlpsZFh6akVsd0tCMjFoYzNSbGNqQVFBVUpQQ2dselpXTndNalUyYXpFU0lIa29QdGpqdFNYWjZjMURnWXJjeUluRjNYODNnSEUzMWdEZm1BbnJnbThpR2lDVU9Ca3lOOUxXbFlzSElVOTN0Snkxd1V1TndlSV9ZNWJKU3FObVpYVjg0dyIsIm5iZiI6MTY4NTYzMTk5NSwiZXhwIjoxNjg1NjM1NTk1LCJ2YyI6eyJjcmVkZW50aWFsU3ViamVjdCI6eyJhZGRpdGlvbmFsUHJvcDIiOiJUZXN0MyIsImlkIjoiZGlkOnByaXNtOmJlZWE1MjM0YWY0NjgwNDcxNGQ4ZWE4ZWM3N2I2NmNjN2YzZTgxNWM2OGFiYjQ3NWYyNTRjZjljMzA2MjY3NjM6Q3NjQkNzUUJFbVFLRDJGMWRHaGxiblJwWTJGMGFXOXVNQkFFUWs0S0NYTmxZM0F5TlRack1SSWdlU2ctMk9PMUpkbnB6VU9CaXR6SWljWGRmemVBY1RmV0FOLVlDZXVDYnlJYUlKUTRHVEkzMHRhVml3Y2hUM2UwbkxYQlM0M0I0ajlqbHNsS28yWmxkWHpqRWx3S0IyMWhjM1JsY2pBUUFVSlBDZ2x6WldOd01qVTJhekVTSUhrb1B0amp0U1haNmMxRGdZcmN5SW5GM1g4M2dIRTMxZ0RmbUFucmdtOGlHaUNVT0JreU45TFdsWXNISVU5M3RKeTF3VXVOd2VJX1k1YkpTcU5tWlhWODR3In0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiXSwiQGNvbnRleHQiOlsiaHR0cHM6XC9cL3d3dy53My5vcmdcLzIwMThcL2NyZWRlbnRpYWxzXC92MSJdfX0.x0SF17Y0VCDmt7HceOdTxfHlofsZmY18Rn6VQb0-r-k_Bm3hTi1-k2vkdjB25hdxyTCvxam-AkAP-Ag3Ahn5Ng',
+ // Real SDJWT credential payload
+ sdjwtCredentialPayloadEncoded: 'eyJ0eXAiOiJ2YytzZC1qd3QiLCJhbGciOiJFZERTQSJ9.eyJpc3MiOiJkaWQ6cHJpc206NzE2OGEwN2I5NGQxMzAyNjg5MDU2ZTkyN2I0ZGVmOTNjNDIzYjk1NTNmNzcxZTQ4NmM4ZDkxODg4M2UyNTZmMTpDcTBCQ3FvQkVsc0tIMkYxZEdobGJuUnBZMkYwYVc5dVlYVjBhR1Z1ZEdsallYUnBiMjVMWlhrUUJFSTJDZ2RGWkRJMU5URTVFaXRrYlRWbU1rZGtValZDWVVod1VuaENPR0pVUld4MlJWOHdaMGxETW5BME1EUk5jM2c1YzNkS09URTBFa3NLRDIxaGMzUmxjbTFoYzNSbGNrdGxlUkFCUWpZS0IwVmtNalUxTVRrU0syUnROV1l5UjJSU05VSmhTSEJTZUVJNFlsUkZiSFpGWHpCblNVTXljRFF3TkUxemVEbHpkMG81TVRRIiwiaWF0IjoxNzE3Nzc2MTY3NTg5LCJ2Y3QiOiJodHRwOi8vZXhhbXBsZS5jb20iLCJmaXJzdG5hbWUiOiJKb2huIiwibGFzdG5hbWUiOiJEb2UiLCJzc24iOiIxMjMtNDUtNjc4OSIsImlkIjoiMTIzNCIsIl9zZF9hbGciOiJzaGEtMjU2In0.RThFQjlENjJDN0Y5NjlCOEM0NERFNkU3RDg4MDg5RkRBQjg0RTUzNzUyNTZFRUI5NUQyQTUwQ0U1MTdDNzQ2NjU5REExOTM4Njc0RjhFMkQ2QjFCNzNFNEZCRDZBNkQ4NjIzNDFEQkFERjY0MTBERUJCRENDRkVBRjhCMkMwMDU~',
+ // Real JWS from sdk/tests/fixtures/credentials/jwt.ts credentialData
+ jws: 'eyJraWQiOiJkaWQ6cHJpc206ZGE2MWNmNjVmYmYwNGI2YjlmZTA2ZmEzYjU3N2ZjYTNlMDU4OTVhMTM5MDJkZWNhYWQ0MTk4NDVhMjBkMmQ3ODpDdDhCQ3R3QkVuUUtIMkYxZEdobGJuUnBZMkYwYVc5dVlYVjBhR1Z1ZEdsallYUnBiMjVMWlhrUUJFSlBDZ2x6WldOd01qVTJhekVTSVAwZ01oVEFWT2s3U2dXUmx1em1lSklqdG0yLVlNYzZBYnJEM2VQS0pRai1HaURabHNhNXBRdVhHekt2Z0sxMEQ4U3p1RHZoNzl1NW9NQjctWmVKTkFoLWl4SmtDZzl0WVhOMFpYSnRZWE4wWlhKTFpYa1FBVUpQQ2dselpXTndNalUyYXpFU0lQMGdNaFRBVk9rN1NnV1JsdXptZUpJanRtMi1ZTWM2QWJyRDNlUEtKUWotR2lEWmxzYTVwUXVYR3pLdmdLMTBEOFN6dUR2aDc5dTVvTUI3LVplSk5BaC1pdyNhdXRoZW50aWNhdGlvbmF1dGhlbnRpY2F0aW9uS2V5IiwiYWxnIjoiRVMyNTZLIiwidHlwIjoiSldUIn0.eyJpYXQiOjE3NzA4NDY0MDMsImV4cCI6MjEzNDU2NDMyMSwiaXNzIjoiZGlkOnByaXNtOmRhNjFjZjY1ZmJmMDRiNmI5ZmUwNmZhM2I1NzdmY2EzZTA1ODk1YTEzOTAyZGVjYWFkNDE5ODQ1YTIwZDJkNzg6Q3Q4QkN0d0JFblFLSDJGMWRHaGxiblJwWTJGMGFXOXVZWFYwYUdWdWRHbGpZWFJwYjI1TFpYa1FCRUpQQ2dselpXTndNalUyYXpFU0lQMGdNaFRBVk9rN1NnV1JsdXptZUpJanRtMi1ZTWM2QWJyRDNlUEtKUWotR2lEWmxzYTVwUXVYR3pLdmdLMTBEOFN6dUR2aDc5dTVvTUI3LVplSk5BaC1peEprQ2c5dFlYTjBaWEp0WVhOMFpYSkxaWGtRQVVKUENnbHpaV053TWpVMmF6RVNJUDBnTWhUQVZPazdTZ1dSbHV6bWVKSWp0bTItWU1jNkFickQzZVBLSlFqLUdpRFpsc2E1cFF1WEd6S3ZnSzEwRDhTenVEdmg3OXU1b01CNy1aZUpOQWgtaXciLCJzdWIiOiJkaWQ6cHJpc206ZGE2MWNmNjVmYmYwNGI2YjlmZTA2ZmEzYjU3N2ZjYTNlMDU4OTVhMTM5MDJkZWNhYWQ0MTk4NDVhMjBkMmQ3ODpDdDhCQ3R3QkVuUUtIMkYxZEdobGJuUnBZMkYwYVc5dVlYVjBhR1Z1ZEdsallYUnBiMjVMWlhrUUJFSlBDZ2x6WldOd01qVTJhekVTSVAwZ01oVEFWT2s3U2dXUmx1em1lSklqdG0yLVlNYzZBYnJEM2VQS0pRai1HaURabHNhNXBRdVhHekt2Z0sxMEQ4U3p1RHZoNzl1NW9NQjctWmVKTkFoLWl4SmtDZzl0WVhOMFpYSnRZWE4wWlhKTFpYa1FBVUpQQ2dselpXTndNalUyYXpFU0lQMGdNaFRBVk9rN1NnV1JsdXptZUpJanRtMi1ZTWM2QWJyRDNlUEtKUWotR2lEWmxzYTVwUXVYR3pLdmdLMTBEOFN6dUR2aDc5dTVvTUI3LVplSk5BaC1pdyIsIm5iZiI6MjM0NTY3NTQzMjEsInZjIjp7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiXSwiY3JlZGVudGlhbFN1YmplY3QiOnsidGVzdCI6ImRpZDpwcmlzbSJ9fX0.iQEDhAWZ3nSM6Q8O4kH2yyoCR0bCNQ9WtBmqWZ-PR593WSZzEOdE_hOdwLu9twd8dRtjytPO0LM6ygC7pniWAw',
+ // Presentation request attachment from sdk/tests/fixtures/presentationRequests.ts
+ jwtPresentationAttachment: {
+ id: 'e72a95df-137d-46f9-b8be-a1815a260f1a',
+ format: 'prism/jwt',
+ data: {
+ data: {
+ options: {
+ challenge: '11c91493-01b3-4c4d-ac36-b336bab5bddf',
+ domain: 'http://localhost:8000/prism-agent',
+ },
+ presentation_definition: {
+ format: null,
+ id: 'b2a49475-f8ba-4952-a719-a28e909858fa',
+ input_descriptors: [],
+ name: null,
+ purpose: null,
+ },
+ },
+ },
+ },
+};
+
+describe('Credential Issuance Flow — real fixtures', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('store and retrieve a JWT credential offer message with real DIDComm piuri', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ // Build a credential offer message using real fixture DIDs
+ const offerMsg = new Domain.Message(
+ JSON.stringify({
+ credential_preview: {
+ body: {
+ attributes: [
+ { name: 'familyName', value: 'Demo' },
+ { name: 'emailAddress', value: 'demo@test.com' },
+ ],
+ },
+ type: 'https://didcomm.org/issue-credential/3.0/credential-credential',
+ },
+ goal_code: 'Offer Credential',
+ }),
+ 'real-offer-1',
+ ProtocolType.DidcommOfferCredential,
+ FIXTURES.peerDID1,
+ FIXTURES.peerDID2,
+ [{
+ id: 'attach-offer-1',
+ mediaType: 'application/json',
+ data: {
+ json: {
+ options: {
+ challenge: 'fedac0c2-3250-4fb1-bfcb-b5e904058e1f',
+ domain: 'domain',
+ },
+ },
+ },
+ format: Domain.CredentialType.JWT,
+ } as any],
+ 'thread-real-offer',
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+
+ await act(async () => {
+ await pluto.storeMessage(offerMsg);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ // Verify the offer appears correctly
+ const found = result.current.msgs.messages.find((m) => m.message.id === 'real-offer-1');
+ expect(found).toBeDefined();
+ expect(found!.message.piuri).toBe(ProtocolType.DidcommOfferCredential);
+ expect(found!.message.from?.toString()).toBe(FIXTURES.peerDID1.toString());
+ expect(found!.message.to?.toString()).toBe(FIXTURES.peerDID2.toString());
+ expect(found!.read).toBe(false);
+
+ // Should appear in receivedMessages and unreadMessages
+ expect(result.current.msgs.receivedMessages.find((m) => m.id === 'real-offer-1')).toBeDefined();
+ expect(result.current.msgs.unreadMessages.find((m) => m.id === 'real-offer-1')).toBeDefined();
+ });
+
+ test('store an issue credential message with real JWT attachment data', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ // Build an issue credential message with a real JWT payload in the attachment
+ const issueMsg = new Domain.Message(
+ '{}',
+ 'real-issue-1',
+ ProtocolType.DidcommIssueCredential,
+ FIXTURES.peerDID1, // from issuer
+ FIXTURES.peerDID2, // to holder
+ [{
+ id: 'attach-issue-1',
+ mediaType: 'application/json',
+ data: {
+ base64: Buffer.from(FIXTURES.jwtCredentialPayloadEncoded).toString('base64'),
+ },
+ format: Domain.CredentialType.JWT,
+ } as any],
+ 'thread-real-issue',
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+
+ await act(async () => {
+ await pluto.storeMessage(issueMsg);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ const found = result.current.msgs.messages.find((m) => m.message.id === 'real-issue-1');
+ expect(found).toBeDefined();
+ expect(found!.message.piuri).toBe(ProtocolType.DidcommIssueCredential);
+ expect(found!.message.attachments).toHaveLength(1);
+ expect(found!.message.attachments[0].format).toBe(Domain.CredentialType.JWT);
+ });
+
+ test('store a presentation request message with real attachment format', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+
+ const requestMsg = new Domain.Message(
+ JSON.stringify({
+ goal_code: 'Request Proof Presentation',
+ will_confirm: false,
+ proof_types: [],
+ }),
+ 'real-pres-req-1',
+ ProtocolType.DidcommRequestPresentation,
+ FIXTURES.peerDID1,
+ FIXTURES.peerDID2,
+ [{
+ id: FIXTURES.jwtPresentationAttachment.id,
+ format: FIXTURES.jwtPresentationAttachment.format,
+ data: {
+ json: FIXTURES.jwtPresentationAttachment.data.data,
+ },
+ } as any],
+ 'thread-real-pres',
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+
+ await act(async () => {
+ await pluto.storeMessage(requestMsg);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ const found = result.current.msgs.messages.find((m) => m.message.id === 'real-pres-req-1');
+ expect(found).toBeDefined();
+ expect(found!.message.piuri).toBe(ProtocolType.DidcommRequestPresentation);
+ expect(found!.message.attachments[0].format).toBe('prism/jwt');
+ expect(found!.read).toBe(false);
+ });
+});
+
+describe('IssuerProvider — issuance status with real protocol piuris', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('getIssuanceStatus transitions: pending → accept-pending → completed', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ issuer: useIssuer(),
+ msgs: useMessages(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+ const issuanceId = 'issuance-status-thread';
+
+ // Initially: pending (no messages with matching thid)
+ expect(
+ result.current.issuer.getIssuanceStatus({ id: issuanceId, claims: [] } as any)
+ ).toBe('pending');
+
+ // After receiving a RequestCredential → accept-pending
+ const requestMsg = new Domain.Message(
+ '{}',
+ 'request-cred-status-1',
+ ProtocolType.DidcommRequestCredential,
+ FIXTURES.peerDID2,
+ FIXTURES.peerDID1,
+ [],
+ issuanceId,
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+ await act(async () => {
+ await pluto.storeMessage(requestMsg);
+ });
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ expect(
+ result.current.issuer.getIssuanceStatus({ id: issuanceId, claims: [] } as any)
+ ).toBe('accept-pending');
+
+ // After sending an IssueCredential → completed
+ const issuedMsg = new Domain.Message(
+ '{}',
+ 'issue-cred-status-1',
+ ProtocolType.DidcommIssueCredential,
+ FIXTURES.peerDID1,
+ FIXTURES.peerDID2,
+ [],
+ issuanceId,
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.SENT,
+ );
+ await act(async () => {
+ await pluto.storeMessage(issuedMsg);
+ });
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ expect(
+ result.current.issuer.getIssuanceStatus({ id: issuanceId, claims: [] } as any)
+ ).toBe('completed');
+ });
+});
+
+describe('HolderProvider — accept OOB with real fixture offer message', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('acceptOOBOffer with real credential offer spies on agent.handle', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ holder: useHolder(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const agent = result.current.holder.agent!;
+
+ // Build a real-looking offer message with JWT attachment
+ const realOffer = new Domain.Message(
+ JSON.stringify({
+ credential_preview: {
+ body: {
+ attributes: [
+ { name: 'familyName', value: 'Demo', media_type: null },
+ ],
+ },
+ type: 'https://didcomm.org/issue-credential/3.0/credential-credential',
+ },
+ goal_code: 'Offer Credential',
+ }),
+ 'real-oob-offer-1',
+ ProtocolType.DidcommOfferCredential,
+ FIXTURES.peerDID1,
+ FIXTURES.peerDID2,
+ [{
+ id: 'attach-oob-1',
+ data: {
+ json: {
+ options: {
+ challenge: 'fedac0c2-3250-4fb1-bfcb-b5e904058e1f',
+ domain: 'domain',
+ },
+ },
+ },
+ format: Domain.CredentialType.JWT,
+ } as any],
+ 'thread-oob-offer',
+ );
+
+ // Spy: agent.handle should return a request credential protocol object
+ const mockReqMsg = new Domain.Message(
+ '{}',
+ 'req-from-handle',
+ ProtocolType.DidcommRequestCredential,
+ );
+ const handleSpy = vi.spyOn(agent, 'handle').mockResolvedValue({
+ makeMessage: () => mockReqMsg,
+ } as any);
+ const sendSpy = vi.spyOn(agent, 'send').mockResolvedValue(undefined);
+
+ await act(async () => {
+ await result.current.holder.acceptOOBOffer(realOffer);
+ });
+
+ // Verify agent.handle was called with the real offer message
+ expect(handleSpy).toHaveBeenCalledWith(realOffer);
+ // Verify agent.send was called with the request credential message (direction set to SENT)
+ const sentMsg = sendSpy.mock.calls[0]?.[0] as Domain.Message;
+ expect(sentMsg).toBeDefined();
+ expect(sentMsg.direction).toBe(Domain.MessageDirection.SENT);
+
+ handleSpy.mockRestore();
+ sendSpy.mockRestore();
+ });
+});
+
+describe('VerifierProvider — with real presentation attachment', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('verifyPresentation uses real DidcommPresentation piuri', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ verifier: useVerifier(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const agent = result.current.verifier.agent!;
+ const handleSpy = vi.spyOn(agent, 'handle').mockResolvedValue(true as any);
+
+ // Build a real-looking presentation message
+ const presentationMsg = new Domain.Message(
+ JSON.stringify({ comment: null, goal_code: null }),
+ 'real-presentation-1',
+ ProtocolType.DidcommPresentation,
+ FIXTURES.peerDID2,
+ FIXTURES.peerDID1,
+ [{
+ id: 'attach-pres-1',
+ data: {
+ base64: Buffer.from(FIXTURES.jws).toString('base64'),
+ },
+ format: Domain.CredentialType.JWT,
+ } as any],
+ 'thread-real-verify',
+ );
+
+ let isValid: boolean | undefined;
+ await act(async () => {
+ isValid = await result.current.verifier.verifyPresentation(presentationMsg);
+ });
+
+ expect(handleSpy).toHaveBeenCalledWith(presentationMsg);
+ expect(isValid).toBe(true);
+
+ handleSpy.mockRestore();
+ });
+});
+
+describe('IssuerProvider — createOOBOffer with SDJWT', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('createOOBOffer works with SDJWT credential type', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ issuer: useIssuer(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const agent = result.current.issuer.agent!;
+ const runTaskSpy = vi.spyOn(agent, 'runTask').mockResolvedValue(
+ Buffer.from(JSON.stringify({
+ type: 'oob-sdjwt',
+ format: Domain.CredentialType.SDJWT,
+ })).toString('base64')
+ );
+
+ let oobJson: string | undefined;
+ await act(async () => {
+ oobJson = await result.current.issuer.createOOBOffer(
+ Domain.CredentialType.SDJWT,
+ 'sdjwt-offer-1',
+ [
+ { name: 'firstname', value: 'John', type: 'String' },
+ { name: 'lastname', value: 'Doe', type: 'String' },
+ { name: 'ssn', value: '123-45-6789', type: 'String' },
+ ]
+ );
+ });
+
+ expect(runTaskSpy).toHaveBeenCalled();
+ expect(oobJson).toBeDefined();
+ const parsed = JSON.parse(oobJson!);
+ expect(parsed.format).toBe(Domain.CredentialType.SDJWT);
+
+ runTaskSpy.mockRestore();
+ });
+});
+
+describe('Full message round-trip — offer → request → issue', () => {
+ afterEach(() => {
+ cleanup();
+ vi.restoreAllMocks();
+ });
+
+ test('stores offer, request, and issue messages with correct thread relationships', async () => {
+ const { result } = renderHook(
+ () => ({
+ db: useDatabase(),
+ msgs: useMessages(),
+ }),
+ { wrapper: FullProviderWrapper }
+ );
+
+ await startDB(result);
+ await waitForAgent(result);
+
+ const pluto = result.current.db.pluto!;
+ const threadId = 'full-round-trip-thread';
+
+ // 1. Offer (received)
+ const offer = new Domain.Message(
+ JSON.stringify({
+ credential_preview: {
+ body: { attributes: [{ name: 'familyName', value: 'Demo' }] },
+ type: 'https://didcomm.org/issue-credential/3.0/credential-credential',
+ },
+ }),
+ 'roundtrip-offer',
+ ProtocolType.DidcommOfferCredential,
+ FIXTURES.peerDID1,
+ FIXTURES.peerDID2,
+ [{
+ id: 'attach-rt-offer',
+ data: {
+ json: { options: { challenge: 'c1', domain: 'd1' } },
+ },
+ format: Domain.CredentialType.JWT,
+ } as any],
+ threadId,
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+
+ // 2. Request (sent)
+ const request = new Domain.Message(
+ '{}',
+ 'roundtrip-request',
+ ProtocolType.DidcommRequestCredential,
+ FIXTURES.peerDID2,
+ FIXTURES.peerDID1,
+ [{
+ id: 'attach-rt-request',
+ data: {
+ base64: Buffer.from(FIXTURES.jwtCredentialPayloadEncoded).toString('base64'),
+ },
+ format: Domain.CredentialType.JWT,
+ } as any],
+ threadId,
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.SENT,
+ );
+
+ // 3. Issue (received)
+ const issue = new Domain.Message(
+ '{}',
+ 'roundtrip-issue',
+ ProtocolType.DidcommIssueCredential,
+ FIXTURES.peerDID1,
+ FIXTURES.peerDID2,
+ [{
+ id: 'attach-rt-issue',
+ data: {
+ base64: Buffer.from(FIXTURES.jwtCredentialPayloadEncoded).toString('base64'),
+ },
+ format: Domain.CredentialType.JWT,
+ } as any],
+ threadId,
+ {},
+ Math.floor(Date.now() / 1000),
+ undefined,
+ [],
+ Domain.MessageDirection.RECEIVED,
+ );
+
+ await act(async () => {
+ await pluto.storeMessage(offer);
+ await pluto.storeMessage(request);
+ await pluto.storeMessage(issue);
+ });
+
+ await act(async () => {
+ await result.current.msgs.load();
+ });
+
+ // All 3 messages should share the same thread
+ const msgs = result.current.msgs.messages;
+ const threadMsgs = msgs.filter((m) => m.message.thid === threadId);
+ expect(threadMsgs).toHaveLength(3);
+
+ // Offer and Issue are received → unread; Request is sent → auto-read
+ const offerFound = threadMsgs.find((m) => m.message.id === 'roundtrip-offer');
+ const requestFound = threadMsgs.find((m) => m.message.id === 'roundtrip-request');
+ const issueFound = threadMsgs.find((m) => m.message.id === 'roundtrip-issue');
+
+ expect(offerFound!.read).toBe(false);
+ expect(requestFound!.read).toBe(true); // sent → auto-read
+ expect(issueFound!.read).toBe(false);
+
+ // Check directions
+ expect(offerFound!.message.direction).toBe(Domain.MessageDirection.RECEIVED);
+ expect(requestFound!.message.direction).toBe(Domain.MessageDirection.SENT);
+ expect(issueFound!.message.direction).toBe(Domain.MessageDirection.RECEIVED);
+
+ // receivedMessages should have offer + issue
+ const received = result.current.msgs.receivedMessages;
+ expect(received.filter((m) => m.thid === threadId)).toHaveLength(2);
+
+ // sentMessages should have request
+ const sent = result.current.msgs.sentMessages;
+ expect(sent.filter((m) => m.thid === threadId)).toHaveLength(1);
+ });
+});
diff --git a/packages/lib/react/tests/setup.ts b/packages/lib/react/tests/setup.ts
new file mode 100644
index 000000000..d59015ac0
--- /dev/null
+++ b/packages/lib/react/tests/setup.ts
@@ -0,0 +1,7 @@
+
+import { Buffer } from 'buffer';
+if (typeof window !== 'undefined') {
+ window.Buffer = Buffer
+} else {
+ global.Buffer = Buffer;
+}
\ No newline at end of file
diff --git a/packages/lib/react/tsconfig.eslint.json b/packages/lib/react/tsconfig.eslint.json
new file mode 100644
index 000000000..3a359d86c
--- /dev/null
+++ b/packages/lib/react/tsconfig.eslint.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "allowJs": true
+ },
+ "extends": "../../../tsconfig.base.json",
+ "include": [
+ "eslint.config.mjs",
+ "vitest.config.js",
+ "src/**/*",
+ "test/**/*"
+ ],
+ "exclude": [
+ "node_modules",
+ "dist",
+ "coverage",
+ "docs/typedoc"
+ ]
+}
\ No newline at end of file
diff --git a/packages/lib/react/tsconfig.json b/packages/lib/react/tsconfig.json
new file mode 100644
index 000000000..5b5032596
--- /dev/null
+++ b/packages/lib/react/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "extends": "../../../tsconfig.base.json",
+ "compilerOptions": {
+ "lib": [
+ "ES2022",
+ "DOM"
+ ],
+ "jsx": "react",
+ },
+ "include": [
+ "src/**/*"
+ ],
+ "exclude": [
+ "node_modules",
+ "build",
+ "docs/typedoc",
+ "coverage"
+ ]
+}
\ No newline at end of file
diff --git a/packages/lib/react/tsconfig.lib.json b/packages/lib/react/tsconfig.lib.json
new file mode 100644
index 000000000..558601def
--- /dev/null
+++ b/packages/lib/react/tsconfig.lib.json
@@ -0,0 +1,19 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+ "noEmit": false,
+ "rootDir": "src",
+ "outDir": "dist",
+ "tsBuildInfoFile": "tsconfig.lib.tsbuildinfo"
+ },
+ "include": [
+ "src/**/*.ts",
+ "src/**/*.tsx"
+ ],
+ "exclude": [
+ "**/*.spec.ts",
+ "**/*.test.ts"
+ ],
+ "references": []
+}
\ No newline at end of file
diff --git a/packages/lib/react/tsconfig.test.json b/packages/lib/react/tsconfig.test.json
new file mode 100644
index 000000000..644a6dcdd
--- /dev/null
+++ b/packages/lib/react/tsconfig.test.json
@@ -0,0 +1,12 @@
+{
+ "extends": "../../../tsconfig.test.json",
+ "exclude": [
+ "node_modules",
+ "dist",
+ "coverage"
+ ],
+ "include": [
+ "test/**/*.ts",
+ "vitest.config.js"
+ ]
+}
\ No newline at end of file
diff --git a/packages/lib/react/tsup.config.ts b/packages/lib/react/tsup.config.ts
new file mode 100644
index 000000000..7bdc1362a
--- /dev/null
+++ b/packages/lib/react/tsup.config.ts
@@ -0,0 +1,15 @@
+import { defineConfig } from 'tsup'
+
+export default defineConfig({
+ entry: [
+ 'src/index.tsx',
+ ],
+ outDir: "build",
+ clean: true,
+ splitting: true,
+ dts: false,
+ sourcemap: true,
+ minifyWhitespace: true,
+ minifyIdentifiers: true,
+ minifySyntax: false,
+});
diff --git a/packages/lib/react/tsup.types.config.ts b/packages/lib/react/tsup.types.config.ts
new file mode 100644
index 000000000..da6f2a009
--- /dev/null
+++ b/packages/lib/react/tsup.types.config.ts
@@ -0,0 +1,18 @@
+
+import { defineConfig } from 'tsup'
+
+import Config from './tsup.config';
+
+export default defineConfig({
+ ...Config,
+ format: ['esm'],
+ dts: {
+ resolve: [
+ '@hyperledger/identus-anoncreds',
+ '@hyperledger/identus-didcomm',
+ '@hyperledger/identus-jwe',
+ '@hyperledger/identus-domain',
+ '@hyperledger/identus-protos',
+ ]
+ },
+});
diff --git a/packages/lib/react/typedoc.js b/packages/lib/react/typedoc.js
new file mode 100644
index 000000000..62e6fdefc
--- /dev/null
+++ b/packages/lib/react/typedoc.js
@@ -0,0 +1,68 @@
+/**
+ * @type {import("typedoc").TypeDocOptions}
+ */
+const typedocOptions = {
+ "entryPoints": [
+ "./src/index.tsx",
+ "./src/hooks/index.ts",
+ "./src/context/index.ts"
+ ],
+ "entryPointStrategy": "resolve",
+ "out": "./docs/sdk",
+ "plugin": [
+ "typedoc-plugin-markdown",
+ "typedoc-plugin-rename-defaults"
+ ],
+ "externalSymbolLinkMappings": {
+ "@trust0/ridb": {
+ "RIDB": "https://github.com/trust0-project/RIDB/blob/main/docs/%40trust0/ridb/classes/RIDB.md",
+ "StorageType": "https://github.com/trust0-project/RIDB/blob/main/docs/%40trust0/ridb/enumerations/StorageType.md"
+ },
+ "@trust0/ridb-core": {
+ "Collection": "https://github.com/trust0-project/RIDB/docs/@trust0/ridb-core/classes/Collection.md",
+ "SchemaTypeRecord": "https://github.com/trust0-project/RIDB/blob/main/docs/%40trust0/ridb-core/type-aliases/SchemaTypeRecord.md",
+ "BaseStorage": "https://github.com/trust0-project/RIDB/blob/main/docs/%40trust0/ridb-core/classes/BaseStorage.md"
+ },
+ "@hyperledger/identus-sdk": {
+ "*": "docs/sdk/overview/README.md"
+ },
+ "react": {
+ "React.Context": "https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype"
+ }
+ },
+ "strikeDeprecatedPageTitles": true,
+ "useTsLinkResolution": true,
+ "hideGenerator": true,
+ "excludePrivate": true,
+ "useCodeBlocks": true,
+ "excludeReferences": false,
+ "excludeProtected": true,
+ "excludeInternal": true,
+ "excludeNotDocumented": false,
+ "theme": "markdown",
+ "includeVersion": true,
+ "customAnchorsFormat": "curlyBrace",
+ "useCustomAnchors": true,
+ "mergeReadme": true,
+ "readme": "./README.md",
+ "expandObjects": true,
+ "expandParameters": true,
+ "interfacePropertiesFormat": "table",
+ "parametersFormat": "table",
+ "indexFormat": "table",
+ "classPropertiesFormat": "table",
+ "typeAliasPropertiesFormat": "table",
+ "enumMembersFormat": "table",
+ "typeDeclarationFormat": "table",
+ "propertyMembersFormat": "table",
+ "searchInComments": true,
+ "excludeExternals": false,
+ "exclude": ["node_modules", "build"],
+ "categorizeByGroup": false,
+ "outputFileStrategy": "Members",
+ "fileExtension": ".md",
+ "modulesFileName": "modules.md",
+ "entryFileName": "README.md"
+}
+
+export default typedocOptions;
\ No newline at end of file
diff --git a/packages/lib/react/vitest.config.js b/packages/lib/react/vitest.config.js
new file mode 100644
index 000000000..d9cdfb214
--- /dev/null
+++ b/packages/lib/react/vitest.config.js
@@ -0,0 +1,54 @@
+import fs from 'fs';
+import { defineConfig } from 'vitest/config'
+import path from "path";
+
+const getWasmJSContent = (file) => {
+ const wasmBinary = fs.readFileSync(file);
+ const base64 = Buffer.from(wasmBinary).toString('base64');
+ return `export default Buffer.from("${base64}", "base64");`;
+};
+
+const isCI = process.env.CI === "true";
+
+function WasmPlugin() {
+ return {
+ name: 'wasm-plugin',
+ resolveId: (source, importer) =>
+ source.endsWith('.wasm') ?
+ path.resolve(path.dirname(importer), source) :
+ null,
+ load: (id) => id.endsWith('.wasm') ? getWasmJSContent(id) : null,
+ };
+}
+
+const rootPath = path.resolve(__dirname, '../../wasm');
+const libPath = path.resolve(__dirname, '../../lib');
+
+export default defineConfig({
+ plugins: [
+ WasmPlugin(),
+ ],
+ resolve: {
+ extensions: ['.ts', '.tsx'],
+ mainFields: ['module', 'main'],
+ alias: {
+ // Add path aliases to match tsconfig.json
+ '@hyperledger/identus-jwe-wasm': path.resolve(rootPath, './jwe/generated'),
+ '@hyperledger/identus-anoncreds-wasm': path.resolve(rootPath, './anoncreds/generated'),
+ '@hyperledger/identus-didcomm-wasm': path.resolve(rootPath, './didcomm/generated'),
+ '@hyperledger/identus-anoncreds': path.resolve(rootPath, './anoncreds/src'),
+ '@hyperledger/identus-didcomm': path.resolve(rootPath, './didcomm/src'),
+ '@hyperledger/identus-jwe': path.resolve(rootPath, './jwe/src'),
+ '@hyperledger/identus-protos': path.resolve(libPath, './protos'),
+ '@hyperledger/identus-domain': path.resolve(libPath, '../shared/domain/src'),
+ },
+ },
+ test: {
+ testTimeout: 12_000,
+ setupFiles: ['./tests/setup.ts'],
+ reporters: ['verbose'],
+ environment: 'jsdom',
+ include: ['tests/**/*.test.ts', 'tests/**/*.test.tsx'],
+
+ },
+})
diff --git a/packages/lib/sdk/src/edge-agent/index.ts b/packages/lib/sdk/src/edge-agent/index.ts
index 3d678d332..9efdc5329 100644
--- a/packages/lib/sdk/src/edge-agent/index.ts
+++ b/packages/lib/sdk/src/edge-agent/index.ts
@@ -4,6 +4,7 @@ export * from "./Agent.MessageEvents";
export * from "./Context";
export { CancellableTask } from "./helpers/Task";
export { FetchApi as ApiImpl } from "./helpers/FetchApi";
+export { RunProtocol } from "./helpers/RunProtocol";
export * from "./connections";
export * from "./types";
export * from './didFunctions';
diff --git a/packages/lib/sdk/tsconfig.lib.tsbuildinfo b/packages/lib/sdk/tsconfig.lib.tsbuildinfo
deleted file mode 100644
index 2a40558d5..000000000
--- a/packages/lib/sdk/tsconfig.lib.tsbuildinfo
+++ /dev/null
@@ -1 +0,0 @@
-{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/pako/index.d.ts","../../../node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbols/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/any/any.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/any/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/literal/literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/literal/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/enum/enum.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/enum/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/function/function.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/function/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/never/never.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/never/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/recursive/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/tuple/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/error/error.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/error/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/string/string.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/string/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/boolean/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/number/number.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/number/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/integer/integer.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/integer/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/bigint/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/union.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/iterator/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/promise/promise.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/promise/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/sets/set.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/sets/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/optional.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/not/not.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/not/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/regexp/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/record/record.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/record/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/ref/ref.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/ref/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unsafe/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/transform/transform.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/transform/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/static/static.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/static/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/object/object.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/object/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/helpers/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/array/array.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/array/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/date/date.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/date/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/null/null.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/null/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbol/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/uint8array/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/undefined/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unknown/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/void/void.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/void/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/schema.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/value.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/kind.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/value.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/patterns/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/format.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/awaited/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/composite/composite.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/composite/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/const/const.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/const/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/deref/deref.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/deref/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/instance-type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/parameters/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/partial.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/required.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/rest/rest.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/rest/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/return-type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/strict/strict.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/strict/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/json.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/javascript.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/index.d.mts","../../../node_modules/did-resolver/lib/resolver.d.ts","../../../node_modules/did-jwt/lib/encryption/types.d.ts","../../../node_modules/multibase/dist/src/types.d.ts","../../../node_modules/multibase/dist/src/base.d.ts","../../../node_modules/multibase/dist/src/index.d.ts","../../../node_modules/did-jwt/lib/util.d.ts","../../../node_modules/did-jwt/lib/jwt.d.ts","../../../node_modules/did-jwt/lib/signers/simplesigner.d.ts","../../../node_modules/did-jwt/lib/signers/ellipticsigner.d.ts","../../../node_modules/did-jwt/lib/signers/naclsigner.d.ts","../../../node_modules/did-jwt/lib/signers/es256ksigner.d.ts","../../../node_modules/did-jwt/lib/signers/es256signer.d.ts","../../../node_modules/did-jwt/lib/signers/eddsasigner.d.ts","../../../node_modules/@noble/hashes/esm/utils.d.ts","../../../node_modules/@noble/hashes/esm/_md.d.ts","../../../node_modules/@noble/hashes/esm/legacy.d.ts","../../../node_modules/@noble/hashes/esm/ripemd160.d.ts","../../../node_modules/did-jwt/lib/digest.d.ts","../../../node_modules/did-jwt/lib/encryption/jwe.d.ts","../../../node_modules/did-jwt/lib/encryption/xc20pdir.d.ts","../../../node_modules/did-jwt/lib/encryption/x25519-ecdh-es.d.ts","../../../node_modules/did-jwt/lib/encryption/x25519-ecdh-1pu.d.ts","../../../node_modules/did-jwt/lib/encryption/ecdh.d.ts","../../../node_modules/did-jwt/lib/encryption/xc20pencryption.d.ts","../../../node_modules/did-jwt/lib/encryption/createencrypter.d.ts","../../../node_modules/did-jwt/lib/errors.d.ts","../../../node_modules/did-jwt/lib/index.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/buffer/index.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/bn.js/index.d.ts","../../shared/domain/build/index.d.ts","./src/mercury/didcommprotocol.ts","./src/mercury/helpers/mediatype.ts","../../../node_modules/@stablelib/random/lib/source/index.d.ts","../../../node_modules/@stablelib/random/lib/source/system.d.ts","../../../node_modules/@stablelib/random/lib/random.d.ts","../../../node_modules/@stablelib/uuid/lib/uuid.d.ts","./src/mercury/forward/forwardmessage.ts","./src/mercury/index.ts","../../wasm/didcomm/build/index.d.ts","./src/plugins/internal/didcomm/protocols/invitation/prismonboardinginvitation.ts","./src/plugins/internal/didcomm/types.ts","./src/plugins/internal/didcomm/protocols/invitation/outofbandinvitation.ts","./src/utils/logger.ts","./src/utils/types.ts","./src/utils/tasks.ts","../../../node_modules/@sinclair/typebox/build/esm/errors/errors.d.mts","../../../node_modules/@sinclair/typebox/build/esm/errors/function.d.mts","../../../node_modules/@sinclair/typebox/build/esm/errors/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/guard/guard.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/guard/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/cast/cast.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/cast/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/check/check.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/check/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/clean/clean.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/clean/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/clone/clone.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/clone/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/convert/convert.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/convert/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/create/create.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/create/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/default/default.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/default/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/delta/delta.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/delta/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/equal/equal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/equal/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/hash/hash.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/hash/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/mutate/mutate.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/mutate/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/pointer/pointer.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/pointer/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/transform/decode.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/transform/encode.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/transform/has.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/transform/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/value/value.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/value/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/value/index.d.mts","./src/utils/validation.ts","./src/utils/index.ts","./src/plugins/plugin.ts","./src/plugins/pluginmanager.ts","../../../node_modules/multiformats/dist/src/bases/interface.d.ts","../../../node_modules/multiformats/dist/src/bases/base.d.ts","../../../node_modules/multiformats/dist/src/bases/base64.d.ts","./src/plugins/internal/oea/jwt/credentialissue.ts","./src/edge-agent/didfunctions/prismkeypathindex.ts","./src/edge-agent/didfunctions/createprismdid.ts","./src/edge-agent/didfunctions/createprismdidwithkeys.ts","./src/edge-agent/didfunctions/sign.ts","./src/edge-agent/didfunctions/index.ts","./src/plugins/internal/oea/jwt/credentialoffer.ts","./src/plugins/internal/oea/jwt/presentationrequest.ts","./src/plugins/internal/oea/jwt/index.ts","../../../node_modules/@sd-jwt/types/dist/index.d.mts","../../../node_modules/@sd-jwt/utils/dist/index.d.mts","../../../node_modules/@sd-jwt/core/dist/index.d.mts","../../../node_modules/hash.js/lib/hash.d.ts","../../../node_modules/@sd-jwt/sd-jwt-vc/dist/index.d.mts","../../../node_modules/@sd-jwt/decode/dist/index.d.mts","./src/pollux/utils/jwt/resolvedid.ts","../../../node_modules/multiformats/dist/src/bases/base58.d.ts","./src/pollux/utils/jwt/fromjwk.ts","./src/pollux/utils/jwt/pkinstance.ts","./src/edge-agent/didfunctions/finddidsigningkeys.ts","./src/pollux/utils/jwt/createsdjwt.ts","./src/pollux/utils/jwt/sdjwt.ts","./src/pollux/models/sdjwtverifiablecredential.ts","./src/plugins/internal/oea/sdjwt/credentialissue.ts","./src/plugins/internal/oea/sdjwt/credentialoffer.ts","./src/plugins/internal/oea/sdjwt/presentationrequest.ts","./src/plugins/internal/oea/sdjwt/index.ts","./src/edge-agent/helpers/runprotocol.ts","./src/plugins/internal/oea/tasks/handlepresentation.ts","./src/plugins/internal/oea/protocols/handshakerequest.ts","./src/edge-agent/connections/connection.ts","./src/plugins/internal/didcomm/connection/didcommconnection.ts","./src/plugins/internal/didcomm/connection/mediatorconnection.ts","./src/plugins/internal/didcomm/protocols/issuecredential/credentialpreview.ts","./src/plugins/internal/didcomm/protocols/issuecredential/issuecredential.ts","./src/plugins/internal/didcomm/protocols/issuecredential/offercredential.ts","./src/plugins/internal/didcomm/protocols/issuecredential/proposecredential.ts","./src/plugins/internal/didcomm/protocols/issuecredential/requestcredential.ts","./src/plugins/internal/didcomm/protocols/mediation/mediationkeysupdatelist.ts","./src/plugins/internal/didcomm/protocols/mediation/mediationrequest.ts","./src/plugins/internal/didcomm/protocols/other/basicmessage.ts","./src/plugins/internal/didcomm/protocols/other/problemreport.ts","./src/plugins/internal/didcomm/protocols/pickup/pickupreceived.ts","./src/plugins/internal/didcomm/protocols/pickup/pickuprequest.ts","./src/plugins/internal/didcomm/index.ts","./src/edge-agent/connections/connectionsmanager.ts","./src/edge-agent/connections/index.ts","./src/edge-agent/didcomm/send.ts","./src/edge-agent/didcomm/createpeerdid.ts","./src/plugins/internal/didcomm/tasks/handleoobinvitation.ts","./src/plugins/internal/didcomm/tasks/handleissuecredential.ts","./src/plugins/internal/didcomm/tasks/handleoffercredential.ts","./src/plugins/internal/didcomm/connection/mediatedeny.ts","./src/plugins/internal/didcomm/connection/mediategrant.ts","./src/plugins/internal/didcomm/connection/pickupdelivery.ts","./src/plugins/internal/didcomm/connection/pickupstatus.ts","./src/plugins/internal/didcomm/connection/problemreport.ts","./src/plugins/internal/didcomm/tasks/handlerequestcredential.ts","./src/plugins/internal/didcomm/plugin.ts","./src/plugins/internal/oea/protocols/revocationnotfiication.ts","./src/plugins/internal/oea/tasks/handlerevocation.ts","./src/plugins/internal/oea/protocols/requestpresentation.ts","./src/plugins/internal/oea/protocols/presentation.ts","./src/plugins/internal/oea/tasks/createpresentation.ts","../../../node_modules/@types/jsonld/jsonld.d.ts","../../../node_modules/@types/jsonld/jsonld-spec.d.ts","../../../node_modules/@types/jsonld/index.d.ts","./src/pollux/utils/bitstring.ts","./src/plugins/internal/dif/iscredentialrevoked.ts","./src/plugins/internal/dif/types.ts","./src/plugins/internal/dif/presentationrequest.ts","./src/pollux/utils/descriptorpath.ts","./src/plugins/internal/dif/presentationverify.ts","./src/plugins/internal/dif/module/createpresentationdefinition.ts","./src/plugins/internal/dif/module/index.ts","./src/plugins/internal/dif/index.ts","./src/plugins/internal/oea/tasks/createpresentationrequest.ts","./src/plugins/internal/oea/tasks/index.ts","./src/plugins/internal/oea/protocols/proposepresentation.ts","./src/plugins/internal/oea/index.ts","./src/pollux/models/jwtverifiablecredential.ts","./src/pollux/utils/jwt/createjwt.ts","./src/pollux/utils/jwt/jwt.ts","./src/pollux/utils/jwt/index.ts","./src/edge-agent/agent.messageevents.ts","./src/edge-agent/helpers/task.ts","./src/edge-agent/connections/jobmanager.ts","./src/edge-agent/context.ts","./src/plugins/types.ts","./src/plugins/index.ts","../../wasm/anoncreds/build/index.d.ts","./src/plugins/internal/anoncreds/types.ts","../../../node_modules/@stablelib/hash/lib/hash.d.ts","../../../node_modules/@stablelib/sha256/lib/sha256.d.ts","./src/pollux/models/anoncredsverifiablecredential.ts","./src/plugins/internal/anoncreds/getlinksecret.ts","./src/plugins/internal/anoncreds/credentialissue.ts","./src/plugins/internal/anoncreds/credentialoffer.ts","./src/plugins/internal/anoncreds/fetchschema.ts","./src/plugins/internal/anoncreds/presentationrequest.ts","./src/plugins/internal/anoncreds/presentationverify.ts","./src/plugins/internal/anoncreds/plugin.ts","./src/plugins/internal/anoncreds/fetchcredentialdefinition.ts","./src/plugins/internal/anoncreds/index.ts","./src/plugins/internal/oea/types.ts","./src/edge-agent/types/index.ts","../../../node_modules/@scure/bip39/esm/index.d.ts","../../../node_modules/@scure/bip39/esm/wordlists/english.d.ts","../../../node_modules/@hyperledger/identus-apollo/apollo.d.ts","./src/apollo/utils/ed25519publickey.ts","./src/apollo/utils/x25519publickey.ts","./src/apollo/utils/x25519privatekey.ts","./src/apollo/utils/ed25519privatekey.ts","./src/apollo/utils/ec/eccoordinate.ts","./src/apollo/utils/ec/ecpoint.ts","./src/apollo/utils/secp256k1publickey.ts","./src/apollo/utils/secp256k1privatekey.ts","./src/apollo/utils/ed25519keypair.ts","./src/apollo/utils/x25519keypair.ts","./src/apollo/index.ts","../../../node_modules/@noble/curves/esm/utils.d.ts","../../../node_modules/@noble/curves/esm/abstract/modular.d.ts","../../../node_modules/@noble/curves/esm/abstract/curve.d.ts","../../../node_modules/@noble/curves/esm/abstract/weierstrass.d.ts","../../../node_modules/@noble/curves/esm/_shortw_utils.d.ts","../../../node_modules/@noble/curves/esm/abstract/hash-to-curve.d.ts","../../../node_modules/@noble/curves/esm/secp256k1.d.ts","./src/castor/parser/didparser.ts","./src/peer-did/helpers/varint.ts","./src/peer-did/helpers/multicodec.ts","./src/peer-did/peerdid.ts","./src/peer-did/types.ts","./src/peer-did/helpers/jwkhelper.ts","./src/castor/resolver/peerdidresolver.ts","./src/peer-did/peerdidcreate.ts","./src/castor/did/prismdid/prismdidmethodid.ts","./src/castor/did/prismdid/longformprismdid.ts","../../../node_modules/@types/google-protobuf/index.d.ts","../protos/build/google/protobuf/timestamp.d.ts","../protos/build/common_models.d.ts","../protos/build/node_models.d.ts","./src/castor/resolver/longformprismdidresolver.ts","./src/castor/resolver/didresolverhttpproxy.ts","./src/castor/resolver/prismdidresolver.ts","./src/castor/index.ts","./src/edge-agent/helpers/fetchapi.ts","./src/edge-agent/didcomm/parseprisminvitation.ts","./src/edge-agent/didcomm/parseoobinvitation.ts","./src/edge-agent/didcomm/parseinvitation.ts","./src/edge-agent/helpers/revealcredentialfields.ts","./src/edge-agent/didcomm/startmediator.ts","./src/edge-agent/didcomm/startfetchingmessages.ts","./src/edge-agent/agent.ts","../../wasm/jwe/build/index.d.ts","./src/edge-agent/agent.backup.ts","./src/pluto/models/model.ts","../../../node_modules/@trust0/ridb-core/build/ridb_core.d.ts","./src/pluto/types.ts","./src/pluto/models/schema.ts","./src/pluto/models/credential.ts","./src/pluto/models/credentialmetadata.ts","./src/pluto/models/did.ts","./src/pluto/models/key.ts","./src/pluto/models/message.ts","./src/pluto/models/relationships/didkeylink.ts","./src/pluto/models/relationships/didlink.ts","./src/pluto/models/relationships/index.ts","./src/pluto/models/index.ts","./src/pluto/repositories/builders/baserepository.ts","./src/pluto/repositories/builders/mapperrepository.ts","./src/pluto/repositories/credentialrepository.ts","./src/pluto/repositories/credentialmetadatarepository.ts","./src/pluto/repositories/didrepository.ts","./src/pluto/repositories/keyrepository.ts","./src/pluto/repositories/linksecretrepository.ts","./src/pluto/repositories/messagerepository.ts","./src/pluto/repositories/builders/linkrepository.ts","./src/pluto/repositories/relationships/didkeylinkrepository.ts","./src/pluto/repositories/relationships/didlinkrepository.ts","./src/pluto/repositories/index.ts","./src/pluto/repositories/builders/factory.ts","./src/pluto/backup/versions/interfaces.ts","./src/pluto/backup/versions/0_0_1/backup.ts","./src/pluto/backup/versions/0_0_1/restore.ts","./src/pluto/backup/versions/0_0_1/index.ts","./src/pluto/backup/versions/index.ts","./src/pluto/backup/backupmanager.ts","./src/pluto/pluto.ts","./src/pluto/index.ts","./src/pluto/collections/index.ts","./src/apollo/utils/secp256k1keypair.ts","./src/edge-agent/didcomm/createooboffer.ts","./src/edge-agent/didcomm/createoobpresentationrequest.ts","./src/exports.ts","./src/globals.ts","./src/index.ts","./src/apollo/models/octetkeypair.ts","./src/apollo/utils/bn/bnhelper.ts","./src/apollo/utils/derivation/derivationpath.ts","./src/castor/parser/didurlparser.ts","./src/castor/protos/google/protobuf/timestamp.ts","./src/castor/protos/common_models.ts","./src/castor/protos/node_models.ts","./src/castor/types/index.ts","./src/plugins/internal/oidc/errors.ts","./src/plugins/internal/oidc/types.ts","./src/plugins/internal/oidc/protocols/authorizationrequest.ts","./src/plugins/internal/oidc/connection/createauthorizationrequest.ts","./src/plugins/internal/oidc/module.ts","./src/plugins/internal/oidc/plugin.ts","./src/plugins/internal/oidc/connection/oidcconnection.ts","./src/plugins/internal/oidc/protocols/authorizationresponse.ts","./src/plugins/internal/oidc/connection/processcallbackurl.ts","./src/plugins/internal/oidc/tasks/fetchissuermetadata.ts","./src/plugins/internal/oidc/tasks/fetchauthservermeta.ts","./src/plugins/internal/oidc/connection/resolveauthorizationrequest.ts","./src/plugins/internal/oidc/protocols/credentialrequest.ts","./src/plugins/internal/oidc/tasks/createcredentialrequest.ts","./src/plugins/internal/oidc/connection/resolvecredentialrequest.ts","./src/plugins/internal/oidc/protocols/tokenrequest.ts","./src/plugins/internal/oidc/protocols/index.ts","./src/plugins/internal/oidc/connection/resolvetokenrequest.ts","./src/plugins/internal/oidc/tasks/parsecredentialoffer.ts","./src/plugins/internal/oidc/tasks/index.ts","./src/plugins/internal/oidc/index.ts","../../../node_modules/@types/argparse/index.d.ts","../../../node_modules/@types/aria-query/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/deep-eql/index.d.ts","../../../node_modules/assertion-error/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/clone/index.d.ts","../../../node_modules/@types/common-tags/index.d.ts","../../../node_modules/@types/cors/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/elliptic/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/estree-jsx/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/lokijs/index.d.ts","../../../node_modules/@types/long/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/mdx/types.d.ts","../../../node_modules/@types/mdx/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/simple-peer/index.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/webidl-conversions/index.d.ts","../../../node_modules/@types/whatwg-url/index.d.ts","../../../node_modules/@types/ws/index.d.ts"],"fileIdsList":[[276,325,342,343],[276,325,342,343,556,559],[276,325,342,343,557],[276,325,342,343,556,557,558],[276,325,342,343,556,557,558,559,560,561],[257,276,325,342,343],[257,258,276,325,342,343],[259,276,325,342,343],[276,325,342,343,445,446],[276,325,342,343,445,447],[276,325,342,343,445],[96,167,276,325,342,343],[167,276,325,342,343,393],[276,325,342,343,393,394],[61,63,67,70,72,74,76,78,80,82,84,88,92,94,96,98,100,102,104,106,114,119,121,123,125,127,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,167,170,174,176,179,181,186,188,190,192,194,198,204,208,210,217,221,223,226,230,233,235,237,239,242,276,325,342,343],[61,167,276,325,342,343],[62,276,325,342,343],[61,144,148,167,276,325,342,343],[149,276,325,342,343],[61,144,167,276,325,342,343],[66,276,325,342,343],[88,92,123,167,276,325,342,343],[180,276,325,342,343],[105,276,325,342,343],[99,276,325,342,343],[168,169,276,325,342,343],[167,276,325,342,343],[82,88,119,125,146,148,167,186,276,325,342,343],[187,276,325,342,343],[63,70,76,80,82,94,106,146,148,152,154,156,158,160,162,167,276,325,342,343],[189,276,325,342,343],[74,94,148,167,276,325,342,343],[191,276,325,342,343],[61,70,72,130,144,148,167,276,325,342,343],[73,276,325,342,343],[151,276,325,342,343],[67,74,80,88,92,94,121,123,138,146,148,150,167,276,325,342,343],[193,276,325,342,343],[61,76,167,276,325,342,343],[77,276,325,342,343],[95,276,325,342,343],[127,146,167,196,276,325,342,343],[114,167,196,276,325,342,343],[82,92,114,127,144,148,167,195,197,276,325,342,343],[195,196,197,276,325,342,343],[76,127,146,148,167,201,276,325,342,343],[127,146,167,201,276,325,342,343],[92,127,144,148,167,200,202,276,325,342,343],[199,200,201,202,203,276,325,342,343],[127,146,167,206,276,325,342,343],[114,167,206,276,325,342,343],[82,92,114,127,144,148,167,205,207,276,325,342,343],[205,206,207,276,325,342,343],[79,276,325,342,343],[171,172,173,276,325,342,343],[61,63,67,70,74,76,80,82,84,88,92,94,98,100,102,104,106,114,121,123,127,130,132,134,136,138,140,142,146,150,152,154,156,158,160,162,164,167,276,325,342,343],[61,63,67,70,74,76,80,82,84,88,92,94,96,98,100,102,104,106,114,121,123,127,130,132,134,136,138,140,142,146,150,152,154,156,158,160,162,164,167,276,325,342,343],[82,146,167,276,325,342,343],[147,276,325,342,343],[115,116,117,118,276,325,342,343],[117,127,146,148,167,276,325,342,343],[115,119,127,146,167,276,325,342,343],[76,92,102,104,114,167,276,325,342,343],[82,84,88,92,94,115,116,118,127,146,148,150,167,276,325,342,343],[209,276,325,342,343],[74,167,276,325,342,343],[103,276,325,342,343],[85,86,87,276,325,342,343],[70,82,85,130,167,276,325,342,343],[82,85,167,276,325,342,343],[167,212,276,325,342,343],[211,212,213,214,215,216,276,325,342,343],[76,127,146,148,167,212,276,325,342,343],[76,92,114,127,167,211,276,325,342,343],[120,276,325,342,343],[182,183,184,185,276,325,342,343],[127,146,148,167,183,276,325,342,343],[84,88,92,94,125,146,148,150,167,276,325,342,343],[76,92,102,127,148,167,182,184,276,325,342,343],[75,276,325,342,343],[64,65,126,276,325,342,343],[61,146,167,276,325,342,343],[64,65,67,70,74,76,78,80,88,92,94,119,121,123,125,130,146,148,150,167,276,325,342,343],[81,276,325,342,343],[131,276,325,342,343],[153,276,325,342,343],[101,276,325,342,343],[145,276,325,342,343],[61,70,130,144,148,167,276,325,342,343],[218,219,220,276,325,342,343],[127,146,167,219,276,325,342,343],[127,146,148,167,219,276,325,342,343],[84,88,92,119,127,146,148,167,218,220,276,325,342,343],[128,129,276,325,342,343],[127,128,146,276,325,342,343],[61,127,129,148,167,276,325,342,343],[222,276,325,342,343],[80,94,148,167,276,325,342,343],[224,225,276,325,342,343],[127,146,148,167,224,276,325,342,343],[70,72,84,88,92,127,130,146,148,167,225,276,325,342,343],[175,276,325,342,343],[227,228,229,276,325,342,343],[127,146,167,228,276,325,342,343],[127,146,148,167,228,276,325,342,343],[84,88,92,119,127,146,148,167,227,229,276,325,342,343],[122,276,325,342,343],[71,276,325,342,343],[70,130,167,276,325,342,343],[68,69,276,325,342,343],[68,127,146,276,325,342,343],[61,69,127,148,167,276,325,342,343],[135,276,325,342,343],[61,63,76,78,82,92,98,102,104,114,134,144,146,148,167,276,325,342,343],[83,276,325,342,343],[137,276,325,342,343],[133,276,325,342,343],[177,178,276,325,342,343],[231,232,276,325,342,343],[127,146,148,167,231,276,325,342,343],[70,72,84,88,92,127,130,146,148,167,232,276,325,342,343],[234,276,325,342,343],[88,92,94,167,276,325,342,343],[236,276,325,342,343],[80,167,276,325,342,343],[63,67,74,76,78,80,84,88,92,94,98,100,102,104,106,114,121,123,132,134,136,138,146,150,152,154,156,158,160,162,164,165,276,325,342,343],[165,166,276,325,342,343],[61,276,325,342,343],[124,276,325,342,343],[143,276,325,342,343],[67,70,74,78,80,84,88,92,94,121,123,130,132,136,138,140,142,146,148,150,167,276,325,342,343],[238,276,325,342,343],[97,276,325,342,343],[155,276,325,342,343],[60,276,325,342,343],[76,92,96,98,100,102,104,106,107,114,276,325,342,343],[76,92,96,100,107,108,114,148,276,325,342,343],[107,108,109,110,111,112,113,276,325,342,343],[96,276,325,342,343],[96,114,276,325,342,343],[76,92,98,100,102,106,114,148,276,325,342,343],[61,76,82,92,98,100,102,104,106,110,144,148,167,276,325,342,343],[76,92,112,144,148,276,325,342,343],[141,276,325,342,343],[93,276,325,342,343],[240,241,276,325,342,343],[67,74,80,106,121,123,134,152,156,158,160,164,167,181,192,210,223,237,240,276,325,342,343],[63,70,72,76,78,82,84,88,92,94,98,100,102,104,114,119,127,130,132,136,138,140,142,146,150,154,162,167,186,188,190,194,198,204,208,217,221,226,230,233,235,276,325,342,343],[157,276,325,342,343],[159,276,325,342,343],[89,90,91,276,325,342,343],[70,82,89,130,167,276,325,342,343],[82,89,167,276,325,342,343],[161,276,325,342,343],[139,276,325,342,343],[163,276,325,342,343],[96,144,167,276,325,342,343],[276,325,342,343,398],[276,325,342,343,400],[276,325,342,343,402],[276,325,342,343,404],[276,325,342,343,406],[276,325,342,343,408],[276,325,342,343,410],[76,92,96,98,144,146,162,276,325,342,343],[276,325,342,343,412],[276,325,342,343,414],[276,325,342,343,396],[276,325,342,343,416],[276,325,342,343,395,397,399,401,403,405,407,409,411,413,415,417,419,421,425,427],[276,325,342,343,418],[276,325,342,343,420],[96,167,276,325,342,343,395],[276,325,342,343,422,423,424],[276,325,342,343,426],[144,167,276,325,342,343,395,413,419],[276,325,342,343,380,381],[276,325,342,343,380],[276,325,342,343,528],[276,325,342,343,382],[276,325,342,343,375],[276,325,339,342,343,375,663],[276,325,342,343,665,666],[276,325,339,342,343,375],[276,325,342,343,671],[276,325,342,343,376],[276,325,342,343,674,675],[276,325,336,339,342,343,375,676,677,678],[276,325,342,343,664,677,679,681],[276,325,342,343,683],[276,325,342,343,500,501],[276,325,342,343,500],[276,325,342,343,686,688,689,690,691,692,693,694,695,696,697,698],[276,325,342,343,686,687,689,690,691,692,693,694,695,696,697,698],[276,325,342,343,687,688,689,690,691,692,693,694,695,696,697,698],[276,325,342,343,686,687,688,690,691,692,693,694,695,696,697,698],[276,325,342,343,686,687,688,689,691,692,693,694,695,696,697,698],[276,325,342,343,686,687,688,689,690,692,693,694,695,696,697,698],[276,325,342,343,686,687,688,689,690,691,693,694,695,696,697,698],[276,325,342,343,686,687,688,689,690,691,692,694,695,696,697,698],[276,325,342,343,686,687,688,689,690,691,692,693,695,696,697,698],[276,325,342,343,686,687,688,689,690,691,692,693,694,696,697,698],[276,325,342,343,686,687,688,689,690,691,692,693,694,695,697,698],[276,325,342,343,686,687,688,689,690,691,692,693,694,695,696,698],[276,325,342,343,686,687,688,689,690,691,692,693,694,695,696,697],[276,325,342,343,702,703],[276,325,337,342,343,357,375],[276,325,339,342,343,375,680],[276,325,342,343,357,375],[276,325,336,339,341,342,343,357,365,368,374,375],[257,260,276,325,342,343],[245,276,325,342,343],[249,276,325,342,343],[244,245,276,325,342,343],[245,249,250,251,252,253,254,255,256,261,262,263,264,265,266,267,268,269,276,325,342,343],[244,249,276,325,342,343],[250,276,325,342,343],[244,245,248,276,325,342,343],[246,276,325,342,343],[246,247,276,325,342,343],[276,325,342,343,433],[276,325,342,343,434],[276,325,342,343,573,574],[276,325,342,343,573],[276,325,342,343,573,574,575],[276,322,323,325,342,343],[276,324,325,342,343],[325,342,343],[276,325,330,342,343,360],[276,325,326,331,336,342,343,345,357,368],[276,325,326,327,336,342,343,345],[271,272,273,276,325,342,343],[276,325,328,342,343,369],[276,325,329,330,337,342,343,346],[276,325,330,342,343,357,365],[276,325,331,333,336,342,343,345],[276,324,325,332,342,343],[276,325,333,334,342,343],[276,325,335,336,342,343],[276,324,325,336,342,343],[276,325,336,337,338,342,343,357,368],[276,325,336,337,338,342,343,352,357,360],[276,318,325,333,336,339,342,343,345,357,368],[276,325,336,337,339,340,342,343,345,357,365,368],[276,325,339,341,342,343,357,365,368],[274,275,276,277,278,279,280,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374],[276,325,336,342,343],[276,325,342,343,344,368],[276,325,333,336,342,343,345,357],[276,325,342,343,346],[276,325,342,343,347],[276,324,325,342,343,348],[276,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374],[276,325,342,343,350],[276,325,342,343,351],[276,325,336,342,343,352,353],[276,325,342,343,352,354,369,371],[276,325,337,342,343],[276,325,336,342,343,357,358,360],[276,325,342,343,359,360],[276,325,342,343,357,358],[276,325,342,343,360],[276,325,342,343,361],[276,322,325,342,343,357,362,368],[276,325,336,342,343,363,364],[276,325,342,343,363,364],[276,325,330,342,343,345,357,365],[276,325,342,343,366],[276,325,342,343,345,367],[276,325,339,342,343,351,368],[276,325,330,342,343,369],[276,325,342,343,357,370],[276,325,342,343,344,371],[276,325,342,343,372],[276,318,325,342,343],[276,318,325,336,338,342,343,348,357,360,368,370,371,373],[276,325,342,343,357,374],[276,290,294,325,342,343,368],[276,290,325,342,343,357,368],[276,285,325,342,343],[276,287,290,325,342,343,365,368],[276,325,342,343,345,365],[276,285,325,342,343,375],[276,287,290,325,342,343,345,368],[276,282,283,286,289,325,336,342,343,357,368],[276,290,297,325,342,343],[276,282,288,325,342,343],[276,290,311,312,325,342,343],[276,286,290,325,342,343,360,368,375],[276,311,325,342,343,375],[276,284,285,325,342,343,375],[276,290,325,342,343],[276,284,285,286,287,288,289,290,291,292,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,312,313,314,315,316,317,325,342,343],[276,290,305,325,342,343],[276,290,297,298,325,342,343],[276,288,290,298,299,325,342,343],[276,289,325,342,343],[276,282,285,290,325,342,343],[276,290,294,298,299,325,342,343],[276,294,325,342,343],[276,288,290,293,325,342,343,368],[276,282,287,290,297,325,342,343],[276,325,342,343,357],[276,285,290,311,325,342,343,373,375],[276,325,342,343,377,430,542,543,544,545,546,547,548,551,552,553,554],[276,325,342,343,377],[276,325,342,343,376,549],[276,325,342,343,377,544,545,548],[276,325,342,343,377,544,545,547],[276,325,342,343,377,544],[276,325,342,343,377,544,551,552],[276,325,342,343,376,377,544,551],[276,325,342,343,376,377,544,550],[276,325,342,343,377,544,546,547],[276,325,342,343,377,544,546],[276,325,342,343,377,571],[276,325,342,343,377,435,452,529,545,546,551,552,562,563,567,568,569,570,576,579],[276,325,342,343,573,636],[276,325,342,343,573,636,637],[276,325,342,343,377,435,452,529,545,546,551,563,572,576],[276,325,342,343,377,435,452,565,566,567,568],[276,325,342,343,377,563,571,577,578],[276,325,342,343,567],[59,276,325,342,343,377,430,588,589],[276,325,342,343,430,541],[276,325,342,343,377,385,386,392,441,463,480,481,483,484,485,497,498,499,511,512,515,519,520,522,523,525,541,555,580,581,582,584,585,586,587,590],[276,325,342,343,377,430],[276,325,342,343,430,466,480],[276,325,342,343,466,481],[276,325,342,343,521],[276,325,342,343,377,392,481,519,520,522,525],[276,325,342,343,377,383,392,480,523],[276,325,342,343,377,383,392,480,497,523],[276,325,342,343,377,392,474,483,523],[276,325,342,343,377,388,392,430,435,523,540,541,582,583],[276,325,342,343,377,388,389,392,430],[276,325,342,343,377,387,392,430,484,523],[276,325,342,343,377,392,430,480,482,523],[276,325,342,343,377,383,388,392,430,479,521,523],[276,325,342,343,377,392,430,475,480,482,484,523],[276,325,342,343,377,392,437,523],[276,325,342,343,377,392,430,523],[276,325,342,343,377,392,430,435,452,523],[276,325,342,343,437,438,439,440],[276,325,342,343,392,523],[276,325,342,343,377,392,523],[276,325,342,343,377,430,458,516,525,530],[276,325,342,343,377,430,445,449,523,629],[276,325,342,343,377,387,388,389,540],[276,325,342,343,377,385,389,430,431,432,441,454,457,458,463,465,467,470,471,473,476,481,482,497,498,499,512,514,516,518,520,521,522,523,524,530,540,541,545,546,547,548,551,552,553,554,555,566,580,581,588,590,594,603,615,624,625,626,627,628],[276,325,342,343,629,630],[276,325,342,343,377,383],[276,325,342,343,377,378,379,384],[276,325,342,343,377,435,567],[276,325,342,343,564],[276,325,342,343,377,435,452,545,546,565,566,567,568],[276,325,342,343,431,432,524],[276,325,342,343,377,430,525,527,530,531,537,538],[276,325,342,343,377,430,525,527,531,537,538],[276,325,342,343,430,527,537],[276,325,342,343,377,430,537],[276,325,342,343,527,534,537,538],[276,325,342,343,525,526,527,532,533,535,536],[276,325,342,343,377,430,525,527,530,531,534,537,538],[276,325,342,343,377,430,525,527,534,537,538,540],[276,325,342,343,526],[276,325,342,343,377,388,430,463,466,523],[276,325,342,343,377,430,466,523],[276,325,342,343,377,430,466,467],[276,325,342,343,377,430,478,494,541],[276,325,342,343,377,430,523,541],[276,325,342,343,387,388,389,467,468,469,470,471,472,473,474,475,476,477,478,479,494],[276,325,342,343,388,431,485,486,487,488,489,490,491,492,493,524],[276,325,342,343,377,383,387,388],[276,325,342,343,430],[276,325,342,343,377,383,388,430,435],[276,325,342,343,377,383,388,430,469],[276,325,342,343,377,383,388,430],[276,325,342,343,377,383,388],[276,325,342,343,377,388],[276,325,342,343,377,430,463,494],[276,325,342,343,377,388,430,435,463,473,494],[276,325,342,343,377,389,430,465,467,482,484,524,541],[276,325,342,343,377,383,392,430,435,445,449,455,470,525,541],[276,325,342,343,431,504,505,506,508,510,524,537],[59,276,325,342,343,377,430,435,501,502,503,511,516,524],[276,325,342,343,377,383,430,505,525],[276,325,342,343,430,505,509],[276,325,342,343,377,383,445,458,505,511,516,525],[276,325,342,343,377,430,458,504,505,507,511,516,525],[276,325,342,343,444,462,464,465,495,496,497,498,513,514,525,540],[276,325,342,343,377,516,525],[276,325,342,343,377,441,525,540],[276,325,342,343,436,442,443],[276,325,342,343,377,516,525,540],[276,325,342,343,377,383,389,430,540],[276,325,342,343,377,383,430,540],[276,325,342,343,377,430,540],[276,325,342,343,377,458,525],[276,325,342,343,377,441,516,525,540],[276,325,342,343,459,460,461],[276,325,342,343,377,458,525,540],[276,325,342,343,377,383,430,463,497,498,524],[276,325,342,343,377,383,392,484,497,511,524,537,540],[276,325,342,343,377,430,463,525,540],[276,325,342,343,377,388,430,486,494,495,540,541],[276,325,342,343,464,496,499,512],[276,325,342,343,377,430,539],[276,325,342,343,430,641,642],[276,325,342,343,377,430,482,641,645],[276,325,342,343,430,641,647],[276,325,342,343,430,640,641,642,643,645,649,650],[243,276,325,342,343,430,516,641,645,649,653],[276,325,342,343,430,482,640,641,645,646,648,656],[276,325,342,343,641,643,644,645,646,648,651,654,656,657,659],[276,325,342,343,431,524,644],[276,325,342,343,430,641],[276,325,342,343,377,430,641],[276,325,342,343,642,647,652,655],[276,325,342,343,430,441,640,641,645,646,649,652],[276,325,342,343,377,430,641,645],[276,325,342,343,430,641,645],[276,325,342,343,649,650,653,658],[276,325,342,343,430,640,641,645],[243,276,325,342,343],[276,325,342,343,377,391,430],[276,325,342,343,430,525],[276,325,342,343,377,430,523],[276,325,342,343,377,430,615,617,621,623],[276,325,342,343,377,435,458,516,603,616,617],[276,325,342,343,618,619],[276,325,342,343,377,430,435,516,530,547,548,552,617],[276,325,342,343,620],[276,325,342,343,629],[276,325,342,343,592,593,603],[276,325,342,343,593,617,622,623],[276,325,342,343,377,516,529,530,591,593,594],[276,325,342,343,591,594],[276,325,342,343,591,595,596,597,598,599,602],[276,325,342,343,600,601],[276,325,342,343,592,593],[276,325,342,343,377,430,566,593,603,615,622],[276,325,342,343,377,593,603,623],[276,325,342,343,377,615,623],[276,325,342,343,377,604],[276,325,342,343,377,593,603,604],[276,325,342,343,377,603,605,623],[276,325,342,343,377,458,516,530,603,605,623],[276,325,342,343,604,605,606,607,608,609,610,611,612,613,614,616],[276,325,342,343,377,593,603,605,623],[276,325,342,343,603,612,623],[243,276,325,342,343,377,430,526,529],[276,325,342,343,377,515],[276,325,342,343,377,383,446,447,457,515],[59,276,325,342,343,435],[270,276,325,342,343,377,392,430,435,455,523],[276,325,342,343,377,392,430,445,449,455,525],[276,325,342,343,377,430,435,523,629],[276,325,342,343,457,518],[276,325,342,343,377,430,435,451,454,516,517],[276,325,342,343,377,430,452,453,523],[244,276,325,342,343,377,430,523],[276,325,342,343,377,430,435,445,446,448,449,450,451,454,456,458],[276,325,342,343,377,390,391,392,429],[276,325,342,343,377,390,391],[243,276,325,342,343,377,428],[243,270,276,325,342,343,376]],"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":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"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":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ba01987c4b2c4b94a24c0a05bffbd75ab64d9fe8335dc63e9955d6c51a63468","impliedFormat":1},{"version":"b104e2da53231a529373174880dc0abfbc80184bb473b6bf2a9a0746bebb663d","impliedFormat":99},{"version":"3d4bb4d84af5f0b348f01c85537da1c7afabc174e48806c8b20901377c57b8e4","impliedFormat":99},{"version":"a2500b15294325d9784a342145d16ef13d9efb1c3c6cb4d89934b2c0d521b4ab","impliedFormat":99},{"version":"79d5c409e84764fabdd276976a31928576dcf9aea37be3b5a81f74943f01f3ff","impliedFormat":99},{"version":"8ea020ea63ecc981b9318fc532323e31270c911a7ade4ba74ab902fcf8281c45","impliedFormat":99},{"version":"c81e1a9b03e4de1225b33ac84aaf50a876837057828e0806d025daf919bf2d51","impliedFormat":99},{"version":"bb7264d8bd6152524f2ef5dae5c260ae60d459bf406202258bd0ce57c79e5a6d","impliedFormat":99},{"version":"fb66165c4976bc21a4fde14101e36c43d46f907489b7b6a5f2a2679108335d4a","impliedFormat":99},{"version":"628c2e0a0b61be3e44f296083e6af9b5a9b6881037dd43e7685ee473930a4404","impliedFormat":99},{"version":"4776f1e810184f538d55c5da92da77f491999054a1a1ee69a2d995ab2e8d1bc0","impliedFormat":99},{"version":"11544c4e626eab113df9432e97a371693c98c17ae4291d2ad425af5ef00e580b","impliedFormat":99},{"version":"e1847b81166d25f29213d37115253c5b82ec9ee78f19037592aa173e017636d5","impliedFormat":99},{"version":"fe0bd60f36509711c4a69c0e00c0111f5ecdc685e6c1a2ae99bd4d56c76c07fc","impliedFormat":99},{"version":"b8f3f4ee9aae88a9cec9797d166209eb2a7e4beb8a15e0fc3c8b90c9682c337d","impliedFormat":99},{"version":"ea3c4f5121fe2e86101c155ebe60b435c729027ae50025b2a4e1d12a476002ae","impliedFormat":99},{"version":"372db10bea0dbe1f8588f82b339152b11847e6a4535d57310292660c8a9acfc5","impliedFormat":99},{"version":"6f9fba6349c16eed21d139d5562295e8d5aafa5abe6e8ebcde43615a80c69ac1","impliedFormat":99},{"version":"1474533e27d0e3e45a417ea153d4612f0adbff055f244a29606a1fae6db56cda","impliedFormat":99},{"version":"c7fd8a79d0495955d55bfea34bbdb85235b0f27b417a81afc395655ef43d091d","impliedFormat":99},{"version":"987405949bfafbb1c93d976c3352fe33bfb85303a79fc5d9588b681e4af6c3b3","impliedFormat":99},{"version":"867bc1f5a168fd86d12d828dfafd77c557f13b4326588615b19e301f6856f70c","impliedFormat":99},{"version":"6114545678bb75e581982c990597ca3ba7eeef185256a14c906edfc949db2cd1","impliedFormat":99},{"version":"5c8625f8dbbd94ab6ca171d621049c810cce4fce6ec1fd1c24c331d9858dce17","impliedFormat":99},{"version":"0dc7ae20eab8097b0c7a48b5833f6329e976f88af26055cdae6337141ff2c12e","impliedFormat":99},{"version":"76b6db79c0f5b326ff98b15829505efd25d36ce436b47fe59781ac9aec0d7f1b","impliedFormat":99},{"version":"af36e5f207299ba2013f981dffacd4a04cdce2dd4bd255fff084e7257bf8b947","impliedFormat":99},{"version":"26dcf7dca456b2271d6c361b635eb8b4c8ae7d3e2a264dcc0c6dbcf70be3eb4b","impliedFormat":99},{"version":"d17d9e4920059ff855fade9b7c2c379a64fd958275e628d2be5b3ba3f3634d60","impliedFormat":99},{"version":"2e1a163ab5b5c2640d7f5a100446bbcaeda953a06439c901b2ae307f7088dc30","impliedFormat":99},{"version":"f0b3406d2bc2c262f218c42a125832e026997278a890ef3549fa49e62177ce86","impliedFormat":99},{"version":"73c83e8954617ff3e2a974e9d498ae6c031b72e60d552772f812e22a01f2a0f0","impliedFormat":99},{"version":"397dec7580d484487d7d6d53faa5dcdde5f1ae8a98f20b6665d3f44aed5fd918","impliedFormat":99},{"version":"e0f5707d91bb950edb6338e83dd31b6902b6620018f6aa5fd0f504c2b0ea61f5","impliedFormat":99},{"version":"5fc6cb5dbe45bc1bb055b0c6382b72d8b4cdb7c0ae1f540c401d890f4eb8f7b2","impliedFormat":99},{"version":"627e2ac450dcd71bdd8c1614b5d3a02b214ad92a1621ebeb2642dffb9be93715","impliedFormat":99},{"version":"813514ef625cb8fc3befeec97afddfb3b80b80ced859959339d99f3ad538d8fe","impliedFormat":99},{"version":"624f8a7a76f26b9b0af9524e6b7fa50f492655ab7489c3f5f0ddd2de5461b0c3","impliedFormat":99},{"version":"d6b6fa535b18062680e96b2f9336e301312a2f7bdaeb47c4a5b3114c3de0c08b","impliedFormat":99},{"version":"818e8f95d3851073e92bcad7815367dd8337863aaf50d79e703ac479cca0b6a4","impliedFormat":99},{"version":"29b716ff24d0db64060c9a90287f9de2863adf0ef1efef71dbaba33ebc20b390","impliedFormat":99},{"version":"2530c36527a988debd39fed6504d8c51a3e0f356aaf2d270edd492f4223bdeff","impliedFormat":99},{"version":"2553cfd0ec0164f3ea228c5badd1ba78607d034fc2dec96c781026a28095204b","impliedFormat":99},{"version":"6e943693dbc91aa2c6c520e7814316469c8482d5d93df51178d8ded531bb29ee","impliedFormat":99},{"version":"e74e1249b69d9f49a6d9bfa5305f2a9f501e18de6ab0829ab342abf6d55d958b","impliedFormat":99},{"version":"16f60d6924a9e0b4b9961e42b5e586b28ffd57cdfa236ae4408f7bed9855a816","impliedFormat":99},{"version":"493c2d42f1b6cfe3b13358ff3085b90fa9a65d4858ea4d02d43772c0795006ec","impliedFormat":99},{"version":"3702c7cbcd937d7b96e5376fe562fd77b4598fe93c7595ee696ebbfefddac70f","impliedFormat":99},{"version":"848621f6b65b3963f86c51c8b533aea13eadb045da52515e6e1407dea19b8457","impliedFormat":99},{"version":"c15b679c261ce17551e17a40a42934aeba007580357f1a286c79e8e091ee3a76","impliedFormat":99},{"version":"156108cedad653a6277b1cb292b18017195881f5fe837fb7f9678642da8fa8f2","impliedFormat":99},{"version":"0a0bb42c33e9faf63e0b49a429e60533ab392f4f02528732ecbd62cfc2d54c10","impliedFormat":99},{"version":"70fa95cd7cb511e55c9262246de1f35f3966c50e8795a147a93c538db824cdc8","impliedFormat":99},{"version":"bc28d8cec56b5f91c8a2ec131444744b13f63c53ce670cb31d4dffdfc246ba34","impliedFormat":99},{"version":"7bd87c0667376e7d6325ada642ec29bf28e940cb146d21d270cac46b127e5313","impliedFormat":99},{"version":"0318969deede7190dd3567433a24133f709874c5414713aac8b706a5cb0fe347","impliedFormat":99},{"version":"8e291b3a51b9f91f25cfafb3e8afdaf3b844d6930baa1a8264815c1d924ac135","impliedFormat":99},{"version":"34fae51dacc530b30d0a5239a1b0c1fd0adb9801e66dda9ad451c5523e009221","impliedFormat":99},{"version":"bb2bffc0b8ff50c3e71da5e937ff8a0cb3c4ba7e0e74211e5a384f2e20e17284","impliedFormat":99},{"version":"75662b13c8ab4f12814c0c8edaf068f2c53bcac8bdb340ed2d7a6fb2bab207ae","impliedFormat":99},{"version":"e125fdbea060b339306c30c33597b3c677e00c9e78cd4bf9a15b3fb9474ebb5d","impliedFormat":99},{"version":"ee141f547382d979d56c3b059fc12b01a88b7700d96f085e74268bc79f48c40a","impliedFormat":99},{"version":"1d64132735556e2a1823044b321c929ad4ede45b81f3e04e0e23cf76f4cbf638","impliedFormat":99},{"version":"8b4a3550a3cac035fe928701bc046f5fac76cca32c7851376424b37312f4b4ca","impliedFormat":99},{"version":"5fd7f9b36f48d6308feba95d98817496274be1939a9faa5cd9ed0f8adf3adf3a","impliedFormat":99},{"version":"15a8f79b1557978d752c0be488ee5a70daa389638d79570507a3d4cfc620d49d","impliedFormat":99},{"version":"d4c14ea7d76619ef4244e2c220c2caeec78d10f28e1490eeac89df7d2556b79f","impliedFormat":99},{"version":"8096207a00346207d9baf7bc8f436ef45a20818bf306236a4061d6ccc45b0372","impliedFormat":99},{"version":"040f2531989793c4846be366c100455789834ba420dfd6f36464fe73b68e35b6","impliedFormat":99},{"version":"c5c7020a1d11b7129eb8ddffb7087f59c83161a3792b3560dcd43e7528780ab0","impliedFormat":99},{"version":"d1f97ea020060753089059e9b6de1ab05be4cb73649b595c475e2ec197cbce0f","impliedFormat":99},{"version":"b5ddca6fd676daf45113412aa2b8242b8ee2588e99d68c231ab7cd3d88b392fa","impliedFormat":99},{"version":"6ce0450eba616d21a4c31b31dedaefea33791fbaa2a2d25666de6eb2e6771ce4","impliedFormat":99},{"version":"f851083fc20ecc00ff8aaf91ba9584e924385768940654518705423822de09e8","impliedFormat":99},{"version":"0c1eed961c15e1242389b0497628709f59d7afd50d5a1955daa10b5bd3b68fc2","impliedFormat":99},{"version":"5e07a9f7f130e5404c202bf7b0625a624c9d266b980576f5d62608ef21d96eab","impliedFormat":99},{"version":"ef0dbe208370d16832d01a59c1d552ccd3e953550c84d5cb0751e7660b63a2af","impliedFormat":99},{"version":"a8a9459dd76ef5eeef768da4ce466c5539d73b26334131bd1dd6cbd74ce48fa2","impliedFormat":99},{"version":"b69190f5964deecfb13ddc03ae35cc563ac21ddc27f3fbdbcfdb590422a7c05c","impliedFormat":99},{"version":"3d6d570b5f36cf08d9ad8d93db7ddc90fa7ccc0c177de2e9948bb23cde805d32","impliedFormat":99},{"version":"786f3f186af874ea3e34c2aeef56a0beab90926350f3375781c0a3aa844cd76e","impliedFormat":99},{"version":"63dbc8fa1dcbfb8af6c48f004a1d31988f42af171596c5cca57e4c9d5000d291","impliedFormat":99},{"version":"e7d5132674ddcd01673b0517eebc44c17f478126284c3eabd0a552514cb992bb","impliedFormat":99},{"version":"a820710a917f66fa88a27564465a033c393e1322a61eb581d1f20e0680b498f1","impliedFormat":99},{"version":"6e4d416bf7d72dabe2766e51c8e3d5d156c29b64aa61733aee602e4631919b82","impliedFormat":99},{"version":"6c052f137bab4ba9ed6fd76f88a8d00484df9d5cb921614bb4abe60f51970447","impliedFormat":99},{"version":"f304ff52a11d8e94ad42e613a6be843f9f100b349b9bd887e95116893252a99c","impliedFormat":99},{"version":"7d5c2df0c3706f45b77970232aa3a38952561311ccc8fcb7591e1b7a469ad761","impliedFormat":99},{"version":"2c41502b030205006ea3849c83063c4327342fbf925d8ed93b18309428fdd832","impliedFormat":99},{"version":"d12eecede214f8807a719178d7d7e2fc32f227d4705d123c3f45d8a3b5765f38","impliedFormat":99},{"version":"800c2935a9e506ac8cd75bfa709e3b4ecfb0f266aae342b02cf74176471cac5a","impliedFormat":99},{"version":"825674da70d892b7e32c53f844c5dfce5b15ea67ceda4768f752eed2f02d8077","impliedFormat":99},{"version":"2c676d27ef1afbc8f8e514bb46f38550adf177ae9b0102951111116fa7ea2e10","impliedFormat":99},{"version":"a6072f5111ea2058cb4d592a4ee241f88b198498340d9ad036499184f7798ae2","impliedFormat":99},{"version":"7b149b38e54fe0149fe500c5d5a049654ce17b1705f6a1f72dd50d84c6a678b9","impliedFormat":99},{"version":"3eb76327823b6288eb4ed4648ebf4e75cf47c6fbc466ed920706b801399f7dc3","impliedFormat":99},{"version":"c6a219d0d39552594a4cc75970768004f99684f28890fc36a42b853af04997b7","impliedFormat":99},{"version":"2110d74b178b022ca8c5ae8dcc46e759c34cf3b7e61cb2f8891fd8d24cb614ef","impliedFormat":99},{"version":"ab87c99f96d9b1bf93684b114b27191944fef9a164476f2c6c052b93eaac0a4f","impliedFormat":99},{"version":"13e48eaca1087e1268f172607ae2f39c72c831a482cab597076c6073c97a15e7","impliedFormat":99},{"version":"38f5e025404a3108f5bb41e52cead694a86d16ad0005e0ef7718a2a31e959d1e","impliedFormat":99},{"version":"8db133d270ebb1ba3fa8e2c4ab48df2cc79cb03a705d47ca9f959b0756113d3d","impliedFormat":99},{"version":"19597dbe4500c782a4252755510be8324451847354cd8e204079ae81ab8d0ef6","impliedFormat":99},{"version":"f7d487e5f0104f0737951510ea361bc919f5b5f3ebc51807f81ce54934a3556f","impliedFormat":99},{"version":"efa8c5897e0239017e5b53e3f465d106b00d01ee94c9ead378a33284a2998356","impliedFormat":99},{"version":"fe3c53940b26832930246d4c39d6e507c26a86027817882702cf03bff314fa1d","impliedFormat":99},{"version":"53ee33b91d4dc2787eccebdbd396291e063db1405514bb3ab446e1ca3fd81a90","impliedFormat":99},{"version":"c4a97da118b4e6dde7c1daa93c4da17f0c4eedece638fc6dcc84f4eb1d370808","impliedFormat":99},{"version":"71666363fbdb0946bfc38a8056c6010060d1a526c0584145a9560151c6962b4f","impliedFormat":99},{"version":"24b8a04a4bb67fbec6b29e9366dc3e4d6fb6ec52c671e50defb15983d99a1cdb","impliedFormat":99},{"version":"cc2eb5b23140bbceadf000ef2b71d27ac011d1c325b0fc5ecd42a3221db5fb2e","impliedFormat":99},{"version":"d04f5f3e90755ed40b25ed4c6095b6ad13fc9ce98b34a69c8da5ed38e2dbab5a","impliedFormat":99},{"version":"2cf9bf6c1d711fb892149f0b8282228ba3c6953a02c6e8d49d850fd40324753f","impliedFormat":99},{"version":"02b0784f4a0c19b2cc8bd63e60809ba073006407587cd304cb73e81af2d598b5","impliedFormat":99},{"version":"852ada6c746fdf599f1540afa26723241208fce45cc05c25a2700f705e3a895d","impliedFormat":99},{"version":"347f6fe4308288802eb123596ad9caf06755e80cfc7f79bbe56f4141a8ee4c50","impliedFormat":99},{"version":"5f5baa59149d3d6d6cef2c09d46bb4d19beb10d6bee8c05b7850c33535b3c438","impliedFormat":99},{"version":"a8f0c99380c9e91a73ecfc0a8582fbdefde3a1351e748079dc8c0439ea97b6db","impliedFormat":99},{"version":"be02e3c3cb4e187fd252e7ae12f6383f274e82288c8772bb0daf1a4e4af571ad","impliedFormat":99},{"version":"82ca40fb541799273571b011cd9de6ee9b577ef68acc8408135504ae69365b74","impliedFormat":99},{"version":"e671e3fc9b6b2290338352606f6c92e6ecf1a56459c3f885a11080301ca7f8de","impliedFormat":99},{"version":"10a31044deae10829e7646d91c4090bd2f000c4ef7a97d0a6f6a9e62af4bac3d","impliedFormat":99},{"version":"4e6672fb142798b69bcb8d6cd5cc2ec9628dbea9744840ee3599b3dcd7b74b09","impliedFormat":99},{"version":"7866bd684d1fa255c4ea5228bf851b713f0388e22d272d9d2696364e4914bdf4","impliedFormat":99},{"version":"54d69bcee473dda09e603dbf4dfe78bbde373b0ca34c271340b34c4ae4638bf1","impliedFormat":99},{"version":"cb63d73be28de13c5478189ac8cd8dcfc243843545e28e030c861d2ad669d4af","impliedFormat":99},{"version":"ee4cf97e8bad27c9e13a17a9f9cbd86b32e9fbc969a5c3f479dafb219209848c","impliedFormat":99},{"version":"3a4e35b6e99ed398e77583ffc17f8774cb4253f8796c0e04ce07c26636fed4a9","impliedFormat":99},{"version":"04453db2eb9c577d0d7c46a7cd8c3dd52ca8d9bc1220069de2a564c07cdeb8c4","impliedFormat":99},{"version":"5559ab4aa1ba9fac7225398231a179d63a4c4dccd982a17f09404b536980dae8","impliedFormat":99},{"version":"2d7b9e1626f44684252d826a8b35770b77ce7c322734a5d3236b629a301efdcf","impliedFormat":99},{"version":"5b8dafbb90924201f655931d429a4eceb055f11c836a6e9cbc7c3aecf735912d","impliedFormat":99},{"version":"bdfcf610caf414eefb3977783f58b7ba67c3dcca358af390f2b309752a5cb579","impliedFormat":99},{"version":"7a9477ba5fc17786ee74340780083f39f437904229a0cd57fc9a468fd6567eb8","impliedFormat":99},{"version":"4bcc6a2aaff30d16ea05d82f4750445f4f0d5433ad7e131eafa62b0a0be92910","impliedFormat":99},{"version":"a9a41f10f77fd663529bb4a7853b7cbfc27976a4562176abb12422e7d847347e","impliedFormat":99},{"version":"3da1dd252145e279f23d85294399ed2120bf8124ed574d34354a0a313c8554b6","impliedFormat":99},{"version":"e5c4080de46b1a486e25a54ddbb6b859312359f9967a7dc3c9d5cf4676378201","impliedFormat":99},{"version":"cfe1cdf673d2db391fd1a1f123e0e69c7ca06c31d9ac8b35460130c5817c8d29","impliedFormat":99},{"version":"b9701f688042f44529f99fd312c49fea853e66538c19cfcbb9ef024fdb5470cc","impliedFormat":99},{"version":"6daa62c5836cc12561d12220d385a4a243a4a5a89afd6f2e48009a8dd8f0ad83","impliedFormat":99},{"version":"f43545da7ed38322e627cf43fa9075a8779074d1dca00aaedede5292449c6efa","impliedFormat":99},{"version":"bd8310114a3a5283faac25bfbfc0d75b685a3a3e0d827ee35d166286bdd4f82e","impliedFormat":99},{"version":"5a9682c17046b1171691709fee524f2d02aa571b6fc8a4fecf29c0302c4a8098","impliedFormat":99},{"version":"1bf03857edaebf4beba27459edf97f9407467dc5c30195425cb8a5d5a573ea52","impliedFormat":99},{"version":"f6b4833d66c12c9106a3299e520ed46f9a4c443cefc22c993315c4bb97a28db1","impliedFormat":99},{"version":"746c02f8b99bd90c4d135badaab575c6cfce0d030528cf90190c8914b0934ea3","impliedFormat":99},{"version":"a858ba8df5e703977dee467b10af084398919e99c9e42559180e75953a1f6ef6","impliedFormat":99},{"version":"d2dcd6105c195d0409abd475b41363789c63ae633282f04465e291a68a151685","impliedFormat":99},{"version":"0b569ed836f0431c2efaef9b6017e8b700a7fed319866d7667f1189957275045","impliedFormat":99},{"version":"18acf29aac3212f2c6cb7d457816b249669af2e4be892c3b5a41fcbf0ff27bf8","impliedFormat":99},{"version":"0c72189b6ec67331476a36ec70a2b8ce6468dc4db5d3eb52deb9fefbd6981ebb","impliedFormat":99},{"version":"131ecac1c7c961041df80a1dc353223af4e658d56ba1516317f79bd5400cffeb","impliedFormat":99},{"version":"f3a55347fb874828e442c2916716d56552ac3478204c29c0d47e698c00eb5d28","impliedFormat":99},{"version":"49ebbdfe7427d784ccdc8325bdecc8dda1719a7881086f14751879b4f8d70c21","impliedFormat":99},{"version":"c1692845412646f17177eb62feb9588c8b5d5013602383f02ae9d38f3915020c","impliedFormat":99},{"version":"b1b440e6c973d920935591a3d360d79090b8cf58947c0230259225b02cf98a83","impliedFormat":99},{"version":"defc2ae12099f46649d12aa4872ce23ba43fba275920c00c398487eaf091bbae","impliedFormat":99},{"version":"620390fbef44884902e4911e7473531e9be4db37eeef2da52a34449d456b4617","impliedFormat":99},{"version":"f14c7a1f9afd2100be898a9304cb08c762a9b6967de955485337bade61bab0f3","impliedFormat":99},{"version":"936592c62e3bde69b0178055acac114317492e6cf09065ee263f63f8bbd991f6","impliedFormat":99},{"version":"a31274d144b06b02c3af0bf127435c9786b14baf58163b8340ac4593a6512178","impliedFormat":99},{"version":"b2a4d01fcf005530c3f8689ac0197e5fd6b75eb031e73ca39e5a27d41793a5d8","impliedFormat":99},{"version":"532def9a5e8ef761667bbb3214461d7c1f8293bcc9d0a801931f68d4022664bb","impliedFormat":99},{"version":"86388eda63dcb65b4982786eec9f80c3ef21ca9fb2808ff58634e712f1f39a27","impliedFormat":99},{"version":"b748430ab5b9463a6c9cc4f048d16ba75842614c8b12a489d9215debb1aca0c1","impliedFormat":99},{"version":"6e3a1b1b1e7e7b09009e03e5f0bb32be4dd604797ceb20c9359914640d4e31f7","impliedFormat":99},{"version":"de9466be4b561ad0079ac95ca7445c99fdf45ef115a93af8e2e933194b3cdf4c","impliedFormat":99},{"version":"724f25bdd75c26d042b8c99ff950cd5a128c3de45b39b2f306e4ccada6728f96","impliedFormat":99},{"version":"b701f86abe4798ea0003844eb4b5017695e97f7e6b454db3d9126c2f13e4afa7","impliedFormat":99},{"version":"eba7dd0f51a2db9dfb65563f519330ec477afc1206c57f6cdd676209400974b8","impliedFormat":99},{"version":"fd3774aa27a30b17935ad360d34570820b26ec70fa5fcfd44c7e884247354d37","impliedFormat":99},{"version":"1693ca12f87fabba369a19610f945584d1ebbfd513002160a5b138b01932b076","impliedFormat":99},{"version":"7cbb131eb877e61cf3f0600facf4ae8491fa6446a33fda1f189ffddfa4874a89","impliedFormat":99},{"version":"9ee245e7c6aa2d81ee0d7f30ff6897334842c469b0e20da24b3cddc6f635cc06","impliedFormat":99},{"version":"a600a79f6a2e610ae7254ed8ef46b7d3bd35755a11e2eecdf9458eefcb517729","impliedFormat":99},{"version":"dfc67e73325643e92f71f94276b5fb3be09c59a1eeee022e76c61ae99f3eda4b","impliedFormat":99},{"version":"3b63f3b0b472eaf372e27840721bbbf90491be2577009893edd3c54b544fe2df","impliedFormat":99},{"version":"ee551dc83df0963c1ee03dc32ce36d83b3db9793f50b1686dc57ec2bbffc98af","impliedFormat":99},{"version":"8d7ecedec77e345c25160b4e59c394ad5d46105e8bff9a7fab181be32930dfae","impliedFormat":99},{"version":"1caa4bbb9452020a2129483ce9ba6489869eba85d364125513e7cc82812bd077","impliedFormat":99},{"version":"bb5a90d4d7f900ec6e1db945ebf57586c190a6eb22bd8dd2abfc5076b75663ec","impliedFormat":99},{"version":"99227681df5400ed3c738dbd1114fa24c1ab6e81408dc9eaa2516566012a7778","impliedFormat":99},{"version":"ed88c51aa3b33bb2b6a8f2434c34f125946ba7b91ed36973169813fdad57f1ec","impliedFormat":99},{"version":"8e84fa471e62bbdd1e2bead05d8857f0871fed3f5584a10049ae5ca337899275","impliedFormat":99},{"version":"e57a9a33cc8cd49e932481d73d6797b8fbefa6211e007616ee959b1a68d8a96f","impliedFormat":99},{"version":"6e4193a32dcfdc40d9f1bcf79a0691319bf065af9d5050e516d4523b1d9d083e","impliedFormat":99},{"version":"40166c5a74c5420962d2f223211c3b99be001a5b60a23828d1c9eb7a768a877f","impliedFormat":1},{"version":"d15e79ee385d785d141013cba4f855959aeadcbaad9047fba85bf30911c84891","impliedFormat":1},{"version":"c2cb3c322fe725ee2999aaeafc9143bff53b99448238b83255930083d2eb73ab","impliedFormat":1},{"version":"11e5ff5c50c1aeccf788e9423b7b7963bb754bee8fc605fc43bdd77b16011570","impliedFormat":99},{"version":"8fe43dbb9344739106da68e69e2af9b9ef8e24c3aa2f5d448a9a3a24cc5479c8","impliedFormat":99},{"version":"d9b5d0f70678f81433c0d34a8d32eea2b4ee98b84a28b00633c44ac04884eb14","impliedFormat":99},{"version":"ad546cf39db619bd26e2ca4c5cb83445f2d70779a2381605a9a70e26c199b835","impliedFormat":99},{"version":"69e7da46c48ab0e0872fed0da83c7e9d3ab478112013d1d1f2eec104c97f098a","impliedFormat":99},{"version":"9b8a8d3a5771c7f72173535ea34f86bd53685aaff61223be970ced726424bed2","impliedFormat":99},{"version":"4de10d2664126f6817923e6fdf963fb749416d038e31fb0dabaac0a652eeeb3b","impliedFormat":99},{"version":"13c4802eb5a24b28426512d123f756a4ee9b4cb80197981773eb440aae76ca1e","impliedFormat":99},{"version":"b0bf8f866d3c05dce6c2778455252391bbc3fa0e8c1675e78dcee8fab2e1dd96","impliedFormat":99},{"version":"675058f412cecd4e2c028e1a74aa34d5510ab03ed78dae712437890bb0aba6ba","impliedFormat":99},{"version":"ec70e1b3869e7564a3359bbe035dc054241d54b175a26190c8aed904de6077ed","impliedFormat":99},{"version":"e23f1372618b617ea5afb373562a4924d03b927da5e7c17940baf191ab0d7bfc","impliedFormat":99},{"version":"70885240802a17c2e90a08ce45a996e9bf4c99aa44cc25a099f5fd90f9aede78","impliedFormat":99},{"version":"efab8d889b532dd05f5dba3e74822a1b88cb5c32f4f95fdace0912d97aa9c29f","impliedFormat":99},{"version":"9edf4694bbf7e12184dca29f255b40d0b5d99a955eb9cdf206efb0039a5049fe","impliedFormat":99},{"version":"159c637197f504c4306fa2e1a68dd355a9744af13b55aa9264e37ee226d834b4","impliedFormat":99},{"version":"a318679d1d191ee5ba778c5a635271719888d2059eb6f51542fb96c203b3a634","impliedFormat":99},{"version":"be1a89e9d3f853c563fb8ea9629bd4d8458706ffbf84f40a91eae20568d5076e","impliedFormat":99},{"version":"0ca5f6bd52963e4349a6d1cdd6460a88b47d1733d7ddd0f267fabdbaa7716be5","impliedFormat":99},{"version":"9d1ed7b5e2dbe8b426a63e55ad5c187b2baa7510916659bed78ecb6357aa8fcb","impliedFormat":99},{"version":"143c9af88d55a1439123ac527ee6f6b3db5c626cc33b78496fe80c0e2eb957cb","impliedFormat":99},{"version":"cba0dcd3bfe577fed6d8e6b76ae4e1ae35c14e5d18cd9c80d4a0cd291199d46e","impliedFormat":99},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b039f55681caaf111d5eb84d292b9bee9e0131d0db1ad0871eef0964f533c73","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"9a66f750cbfbd9f193e631e433b17b8d9226991537ba66587185c13cd6534e0f","impliedFormat":1},"0256284af78dc7cf1d4ceb0b5f4e9c38bc418a3c69cc94027b23dfff8065e614",{"version":"ae68d76e553c81f0eb85ccafb39da644601d7d0b793d83c881244e0aa1556084","signature":"7ed8119e7d9bb2f7296262d17698a049de8964cb77a2bd97fe8d15f4d531321e"},{"version":"0384bb7235002c095b5faff29fafcef772586b3bf066d12a77cb185667a090a5","signature":"d4eaaf7971fc0618c8f73a9d0e3629593736941b1c5c46448102398033be8a15"},{"version":"b7b4da95464f11da1b8de59ed34f6deb740d14fcdd54065fdbbe850741ae958c","impliedFormat":1},{"version":"64d7747acb1d36374e9c884773b6dbede826dd9684cecad3c7fb4ce7960f90d7","impliedFormat":1},{"version":"47e62f697f75c990750842294e175977588557f15a9731625e7e3c882b4b1d24","impliedFormat":1},{"version":"2caa214e359b6db8a7ff2cd1a3e5ae868c611a63957b958fa597ae89ac5268ac","impliedFormat":1},{"version":"160b61b29305452d9b088b9cc26ed996ce91653a49d3149c869e05e9b3e95e11","signature":"1c70df2f6ffd2618862b7e2d6ba78a1b59186f4438d5060146997a2d77411d43"},{"version":"7d661acb82df44d7747d29394c9a9585e3e25a0bafcac860444c644836aa039a","signature":"a1cb7281d94276935a7268d205f1af794308d9e2c6b9d84b3dfaf987767ce7bf"},"0ef4e365950ae858f9542651e6a4035c940913e7a05cc5e5fa0fd776f151d2c2",{"version":"6f309bc40943908669248942af4981959169ce30c32ae84ae37189c9efd9db94","signature":"5ea08bfbd20d9fca260d9bb039f1cbea5bf2706ad6ecf94844c5c950223eb08a"},{"version":"9491ddcd98da49f018b0f60b4b5e6b37a49a0d30fc529df0d1c090a5864db13b","signature":"121536f25ea4921322ccc2309ec74018b1b5aa7335849899a5f309474dadad39"},{"version":"84c0b7a292e44adae05450de6fd69fd977e74f207399b50ac1291ed9aa2bed5f","signature":"eb84d4410df5517490f1a628c7b7b4dc1f12efa5a6b4c267e05c185fee649a8a"},{"version":"d6fb8882fcba8e467142b628c186c93e9467ce5f139f0f55cdb772314c77438a","signature":"35ca149b1d3a5a3267c7187e18f056944ef26f8e40df7525b034207bce961099"},{"version":"94a2ee8b356fefdac466abff385a7790ed84bcb53e4260a9d0b6c6336d04f0a9","signature":"7ba0bf9b8b48e62963898f4fdcc074d332398ca159f17e47386275ec770c0d86"},{"version":"19372070748ddbcab1de0ef8dfb965f3658de6bc315d1c7d2d3cdd1eaa1d1688","signature":"759a6274e162529436b4ede7851eb3da5e9727ceac6803be4cd1330c7dad26b5"},{"version":"3abb68c053c1596a899c6bd26563f01342dcd17cc6ec5421ceecf725d3f34dd5","impliedFormat":99},{"version":"b0f187b918df3f67a86cd7283306871359b726b253e94d47682d73077b3e8f69","impliedFormat":99},{"version":"1d43afc4b1e50d5ba3e1453e115171ebd86f86337b36c7f3d9496787dc7e0e26","impliedFormat":99},{"version":"416709bcfe567baf0e0a1b507cf2a517a7f3365705f1d5f8b69306033680c2ba","impliedFormat":99},{"version":"917a4c642d50a390b3a73b3395deda4f10ef4932222950f583e3ac1f3fe11d1b","impliedFormat":99},{"version":"e90bc5f533bf1a6cd9935bc8986f047fd57515779e95f73b762790e7e9404430","impliedFormat":99},{"version":"9a2e658d89e7a71a997653260784aa334eae0e5579291717058bbd5eb760b3f9","impliedFormat":99},{"version":"a6d7eab38d0e354c9a80bd93c658d83d6ade0f81d5bbed7c1f270b8dc47ad371","impliedFormat":99},{"version":"78a72d85b663fb862736b1bc64c71d0e007d73862ee941719cb9c5f623c800f1","impliedFormat":99},{"version":"cf6f48a64e3d17435e67df7d33a53fcff8a074fec634563e1dc7f366d3fea8b2","impliedFormat":99},{"version":"f7dd0da7832ae4eb5d9c5962fa43b1b9fa10c0995175edd0034f10238b7e8955","impliedFormat":99},{"version":"f964ba426f140b14ac24ec00e1495063e69b9456fbbb04840d675b5ae22ddbfe","impliedFormat":99},{"version":"9c4be29ca2d83213c30d996a91b5c5fba948d72d33f9b8906a215a58ad5a0348","impliedFormat":99},{"version":"c624c1220940647f6c25534db43a5935a0cdb9386e138cdfd423f10b767645e9","impliedFormat":99},{"version":"8441ccd97550a455fc6e41a3a606199571cc2dbbaf025deb5e508f18e6ddb5ae","impliedFormat":99},{"version":"9315043cf0e2f3277da2cd59617807d8450157d89cc9d28887d0c2d468e8376c","impliedFormat":99},{"version":"2dcb32e711943e4afde264914cd067df2d781a9b84dc60fd58d5280fd60aa867","impliedFormat":99},{"version":"4c03c55cabc4c43a06a1dd0d10d67672901cd1bb9c0b9067c8a3537a5ccbf336","impliedFormat":99},{"version":"77e7477a7b7a0b2d4b3e7204bc85bcadc6946e8897a7c4ef4e67ecdfa027a2b3","impliedFormat":99},{"version":"ca1addd76615d0b3fe86448dd08a60f932cc471abd3eec814d0b5b014f353a6a","impliedFormat":99},{"version":"69756ee70a81a5bf682edad813ae4f6bfbe0f0f832cfaf1aed921f9892af0e50","impliedFormat":99},{"version":"e77505c8ddb21d6092fe0861c437dafdd9609a63cefa555de1ec98788d9f4a21","impliedFormat":99},{"version":"115a2218f646b60542fc18c6a250b0ae7656e6bbcb32380550020f886fb941fc","impliedFormat":99},{"version":"6233ba2f2c60d7f380d27aee2e63b23f90abbde000186b45e8fb53938d4f9824","impliedFormat":99},{"version":"c39be24e0cf86757c682e49176ede0b266ce43a32134069704439dfffb5b6484","impliedFormat":99},{"version":"a230af6a9c503edba1693fae5fac4a09dcd0a1a22da2707cca4438981a11e3e6","impliedFormat":99},{"version":"73fa9299fb9f9b37837253b605c40fd278b9adf43efaab17fbbd9a2bff901e07","impliedFormat":99},{"version":"e93caca179061a5b59628efe8ca884c80bad205c149c58821dad67a20a05161b","impliedFormat":99},{"version":"5ce9e1ffea9992f32a293f6fe499a7b3c57b1eda2e3fb7224798fd21e305fba3","impliedFormat":99},{"version":"60da08ef3131e3d0e3eea472645d3b9f2788526358c6782ea6c783b037a063be","impliedFormat":99},{"version":"bcba4f1e7ad4b8a74e4966298f0c40fcc1e4ccb1a69bf7452794d4a18a1f8bd8","impliedFormat":99},{"version":"bce69accd396be42656c1fc903cbb39ea2ae10e1f0b8bb5291358544a7ff84db","impliedFormat":99},{"version":"b3fffc657872e52ae36fd56237f432053b6512b6a2208cc8252facca4bdccd29","impliedFormat":99},{"version":"2aace3034f8b1df62cb9d2040450712ed1bc683f3e9d9d49a9abaa607cdc098f","impliedFormat":99},{"version":"c59780316c266f105e7b78bd2b01a78cdb566aaff8ccdc340eed1b8078081e86","impliedFormat":99},{"version":"b6914c04313dda87c1cbf41b02661b8f585203d9185a50f73226e736876e4084","impliedFormat":99},{"version":"a9693db3ccfe65e61fde6024124705025b62cd544af685d665ae6229db2d5d5f","signature":"0520608de0aa64273acbdb325d107810fbd08704b9cde45643f8abb0df78ddec"},{"version":"4af8baff7befdd362dcd98e44142a0e911c02a858c0e850bbdd8cd29af444a45","signature":"807a6a86f4e384ce1daacb736f845a9da1c129198172995d37ebec693881f053"},{"version":"14231496d2c39dd300bf88b29b9d0ad43574104f9280e0111d9b095dca6a25bf","signature":"0d76bc2d181133461aaf37538aea3acb133fc561eb7790d812d47efb6cdc2b03"},{"version":"82a98c126f8be0f6f5e86dc75da5d9e444d9e861a3f5ae75d038429662dfd98d","signature":"1e8ce41d308b90a5d796fccb4ae77f6a09005cd7ddd2657189a3a6af1d040133"},{"version":"4a3605bef1a5ef29fd5a1696dd95b0b4e2259e2d07a4d88fac79f3a9765c44a2","impliedFormat":99},{"version":"6544dab49004fecb69a4ef775e9ad2773a6148b1f9bfd9b75508e3afa11f5d35","impliedFormat":99},{"version":"7783c20210ca970f8d127d92a1c27f05e3982268445188ab5861e2d0ee2d23f3","impliedFormat":99},{"version":"298f9a8ebe2199acd4b478ecfa51ade52fbae0aac9d2d372b574522fbb827927","signature":"e89859267c94717043eb74d866203cb9d8a6d2e787aacd22647f22229560a2f3"},{"version":"53a2b47ef7ddf21876b5f4c04a766bbc7f2dc5bf886a82f34c5547630fca0da7","signature":"f00cbe005d0c5636ad105fd4a34aabf2cec27e9f4c21b76595653ab63bb7ca61"},{"version":"8c10c479a8772cf2f71ae9dc0794c5aae016f007d630cd0cf8efe99f944a6f78","signature":"a1efcbe762e3236ef470f09c686400940341051556402c369ba3545a19b13b4f"},{"version":"12cb177649471abbbf0f499704bc522122da5472c0a41e3684dea27215e0f1a3","signature":"5ec2ce6049ab5e59cd3d95ca206a457e00ec5d84a1ba09bcd10855eb37693701"},{"version":"8e078cc4e440c5c666720c92762197e20279ec1c26154d7c17d10200d1e28afd","signature":"85a2dd29311e420830d34c96437288642c11bbb08c6eb8d1f7bcd9f0a626abde"},{"version":"ba186b8ffc10a31a55daa008db9f427e5b920d235300fc156b273fe87027ef1f","signature":"90a505c28239e2c738c6a72ec995353724160afdc988cdcf8b567c8bbcc00f0c"},{"version":"5ac6092150967cc2db6eb53d723508b900cfe8e04b4055e7e58272f96078d580","signature":"901b917003f78c7ffdb09b514e866076a239bec1abd46be362c4a73f385cdb82"},{"version":"269d66bc7b13b7f947ace738764125933287d1185beb62c16c5152ef2ced3917","signature":"de37c9c56eb51e3c332b40f70a16d8c75656d266764165e57e2e509ba9fe52cb"},"301fd966e2e4895a026bf9a77a63e29861457744ad34afcacea41f6acb57a69e",{"version":"c6307d5fa3d3980db316649a245edd16d151a9ad43f43344e4f6bc3b0250d1f9","impliedFormat":99},{"version":"5cb2ea228bc37d3f7bd3f2fc11646d054b072fd98002bcd00bb226382f9b2769","impliedFormat":99},{"version":"4048775d060f1a74680cb5d8fe6bc1583991528213d06ad1f825f2665a7eb545","impliedFormat":99},{"version":"51bd18d47ab67727e72711355e713fa1d1e7d2cb79dd550af7b70308e8b57391","affectsGlobalScope":true,"impliedFormat":1},{"version":"439a70fcf48159246be55bf8cb7f04ad7374e76e84d51358d6f2579cec34ae16","impliedFormat":99},{"version":"b9efc03a069d3ea67f71a697820f2afbe6f127c0abd0d975c4449f9a0ece483a","impliedFormat":99},{"version":"1eda3d07c41114220864b0ac63ebd0c2458e46d70eebd3a12f6d5664917f990e","signature":"7e029d4175ae532fa2a61d68d1df0d6b2a8abbb08b690df45a4b734d48f48ec6"},{"version":"31778bd23d5e0f4172fa75dc794e3acac83535f4dba72c59ae1f6ac9c083db90","impliedFormat":99},{"version":"3f2876a2e90f4f07ffbd72c4b76da11ec69c6c7368ab09c647969d2d17ac8059","signature":"de54373968d718fb8587b309763c25ce7b0a47e565fb70fd0a9e4087be11ae97"},{"version":"9d5781d9c9edefc1dcc5cb7cf1514b6255c20dc12aec1add5b486c15de0147ef","signature":"621a2be62e01c98f05f15e840a5f41aa103f877862f3d797329866a3a126ca21"},{"version":"1ccbfe0954eabfa2acc127ddd8ef622619ba0fe3354fbe0f4f5f77a5679be0bb","signature":"af9248b6c17e68c591a58278e83782cf93bec8ffb17e2064d7b7bd6ae73a211a"},{"version":"759481a808ba56f97003df756816069a8f71897b1ab2f854d5a1cb6fde7893db","signature":"539cc46a173ce225b54d749c7dbbb621b3da223a4a50c28de6f64bcd869ee805"},{"version":"4a9d8b87e3149fc2b119c6ac55853c0e12aba33992c6d5ac61854c513205adcb","signature":"e70dcdfca88e64e9eee64bda040c9aa90fa3dc22a7c2eb6190eddf247a78ca7b"},{"version":"cdfe30d42bfe5a5f3e8c960e633c6227c0a813cf688086e1becb41ff4fc22793","signature":"571f22b6f3f40bc97d35bc88efc68550cbf71171936adf4be57c9ef3d002bfad"},{"version":"b58d5129510bcd77fba53d9d6cd8ecaea5edae9d73dc8a703952de1114f9fe3b","signature":"2118c5a81ded461a4f8cc554c1f558358dcbaaaa127e3424d91ab7a7fc43c77c"},{"version":"9133e9d2cf3de1a0bf8a3b3bbcfb71b1386167d7cf6d5b52e12d77f6f12db819","signature":"bc174c29a1e558702e4df1b7aebbc880f2aa9701268fb7291f010433b4dc1395"},{"version":"133ef2c50f291b7a1afc9d1f8f5b10a4737027d5666b1ffb5fd170edf04fac4c","signature":"f7b9a709d75a18b6e2e08a2b94cb848e5bd51b225d10ba4e7f25c6109bb54781"},"301fd966e2e4895a026bf9a77a63e29861457744ad34afcacea41f6acb57a69e",{"version":"dcb04a0fe853eaa71a8edcdb1d868e886a14afc60555eaa4f71fc2009947c7aa","signature":"69385a2d322b0c3f2fa2a54f21d9762764d7ee170bdf364e1619b344717915a1"},{"version":"b154d1f8c8407355157a9010925d4d30e842c44639e7905efc467b60e808d520","signature":"32cb26053106589ac487523616908fe5ecbaffde90b284802d020eb36ebb6c0b"},{"version":"dba1a3920288e1ed25382d7bafebc9f8677f09e9319b52556491e81a3996d252","signature":"493bddf74a4bba9bacb53aa6f7e4ecf6e26f0e4060669bd90ded3e1f677592a6"},{"version":"8a170aeb2b41a3b1949b8d2860eec2f823b1befd9763e79a53af3811320bebda","signature":"6fab553a31239c6fe3c2d2e7c0ea61659ced1b5527fff7d090f21d0e2dab08b8"},{"version":"aaea1510b1d0168895699134792ed2be33b7ba8c08f7a4ed6295e6e1d53d4c2d","signature":"ae7ec5dd885722b7affc17a60d76246fd72c35827e527c658cdb6b03ddf1d061"},{"version":"f644e4bd9d75ac13488fe674a2a569084f0c27a7acf706309bf800cd88672cac","signature":"a660a8ebbcb1ad313c76e3188f2be767e5a2563f35fd3a75ca785d9374277133"},{"version":"f5401707b6799f553c8410723c489ea7a784212838b6de34c75a11170e91a44e","signature":"db4119cabb72daa8b0694885172118bd0a1996be292c95040028bc1c0ea75336"},{"version":"6a45891fb7d873b0f52f550e71ada7462f5dfd0b051ba8a3c85f591102fd221f","signature":"ef5e6e7d0563486c5ca6d03f2c2eec909c611ff5530b0d040964b8488fe8c180"},{"version":"44fc3c7567447153b80c8d09a14a089b729ac88cb9b4af2c8d09e9b5196dfe49","signature":"4ff87deb6f5b97931afbe826c2b6d2e27dffea49e568d42540a21cb56353cf1c"},{"version":"ba4b6def8e8f8e433debdf499cb080886ec3d901049a1bcd789b05f4d43b4608","signature":"835d376a45f790f7caf6f5d12d65d58f21113cd9e0dc3626dcf571923c23ec0c"},{"version":"831703dca06b216a08c15041e6903a364c00593ade72535e6f28be5a8ddff8d5","signature":"0495df7efe616c15b2edddb5db1974e3f3b8f8019dfa006ad0b52f7c07d5e595"},{"version":"900427a19b5e86c1fed9fc95e287cd7d6826e25a7059b6174f09c3747a4cdd27","signature":"a4756ef3f8790c66f11ae7bb3da72e178aae40f3255f3f3c3f6e37b89f2abe7d"},{"version":"e9b120135ac67b75dd73a292b74819d195ed15bcfe563afcbb31be49111edb98","signature":"c75041905df49baad3f7981ca42de32c3c3bd71368168e798ada2e8a8c66b49c"},{"version":"5ade66e9da44949e34b9c3cca3af0827a3f2e42cb668b4105fae4f60ca00bf5d","signature":"b190bc2501c59cad61a682453a44f5dbcc41a3a8edd250d25050990f3b7755ee"},{"version":"e433f7a592e4acaca204ec071cd19d5b731fd03fcb36b2e16ce56bf513a18694","signature":"d9fb4721a7e7dd9affeb6a17f97f60460ba72d908cb0f502782209488c7df8fc"},{"version":"8ee41333aeb96dfc85b2496816f91670de8149e45f74793337170d2c801d541a","signature":"5fa840b8709bf31de78862a656e65c53783411054573d7d195117f89a8f6aa06"},{"version":"6b6ba65b479fe0ca8a64ec38e99cdaf7ddcc286cf65b0d029ebd0a8e7ac95ac5","signature":"f683961fe9957273f14ce89d467a9c5850a901817bb88463d27ffa7e9787164a"},{"version":"bb02cdb8d20878e182ade954c35b07b4b338c22972e46dc1bce3bbf08a545516","signature":"ee30df3184177c1682e4cc80ecbb9ee55871516d479fd21c26132f74ed99342b"},{"version":"c13d3bc27b81a79b64d489d95d08164bcbac4bfd5cc7dc7c1fcf508968191d08","signature":"29147480646a67bf9b491e354eebf6e8bf4eb4a8c22c2a69585f3e6f249eeff8"},"72c749507b6623b587b4888cb6f9fb3d937b49f91a9c3b6d7e5a80812c858afb",{"version":"03fbce788fcef245ffbe02834c029430572e0f663ef8be5c5496a8d34c974e4f","signature":"a796206f2d7082f1b636fe50ea814ceeeab7d7237a6d8b4e58038fcf17469842"},{"version":"6be5749d3fabf1ab49886701d7fc965ed2f8b4b13186dcd569fe197f60f40518","signature":"dc94655dc1ca3f9f3a7fd8894ca98afd31192a5c1c45f82c3e59314bf06a5626"},{"version":"8dd6058b42a8bbfbf381b8c16c92dd20ca9d8e3217c08956e0e0219e34725f32","signature":"3231315f78031106bfddd796f9ad09c8e4e4768bf4b374db18774398ee2629f6"},{"version":"3c31b45e904d7421e43f6a2a3f8fc751d44890d11e3c39f669e4235648464d79","signature":"075bae4b7396e77842e9a70ae24c703432a01963add7485fdd0f7181d7a91ac3"},{"version":"306dc9f8bb912c335815bed8158a98970c39500d364fa79ca9bd0e4b5d4d58fa","signature":"44a7663d96baaa75cfe11ad187673ea62974bb3a95557f510153b487d1da875b"},{"version":"0cad6c17e7bc1a7bb79cd4647fc0aa5ddc7a8c5b56a5a4a97677f85870a65b87","signature":"80817353c9762384f05e51d07eecc6f035a6fc8022788ad62454c05b470f74bf"},{"version":"77bcdcc9cba8e9d2d4f74d27737ff164df492a1dcbfd439561e822651addfaa4","signature":"d90205497d7be88de9c09d60431a10216d7f959d05422f94b4d90d8ad58a929a"},{"version":"3a0c84e92608f64e6995b7c4335383fa82c0fdbae46d4217da5ae7b2a80fe682","signature":"f40688a28cfd81aba27b1aaf8ffd39e8f863ed61e96901213ffd812d7bf9d2ee"},{"version":"56109f44163304906fa693e2da57a7782dcfbd2ab665269120cabfca701db7a2","signature":"5c1a8092036779567fc9d3fc56dd706fff1154b5d19b3b36f64d462b380a6fb5"},{"version":"a8436e2fb6884d168faa88751d66ba7a62ffc387a9093fe4c27583820e35afff","signature":"c66eae0f3c60de7529f9871a09749fab7fff6f955546bb258d7009e33a506f52"},{"version":"686b08d2348afe5af92e8c9c041711fc30c00b9a07725092d61ac67689481308","signature":"08149bba6818fd64c7e9cee046315d2f72204d32d1f5c7cfa3d6b1c5ccf85075"},{"version":"131474545b9e23988525526a0a70c38d068bdf6c81833e8b986c5d609234411c","signature":"75187be608faba20e544c6f23769fb5fc2e9e172cddc031c3e00a4d79e5e903d"},{"version":"48f666c4ea7e29e1c9d997cebb340887e1f3a73d92942e6140d1eb8e5830aa0c","signature":"f6d812dd030cc3f4a7579cbb6797d16b23cb8019f0af39cae07735bd4eb06cbe"},{"version":"b0e9a7ffb315a36cc108cbaba6774576fd6310e65f13f0e1408e11a915061a55","signature":"13948a76cbce50be61aa0f929667f900684ea61c9701e3141ec72d35e7390cc9"},{"version":"93b3a28d3a5ab4df3334b8cb824af03773d947d82965d975f8624edf208950a5","signature":"8a1a0caa956d9de87e9653e383fb024c88c924b9aa2639dd5a4780b771c48673"},{"version":"73b29dfce370f85f96ec351af3fbc3bca9e0e005b4d054c599aa0ada6dad2ebf","signature":"37bfba6d64ecb6c210215f928e57275cb31e536ca877216dfd77cc1111ef7fbc"},{"version":"b4d7129673730f47ebdf0e78583882ebefa5b51874c388cd5b78864ba43dc433","signature":"d643a4671f4c6faec8e0362a3cec66a2c87ad57bd6880d8035acc448bc2dd9ca"},{"version":"7095c3a9156db5b360ef2bc2dc23bda7078bcfe28c99acd5d57701a77b32213f","impliedFormat":1},{"version":"3fdca613d7cef1587f606ea6b88cd7223b352eca4ce63e6428f98eaeba49a6df","impliedFormat":1},{"version":"4b807eb7b43b2547b8074b49aa9dd906ef3963d0f255e372a023467b0c9b91aa","impliedFormat":1},{"version":"4f80b34708dacc7ceeb6aacb557f662c09dfbd9eb1cc3b43111532695a8e9373","signature":"d14a9c5c88a50c6881eb5794e5cfc250f4d04252104d24a3955118b7f402dc6c"},{"version":"c8c697fe8e5dd3eb544c6da4d8b0dc331f35855df23b8f4f23b5a5afc1df5c0e","signature":"5a79c43ded261d5f5044c0304eeb6090aafc5e74d28ae806046a09f4d72e64d9"},{"version":"c924b5b926dfaf7dfcb9af01481f4896f89c7ab68ad36c5a3d6737951a95c239","signature":"41bdf958797499a6569b4fdbfcc7fbc759c453ea9483046d045a8070b3fa7d4b"},{"version":"db7f48c49451f5783a29495551a5b5122c6bf1664e5378b0d6667a50f3c366ac","signature":"397e86787dd1c585c97c10ef1e8ae5cd8d494d6516f939be3e14a6a19bcdb8f3"},{"version":"0e3b744a285d56b82ab4a3c468400fd3c2b5dd1b0ef4619f25a24edb83650802","signature":"f7837ea781f11be06b2b34bcadac658e5635b02b348cf9d1bf95727f72f87653"},{"version":"460a614d5c5fe122e87918b2428280e40a5e873d4a6624f94385f1070c3ea591","signature":"5d4467b5ead69dcf03d298c25c8355a23b3bc49b290f51befca5b37c5a9eef71"},{"version":"c074f000c4fe38e03e8046b17c3e9b96fa2446ecb6b286f9cf4e855c1ddbcb38","signature":"5e53a010a47951394e2181398f7524b267fb985e07a3f80ab98cbee491b60aac"},{"version":"43cae6d1ca2f2e3dab0fd5ffea9040eb216e07fa57ba007f6e1f080578a649f1","signature":"89561f9f5031069ecbeaba3504ba78420ebfe4c432404d99f12eea227c6d5c33"},{"version":"de5b2cc50512d4dad1516703372a477ca1b1a727f5fdfb33aafdf29896c8321b","signature":"c36b202c512434228c2388d443b5393aa91e9890eef11e3aea2e9eacd08e8d91"},{"version":"8689537b07f7f8f0a9fe094bbe3ebafeb046093800e62db9f67a460fd7bf4738","signature":"2c6dc444b838a500192fe210a3f323db6c4b9aa88498e80eb845ad8bb65d8b09"},{"version":"549384e46b9f2f65ff7ed0709924066d1a36de6a5f1535d78bf0169766d1b812","signature":"c90060335efbebc15454ce545b446d3f17346382fbaeb40718cfd3f92e142e15"},{"version":"1524d675307b29df057382c72d8bd87f807717fc073f60867c03f34db8d2eff5","signature":"6a19bce05ff1971f703c32f0d6695baff3e0e9a06bb0888c65ed2462f6b909a7"},{"version":"ab8afe7002e0b23ef3f2f35b62ae224007ba2a83cfd3de2fe74aa879a937b017","signature":"3c98ba2f9982115f587568353d55b03c4c8b14eca2b9f0f7871bbf653bd41f46"},{"version":"7354199014bf3292fa3566d664239f6774586e390f431dc71fdb51daa9a0a06e","signature":"f2b62fdbbd9cab562828d5b1b42bce2b772fd27bccd09a7ceb3f5c782f8d4cee"},{"version":"c76523fec4b7203f821cce88b9ef2ebc85129cdd49c27cdb6a36f3f55ac9d842","signature":"8ab2e59e5daa9ff8796e3ce99b8fe48646165dda2316d75793758d48f55c91ff"},{"version":"fae6ff87b0057b527fd555ed4140e3f616e6e3ce12bfffef66d6b745620e3b5b","signature":"e5a4e11d4a38b726ca0584fd9db082f2a7bbeb12b0ba025deefada1d76ab0d68"},"78cec9cff1ba71cfdc1d826ededec049861978f8fa1198da02fde633c13d1c43",{"version":"daf20d652585b6b653bf500d020552db862f48f3bdafe46c95d9ac37c94c4586","signature":"12b62eef8d0691c0c78df9f704623ac0a89cbbe44d9637cb2e3eb79045752bb4"},{"version":"6b204396bfdfce26c3b8376bc19ad9c51c1e2800ba4b878aba4b408b7c7ea9fc","signature":"c05131b2cf265bcfd0689e6a3729bc033dfaaa867ca259a9444138e149111ef2"},{"version":"a917f77908660f575009e40136d2ba38befa005104d20dc5697ed756b01b5a63","signature":"6c88a0dc3a18eb06e8c7ba316c4567c34bd2809d272b789368adb94795bddd7f"},{"version":"f827639a88ec474c71ec5f5b49753e660b93738bae2a502ba6f8f9b0d73dfe25","signature":"9c8bae5c36a375c47197940cd911f307d46ded989d220a07424e9be2e8bcd5d6"},{"version":"3fce2daf48006ced63ddf122b9e00208b3135647ddc4c9bd5e603182ced5b075","signature":"b5ede29a91ed42013d420e68d452915d1b30740bd2eef0145bd6bb0d1c7f9d17"},"5e35979934a3b858828228b280516475a01492d50d868ac4b8c6b66f603885ba","3bf870a8385250b3ed553b40bb19703801772514e018e80f02e22b10af93d550",{"version":"07558e63bce6473d49bde25107e01aa2586e9760003e418117722e540690612b","signature":"1a7de343dc987488bd862a17f3c3b3e990e77a00534e6c2da583ffd8db68cf21"},{"version":"6562fc4b9b470ee474add192278b9ad7d863b1096f57c7aeb26e6b15a86e51a7","impliedFormat":1},{"version":"ef5a427017c481641f81327b63c13c810eaf49bf770986ae959de10c12242dff","impliedFormat":1},{"version":"f27a34aa2e1141fd5c4ec9c05f85145b5f4620e9b1367f839aedd939a675d5f3","signature":"398881548de5b87d1489076563da7dfe793403ff446d8a6180dcc8352d907cb3"},{"version":"a978949e41034818b019d31134da5cb267192950df3327ef75087b9b1ef35352","signature":"804d0d3850814d0e7eb1979a0f2391105e0410c3323679af71a92e74fd3629cf"},{"version":"0c2d75585766b959042203ef0993f5a863d1d5755d57b3b90c976fc5e6017b82","signature":"43916054a48cbe6d00f420b65b5e03dc8912af78e07f998386a804d2a4570af5"},{"version":"bfd8afb6192db2d95498867ab8530b677f40da6503744757e5ee94798820f4dc","signature":"a09ecdaa711824637a459161150037ab09350f0243bece1f2cac38bd55b28740"},{"version":"fc547fa715aef35ca748866e6cd23100c5141f6668005634d76139f4298a9a2c","signature":"73eb6b11d9929def9771cdb630055cf111750d7acf094c84118a9a15d975d497"},{"version":"4db4658d344cb2b4edf4222782aac73e96827d183f916c32bff7e8360bed86ed","signature":"412bf7d4442c960709dfd632e0e13c339f78f3e95d2c9e05850b5cae3364ef2f"},{"version":"7527a1a8753a4aacbd1b6118a10afe488abd83ee740920f7e6703bbe498ae2d1","signature":"b73dccac0eacb24dd5bc16f525eb767b4d755b1e450e599fafef60e014573aba"},{"version":"e44766f8e5b7d396127a65120f2eba1f4189693f15227100d7061f691ed53da3","signature":"4f76e1629e5af2eb7d9423d59eab9342ec0d2a0f8628de8954719ffe28fa19bd"},{"version":"122ac773ab34a3db06c5602083128b5e65a08e642300f3392518c1d650169552","signature":"672e3c5ba16ab3bc80d0efaebb216a095898bb9cd74ecede65b7ca57212985d6"},{"version":"22236d222d5ae472d7d69c08f87cef4a44ac71a7edbccb2fefc3f94cbf89e759","signature":"b75d157630d095cd0f498c45e5ee33fa1213429c65355c8f43c3b43f1419de47"},{"version":"c0f5102d14c94f4d2aef4a4109bd0f1551c8923129118f0b3beffca75594c118","signature":"88f6df50d799803323cc30010e47d7def59f5db0068841129d5a70e8d9c614f2"},{"version":"bfd79cf3a0ba6520651c1763e472d579786e4c1b86305b07de8536a370d1c944","signature":"d023141623e30bb01767637f34cf520b2588c40fe2d3afc1f5391db8f8b5fb2a"},{"version":"ea2e2e677350ebef1036881e0fefa2cd7386e82496d62a2febe073de594ff937","impliedFormat":99},{"version":"6a1197b37f8f406bfb74528ca1fb90659c6d1a251d472b1c65affb5c6a6ba5f8","impliedFormat":99},{"version":"2df56b2f46eac63dbc5f4704170f55d412a7893c3ffd7725ade6bf8686550db8","impliedFormat":1},{"version":"b0f7ac41d4fe795d801ee3f3218cb671c27ead58472f558117841fce0fe4e0d1","signature":"de1a7d360d2db812100714d25105d5cacdf25a97e06b3a661bcb2609d733e9b5"},{"version":"150620c7f243481c3b0ca9e3d7899d1c3773d93a23029b48137fe0f6c8a64d55","signature":"7b5584fb0ea5d07e29bf9470669e154b8714ba8af914b2e785b858d33272b0b3"},{"version":"ee0290c9823040f12bb46d1a4b46b8f96d04e33ad52fe285f897bfcbe1574412","signature":"8ba73977efb5eb9490431b6f05e9c12e485e1070689ab619d80edf1f1b698cd8"},{"version":"9fb10d2dd2063ce1894ed0706555b0b1398e1aed3f7f4089fa01cdead8248072","signature":"08e7fea5ad193ce10c5f88a7cee368c9d69458e185d0244fdd2d92379aaa58ca"},{"version":"8578c4e51bf2d149f12a19d194476934871df63f5f60805cf8375aeace80bbe4","signature":"8b4bbe2f46aafad958fb92e3ef274a3728a15470db9ef6ce1a0ed36810bd0e67"},{"version":"53af80996994830a537a874ac22d0ea5cb731f28e41917e2ca1fc161167e0826","signature":"4e9ff07c964eb137ed65b436dc91cb5840665874bdb6a68c3b711161ff66eb3f"},{"version":"57d63f7eda39375a4e57f99b53e3cfe0eb245b79085bac04bbfbaa72a2de80e5","signature":"7d33ee5499abf3b0897254182cc72a234cb4762958645eaeaacf3443394959e7"},{"version":"1cb0de874d1e324ff1a78593aab35035cef64f3bd49c0a1df7a7fa3247ddbdd7","signature":"7f1e0ead4353c56f99ce178437c8ec54aada5110087674e36ef1b47035ff1ae2"},{"version":"19bfbd9001a19dbeaa743835c0a2f6a474f3a826352d515a778a6b3f19fdaa1d","signature":"6ae6212fa6a56a4f41622a4f87188a5bf3975b27599d7b0871230ff2959d8670"},{"version":"467f8261e2cd94af721c9f7df86bb24dacf6301a2e254e350735f5fc722e7992","signature":"230b35444fcc376eb819ccfe5b8b8a24b24de6b89e9adc96d68aac4a2b08990d"},{"version":"1485f98f452c40f4e9230ec4f0162febf59f2f7343a4a15b10784897a628f61a","signature":"52549a3708ceba684b2331d496223b5667afbab2dc6e80f4e3d5dcc286caa527"},{"version":"cdb9aa7409622f2b54fbaa4c05badf6c18a4d6efa79883928f0c312d81844e0a","impliedFormat":99},{"version":"5d82e1ce7f42896df4695ef76ef13e1dce77507450134dbec4178e486929566e","impliedFormat":99},{"version":"0488374d4c4109d628436e850b24615bb321e737f642c81fde5f832e16461148","impliedFormat":99},{"version":"908901f3b23c77da2470d9081b1deb16f6dcc01cad792a0f91ba99e3eeb152cd","impliedFormat":99},{"version":"458f61b038ce1d3db7fc917139fb53e6037f6ab86bbecb3927afc2de60afcc2a","impliedFormat":99},{"version":"48f7bf3b39f234811d4b60817abf3fb4c056e6dd65a0293646afdec16bdc5df1","impliedFormat":99},{"version":"fdf613a6dbd67a2074a6812cc6042dd504bd95362a2baf37c3e217bf3a884418","impliedFormat":99},{"version":"d5657c6791b600fbafd8fc47ea485378a991fa4c8b0f030df59cde2784c50618","signature":"0adcaa1d2ec408026e66407e2e445905d61d2ccbeaafa8bf83b7ec641ef0c3b4"},{"version":"439f8fb1a8ccc707b8fad09eaac35362f80248a1dc8816fbd6a6a6488e14c1b6","signature":"9ce4896407991a6949395538d04d6f388e898460a5d9608dd432c860f910496f"},{"version":"0a83e9510659ad734cc73dddb8d64dcaca7a09459f26242026cd0373f72f3559","signature":"f437a0d82105c4b671206a59c4af4b99d2a8b4ef2fd86fe8978e0ea86a51aad9"},{"version":"4a2e38c174dfa79a52f570dd9e452a03e614665ecbbf9af6c0e53e200b8538d6","signature":"027db4712571071d60134a8c5e7aa6dd4a66d18c13e10517e5cc2c0557fde502"},{"version":"9d24bfaa39f061fa430a5f02b2d9bb51b50b29861c1d79ae06e848e72a0f65a1","signature":"bc23a53b0a1b7a90c8f0608552b1435e850ac9fff60239deeea4ad1a9736e4d9"},{"version":"b5db7405224ae30353fa3e69cd345ac9fa37ba363112f1d5ed25991c38147d88","signature":"c7495ab14f0b1b57b5cbdfdd524d04260aa45a3c78c4d4c6e340b41df3a0593e"},{"version":"eca35e604cd1234c1a8a239c59770b41eef0f2b27cdf13a38dedd440d0c3a425","signature":"d0c79d067d9be8bccdca5010398e89da14e30c769d8afccf41fdb8c5bc49a318"},{"version":"272f09b167382a251e236265a715073e1ff2772fe79327c596d90d62b43bd7bc","signature":"a81d5bbeb9eddd475d5fe5ea1de7a47f26e7beafbb89f8a31fdd0e62c4fb6815"},{"version":"290ad21f88cf82a9794b16827969b57e3ad371b9e1abb13aba928675dbcb9a50","signature":"ea1012f055bfc81d40e19ea0737047e487899a357fdf672be309f45fe5f7bf43"},{"version":"2bad7d6cf168e5399d424e2434126dddc1cadb2296ab11a5e09e8a52c56f2bfd","signature":"d5a8de1f73619298bf9459779693583a74013fba5ac11e10cf4daca934351d0e"},{"version":"4f817d326453d8d578758889131c3cab8665a0aa252df1ea254a83b653422efa","impliedFormat":1},"0baefb337036a6b24d6ab66e4822a81cd6a221fe9fe3a4de50c513c248c2a456","507ad6d08185db1b9d399b85c3d42e3c77566dc7f31a654b349fa1bf15efc359","d83e783b7585a495f681fc1584451443b9ce973e63ff392c7bef3ca0afb03909",{"version":"892af6b145ad4197ab45a8a915f083cf127553098933402c69546dd7aaaf658c","signature":"e04a38f9e07b2bca77c2c2f90a28381887566fb8fda32da221019b1f795b0029"},{"version":"c35056ff68d64d63f278d9f7a65cb97c78434064dff4c4d60cf28d4f1f3d88b4","signature":"2ba4e93842ea5e30265e921d4c0082ac0f4c2675be711fa9a9227803fdf131a3"},{"version":"08504dcffce7c8d1ae325db32a5b4e32c1c33a9ad9ef7c62ab45463efe8afc8f","signature":"25510b0743e24cca362e10eaffdf10ea126c916c15b178cdf3a9dced503f66ca"},{"version":"ac4b5edef1a756ae8bb54d21cec84aa2ea42dd12b913f36aa9f79b8fd047cc28","signature":"619a733f6d7d6385bd5c20756a4547f60a34b199f18926c98e257a3e505092e4"},{"version":"2295af7022f06e635e294af72ddf720df7367dae1d2a4244af2e04c4ef5062c9","signature":"e44906fb1f538b518d62129e4837eae7ce84b20ca963e22c87ee9d6d2b36d34a"},{"version":"91e7d7ca903e51e3f1c79b582cf9d1438f62e98b5d94054113e38e3adf21637e","signature":"0d5d0e49ed1daeb1b45a3ae5d09e239c9daf26b67e74be4dbdbe5f4918b6bb2b"},{"version":"60db1bdee253d40708d468a88abcb93d31a18bef8a747bbf4d6058f908ba36a7","signature":"b67256b975b350652d0c303162ee1d81009c533575e5b3d9e46d59bc5c633972"},{"version":"001235eddfdaffe30a69cef43f4ce5526134d558f95ad3012184509b36329b43","signature":"8453c56369f56c2ca68be818ebf4db6cffedd8bf869492c2d4ccf202b612d60c"},{"version":"d680e35eba5b47e37a4bc527149141600e8917f155598acafbd64b2949ad19bd","signature":"68be53635eec2f30e2ab8e2a40251dce27acb7635fde73938677873c6b589604"},{"version":"2d15110a956f3391798a0d712ccf091d438231c2229bbb6e607406e46244c8c2","signature":"a3524d85d2be92c4d1dbcc5da3ea283276133c8df1c08bd35559a449bb195f29"},{"version":"f89ab6fdd60a0e70395c924bcf069275300eabdf76ddcae041fee0bbc00924e7","signature":"6da65bb05381000a0a7d2969eaa47ade06813b4ec8436ab2f417ec5c18144db4"},{"version":"ef99414207264959af90832bd3d70cedae92f2a3e0be8b7f74997e14710f4843","signature":"8c0918c2db1f0505fb371574dbf5be727bf33c68f8051bc065e5efa38c2b0729"},"11b24f5bae4cdb2da9514ed7ad2313c9493888a047b2224f6498caf51963a3ba",{"version":"680cb256ad8debfb5dc63d1659b3c21b501992f77362a330496e7b453662330f","signature":"26bd18878f303285a6dcbf5bc984d787dae1a3126e227332ebcae1f8c8c5ca16"},{"version":"5a9bfe3c97238a79d05448c40c840d74e70589d09688eb963b39373e0e111f52","signature":"85ac238359ee3cf7000bd43c5e4dd24dda8c60b66cc21bc7983f416c24bb7934"},{"version":"a3d6c24567aa7328396749683d7a47f81ef3562b97def13648616d5ef97e7808","impliedFormat":1},{"version":"90634b704172fbfcaf95cbd68f669437eb097ccdda26d9257da00f0a58abaf13","signature":"2cd097d9ee4d7f353448aa5e9b7d341d78590b8d7213416974d1d5133d4742c1"},{"version":"4af3cbd64aafa22c4e9dc5cb62b69355ac394f76849f1463917ff8012b052cb4","signature":"5480d646a9c9d09e88bd290eb509bb1b06ca3acb019181818d4c9191e161f2dd"},{"version":"d2ce49c5255c659084a78dd5eed59d9ceace54a1f108a4336b1e68b9cf34e440","signature":"19c451f44ef9fef897a3f82c73cb2482e63a6775f0d4ca591870c16e46512b38"},{"version":"ef20b737436ca28cf5706ada455cf5dc039d551926debaf808636a94a25aa9b9","signature":"051eb7890a69f5578de7ee96dcc216a3a0c82907c0c000cd67b9887f2f86f5cb"},{"version":"1abb80e4b2ef62788a1a1b66d766ffae2df00d4137677162269e3c164825121f","signature":"1a6edcea35408277b6ec18a67dbfdcf0383804c8d7f423176ce082730afb5eac"},{"version":"459ede2f9dc0ac459c9aefc8da3dfcf161f0f27c70705720d1339dc915bb3785","signature":"afa747651f4368ee14ed2c49794022737678c76d9400031896673a8d167d6fe1"},{"version":"02a8cf5ccbd8a9f8a442346803fc66ec593c2f482a4f6b320de55e8a63cc9879","signature":"9e771f97f90440949f66914b26fe823e75f8bd7c65bdb5a6b65a58f60d465668"},{"version":"7dfd1cb8d20f3d873bf298cf97c65691f90bca57294dc2276de58c6d69fcb3da","signature":"dd51844001b4932c94d82398f6e25dd9280e60da19e2f008b0af5d37d5da44eb"},{"version":"48cf76f78ec35d2d81e114e37b6b5cd254f479da53169a8271ed07e0d0027a37","signature":"ebcd45ff1bbeb749590fda9bc4e703511dbf86a65ad2b473b54dcfa6a52d2cec"},"35520a8d04ccf8c4637c38964787bb5d5d99061d440740cb12521ace2d9177b9","d11cf669b9145af9c5918eb969d40538f6450c33c12867837e31a51ec2ba88de",{"version":"43e31aef5712389fcb564d9b8b2d03678dce7ae491ed94f7f419c3d00bf806e6","signature":"77165f433434764db576d450380f8a619ff661d1d33c966c556a1ff5a4ac93da"},{"version":"ecaf1bce5f59a8f9d948fd467470171ee3b58004e20a7723107e5950f62ea0d2","signature":"c644ba97e24c1e520a1cef6a8efb4a4c896129844b28570850ca86db7f346b20"},{"version":"5ddcab5ba04d2926af1d68fbedc85d1217b541484b340d490c61f7ac593d1fc8","signature":"552286baf5bf5d1a3a9fdefe988bfb03201e63ff19e7450d65c339e7ed60f021"},{"version":"6d64a84703d97dff2882543d1920dec15d6008888f61382670aeafa28df982d5","signature":"b97e96fb45f8d02d4074f1f3c0243051d2defe974ce58089c34d0128746713ef"},{"version":"a5c58616e7c2da2cba29b8ca3ee4c9e651c62e06f8744225dd3f4668a1e949c3","signature":"655779ec8478cc288655634c5782810617fdc516c4eccaebaa1d7ef5d8816dee"},{"version":"8a7e191e2c49ca1ae00ed2ee5f34139ed24bdb65e4f6eee631d59158b7bb1c68","signature":"f03eaa1a7655c0a2b6a995aaa0298f0538a04959fab97e7cf3b5af389c919dc2"},{"version":"56827e5296af9c8bd0f8a17f3566cb858c3a496d1f5a7902d4bee38aadd38b8a","signature":"dbafbcd21ca32936a4143564ff9cae274db748e1f1c018a5a027d77967233eee"},{"version":"df4c2a222695bbe7bb5d28a38887d926be0020a6fe7dadb529589bdc620c0ccd","signature":"e7dfe1cc03622ad9ce35319c2c945d1ffc7bfabb3c85b681d0760e71aed897d0"},{"version":"ad48c92d1e2f3f12e7ee853c7d029c91870a622a8c4f3641bbe3ad7913e97c19","signature":"1bd0aab6e9b0d9ae44d4cce3220f568f60894d55fe113344dbc537a240250656"},{"version":"b8c046270007b2f013abc36f24fae2e1af6a66a9524788da1230de1a0a2e2855","signature":"6ce1e9125e5c396cc7a0d8cf8a0678b9f8170f25b458000cd59df9ac0ca89e9e"},{"version":"5f5536926fb46afa7507f6ca2e6896d9b4e3bfa04eab0b329b89c92953b2acaa","signature":"3ee355f714be9a35efe4fa290cc92a1387fef6ab946f18eac74a07efdb9c8770"},{"version":"a1a0420331951fe01a2fd492bd6feaab17e77955fcb3f4700534879660cca3eb","signature":"3199c5b471b6517abdade270c83093c74746e038e58dfa9320f72f9f9c5be26a"},{"version":"e1394c4cea1cb7dc22de1f7647c54dbb51f8af213251bd61aef4dbcb8851a964","signature":"7131075816d9d1328ea350e45566c5d11d102520e3ba969a979a1f52689f8662"},{"version":"27f367582e83ed24821d21a9c322b72eeef4336e892cc5106d2e478aa4b13158","signature":"152baafb8028ca06fd85e389ae37226438d486ec172e8b99eae687a23dcc507f"},{"version":"731b87cc0dee2e77db654fddfeab6619a94901d43cb4d2326e2388bf300b0940","signature":"4264bc406d09db890305de7938bcea3a1e031f287909a34930c0a1c1a3d9a9d0"},{"version":"7962deccfa7929ee5358435dc1b4819a8ee984105f8f5d96fad9198248a36062","signature":"35a867b5e87618076b9c499350e45b8d720e1b826b81c82f116a50074064b7dd"},"6543b3a8fb71d2dd4d3dff22bd1d33222469328a7f9ab6479333b401703419bc",{"version":"fa879ff14bd65c5fe874ba812564524232d69210a6db31eab93cebc9700f7f8e","signature":"c16f9df49312d4f211152d63dbec1b1136eadca6ef2e51897414a09002d3ae12"},{"version":"3dbc13b386daf5f748f8b47dc0987b179c1d9f2012590a502b8bbe8ccc20319c","signature":"7d38345058c591db28be9d402068c10ae04d704d8673ae45a4edc90e1f2d81fe"},{"version":"4c1c92ec3ab48ee3b196e1efabb5ab48b3cc96e89fdc74d724a56103424e04ca","signature":"75a830a80beac60d8e273390d4cbff32c5429f2bcec3ede4ad013be8753f9588"},{"version":"8fba2a77eec223e7542b1794cc5352a260e57635dc641bf2acac764dd9f55d0b","signature":"fd9c3ed5ab7171d6a29833da9a7bbab7c0213573b57e9c4654147b6cf735127c"},{"version":"7e27a87eb2063f0b2652820eaf0eea4de6d1f924916b336870f7ab2e06df3b24","signature":"9bbe0e9d78e66cfa7baa98adac115afbe66827c44768e664e0958a62595c0ffd"},{"version":"775826f86227e6d4c6c6b456b5fb58658b3129ed6eef030546a8e751b3fbeea5","signature":"794e46b5210fba9e39863072f8927f2947fff99c46c9b50066d04067270618c3"},{"version":"0ae96458c06a53f8d095cdda1ff8ea135d7df1db412e4d19cdc1b643433aa75b","signature":"6418fc4500ed9f0cfb0c84e1d8371671981e2f5186098d7d563303a1819f6872"},{"version":"e29847a0ca6e75a299857082015afdfd60964e62f8d02627ddeef24f9590363e","signature":"44b9d2f0b12f36547361fc4940d3f8b2ee7ffbb334c1bacb52e313c34d2c5c62"},{"version":"ced7788759d298cd84bb5b33128e2c508044d717fe5a78f8eabf331217b4b170","signature":"6def3c25f69e9af970f3079bb35461d84a2074d032442c89ef021e7f2461febf"},{"version":"b87e4e60f072e215bf3affed2feccf854fdf8e502c7ce768680cc3d69d5e8d77","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8de0ca706ea68eefd36b3b4d46aa6f4a8bcbca5180cc60867d1f5afacfb836f0","signature":"30cae5715e926e40ada6e56f017e63a789bf0049fc6c9351d26f699765e0fb81"},{"version":"2700823fe8bc134b6490bb3871a6086a6ccff210a991c324831d93ea2c0ca01e","signature":"1f3ac44bb20e06cace54f4597893a7ad16c901e0a9bf9a8cc40c9f088cb8efe6"},{"version":"88cfbf35509ff3462decbc2437b656f93150d7fc7e3100c643f6ca8d07182e6e","signature":"f5f69984f292c23d4a58dbfedfe728552b8e695c4361443047d5fc0bb392aad5"},{"version":"d741ebf8d8ac144a9c18feab9ee5624d87696017559c3d298d49bb0d59632337","signature":"bcd90c62ad3b4d460c17c0878facc63ef0fdabfe18b9c14fe0b8b081c20ca6fa"},{"version":"876048f42a4aa813e4cf053dde2d41cdbf8b55a8eed3b1db5f19c63a254ad938","signature":"b62c1f62ea409e0cadae35d6e218e37c682bac9ea440749beef72641d123004f"},{"version":"44edcd6297fefdf4f64146a0beb45acc3dd9035525a5af59daa4757008fafa55","signature":"1192c25f7008e036041d9cdf66c8e408d2434f448edbbc76124c8c5a3646d783"},{"version":"ec174af7027cafeb8b9bd6f3881b7037798d554bdc84a9c07f341a0d2af38f07","signature":"f99b3e4d41e361d1d0d2dea0bf6d160be029930f83f2bad1e80896a541e53c19"},{"version":"032d49ee1cfd65462035bea8e5c92414cf148a47dcb656d376766c845218ae03","signature":"6dd0ea2d6bbb36738a602c305c8f84060bc1cf6d10b3f35e0b4467398a76a1d6"},{"version":"1e1f52312e61c05f8c3637cd31d484915ba0347a357c94d6c35c07b00dea2eb6","signature":"6332aad2f86530955975a413236da58f5eb2f20187753405b79c28956a4d5e67"},{"version":"ef3847d5f763b320695feabd8a0ae505871ef04aa8029264e1f604a726719df6","signature":"496f1a8837757bb8d983e2f6b52afa71ded8df36fa5f881debccdb7b8ffe8bbf"},{"version":"6bba7b1d95b53d776ef158f5e591568bc87aa926713009493e3e40632f3c9141","signature":"23a33644b587a8696e288388cb668e2175054a809c195fea027c63c9cdcfa3ce"},{"version":"7116bedb52591a0b5f0181b5c91f6d7af28e67d8d0ac9cd9f997bc091f7a5a93","signature":"e36cd9821d44941aefb6d0cc5e0b3bd7bce32abc416d5cd305ce33adbc1b75f3"},{"version":"55b4fd37488b374c0d91dce3608acfc485041c3202aa3a1baf46cc0221eb0b76","signature":"01b4cca7b2afd33a002563830f147ac70dcb5f1cd7d7601675c7e92fda1c378c"},{"version":"f345f7842ae589efee4983eb6ae1d7b6abfc8e1847eab62f44906afda8ad7287","signature":"20c7ad14496fa2707b4a2955535aed2e1c58f5b2fc8ecde1851d4af100375f1b"},{"version":"857ddf010f28dca166610682c1043ff9a1bb0a659622fd5b37f1edf01e45a9c9","signature":"671c4b4146b8248b648f85b78f9d0fb0b461c586e2fa43cf2caa3cc5ac8af7a5"},{"version":"c68938edab81d048d1ead16e5d20e47616e771938de1803f57e75b6e24755ad6","signature":"6a3544a16fa149f39dbe477448cffd4220d8bb359019e7af5bfc2cb12c72d0cc"},{"version":"e6f9ed6b290bcd8b5dcf4b8c6067b231f083667603f338e55c2759c37a8ba149","signature":"7a0c062fe624a9e346d9e360938398914cd188c7ba534ade215bd002832adab2"},{"version":"5f58b78bf8bd43a53556bc18c27d98c5eaf2da18084c85d935d2e7cfdd82de83","signature":"ffd607b16764d9fd7cc6cb5366165a3614de6b5be85b8ea94875e7b7c680a4f0"},{"version":"5b904a089acff01b2a5d75a4db988c06570da4020eea8285d93c2729b8bee164","signature":"460d3338caf9d6f7cb0ddef04f621ff4aaa60001f6096ce5ec35f59b062c6c6e"},{"version":"81e63298155d74b1efcf72ad3204b81914858fc1a403d42d8fbabbf85c15ee67","signature":"3ab126a8bc9ced3a0305a6342c02a5fab060c43f1081af451ddd2f72518f7f50"},{"version":"043a8c3ee190b24c475b799cc725e63e9d00e1414fad396329a68c36c0be87e4","signature":"6555f66edc74e5b5c2fd92b7d902aa9c81c5a92ad58648c5301057a2d627cc4e"},{"version":"9d696c37ad673541d22c6c13a474e4e18cf6090f8388b0e19129948b19475531","signature":"e5eb65d53e8d854a37bdd2783fb68b2bb13cea6c944a0a30a772a4017ccbd1b9"},{"version":"5f5167ff3212b651db084752a3a144ebaacbbf3693452dc2bcbd1c40589725c2","signature":"8d51c3b791d567abf7caaa19f4d7b1d908996fb545dced8e5bf529d2f0b49ca8"},{"version":"ba8017fa40ce46e3aeeca27bfb3ef3f90fc55bc1f4486517478303680a44b2e0","signature":"4c3fc99f8df2cb69e230d2acbc7cc01858505e786a04a109066ef8d207e24fa9"},{"version":"42a586c63bfa73cc24780bccaa45c04eeccaa8881db834118fb81a91b88f6396","signature":"844e83125fb7ddd3991231b4aa46f7bcd8f29be03ebfb6ea9ffd74a6f75d6374"},"aee696f713cf5e13b62a293e9f118f0d097b9f7bf9e84928e2103f9e17a27d91",{"version":"421a0988738feef1ceedf6d8d7e2aab6d1583c903eef79d778e39a1007cb62ea","signature":"d7c4bdaa2ba4492160f5901f670cdff913b8ad65db5407ca1e7d645388e4e718"},{"version":"d2d8643d768fc3ee526e1e836421223353f70a8d3d1114a731ef02bc1ae53c3b","signature":"26f68975233c704533943323503db6eb9ab0ee9c2e5de9fa7fecf21fcb9bd270"},"63a460fa7828a9ec2a1ba6d2932dc19817dbdcbd729a754dbae6ff263f95e890",{"version":"e5e1a07a89ebb7f85c6c5802be55a838827dcde762b42c43bd65d283df45d6bd","signature":"8e42850dcbe366681a0c19a5c36f6713d8d3c8fea02372191a3e20b1d8bccecf"},{"version":"dc3b172ee27054dbcedcf5007b78c256021db936f6313a9ce9a3ecbb503fd646","impliedFormat":1},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","impliedFormat":1},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"9c4fb6af2bddd534d1414876d2350f2e1967abdddd3df7b6bc441d885de436b2","impliedFormat":1},{"version":"c5590caef278ad8ba2532ec93e29a32ac354dfb333277348acce18512891d3b2","impliedFormat":1},{"version":"59c06fdbc966afe0abfd67fccac294dfcf6e822485fb22991b2cf4923c9b18c2","impliedFormat":1},{"version":"fb893a0dfc3c9fb0f9ca93d0648694dd95f33cbad2c0f2c629f842981dfd4e2e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"bc9d7f2a012412c294f4eb0fc856e063112a3666957a190542b62662391810b2","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"5d08a179b846f5ee674624b349ebebe2121c455e3a265dc93da4e8d9e89722b4","impliedFormat":1},{"version":"d34aa8df2d0b18fb56b1d772ff9b3c7aea7256cf0d692f969be6e1d27b74d660","impliedFormat":1},{"version":"f4db16820c99b6db923ab18af5fecb02331d785c4c2a8a88373a0cfc08256589","impliedFormat":1},{"version":"2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed","impliedFormat":1},{"version":"90407bbaa24977b8a6a90861148ac98d8652afe69992a90d823f29e9807fe2d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","impliedFormat":1},{"version":"168d88e14e0d81fe170e0dadd38ae9d217476c11435ea640ddb9b7382bdb6c1f","impliedFormat":1},{"version":"003f07cf566395059625b39785398f18652c8952e19790e7d6eeb22a9cbe0440","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"380b919bfa0516118edaf25b99e45f855e7bc3fd75ce4163a1cfe4a666388804","impliedFormat":1},{"version":"40de86ced5175a6ffe84a52abe6ac59ac0efbc604a5975a8c6476c3ddc682ff1","impliedFormat":1},{"version":"fcf79300e5257a23ed3bacaa6861d7c645139c6f7ece134d15e6669447e5e6db","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","impliedFormat":1},{"version":"5a0b15210129310cee9fa6af9200714bb4b12af4a04d890e15f34dbea1cf1852","impliedFormat":1},{"version":"0244119dbcbcf34faf3ffdae72dab1e9bc2bc9efc3c477b2240ffa94af3bca56","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"a873c50d3e47c21aa09fbe1e2023d9a44efb07cc0cb8c72f418bf301b0771fd3","impliedFormat":1},{"version":"7c14ccd2eaa82619fffc1bfa877eb68a012e9fb723d07ee98db451fadb618906","impliedFormat":1},{"version":"49c36529ee09ea9ce19525af5bb84985ea8e782cb7ee8c493d9e36d027a3d019","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},{"version":"abd985609200756b15d375982f85e23b975b12bd9791e6224cc739160e8f9863","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"f8a6bb79327f4a6afc63d28624654522fc80f7536efa7a617ef48200b7a5f673","impliedFormat":1},{"version":"8e0733c50eaac49b4e84954106acc144ec1a8019922d6afcde3762523a3634af","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","impliedFormat":1},{"version":"579192636b96ade9bd7f8797a4f18f489cf6cf176dec4a4e269c969b29f00868","impliedFormat":1},{"version":"7d2b7fe4adb76d8253f20e4dbdce044f1cdfab4902ec33c3604585f553883f7d","impliedFormat":1},{"version":"f2f23fe34b735887db1d5597714ae37a6ffae530cafd6908c9d79d485667c956","impliedFormat":1},{"version":"67483628398336d0f9368578a9514bd8cc823a4f3b3ab784f3942077e5047335","impliedFormat":1},{"version":"2dd1d4cea14cead7a7fc9eec8f40593089dff0de8c0199458446143c9b8c4ea9","impliedFormat":1}],"root":[378,379,384,385,[387,392],[429,432],[436,444],451,[453,499],[503,525],527,[530,541],[545,555],[563,572],[577,588],590,591,[593,660]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":false,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":false,"outDir":"./build","rootDir":"./src","skipDefaultLibCheck":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.lib.tsbuildinfo"},"referencedMap":[[544,1],[560,2],[558,3],[561,4],[557,1],[559,4],[562,5],[556,6],[258,6],[259,7],[260,8],[257,1],[542,1],[543,1],[447,9],[450,9],[449,10],[445,1],[446,11],[393,12],[394,13],[395,14],[243,15],[62,16],[63,17],[149,18],[150,19],[66,20],[67,21],[180,22],[181,23],[105,16],[106,24],[99,16],[100,25],[170,26],[168,27],[169,1],[187,28],[188,29],[189,30],[190,31],[191,32],[192,33],[73,34],[74,35],[151,16],[152,36],[193,37],[194,38],[77,39],[78,40],[95,1],[96,41],[197,42],[195,43],[196,44],[198,45],[199,12],[202,46],[200,47],[203,27],[201,48],[204,49],[207,50],[205,51],[206,52],[208,53],[79,34],[80,54],[174,55],[171,56],[172,57],[173,1],[147,58],[148,59],[119,60],[118,61],[116,62],[115,63],[117,64],[210,65],[209,66],[104,67],[103,16],[88,68],[86,69],[85,20],[87,70],[213,71],[217,72],[211,73],[212,74],[214,71],[215,71],[216,71],[121,75],[120,20],[186,76],[184,77],[185,27],[182,78],[183,79],[76,80],[75,16],[127,81],[64,16],[65,82],[126,83],[82,84],[81,16],[132,85],[131,20],[154,86],[153,16],[102,87],[101,16],[146,88],[145,89],[221,90],[220,91],[218,92],[219,93],[130,94],[129,95],[128,96],[223,97],[222,98],[226,99],[225,100],[224,101],[176,102],[175,1],[230,103],[229,104],[227,105],[228,106],[123,107],[122,20],[72,108],[71,109],[70,110],[69,111],[68,112],[136,113],[135,114],[84,115],[83,20],[138,116],[137,20],[134,117],[133,16],[177,1],[179,118],[178,1],[233,119],[232,120],[231,121],[235,122],[234,123],[237,124],[236,125],[166,126],[167,127],[165,128],[125,129],[124,1],[144,130],[143,131],[239,132],[238,27],[98,133],[97,16],[156,134],[155,16],[61,135],[60,1],[108,136],[109,137],[114,138],[107,139],[111,140],[110,141],[112,142],[113,143],[142,144],[141,20],[94,145],[93,20],[242,146],[241,147],[240,148],[158,149],[157,16],[160,150],[159,16],[92,151],[90,152],[89,20],[91,153],[162,154],[161,16],[140,155],[139,16],[164,156],[163,16],[398,157],[399,158],[400,157],[401,159],[402,27],[403,160],[404,1],[405,161],[406,27],[407,162],[408,157],[409,163],[410,27],[411,164],[412,165],[413,166],[414,1],[415,167],[396,1],[397,168],[416,139],[417,169],[428,170],[419,171],[418,139],[421,172],[420,139],[422,173],[423,173],[424,27],[425,174],[427,175],[426,176],[528,1],[382,177],[380,1],[381,178],[529,179],[383,180],[592,1],[661,1],[662,1],[376,181],[664,182],[667,183],[668,1],[669,1],[663,184],[670,184],[672,185],[665,1],[673,186],[675,187],[674,1],[679,188],[682,189],[573,1],[684,190],[680,1],[685,1],[502,191],[501,192],[500,1],[687,193],[688,194],[686,195],[689,196],[690,197],[691,198],[692,199],[693,200],[694,201],[695,202],[696,203],[697,204],[698,205],[699,1],[700,1],[701,190],[703,206],[702,1],[671,1],[704,1],[59,1],[705,1],[677,1],[678,1],[676,207],[681,208],[706,209],[683,1],[707,1],[708,1],[709,181],[710,210],[666,1],[281,1],[261,211],[268,212],[266,212],[262,212],[245,213],[265,212],[264,212],[263,212],[267,214],[269,1],[270,215],[250,216],[256,217],[252,217],[254,217],[255,217],[253,217],[251,217],[249,218],[244,1],[448,1],[247,219],[248,220],[246,1],[434,221],[452,222],[435,222],[433,1],[57,1],[58,1],[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[21,1],[22,1],[4,1],[23,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[56,1],[55,1],[1,1],[575,223],[574,224],[576,225],[322,226],[323,226],[324,227],[276,228],[325,229],[326,230],[327,231],[271,1],[274,232],[272,1],[273,1],[328,233],[329,234],[330,235],[331,236],[332,237],[333,238],[334,238],[335,239],[336,240],[337,241],[338,242],[277,1],[275,1],[339,243],[340,244],[341,245],[375,246],[342,247],[343,1],[344,248],[345,249],[346,250],[347,251],[348,252],[349,253],[350,254],[351,255],[352,256],[353,256],[354,257],[355,1],[356,258],[357,259],[359,260],[358,261],[360,262],[361,263],[362,264],[363,265],[364,266],[365,267],[366,268],[367,269],[368,270],[369,271],[370,272],[371,273],[372,274],[278,1],[279,1],[280,1],[319,275],[320,1],[321,1],[373,276],[374,277],[297,278],[307,279],[296,278],[317,280],[288,281],[287,282],[316,181],[310,283],[315,284],[290,285],[304,286],[289,287],[313,288],[285,289],[284,181],[314,290],[286,291],[291,292],[292,1],[295,292],[282,1],[318,293],[308,294],[299,295],[300,296],[302,297],[298,298],[301,299],[311,181],[293,300],[294,301],[303,302],[283,303],[306,294],[305,292],[309,1],[312,304],[555,305],[632,306],[633,186],[634,306],[549,186],[550,307],[553,308],[548,309],[545,310],[626,311],[552,312],[551,313],[554,314],[547,315],[546,310],[572,316],[571,306],[580,317],[563,306],[635,306],[637,318],[636,224],[638,319],[578,306],[577,320],[569,321],[579,322],[639,323],[590,324],[520,325],[588,326],[466,327],[481,328],[482,329],[522,330],[523,331],[627,332],[628,333],[484,334],[584,335],[583,336],[582,337],[483,338],[587,339],[586,340],[438,341],[439,342],[455,343],[441,344],[437,345],[440,346],[581,306],[585,347],[463,348],[521,1],[541,349],[629,350],[630,1],[631,351],[378,306],[384,352],[379,1],[385,353],[568,354],[565,355],[564,1],[566,306],[570,356],[567,306],[525,357],[532,358],[533,359],[538,360],[534,360],[531,361],[539,362],[537,363],[535,364],[536,365],[527,366],[467,367],[488,368],[489,368],[468,369],[490,370],[491,327],[492,371],[480,372],[494,373],[389,374],[387,306],[469,375],[470,376],[471,377],[472,377],[473,378],[474,379],[475,379],[476,380],[477,380],[478,380],[479,380],[486,381],[487,382],[485,383],[493,384],[388,1],[511,385],[504,386],[509,387],[510,388],[506,389],[508,390],[505,1],[515,391],[436,392],[442,393],[444,394],[443,395],[465,396],[498,397],[514,397],[497,397],[495,398],[459,399],[460,400],[462,401],[461,402],[499,403],[512,404],[464,405],[496,406],[513,407],[540,408],[643,409],[646,410],[648,411],[651,412],[654,413],[657,414],[640,1],[660,415],[644,1],[645,416],[642,417],[647,1],[652,418],[656,419],[655,327],[653,420],[650,421],[649,422],[659,423],[658,424],[641,425],[431,426],[432,427],[524,428],[622,429],[618,430],[620,431],[619,432],[621,433],[617,434],[625,435],[624,436],[595,437],[596,438],[597,438],[603,439],[598,438],[599,438],[591,306],[600,438],[601,438],[602,440],[594,441],[623,442],[604,443],[616,444],[612,445],[605,446],[607,447],[606,448],[608,447],[615,449],[609,450],[610,447],[611,447],[613,451],[614,451],[593,1],[530,452],[516,453],[458,454],[503,455],[507,1],[517,456],[456,457],[453,458],[519,459],[518,460],[454,461],[451,462],[457,463],[430,464],[390,1],[392,465],[391,1],[429,466],[377,467],[526,1],[386,306],[589,1]],"latestChangedDtsFile":"./build/plugins/internal/oidc/index.d.ts","version":"5.9.3"}
\ No newline at end of file
diff --git a/packages/lib/sdk/typedoc.js b/packages/lib/sdk/typedoc.js
index 285bfdf14..6d8b32a0b 100644
--- a/packages/lib/sdk/typedoc.js
+++ b/packages/lib/sdk/typedoc.js
@@ -16,6 +16,17 @@ const typedocOptions = {
"typedoc-plugin-markdown",
"typedoc-plugin-rename-defaults"
],
+ "externalSymbolLinkMappings": {
+ "@trust0/ridb": {
+ "RIDB": "https://github.com/trust0-project/RIDB/blob/main/docs/%40trust0/ridb/classes/RIDB.md",
+ "StorageType": "https://github.com/trust0-project/RIDB/blob/main/docs/%40trust0/ridb/enumerations/StorageType.md"
+ },
+ "@trust0/ridb-core": {
+ "Collection": "https://github.com/trust0-project/RIDB/docs/@trust0/ridb-core/classes/Collection.md",
+ "SchemaTypeRecord": "https://github.com/trust0-project/RIDB/blob/main/docs/%40trust0/ridb-core/type-aliases/SchemaTypeRecord.md",
+ "BaseStorage": "https://github.com/trust0-project/RIDB/blob/main/docs/%40trust0/ridb-core/classes/BaseStorage.md"
+ }
+ },
"strikeDeprecatedPageTitles": true,
"useTsLinkResolution": true,
"hideGenerator": true,
diff --git a/packages/shared/domain/tsconfig.lib.tsbuildinfo b/packages/shared/domain/tsconfig.lib.tsbuildinfo
deleted file mode 100644
index f7a5c1dc6..000000000
--- a/packages/shared/domain/tsconfig.lib.tsbuildinfo
+++ /dev/null
@@ -1 +0,0 @@
-{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbols/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/any/any.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/any/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/literal/literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/literal/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/enum/enum.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/enum/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/function/function.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/function/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/never/never.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/never/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/recursive/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intersect/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/union.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/union/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/tuple/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/error/error.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/error/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/string/string.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/string/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/boolean/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/number/number.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/number/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/integer/integer.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/integer/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/bigint/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/union.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/template-literal/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/indexed/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/iterator/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/promise/promise.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/promise/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/sets/set.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/sets/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/mapped/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/optional.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/optional/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/not/not.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/not/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/regexp/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/record/record.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/record/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/ref/ref.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/ref/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unsafe/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/transform/transform.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/transform/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/static/static.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/static/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/object/object.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/object/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/helpers/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/array/array.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/array/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/date/date.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/date/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/null/null.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/null/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/symbol/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/uint8array/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/undefined/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/unknown/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/void/void.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/void/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/schema.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/schema/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/value.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/clone/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/kind.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/value.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/guard/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/patterns/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/format.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/registry/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/awaited/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/keyof/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/composite/composite.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/composite/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/const/const.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/const/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/deref/deref.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/deref/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/exclude/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extends/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/extract/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/instance-type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/omit/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/parameters/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/partial.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/partial/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/pick/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/required.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/required/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/rest/rest.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/rest/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/return-type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/strict/strict.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/strict/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/json.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/javascript.d.mts","../../../node_modules/@sinclair/typebox/build/esm/type/type/index.d.mts","../../../node_modules/@sinclair/typebox/build/esm/index.d.mts","./src/backup/v0_0_1.ts","./src/backup/index.ts","./src/models/errors/common.ts","./src/utils/guards.ts","./src/models/api.ts","./src/models/didpair.ts","./src/models/mediator.ts","../../../node_modules/@stablelib/random/lib/source/index.d.ts","../../../node_modules/@stablelib/random/lib/source/system.d.ts","../../../node_modules/@stablelib/random/lib/random.d.ts","../../../node_modules/@stablelib/uuid/lib/uuid.d.ts","../../../node_modules/multiformats/dist/src/bases/interface.d.ts","../../../node_modules/multiformats/dist/src/bases/base.d.ts","../../../node_modules/multiformats/dist/src/bases/base64.d.ts","./src/models/messageattachment.ts","./src/models/errors/agent.ts","./src/models/keyproperties.ts","./src/models/keymanagement/signablekey.ts","./src/models/keymanagement/storablekey.ts","./src/models/keymanagement/verifiablekey.ts","./src/models/keymanagement/curve.ts","./src/models/keymanagement/keytypes.ts","./src/models/keymanagement/publickey.ts","./src/models/keymanagement/exportable/jwk.ts","./src/models/keymanagement/exportable/pem.ts","./src/models/keymanagement/exportable/exportablekey.ts","./src/models/keymanagement/exportable/index.ts","./src/models/keymanagement/key.ts","./src/models/keymanagement/privatekey.ts","./src/models/keymanagement/derivablekey.ts","./src/models/keymanagement/keycurve.ts","./src/models/keymanagement/index.ts","./src/models/errors/apollo.ts","./src/models/errors/castor.ts","./src/models/errors/mercury.ts","./src/models/errors/pluto.ts","./src/models/errors/pollux.ts","./src/models/errors.ts","./src/models/message.ts","./src/models/credential.ts","./src/peer-did/peerdid.ts","./src/buildingblocks/pluto.ts","./src/models/did.ts","./src/models/diddocument.ts","./src/models/didresolver.ts","./src/models/didurl.ts","./src/models/keypair.ts","./src/models/linksecret.ts","./src/models/prismdid.ts","./src/models/seed.ts","./src/models/wordlist.ts","./src/models/seedwords.ts","./src/models/signature.ts","./src/models/credentialmetadata.ts","./src/models/index.ts","./src/protocols/keyrestoration.ts","./src/protocols/startable.ts","./src/protocols/index.ts","./src/buildingblocks/apollo.ts","./src/models/derivation/derivationaxis.ts","./src/models/derivation/index.ts","../../../node_modules/@types/google-protobuf/index.d.ts","./src/buildingblocks/castor/protos/google/protobuf/timestamp.ts","./src/buildingblocks/castor/protos/common_models.ts","./src/buildingblocks/castor/protos/node_models.ts","./src/models/derivation/schemas/prismderivation.ts","./src/buildingblocks/castor.ts","./src/buildingblocks/mercury.ts","../../../node_modules/did-resolver/lib/resolver.d.ts","../../../node_modules/did-jwt/lib/encryption/types.d.ts","../../../node_modules/multibase/dist/src/types.d.ts","../../../node_modules/multibase/dist/src/base.d.ts","../../../node_modules/multibase/dist/src/index.d.ts","../../../node_modules/did-jwt/lib/util.d.ts","../../../node_modules/did-jwt/lib/jwt.d.ts","../../../node_modules/did-jwt/lib/signers/simplesigner.d.ts","../../../node_modules/did-jwt/lib/signers/ellipticsigner.d.ts","../../../node_modules/did-jwt/lib/signers/naclsigner.d.ts","../../../node_modules/did-jwt/lib/signers/es256ksigner.d.ts","../../../node_modules/did-jwt/lib/signers/es256signer.d.ts","../../../node_modules/did-jwt/lib/signers/eddsasigner.d.ts","../../../node_modules/@noble/hashes/esm/utils.d.ts","../../../node_modules/@noble/hashes/esm/_md.d.ts","../../../node_modules/@noble/hashes/esm/legacy.d.ts","../../../node_modules/@noble/hashes/esm/ripemd160.d.ts","../../../node_modules/did-jwt/lib/digest.d.ts","../../../node_modules/did-jwt/lib/encryption/jwe.d.ts","../../../node_modules/did-jwt/lib/encryption/xc20pdir.d.ts","../../../node_modules/did-jwt/lib/encryption/x25519-ecdh-es.d.ts","../../../node_modules/did-jwt/lib/encryption/x25519-ecdh-1pu.d.ts","../../../node_modules/did-jwt/lib/encryption/ecdh.d.ts","../../../node_modules/did-jwt/lib/encryption/xc20pencryption.d.ts","../../../node_modules/did-jwt/lib/encryption/createencrypter.d.ts","../../../node_modules/did-jwt/lib/errors.d.ts","../../../node_modules/did-jwt/lib/index.d.ts","./src/utils/jwt.ts","./src/index.ts","../../../node_modules/@types/google-protobuf/google/protobuf/timestamp_pb.d.ts","./src/buildingblocks/castor/protos/common_models_pb.d.ts","./src/buildingblocks/castor/protos/node_models_pb.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/@types/node/node_modules/undici-types/utility.d.ts","../../../node_modules/@types/node/node_modules/undici-types/header.d.ts","../../../node_modules/@types/node/node_modules/undici-types/readable.d.ts","../../../node_modules/@types/node/node_modules/undici-types/fetch.d.ts","../../../node_modules/@types/node/node_modules/undici-types/formdata.d.ts","../../../node_modules/@types/node/node_modules/undici-types/connector.d.ts","../../../node_modules/@types/node/node_modules/undici-types/client-stats.d.ts","../../../node_modules/@types/node/node_modules/undici-types/client.d.ts","../../../node_modules/@types/node/node_modules/undici-types/errors.d.ts","../../../node_modules/@types/node/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/@types/node/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/@types/node/node_modules/undici-types/global-origin.d.ts","../../../node_modules/@types/node/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/@types/node/node_modules/undici-types/pool.d.ts","../../../node_modules/@types/node/node_modules/undici-types/handlers.d.ts","../../../node_modules/@types/node/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/@types/node/node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/@types/node/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/@types/node/node_modules/undici-types/agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-client.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/@types/node/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/@types/node/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/@types/node/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/@types/node/node_modules/undici-types/api.d.ts","../../../node_modules/@types/node/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/@types/node/node_modules/undici-types/interceptors.d.ts","../../../node_modules/@types/node/node_modules/undici-types/util.d.ts","../../../node_modules/@types/node/node_modules/undici-types/cookies.d.ts","../../../node_modules/@types/node/node_modules/undici-types/patch.d.ts","../../../node_modules/@types/node/node_modules/undici-types/websocket.d.ts","../../../node_modules/@types/node/node_modules/undici-types/eventsource.d.ts","../../../node_modules/@types/node/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/@types/node/node_modules/undici-types/content-type.d.ts","../../../node_modules/@types/node/node_modules/undici-types/cache.d.ts","../../../node_modules/@types/node/node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/bn.js/index.d.ts","./src/models/ecconfig.ts","./src/models/derivation/schemas/deprecatedderivation.ts","./src/models/errors/connection.ts","./src/models/revocation/index.ts","./src/protocols/payload.ts","../../../node_modules/@types/aria-query/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/deep-eql/index.d.ts","../../../node_modules/assertion-error/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/clone/index.d.ts","../../../node_modules/@types/common-tags/index.d.ts","../../../node_modules/@types/cors/index.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@types/elliptic/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/estree-jsx/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/figlet/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/jsonld/jsonld.d.ts","../../../node_modules/@types/jsonld/jsonld-spec.d.ts","../../../node_modules/@types/jsonld/index.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/lokijs/index.d.ts","../../../node_modules/@types/long/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/mdx/types.d.ts","../../../node_modules/@types/mdx/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/pako/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/prismjs/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts","../../../node_modules/@types/react-redux/node_modules/@types/react/global.d.ts","../../../node_modules/@types/react-redux/node_modules/@types/react/index.d.ts","../../../node_modules/redux/index.d.ts","../../../node_modules/@types/react-redux/node_modules/@types/hoist-non-react-statics/index.d.ts","../../../node_modules/@types/react-redux/index.d.ts","../../../node_modules/@types/simple-peer/index.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/webidl-conversions/index.d.ts","../../../node_modules/@types/whatwg-url/index.d.ts","../../../node_modules/@types/ws/index.d.ts"],"fileIdsList":[[325,346,409,417,421,424,426,427,428,441],[325,326,346,409,417,421,424,426,427,428,441],[327,346,409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441],[61,63,67,70,72,74,76,78,80,82,84,88,92,94,96,98,100,102,104,106,114,119,121,123,125,127,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,167,170,174,176,179,181,186,188,190,192,194,198,204,208,210,217,221,223,226,230,233,235,237,239,242,346,409,417,421,424,426,427,428,441],[61,167,346,409,417,421,424,426,427,428,441],[62,346,409,417,421,424,426,427,428,441],[61,144,148,167,346,409,417,421,424,426,427,428,441],[149,346,409,417,421,424,426,427,428,441],[61,144,167,346,409,417,421,424,426,427,428,441],[66,346,409,417,421,424,426,427,428,441],[88,92,123,167,346,409,417,421,424,426,427,428,441],[180,346,409,417,421,424,426,427,428,441],[105,346,409,417,421,424,426,427,428,441],[99,346,409,417,421,424,426,427,428,441],[168,169,346,409,417,421,424,426,427,428,441],[167,346,409,417,421,424,426,427,428,441],[82,88,119,125,146,148,167,186,346,409,417,421,424,426,427,428,441],[187,346,409,417,421,424,426,427,428,441],[63,70,76,80,82,94,106,146,148,152,154,156,158,160,162,167,346,409,417,421,424,426,427,428,441],[189,346,409,417,421,424,426,427,428,441],[74,94,148,167,346,409,417,421,424,426,427,428,441],[191,346,409,417,421,424,426,427,428,441],[61,70,72,130,144,148,167,346,409,417,421,424,426,427,428,441],[73,346,409,417,421,424,426,427,428,441],[151,346,409,417,421,424,426,427,428,441],[67,74,80,88,92,94,121,123,138,146,148,150,167,346,409,417,421,424,426,427,428,441],[193,346,409,417,421,424,426,427,428,441],[61,76,167,346,409,417,421,424,426,427,428,441],[77,346,409,417,421,424,426,427,428,441],[95,346,409,417,421,424,426,427,428,441],[127,146,167,196,346,409,417,421,424,426,427,428,441],[114,167,196,346,409,417,421,424,426,427,428,441],[82,92,114,127,144,148,167,195,197,346,409,417,421,424,426,427,428,441],[195,196,197,346,409,417,421,424,426,427,428,441],[96,167,346,409,417,421,424,426,427,428,441],[76,127,146,148,167,201,346,409,417,421,424,426,427,428,441],[127,146,167,201,346,409,417,421,424,426,427,428,441],[92,127,144,148,167,200,202,346,409,417,421,424,426,427,428,441],[199,200,201,202,203,346,409,417,421,424,426,427,428,441],[127,146,167,206,346,409,417,421,424,426,427,428,441],[114,167,206,346,409,417,421,424,426,427,428,441],[82,92,114,127,144,148,167,205,207,346,409,417,421,424,426,427,428,441],[205,206,207,346,409,417,421,424,426,427,428,441],[79,346,409,417,421,424,426,427,428,441],[171,172,173,346,409,417,421,424,426,427,428,441],[61,63,67,70,74,76,80,82,84,88,92,94,98,100,102,104,106,114,121,123,127,130,132,134,136,138,140,142,146,150,152,154,156,158,160,162,164,167,346,409,417,421,424,426,427,428,441],[61,63,67,70,74,76,80,82,84,88,92,94,96,98,100,102,104,106,114,121,123,127,130,132,134,136,138,140,142,146,150,152,154,156,158,160,162,164,167,346,409,417,421,424,426,427,428,441],[82,146,167,346,409,417,421,424,426,427,428,441],[147,346,409,417,421,424,426,427,428,441],[115,116,117,118,346,409,417,421,424,426,427,428,441],[117,127,146,148,167,346,409,417,421,424,426,427,428,441],[115,119,127,146,167,346,409,417,421,424,426,427,428,441],[76,92,102,104,114,167,346,409,417,421,424,426,427,428,441],[82,84,88,92,94,115,116,118,127,146,148,150,167,346,409,417,421,424,426,427,428,441],[209,346,409,417,421,424,426,427,428,441],[74,167,346,409,417,421,424,426,427,428,441],[103,346,409,417,421,424,426,427,428,441],[85,86,87,346,409,417,421,424,426,427,428,441],[70,82,85,130,167,346,409,417,421,424,426,427,428,441],[82,85,167,346,409,417,421,424,426,427,428,441],[167,212,346,409,417,421,424,426,427,428,441],[211,212,213,214,215,216,346,409,417,421,424,426,427,428,441],[76,127,146,148,167,212,346,409,417,421,424,426,427,428,441],[76,92,114,127,167,211,346,409,417,421,424,426,427,428,441],[120,346,409,417,421,424,426,427,428,441],[182,183,184,185,346,409,417,421,424,426,427,428,441],[127,146,148,167,183,346,409,417,421,424,426,427,428,441],[84,88,92,94,125,146,148,150,167,346,409,417,421,424,426,427,428,441],[76,92,102,127,148,167,182,184,346,409,417,421,424,426,427,428,441],[75,346,409,417,421,424,426,427,428,441],[64,65,126,346,409,417,421,424,426,427,428,441],[61,146,167,346,409,417,421,424,426,427,428,441],[64,65,67,70,74,76,78,80,88,92,94,119,121,123,125,130,146,148,150,167,346,409,417,421,424,426,427,428,441],[81,346,409,417,421,424,426,427,428,441],[131,346,409,417,421,424,426,427,428,441],[153,346,409,417,421,424,426,427,428,441],[101,346,409,417,421,424,426,427,428,441],[145,346,409,417,421,424,426,427,428,441],[61,70,130,144,148,167,346,409,417,421,424,426,427,428,441],[218,219,220,346,409,417,421,424,426,427,428,441],[127,146,167,219,346,409,417,421,424,426,427,428,441],[127,146,148,167,219,346,409,417,421,424,426,427,428,441],[84,88,92,119,127,146,148,167,218,220,346,409,417,421,424,426,427,428,441],[128,129,346,409,417,421,424,426,427,428,441],[127,128,146,346,409,417,421,424,426,427,428,441],[61,127,129,148,167,346,409,417,421,424,426,427,428,441],[222,346,409,417,421,424,426,427,428,441],[80,94,148,167,346,409,417,421,424,426,427,428,441],[224,225,346,409,417,421,424,426,427,428,441],[127,146,148,167,224,346,409,417,421,424,426,427,428,441],[70,72,84,88,92,127,130,146,148,167,225,346,409,417,421,424,426,427,428,441],[175,346,409,417,421,424,426,427,428,441],[227,228,229,346,409,417,421,424,426,427,428,441],[127,146,167,228,346,409,417,421,424,426,427,428,441],[127,146,148,167,228,346,409,417,421,424,426,427,428,441],[84,88,92,119,127,146,148,167,227,229,346,409,417,421,424,426,427,428,441],[122,346,409,417,421,424,426,427,428,441],[71,346,409,417,421,424,426,427,428,441],[70,130,167,346,409,417,421,424,426,427,428,441],[68,69,346,409,417,421,424,426,427,428,441],[68,127,146,346,409,417,421,424,426,427,428,441],[61,69,127,148,167,346,409,417,421,424,426,427,428,441],[135,346,409,417,421,424,426,427,428,441],[61,63,76,78,82,92,98,102,104,114,134,144,146,148,167,346,409,417,421,424,426,427,428,441],[83,346,409,417,421,424,426,427,428,441],[137,346,409,417,421,424,426,427,428,441],[133,346,409,417,421,424,426,427,428,441],[177,178,346,409,417,421,424,426,427,428,441],[231,232,346,409,417,421,424,426,427,428,441],[127,146,148,167,231,346,409,417,421,424,426,427,428,441],[70,72,84,88,92,127,130,146,148,167,232,346,409,417,421,424,426,427,428,441],[234,346,409,417,421,424,426,427,428,441],[88,92,94,167,346,409,417,421,424,426,427,428,441],[236,346,409,417,421,424,426,427,428,441],[80,167,346,409,417,421,424,426,427,428,441],[63,67,74,76,78,80,84,88,92,94,98,100,102,104,106,114,121,123,132,134,136,138,146,150,152,154,156,158,160,162,164,165,346,409,417,421,424,426,427,428,441],[165,166,346,409,417,421,424,426,427,428,441],[61,346,409,417,421,424,426,427,428,441],[124,346,409,417,421,424,426,427,428,441],[143,346,409,417,421,424,426,427,428,441],[67,70,74,78,80,84,88,92,94,121,123,130,132,136,138,140,142,146,148,150,167,346,409,417,421,424,426,427,428,441],[238,346,409,417,421,424,426,427,428,441],[97,346,409,417,421,424,426,427,428,441],[155,346,409,417,421,424,426,427,428,441],[60,346,409,417,421,424,426,427,428,441],[76,92,96,98,100,102,104,106,107,114,346,409,417,421,424,426,427,428,441],[76,92,96,100,107,108,114,148,346,409,417,421,424,426,427,428,441],[107,108,109,110,111,112,113,346,409,417,421,424,426,427,428,441],[96,346,409,417,421,424,426,427,428,441],[96,114,346,409,417,421,424,426,427,428,441],[76,92,98,100,102,106,114,148,346,409,417,421,424,426,427,428,441],[61,76,82,92,98,100,102,104,106,110,144,148,167,346,409,417,421,424,426,427,428,441],[76,92,112,144,148,346,409,417,421,424,426,427,428,441],[141,346,409,417,421,424,426,427,428,441],[93,346,409,417,421,424,426,427,428,441],[240,241,346,409,417,421,424,426,427,428,441],[67,74,80,106,121,123,134,152,156,158,160,164,167,181,192,210,223,237,240,346,409,417,421,424,426,427,428,441],[63,70,72,76,78,82,84,88,92,94,98,100,102,104,114,119,127,130,132,136,138,140,142,146,150,154,162,167,186,188,190,194,198,204,208,217,221,226,230,233,235,346,409,417,421,424,426,427,428,441],[157,346,409,417,421,424,426,427,428,441],[159,346,409,417,421,424,426,427,428,441],[89,90,91,346,409,417,421,424,426,427,428,441],[70,82,89,130,167,346,409,417,421,424,426,427,428,441],[82,89,167,346,409,417,421,424,426,427,428,441],[161,346,409,417,421,424,426,427,428,441],[139,346,409,417,421,424,426,427,428,441],[163,346,409,417,421,424,426,427,428,441],[251,252,346,409,417,421,424,426,427,428,441],[251,346,409,417,421,424,426,427,428,441],[253,346,409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,466],[346,409,417,421,423,424,426,427,428,441,466,474],[346,409,417,421,424,426,427,428,441,476,477],[346,409,417,421,423,424,426,427,428,441,466],[346,409,417,421,424,426,427,428,441,482],[346,409,417,421,424,426,427,428,441,467],[346,409,417,421,424,426,427,428,441,485,486],[346,409,417,420,421,423,424,426,427,428,441,466,487,488,489],[346,409,417,421,424,426,427,428,441,475,488,490,492],[305,346,409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,495],[346,409,417,421,424,426,427,428,441,499,500],[346,409,417,421,424,426,427,428,441,499],[346,409,417,421,424,426,427,428,441,502,504,505,506,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,505,506,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,503,504,505,506,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,506,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,507,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,508,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,509,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,510,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,511,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,510,512,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,510,511,513,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,510,511,512,514],[346,409,417,421,424,426,427,428,441,502,503,504,505,506,507,508,509,510,511,512,513],[346,409,417,421,424,426,427,428,441,518,519],[346,406,407,409,417,421,424,426,427,428,441],[346,408,409,417,421,424,426,427,428,441],[409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,449],[346,409,410,415,417,420,421,424,426,427,428,430,441,446,458],[346,409,410,411,417,420,421,424,426,427,428,441],[346,409,412,417,421,424,426,427,428,441,459],[346,409,413,414,417,421,424,426,427,428,432,441],[346,409,414,417,421,424,426,427,428,441,446,455],[346,409,415,417,420,421,424,426,427,428,430,441],[346,408,409,416,417,421,424,426,427,428,441],[346,409,417,418,421,424,426,427,428,441],[346,409,417,419,420,421,424,426,427,428,441],[346,408,409,417,420,421,424,426,427,428,441],[346,409,417,420,421,422,424,426,427,428,441,446,458],[346,409,417,420,421,422,424,426,427,428,441,446,449],[346,396,409,417,420,421,423,424,426,427,428,430,441,446,458],[346,409,417,420,421,423,424,426,427,428,430,441,446,455,458],[346,409,417,421,423,424,425,426,427,428,441,446,455,458],[344,345,346,347,348,349,350,351,352,353,354,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465],[346,409,417,420,421,424,426,427,428,441],[346,409,417,421,424,426,428,441],[346,409,417,421,424,426,427,428,429,441,458],[346,409,417,420,421,424,426,427,428,430,441,446],[346,361,364,367,368,409,417,421,424,426,427,428,441,458],[346,364,409,417,421,424,426,427,428,441,446,458],[346,364,368,409,417,421,424,426,427,428,441,458],[346,409,417,421,424,426,427,428,441,446],[346,358,409,417,421,424,426,427,428,441],[346,362,409,417,421,424,426,427,428,441],[346,360,361,364,409,417,421,424,426,427,428,441,458],[346,409,417,421,424,426,427,428,430,441,455],[346,358,409,417,421,424,426,427,428,441,466],[346,360,364,409,417,421,424,426,427,428,430,441,458],[346,355,356,357,359,363,409,417,420,421,424,426,427,428,441,446,458],[346,364,373,381,409,417,421,424,426,427,428,441],[346,356,362,409,417,421,424,426,427,428,441],[346,364,390,391,409,417,421,424,426,427,428,441],[346,356,359,364,409,417,421,424,426,427,428,441,449,458,466],[346,364,409,417,421,424,426,427,428,441],[346,360,364,409,417,421,424,426,427,428,441,458],[346,355,409,417,421,424,426,427,428,441],[346,358,359,360,362,363,364,365,366,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,391,392,393,394,395,409,417,421,424,426,427,428,441],[346,364,383,386,409,417,421,424,426,427,428,441],[346,364,373,374,375,409,417,421,424,426,427,428,441],[346,362,364,374,376,409,417,421,424,426,427,428,441],[346,363,409,417,421,424,426,427,428,441],[346,356,358,364,409,417,421,424,426,427,428,441],[346,364,368,374,376,409,417,421,424,426,427,428,441],[346,368,409,417,421,424,426,427,428,441],[346,362,364,367,409,417,421,424,426,427,428,441,458],[346,356,360,364,373,409,417,421,424,426,427,428,441],[346,364,383,409,417,421,424,426,427,428,441],[346,376,409,417,421,424,426,427,428,441],[346,358,364,390,409,417,421,424,426,427,428,441,449,464,466],[346,409,417,421,424,426,427,428,432,441],[346,409,417,421,424,426,427,428,433,441],[346,409,417,420,421,424,426,427,428,436,441],[346,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465],[346,409,417,421,424,426,427,428,438,441],[346,409,417,421,424,426,427,428,439,441],[346,409,414,417,421,424,426,427,428,430,441,449],[346,409,417,420,421,424,426,427,428,441,442],[346,409,417,421,424,426,427,428,441,443,459,462],[346,409,417,420,421,424,426,427,428,441,446,448,449],[346,409,417,421,424,426,427,428,441,447,449],[346,409,417,421,424,426,427,428,441,449,459],[346,409,417,421,424,426,427,428,441,450],[346,406,409,417,421,424,426,427,428,441,446,452,458],[346,409,417,421,424,426,427,428,441,446,451],[346,409,417,420,421,424,426,427,428,441,453,454],[346,409,417,421,424,426,427,428,441,453,454],[346,409,414,417,421,424,426,427,428,430,441,446,455],[346,409,417,421,424,426,427,428,441,456],[346,409,417,421,424,426,427,428,430,441,457],[346,409,417,421,423,424,426,427,428,439,441,458],[346,409,417,421,424,426,427,428,441,459,460],[346,409,414,417,421,424,426,427,428,441,460],[346,409,417,421,424,426,427,428,441,446,461],[346,409,417,421,424,426,427,428,429,441,462],[346,409,417,421,424,426,427,428,441,463],[346,409,412,417,421,424,426,427,428,441],[346,409,414,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,459],[346,396,409,417,421,424,426,427,428,441],[346,409,417,421,424,426,427,428,441,458],[346,409,417,421,424,426,427,428,441,464],[346,409,417,421,424,426,427,428,436,441],[346,409,417,421,424,426,427,428,441,454],[346,396,409,417,420,421,422,424,426,427,428,436,441,446,449,458,461,462,464],[346,409,417,421,424,426,427,428,441,446,465],[346,409,417,421,424,426,427,428,441,527],[346,409,417,421,424,426,427,428,441,530,531,532],[346,409,417,421,424,426,427,428,441,530],[346,409,417,421,424,426,427,428,441,526,529],[346,409,417,421,424,426,427,428,441,524,525,526],[346,409,417,421,424,426,427,428,441,446,466],[346,409,417,421,423,424,426,427,428,441,466,491],[346,409,417,420,421,423,424,425,426,427,428,441,446,455,458,465,466],[325,328,346,409,417,421,424,426,427,428,441],[313,346,409,417,421,424,426,427,428,441],[317,346,409,417,421,424,426,427,428,441],[312,313,346,409,417,421,424,426,427,428,441],[313,317,318,319,320,321,322,323,324,329,330,331,332,333,334,335,336,337,346,409,417,421,424,426,427,428,441],[312,317,346,409,417,421,424,426,427,428,441],[318,346,409,417,421,424,426,427,428,441],[312,313,316,346,409,417,421,424,426,427,428,441],[314,346,409,417,421,424,426,427,428,441],[314,315,346,409,417,421,424,426,427,428,441],[255,346,409,417,421,424,426,427,428,441],[256,346,409,417,421,424,426,427,428,441],[244,346,409,417,421,424,426,427,428,441],[243,346,409,417,421,424,426,427,428,441],[260,294,298,346,409,417,421,424,426,427,428,441],[298,309,346,409,417,421,424,426,427,428,441],[305,306,346,409,417,421,424,426,427,428,441],[305,341,346,409,417,421,424,426,427,428,441],[305,306,307,346,409,417,421,424,426,427,428,441],[305,341,342,346,409,417,421,424,426,427,428,441],[282,346,409,417,421,424,426,427,428,441],[245,247,249,250,254,282,283,284,298,301,346,409,417,421,424,426,427,428,441],[244,245,247,284,285,298,301,302,310,311,339,346,409,417,421,424,426,427,428,441],[247,346,409,417,421,424,426,427,428,441],[285,346,409,417,421,424,426,427,428,441],[283,285,346,409,417,421,424,426,427,428,441],[281,346,409,417,421,424,426,427,428,441],[303,346,409,417,421,424,426,427,428,441],[281,303,304,346,409,417,421,424,426,427,428,441],[281,303,304,308,346,409,417,421,424,426,427,428,441],[277,285,346,409,417,421,424,426,427,428,441],[247,275,286,346,409,417,421,424,426,427,428,441],[286,346,409,417,421,424,426,427,428,441],[287,346,409,417,421,424,426,427,428,441],[246,259,276,277,278,279,280,346,409,417,421,424,426,427,428,441],[246,247,275,346,409,417,421,424,426,427,428,441],[246,346,409,417,421,424,426,427,428,441],[248,249,250,258,260,275,281,282,283,286,287,288,289,290,291,292,293,294,295,296,297,346,409,417,421,424,426,427,428,441],[272,346,409,417,421,424,426,427,428,441],[257,266,267,268,271,272,346,409,417,421,424,426,427,428,441],[267,268,269,346,409,417,421,424,426,427,428,441],[247,257,260,264,266,272,346,409,417,421,424,426,427,428,441],[271,346,409,417,421,424,426,427,428,441],[261,262,263,264,265,266,270,271,272,273,274,346,409,417,421,424,426,427,428,441],[260,261,262,263,264,265,270,273,346,409,417,421,424,426,427,428,441],[264,346,409,417,421,424,426,427,428,441],[260,266,271,285,346,409,417,421,424,426,427,428,441],[260,275,346,409,417,421,424,426,427,428,441],[247,257,258,281,285,286,298,346,409,417,421,424,426,427,428,441],[254,257,340,346,409,417,421,424,426,427,428,441],[275,281,286,346,409,417,421,424,426,427,428,441],[293,294,346,409,417,421,424,426,427,428,441],[298,346,409,417,421,424,426,427,428,441],[299,300,346,409,417,421,424,426,427,428,441],[247,257,280,338,346,409,417,421,424,426,427,428,441]],"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":"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":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"b104e2da53231a529373174880dc0abfbc80184bb473b6bf2a9a0746bebb663d","impliedFormat":99},{"version":"3d4bb4d84af5f0b348f01c85537da1c7afabc174e48806c8b20901377c57b8e4","impliedFormat":99},{"version":"a2500b15294325d9784a342145d16ef13d9efb1c3c6cb4d89934b2c0d521b4ab","impliedFormat":99},{"version":"79d5c409e84764fabdd276976a31928576dcf9aea37be3b5a81f74943f01f3ff","impliedFormat":99},{"version":"8ea020ea63ecc981b9318fc532323e31270c911a7ade4ba74ab902fcf8281c45","impliedFormat":99},{"version":"c81e1a9b03e4de1225b33ac84aaf50a876837057828e0806d025daf919bf2d51","impliedFormat":99},{"version":"bb7264d8bd6152524f2ef5dae5c260ae60d459bf406202258bd0ce57c79e5a6d","impliedFormat":99},{"version":"fb66165c4976bc21a4fde14101e36c43d46f907489b7b6a5f2a2679108335d4a","impliedFormat":99},{"version":"628c2e0a0b61be3e44f296083e6af9b5a9b6881037dd43e7685ee473930a4404","impliedFormat":99},{"version":"4776f1e810184f538d55c5da92da77f491999054a1a1ee69a2d995ab2e8d1bc0","impliedFormat":99},{"version":"11544c4e626eab113df9432e97a371693c98c17ae4291d2ad425af5ef00e580b","impliedFormat":99},{"version":"e1847b81166d25f29213d37115253c5b82ec9ee78f19037592aa173e017636d5","impliedFormat":99},{"version":"fe0bd60f36509711c4a69c0e00c0111f5ecdc685e6c1a2ae99bd4d56c76c07fc","impliedFormat":99},{"version":"b8f3f4ee9aae88a9cec9797d166209eb2a7e4beb8a15e0fc3c8b90c9682c337d","impliedFormat":99},{"version":"ea3c4f5121fe2e86101c155ebe60b435c729027ae50025b2a4e1d12a476002ae","impliedFormat":99},{"version":"372db10bea0dbe1f8588f82b339152b11847e6a4535d57310292660c8a9acfc5","impliedFormat":99},{"version":"6f9fba6349c16eed21d139d5562295e8d5aafa5abe6e8ebcde43615a80c69ac1","impliedFormat":99},{"version":"1474533e27d0e3e45a417ea153d4612f0adbff055f244a29606a1fae6db56cda","impliedFormat":99},{"version":"c7fd8a79d0495955d55bfea34bbdb85235b0f27b417a81afc395655ef43d091d","impliedFormat":99},{"version":"987405949bfafbb1c93d976c3352fe33bfb85303a79fc5d9588b681e4af6c3b3","impliedFormat":99},{"version":"867bc1f5a168fd86d12d828dfafd77c557f13b4326588615b19e301f6856f70c","impliedFormat":99},{"version":"6114545678bb75e581982c990597ca3ba7eeef185256a14c906edfc949db2cd1","impliedFormat":99},{"version":"5c8625f8dbbd94ab6ca171d621049c810cce4fce6ec1fd1c24c331d9858dce17","impliedFormat":99},{"version":"0dc7ae20eab8097b0c7a48b5833f6329e976f88af26055cdae6337141ff2c12e","impliedFormat":99},{"version":"76b6db79c0f5b326ff98b15829505efd25d36ce436b47fe59781ac9aec0d7f1b","impliedFormat":99},{"version":"af36e5f207299ba2013f981dffacd4a04cdce2dd4bd255fff084e7257bf8b947","impliedFormat":99},{"version":"26dcf7dca456b2271d6c361b635eb8b4c8ae7d3e2a264dcc0c6dbcf70be3eb4b","impliedFormat":99},{"version":"d17d9e4920059ff855fade9b7c2c379a64fd958275e628d2be5b3ba3f3634d60","impliedFormat":99},{"version":"2e1a163ab5b5c2640d7f5a100446bbcaeda953a06439c901b2ae307f7088dc30","impliedFormat":99},{"version":"f0b3406d2bc2c262f218c42a125832e026997278a890ef3549fa49e62177ce86","impliedFormat":99},{"version":"73c83e8954617ff3e2a974e9d498ae6c031b72e60d552772f812e22a01f2a0f0","impliedFormat":99},{"version":"397dec7580d484487d7d6d53faa5dcdde5f1ae8a98f20b6665d3f44aed5fd918","impliedFormat":99},{"version":"e0f5707d91bb950edb6338e83dd31b6902b6620018f6aa5fd0f504c2b0ea61f5","impliedFormat":99},{"version":"5fc6cb5dbe45bc1bb055b0c6382b72d8b4cdb7c0ae1f540c401d890f4eb8f7b2","impliedFormat":99},{"version":"627e2ac450dcd71bdd8c1614b5d3a02b214ad92a1621ebeb2642dffb9be93715","impliedFormat":99},{"version":"813514ef625cb8fc3befeec97afddfb3b80b80ced859959339d99f3ad538d8fe","impliedFormat":99},{"version":"624f8a7a76f26b9b0af9524e6b7fa50f492655ab7489c3f5f0ddd2de5461b0c3","impliedFormat":99},{"version":"d6b6fa535b18062680e96b2f9336e301312a2f7bdaeb47c4a5b3114c3de0c08b","impliedFormat":99},{"version":"818e8f95d3851073e92bcad7815367dd8337863aaf50d79e703ac479cca0b6a4","impliedFormat":99},{"version":"29b716ff24d0db64060c9a90287f9de2863adf0ef1efef71dbaba33ebc20b390","impliedFormat":99},{"version":"2530c36527a988debd39fed6504d8c51a3e0f356aaf2d270edd492f4223bdeff","impliedFormat":99},{"version":"2553cfd0ec0164f3ea228c5badd1ba78607d034fc2dec96c781026a28095204b","impliedFormat":99},{"version":"6e943693dbc91aa2c6c520e7814316469c8482d5d93df51178d8ded531bb29ee","impliedFormat":99},{"version":"e74e1249b69d9f49a6d9bfa5305f2a9f501e18de6ab0829ab342abf6d55d958b","impliedFormat":99},{"version":"16f60d6924a9e0b4b9961e42b5e586b28ffd57cdfa236ae4408f7bed9855a816","impliedFormat":99},{"version":"493c2d42f1b6cfe3b13358ff3085b90fa9a65d4858ea4d02d43772c0795006ec","impliedFormat":99},{"version":"3702c7cbcd937d7b96e5376fe562fd77b4598fe93c7595ee696ebbfefddac70f","impliedFormat":99},{"version":"848621f6b65b3963f86c51c8b533aea13eadb045da52515e6e1407dea19b8457","impliedFormat":99},{"version":"c15b679c261ce17551e17a40a42934aeba007580357f1a286c79e8e091ee3a76","impliedFormat":99},{"version":"156108cedad653a6277b1cb292b18017195881f5fe837fb7f9678642da8fa8f2","impliedFormat":99},{"version":"0a0bb42c33e9faf63e0b49a429e60533ab392f4f02528732ecbd62cfc2d54c10","impliedFormat":99},{"version":"70fa95cd7cb511e55c9262246de1f35f3966c50e8795a147a93c538db824cdc8","impliedFormat":99},{"version":"bc28d8cec56b5f91c8a2ec131444744b13f63c53ce670cb31d4dffdfc246ba34","impliedFormat":99},{"version":"7bd87c0667376e7d6325ada642ec29bf28e940cb146d21d270cac46b127e5313","impliedFormat":99},{"version":"0318969deede7190dd3567433a24133f709874c5414713aac8b706a5cb0fe347","impliedFormat":99},{"version":"8e291b3a51b9f91f25cfafb3e8afdaf3b844d6930baa1a8264815c1d924ac135","impliedFormat":99},{"version":"34fae51dacc530b30d0a5239a1b0c1fd0adb9801e66dda9ad451c5523e009221","impliedFormat":99},{"version":"bb2bffc0b8ff50c3e71da5e937ff8a0cb3c4ba7e0e74211e5a384f2e20e17284","impliedFormat":99},{"version":"75662b13c8ab4f12814c0c8edaf068f2c53bcac8bdb340ed2d7a6fb2bab207ae","impliedFormat":99},{"version":"e125fdbea060b339306c30c33597b3c677e00c9e78cd4bf9a15b3fb9474ebb5d","impliedFormat":99},{"version":"ee141f547382d979d56c3b059fc12b01a88b7700d96f085e74268bc79f48c40a","impliedFormat":99},{"version":"1d64132735556e2a1823044b321c929ad4ede45b81f3e04e0e23cf76f4cbf638","impliedFormat":99},{"version":"8b4a3550a3cac035fe928701bc046f5fac76cca32c7851376424b37312f4b4ca","impliedFormat":99},{"version":"5fd7f9b36f48d6308feba95d98817496274be1939a9faa5cd9ed0f8adf3adf3a","impliedFormat":99},{"version":"15a8f79b1557978d752c0be488ee5a70daa389638d79570507a3d4cfc620d49d","impliedFormat":99},{"version":"d4c14ea7d76619ef4244e2c220c2caeec78d10f28e1490eeac89df7d2556b79f","impliedFormat":99},{"version":"8096207a00346207d9baf7bc8f436ef45a20818bf306236a4061d6ccc45b0372","impliedFormat":99},{"version":"040f2531989793c4846be366c100455789834ba420dfd6f36464fe73b68e35b6","impliedFormat":99},{"version":"c5c7020a1d11b7129eb8ddffb7087f59c83161a3792b3560dcd43e7528780ab0","impliedFormat":99},{"version":"d1f97ea020060753089059e9b6de1ab05be4cb73649b595c475e2ec197cbce0f","impliedFormat":99},{"version":"b5ddca6fd676daf45113412aa2b8242b8ee2588e99d68c231ab7cd3d88b392fa","impliedFormat":99},{"version":"6ce0450eba616d21a4c31b31dedaefea33791fbaa2a2d25666de6eb2e6771ce4","impliedFormat":99},{"version":"f851083fc20ecc00ff8aaf91ba9584e924385768940654518705423822de09e8","impliedFormat":99},{"version":"0c1eed961c15e1242389b0497628709f59d7afd50d5a1955daa10b5bd3b68fc2","impliedFormat":99},{"version":"5e07a9f7f130e5404c202bf7b0625a624c9d266b980576f5d62608ef21d96eab","impliedFormat":99},{"version":"ef0dbe208370d16832d01a59c1d552ccd3e953550c84d5cb0751e7660b63a2af","impliedFormat":99},{"version":"a8a9459dd76ef5eeef768da4ce466c5539d73b26334131bd1dd6cbd74ce48fa2","impliedFormat":99},{"version":"b69190f5964deecfb13ddc03ae35cc563ac21ddc27f3fbdbcfdb590422a7c05c","impliedFormat":99},{"version":"3d6d570b5f36cf08d9ad8d93db7ddc90fa7ccc0c177de2e9948bb23cde805d32","impliedFormat":99},{"version":"786f3f186af874ea3e34c2aeef56a0beab90926350f3375781c0a3aa844cd76e","impliedFormat":99},{"version":"63dbc8fa1dcbfb8af6c48f004a1d31988f42af171596c5cca57e4c9d5000d291","impliedFormat":99},{"version":"e7d5132674ddcd01673b0517eebc44c17f478126284c3eabd0a552514cb992bb","impliedFormat":99},{"version":"a820710a917f66fa88a27564465a033c393e1322a61eb581d1f20e0680b498f1","impliedFormat":99},{"version":"6e4d416bf7d72dabe2766e51c8e3d5d156c29b64aa61733aee602e4631919b82","impliedFormat":99},{"version":"6c052f137bab4ba9ed6fd76f88a8d00484df9d5cb921614bb4abe60f51970447","impliedFormat":99},{"version":"f304ff52a11d8e94ad42e613a6be843f9f100b349b9bd887e95116893252a99c","impliedFormat":99},{"version":"7d5c2df0c3706f45b77970232aa3a38952561311ccc8fcb7591e1b7a469ad761","impliedFormat":99},{"version":"2c41502b030205006ea3849c83063c4327342fbf925d8ed93b18309428fdd832","impliedFormat":99},{"version":"d12eecede214f8807a719178d7d7e2fc32f227d4705d123c3f45d8a3b5765f38","impliedFormat":99},{"version":"800c2935a9e506ac8cd75bfa709e3b4ecfb0f266aae342b02cf74176471cac5a","impliedFormat":99},{"version":"825674da70d892b7e32c53f844c5dfce5b15ea67ceda4768f752eed2f02d8077","impliedFormat":99},{"version":"2c676d27ef1afbc8f8e514bb46f38550adf177ae9b0102951111116fa7ea2e10","impliedFormat":99},{"version":"a6072f5111ea2058cb4d592a4ee241f88b198498340d9ad036499184f7798ae2","impliedFormat":99},{"version":"7b149b38e54fe0149fe500c5d5a049654ce17b1705f6a1f72dd50d84c6a678b9","impliedFormat":99},{"version":"3eb76327823b6288eb4ed4648ebf4e75cf47c6fbc466ed920706b801399f7dc3","impliedFormat":99},{"version":"c6a219d0d39552594a4cc75970768004f99684f28890fc36a42b853af04997b7","impliedFormat":99},{"version":"2110d74b178b022ca8c5ae8dcc46e759c34cf3b7e61cb2f8891fd8d24cb614ef","impliedFormat":99},{"version":"ab87c99f96d9b1bf93684b114b27191944fef9a164476f2c6c052b93eaac0a4f","impliedFormat":99},{"version":"13e48eaca1087e1268f172607ae2f39c72c831a482cab597076c6073c97a15e7","impliedFormat":99},{"version":"38f5e025404a3108f5bb41e52cead694a86d16ad0005e0ef7718a2a31e959d1e","impliedFormat":99},{"version":"8db133d270ebb1ba3fa8e2c4ab48df2cc79cb03a705d47ca9f959b0756113d3d","impliedFormat":99},{"version":"19597dbe4500c782a4252755510be8324451847354cd8e204079ae81ab8d0ef6","impliedFormat":99},{"version":"f7d487e5f0104f0737951510ea361bc919f5b5f3ebc51807f81ce54934a3556f","impliedFormat":99},{"version":"efa8c5897e0239017e5b53e3f465d106b00d01ee94c9ead378a33284a2998356","impliedFormat":99},{"version":"fe3c53940b26832930246d4c39d6e507c26a86027817882702cf03bff314fa1d","impliedFormat":99},{"version":"53ee33b91d4dc2787eccebdbd396291e063db1405514bb3ab446e1ca3fd81a90","impliedFormat":99},{"version":"c4a97da118b4e6dde7c1daa93c4da17f0c4eedece638fc6dcc84f4eb1d370808","impliedFormat":99},{"version":"71666363fbdb0946bfc38a8056c6010060d1a526c0584145a9560151c6962b4f","impliedFormat":99},{"version":"24b8a04a4bb67fbec6b29e9366dc3e4d6fb6ec52c671e50defb15983d99a1cdb","impliedFormat":99},{"version":"cc2eb5b23140bbceadf000ef2b71d27ac011d1c325b0fc5ecd42a3221db5fb2e","impliedFormat":99},{"version":"d04f5f3e90755ed40b25ed4c6095b6ad13fc9ce98b34a69c8da5ed38e2dbab5a","impliedFormat":99},{"version":"2cf9bf6c1d711fb892149f0b8282228ba3c6953a02c6e8d49d850fd40324753f","impliedFormat":99},{"version":"02b0784f4a0c19b2cc8bd63e60809ba073006407587cd304cb73e81af2d598b5","impliedFormat":99},{"version":"852ada6c746fdf599f1540afa26723241208fce45cc05c25a2700f705e3a895d","impliedFormat":99},{"version":"347f6fe4308288802eb123596ad9caf06755e80cfc7f79bbe56f4141a8ee4c50","impliedFormat":99},{"version":"5f5baa59149d3d6d6cef2c09d46bb4d19beb10d6bee8c05b7850c33535b3c438","impliedFormat":99},{"version":"a8f0c99380c9e91a73ecfc0a8582fbdefde3a1351e748079dc8c0439ea97b6db","impliedFormat":99},{"version":"be02e3c3cb4e187fd252e7ae12f6383f274e82288c8772bb0daf1a4e4af571ad","impliedFormat":99},{"version":"82ca40fb541799273571b011cd9de6ee9b577ef68acc8408135504ae69365b74","impliedFormat":99},{"version":"e671e3fc9b6b2290338352606f6c92e6ecf1a56459c3f885a11080301ca7f8de","impliedFormat":99},{"version":"10a31044deae10829e7646d91c4090bd2f000c4ef7a97d0a6f6a9e62af4bac3d","impliedFormat":99},{"version":"4e6672fb142798b69bcb8d6cd5cc2ec9628dbea9744840ee3599b3dcd7b74b09","impliedFormat":99},{"version":"7866bd684d1fa255c4ea5228bf851b713f0388e22d272d9d2696364e4914bdf4","impliedFormat":99},{"version":"54d69bcee473dda09e603dbf4dfe78bbde373b0ca34c271340b34c4ae4638bf1","impliedFormat":99},{"version":"cb63d73be28de13c5478189ac8cd8dcfc243843545e28e030c861d2ad669d4af","impliedFormat":99},{"version":"ee4cf97e8bad27c9e13a17a9f9cbd86b32e9fbc969a5c3f479dafb219209848c","impliedFormat":99},{"version":"3a4e35b6e99ed398e77583ffc17f8774cb4253f8796c0e04ce07c26636fed4a9","impliedFormat":99},{"version":"04453db2eb9c577d0d7c46a7cd8c3dd52ca8d9bc1220069de2a564c07cdeb8c4","impliedFormat":99},{"version":"5559ab4aa1ba9fac7225398231a179d63a4c4dccd982a17f09404b536980dae8","impliedFormat":99},{"version":"2d7b9e1626f44684252d826a8b35770b77ce7c322734a5d3236b629a301efdcf","impliedFormat":99},{"version":"5b8dafbb90924201f655931d429a4eceb055f11c836a6e9cbc7c3aecf735912d","impliedFormat":99},{"version":"bdfcf610caf414eefb3977783f58b7ba67c3dcca358af390f2b309752a5cb579","impliedFormat":99},{"version":"7a9477ba5fc17786ee74340780083f39f437904229a0cd57fc9a468fd6567eb8","impliedFormat":99},{"version":"4bcc6a2aaff30d16ea05d82f4750445f4f0d5433ad7e131eafa62b0a0be92910","impliedFormat":99},{"version":"a9a41f10f77fd663529bb4a7853b7cbfc27976a4562176abb12422e7d847347e","impliedFormat":99},{"version":"3da1dd252145e279f23d85294399ed2120bf8124ed574d34354a0a313c8554b6","impliedFormat":99},{"version":"e5c4080de46b1a486e25a54ddbb6b859312359f9967a7dc3c9d5cf4676378201","impliedFormat":99},{"version":"cfe1cdf673d2db391fd1a1f123e0e69c7ca06c31d9ac8b35460130c5817c8d29","impliedFormat":99},{"version":"b9701f688042f44529f99fd312c49fea853e66538c19cfcbb9ef024fdb5470cc","impliedFormat":99},{"version":"6daa62c5836cc12561d12220d385a4a243a4a5a89afd6f2e48009a8dd8f0ad83","impliedFormat":99},{"version":"f43545da7ed38322e627cf43fa9075a8779074d1dca00aaedede5292449c6efa","impliedFormat":99},{"version":"bd8310114a3a5283faac25bfbfc0d75b685a3a3e0d827ee35d166286bdd4f82e","impliedFormat":99},{"version":"5a9682c17046b1171691709fee524f2d02aa571b6fc8a4fecf29c0302c4a8098","impliedFormat":99},{"version":"1bf03857edaebf4beba27459edf97f9407467dc5c30195425cb8a5d5a573ea52","impliedFormat":99},{"version":"f6b4833d66c12c9106a3299e520ed46f9a4c443cefc22c993315c4bb97a28db1","impliedFormat":99},{"version":"746c02f8b99bd90c4d135badaab575c6cfce0d030528cf90190c8914b0934ea3","impliedFormat":99},{"version":"a858ba8df5e703977dee467b10af084398919e99c9e42559180e75953a1f6ef6","impliedFormat":99},{"version":"d2dcd6105c195d0409abd475b41363789c63ae633282f04465e291a68a151685","impliedFormat":99},{"version":"0b569ed836f0431c2efaef9b6017e8b700a7fed319866d7667f1189957275045","impliedFormat":99},{"version":"18acf29aac3212f2c6cb7d457816b249669af2e4be892c3b5a41fcbf0ff27bf8","impliedFormat":99},{"version":"0c72189b6ec67331476a36ec70a2b8ce6468dc4db5d3eb52deb9fefbd6981ebb","impliedFormat":99},{"version":"131ecac1c7c961041df80a1dc353223af4e658d56ba1516317f79bd5400cffeb","impliedFormat":99},{"version":"f3a55347fb874828e442c2916716d56552ac3478204c29c0d47e698c00eb5d28","impliedFormat":99},{"version":"49ebbdfe7427d784ccdc8325bdecc8dda1719a7881086f14751879b4f8d70c21","impliedFormat":99},{"version":"c1692845412646f17177eb62feb9588c8b5d5013602383f02ae9d38f3915020c","impliedFormat":99},{"version":"b1b440e6c973d920935591a3d360d79090b8cf58947c0230259225b02cf98a83","impliedFormat":99},{"version":"defc2ae12099f46649d12aa4872ce23ba43fba275920c00c398487eaf091bbae","impliedFormat":99},{"version":"620390fbef44884902e4911e7473531e9be4db37eeef2da52a34449d456b4617","impliedFormat":99},{"version":"f14c7a1f9afd2100be898a9304cb08c762a9b6967de955485337bade61bab0f3","impliedFormat":99},{"version":"936592c62e3bde69b0178055acac114317492e6cf09065ee263f63f8bbd991f6","impliedFormat":99},{"version":"a31274d144b06b02c3af0bf127435c9786b14baf58163b8340ac4593a6512178","impliedFormat":99},{"version":"b2a4d01fcf005530c3f8689ac0197e5fd6b75eb031e73ca39e5a27d41793a5d8","impliedFormat":99},{"version":"532def9a5e8ef761667bbb3214461d7c1f8293bcc9d0a801931f68d4022664bb","impliedFormat":99},{"version":"86388eda63dcb65b4982786eec9f80c3ef21ca9fb2808ff58634e712f1f39a27","impliedFormat":99},{"version":"b748430ab5b9463a6c9cc4f048d16ba75842614c8b12a489d9215debb1aca0c1","impliedFormat":99},{"version":"6e3a1b1b1e7e7b09009e03e5f0bb32be4dd604797ceb20c9359914640d4e31f7","impliedFormat":99},{"version":"de9466be4b561ad0079ac95ca7445c99fdf45ef115a93af8e2e933194b3cdf4c","impliedFormat":99},{"version":"724f25bdd75c26d042b8c99ff950cd5a128c3de45b39b2f306e4ccada6728f96","impliedFormat":99},{"version":"b701f86abe4798ea0003844eb4b5017695e97f7e6b454db3d9126c2f13e4afa7","impliedFormat":99},{"version":"eba7dd0f51a2db9dfb65563f519330ec477afc1206c57f6cdd676209400974b8","impliedFormat":99},{"version":"fd3774aa27a30b17935ad360d34570820b26ec70fa5fcfd44c7e884247354d37","impliedFormat":99},{"version":"1693ca12f87fabba369a19610f945584d1ebbfd513002160a5b138b01932b076","impliedFormat":99},{"version":"7cbb131eb877e61cf3f0600facf4ae8491fa6446a33fda1f189ffddfa4874a89","impliedFormat":99},{"version":"9ee245e7c6aa2d81ee0d7f30ff6897334842c469b0e20da24b3cddc6f635cc06","impliedFormat":99},{"version":"a600a79f6a2e610ae7254ed8ef46b7d3bd35755a11e2eecdf9458eefcb517729","impliedFormat":99},{"version":"dfc67e73325643e92f71f94276b5fb3be09c59a1eeee022e76c61ae99f3eda4b","impliedFormat":99},{"version":"3b63f3b0b472eaf372e27840721bbbf90491be2577009893edd3c54b544fe2df","impliedFormat":99},{"version":"ee551dc83df0963c1ee03dc32ce36d83b3db9793f50b1686dc57ec2bbffc98af","impliedFormat":99},{"version":"8d7ecedec77e345c25160b4e59c394ad5d46105e8bff9a7fab181be32930dfae","impliedFormat":99},{"version":"1caa4bbb9452020a2129483ce9ba6489869eba85d364125513e7cc82812bd077","impliedFormat":99},{"version":"bb5a90d4d7f900ec6e1db945ebf57586c190a6eb22bd8dd2abfc5076b75663ec","impliedFormat":99},{"version":"99227681df5400ed3c738dbd1114fa24c1ab6e81408dc9eaa2516566012a7778","impliedFormat":99},{"version":"ed88c51aa3b33bb2b6a8f2434c34f125946ba7b91ed36973169813fdad57f1ec","impliedFormat":99},{"version":"8e84fa471e62bbdd1e2bead05d8857f0871fed3f5584a10049ae5ca337899275","impliedFormat":99},{"version":"ce7735689769b9da39a3e4522572f7d512458382c61e47da5110597e738d8bce","signature":"933c53634d30d7c5be727b74d234ab7cdc4b6e6f8909e684327692f4c94e135c"},{"version":"8e27c27a1e04cba79d0d1a6d9f09bd94f507794666d99277e2844a8df1a648c5","signature":"1c2103ac40d600f885da1623b45ed668dbbb9a7090ba56fa357a86c6d78d93e8"},{"version":"f5d4f7bf6acfc10f03a1bf3cef3b8ad1fbeec42b13668acfa7be883332fddf48","signature":"8fedfa79a5f140f2f8edc68defd494842c7f7c59b941d4dccf61b31b62a1970b"},{"version":"5d7e2f84b63537e1d0768d27b605ebd16d31f77864ead674a46a39a67d798b3a","signature":"8bf9d14b4d5d7bcf0e068dd3de5b084e7c6435eaee272b995bcf886d62eab566"},{"version":"c06894d616aed135146f06af338759a607c0cf2ed0e891c52ba6fa4bf1d7b5cb","signature":"0f9307e564fe5b3199344c53353d4a9ce191cd1575bc1c77c747e08c4e1bc5c8"},{"version":"e46e5bd7ce10c7d79828a76a2889ce1e4a8e8a64ebc244248e9a7fd27807f18f","signature":"3d30f552c6d8ce477176b6615f3f0ed69bef9f0a6f97f98d374ca7c8c4182007"},{"version":"9bd3e217dac667b4c77af3fbb9fcf1bd5a22ca7e29c067591cb6b68132c7a203","signature":"db0101da32ec6e54a6530cebcc30893c737209b70fcb47fcd9d7152b71aee308"},{"version":"b7b4da95464f11da1b8de59ed34f6deb740d14fcdd54065fdbbe850741ae958c","impliedFormat":1},{"version":"64d7747acb1d36374e9c884773b6dbede826dd9684cecad3c7fb4ce7960f90d7","impliedFormat":1},{"version":"47e62f697f75c990750842294e175977588557f15a9731625e7e3c882b4b1d24","impliedFormat":1},{"version":"2caa214e359b6db8a7ff2cd1a3e5ae868c611a63957b958fa597ae89ac5268ac","impliedFormat":1},{"version":"4a3605bef1a5ef29fd5a1696dd95b0b4e2259e2d07a4d88fac79f3a9765c44a2","impliedFormat":99},{"version":"6544dab49004fecb69a4ef775e9ad2773a6148b1f9bfd9b75508e3afa11f5d35","impliedFormat":99},{"version":"7783c20210ca970f8d127d92a1c27f05e3982268445188ab5861e2d0ee2d23f3","impliedFormat":99},{"version":"b2d3b4316436aa93d5e425aac9e23bf9aa7b4f0fca85d8752c9e50d111125b93","signature":"70d2317871f650f120d868ee40d0347762b0fd90d0e6dcec600721dbcf962877"},{"version":"e8196527bfcc2b55ccf9d22d08cb6b76c395b065750bb64870a868382a1ffe93","signature":"a1e251550cc57481c9b8b993de884421bdd1bea11c6d1c0c77ba4cb5cca2a24f"},{"version":"08dfdba3286c057e51318d514d2cd817dc502a9e587a74fcd7998f214cbc52f2","signature":"3683ddfb8277cd441dacd5875747848dd7d32e377cb595d1e888b98173d7d4b2"},{"version":"127cf48c82e1aacde0c0f68e548abbc6ca1bc73518bb5625dc1afc63ef93bcd5","signature":"d07be5372ae46f751adda13b40000ac5f50c7d5973999aa2a0e94445b5e85d25"},{"version":"ab17d6ed06ade3721f3d6c4dbe9830bb2eec0ce794d8e4001c4365a247b9ab28","signature":"6b3decd52e80340500b7528f468f5efa9691e898045ba6a995e9a7c54c6ca8c4"},{"version":"98167fdb2fde534900ab781daa44aa0b73ede6ddab950fd34f09dbde861c0b9d","signature":"879add323c5afa9907be396daf6498b2399bc0244e477cf41ecf1d63156b7595"},{"version":"c9653e07ae52e23ae5310569d263cd448ed72ac0cc28fa97c9406770ecfdf0eb","signature":"264d6f92f382484f57d59d54f834032cb0236517c054bd0969bc24cf402201d2"},{"version":"a307403adf9c3b834fb7e9e2c4a1dd87fc4f40144f5523649ce7df9b7b073a67","signature":"ccbff94badc2cba12bc06ce72bfff987b43f963e741d7d5f4c73a0fbca3a10b4"},{"version":"cf68774f50bb88b6087a6a4cb55f6d3a6f8f2f9321e0dff36b9fba9c39fff093","signature":"b48bd9672b492f477a047e02dcbc581d1dfda7f2a6c02fdc354e0b2c24bf616d"},{"version":"67a4ad45d2c2a03a41ccd4e828bf4d5170a462eae904b032cf53ea6d6acca3cf","signature":"800a9cae1adc807ce1a95750b077192462c7bd18bc247b53548e5a6222e0d66e"},{"version":"c48a4c8a593addc1e1d15d726845d074c82d5d79983ed2b87748bf3ce2692d59","signature":"3701927c06e2173add430892a63fc46fe9f494ddb2c90d7239b12131bc2cc351"},{"version":"582940d7a4d1ebddb2b44686234053df6703bac0d68324a785edeb152312254b","signature":"de6ff8bb2a3708d4809991a4c546068d633303c123951f648191f707feeaf887"},"eb9613130d1167dc8bfc337ddf276e963d952eb7e4a308da0da045a1391443ae",{"version":"a2c769124e77d7dbce4843cfa191459aaf03c6bc6f837c04e637b891c4307040","signature":"bdb7aef4b41ce46fbe96f77ba98dfa80e37016d834fbadbbdaca0f2117972600"},{"version":"8ee162f8e931a3f1732803994d6609027083d33a7a02e8e0c301cf889658fa7e","signature":"e36a53a2eeb957f08ed9a5001bff7918b556e1d3346931130b448b6b8c65319d"},{"version":"84e9ca1f32d79be17d418845254692faa3123b6f60bca7e70644eb59f0daebcf","signature":"a3038a02309dbb1620976d428e40ad585df7fec4ca11448a76d849a2d9eaf474"},{"version":"95aa6e834ddc6490e0e08125a3f1e0af9c8b694a15603d2c7104ebc24869fe75","signature":"2d5a82e714119de6dcb0af075f5971a45a1d400c799b70a7dd2f779d682958a9"},"dae234861f8b219c54b1b6aabba217f0ae81330c588a251ad6dc1ab5ca5b2ddf",{"version":"3b228f52dece7b4e98226f62b856086009ed878c1b90b53a9b283893e557e5c1","signature":"879cebb1884590b94ad609353edfa0c8079d37667d30790627bc5093be831340"},{"version":"a6b0cda380f1e124bb76531a413140fd11463182e10b32c16733fb9d860b63e7","signature":"a74a2fa10c878e84e91ff10e1f90c836848209da96d38c2c800984875c3acb32"},{"version":"10175da8f2ac6bb1d6753d73a53d6f57d86775fceab07eb6dade9e2b8700e85b","signature":"8516fd0860847f7518c1bc62cb788f710b70a14d13141ba60c06214832332eed"},{"version":"2f728d8c9bbc661c17aeab6bd434dd17f576de853029a091bee59d1aa12c12f7","signature":"10ea64b933adb7c4622b2b1d51faba137c6eefa5fffbc52a1754e29863ad6f9f"},{"version":"7868e93f8053c114c218e7554c8ee706c45c1013c5c68ea8b23b7d43f942f1e7","signature":"1ee5b93797b4e68b79c272540e32c4552ff537e0f15de23a21ec9e88eaf91cc5"},"050c00828f7130781d4216ee01b05e0f54a35a3402cd48d2046a604ca8149443",{"version":"222987da65b39fbaa230a5fd5e29b0994ef624e67f3e5b02461c2478f24ad5b0","signature":"84b4d3baed8c8db4e784628062d1a3eb323e809321d738b45f8e4c703f799c0b"},{"version":"8c5ae122a932697819335f18a1a0f7aaba7151afc684fcbf7fb27093faa101f5","signature":"a92f748826b313dbcc631947c96976a4f931af488f97d777fc01a048830c40f8"},{"version":"bee8df9b6e4a70ad53fbdd580df885fbb4794a9c3e5b9aa9a94c1367a9a1ca50","signature":"cf597c1bdc7cd515b533bc0489600b0b9f8bb3ecf16ba6998b665563494aae3d"},{"version":"baae9fea2f031c0a57a772f5eeb148306e2680a15f65ea049d9a646f5dc91e97","signature":"604a5c5c0f0f26196bf80ad4f251d586341a5de2ad839a63b6ce41b43d890df0"},{"version":"25e7157833cb81c91863435d2a0f6a834043e10bba9a56d22eceae9c768c6a6a","signature":"85d007980fa43c5411b1c635be08fc4c4c1801fd2c5067e71a90791d2a707d75"},{"version":"7784da24723e9915fe607d653094ea19ab358254f02a58453a1fbf17258f6924","signature":"5597323e52c226304571b41574bb54f9318426e2f7b42b522c56dc91e8e15d20"},{"version":"e2e2e2506fd1f2606ba1461941397f861b3d61ed6595cefa545abac01b783d05","signature":"b7b62ff4cfcbdcc3ea989624572e3149e9dfe9e1191826f1d589d8f9751a9452"},{"version":"f5e47e352b457d7db807d6dcded5b105dceaab45cfb90a609c06cf77e9e48d14","signature":"ac0fae67009533e0a71f12f439e15cb40e2136564d46b4ce92067e4dc58ac03e"},{"version":"3924db5bde07a829358e2601dec32231c452cd44b54ad1422c1a24883cbed198","signature":"7fe49be2ccc9abe5a2cc4e7203b50fa4cbf438d7676694774086e5eb71869de4"},{"version":"515845b19a8be37c6e7b060b2b0bb37aeea1266a0e030dc4d80a217fdfd9855d","signature":"714a6b80420f1862d27d403753fc827d57283e401460f9027751d254ca98bdf5"},{"version":"51a9f05a862053d23d595cedc15dbb3a683cd53024911662d44df0595ea08df3","signature":"b5f36565ea36187786acf35a79f2105a67336149d0fe7c600ba938679d5860ba"},{"version":"27f61eb9826ca6f9577c5d0990a1b0e9b8053dcd4bb2cee34f787b3d84e9748f","signature":"a99d377c35e08211f958d36630bf435de435b860ec3158c55d7278578ba831ea"},{"version":"32ec1cbe1fb5fe7d162c5b8dc0754a4e67ddb05f4377397508d1441f541f0ed0","signature":"dccb9659b15d62054e5edb89351560450dcfc5ae296454eb671c102b9d3b7a5d"},{"version":"f64207f8ba2edde10dec227c236c65cdecb27b4106d8351ccb6987a9047bd94e","signature":"6d4b2153df87a7bd63c64f289ad857095b2a197073eb90d2782473c0a1470fbb"},{"version":"e50eec0aaa73b651c4db2878e1327564b046bee10b596e5390fead64a354df15","signature":"cc098a5173279661769d04555df0895756f3ca2c4f3883cdf73f79736f3efcdc"},{"version":"d8e03cae3d3e9d0659cca5068f4bec1bd754f1a6968017bdfdb1c589d09b6a6f","signature":"00392d0e76254c5578a50b0067689123f8b37851f5454a4c1db3d349e7be0ee8"},"23b0251276d112e430cd8933753cb1e9ae4c72083519af75ac19a0cb759917dd",{"version":"a565939c26c64c0b673abf03997b751b2e0debadaf8126039dcb8ffbe7f853e9","signature":"1fc32800909e18a749231c8593cef820f96e1fde622b82dd8acf7d4db4599e26"},{"version":"ef855e66c4a18de3d9c7fcc30f40ec6deed1d267d62925d8c4f0321784251f2e","signature":"88812e5251bd422f802984f77ebfb1f7026a692af0bce6ec7fbb6cfed3edd0e8"},"826e7e153a485b94945f5347ad50d0528abd5b1ec08333ce13464bae62625e61",{"version":"53ec6a75eeea7602e89cb7d3b238aa1fed8d7310b32e8b08738b9e2d8c9bdb76","signature":"24e3fafef17bdc6c75bad040fe4ec2f808d2f3ad7fedd2c13da2a65349d2c8ee"},{"version":"8bd831f3d5ce0e136537c4054c005bb56bcab8128df1bb687ec8e83de2276c40","signature":"9a0286f49b98016802b400cb5e76cff6b544697138e84aa18221518697e4d0c7"},{"version":"0e5522e37d64b99fa97e945fb6755c061243c36113a952274be2a90e71bfd6ae","signature":"60531f9d3557f3706f5c048778f4e78ea51b7dd1b3f690a27c95339cae479145"},{"version":"4f817d326453d8d578758889131c3cab8665a0aa252df1ea254a83b653422efa","impliedFormat":1},{"version":"44edcd6297fefdf4f64146a0beb45acc3dd9035525a5af59daa4757008fafa55","signature":"1192c25f7008e036041d9cdf66c8e408d2434f448edbbc76124c8c5a3646d783"},{"version":"51bcf648c415b00aeb15c2856ac7042c7057e48e7bd53df2282d08705d5044a4","signature":"f99b3e4d41e361d1d0d2dea0bf6d160be029930f83f2bad1e80896a541e53c19"},{"version":"dbe322dd31c3ae978556730146f82b5531ef98a2f9ec00e4c66fed55e8ada80c","signature":"5c2fa80ca30f46b7f37025cbd19b3ee468324501ab89ba26ec8f3de2d71d2eb9"},{"version":"62468ff264113894e00c3d02b158acc368e57616af1aceb6a147243ff0c8cd57","signature":"0fc128ed0b5e0f3ff026a10f8d295601823fafb049be4b5a8c8295a4e790cfe3"},{"version":"a0251be510c5a528023df8971600b77946d4cecdce1eb82e04fc6b676161ba49","signature":"870997d9f7499f76bb367192d21f8c7938768b6b22c996ff2f6a3f0f354dbd70"},{"version":"3f31f1a85b05d8b555862fde9c03ed44f8a3f46e9c5ee061ce7fc22cd32ef3bf","signature":"579b81e757e547ba90c9c1e1a730d2d7797be1714c2dba762f8b41ee68d08e75"},{"version":"e57a9a33cc8cd49e932481d73d6797b8fbefa6211e007616ee959b1a68d8a96f","impliedFormat":99},{"version":"6e4193a32dcfdc40d9f1bcf79a0691319bf065af9d5050e516d4523b1d9d083e","impliedFormat":99},{"version":"40166c5a74c5420962d2f223211c3b99be001a5b60a23828d1c9eb7a768a877f","impliedFormat":1},{"version":"d15e79ee385d785d141013cba4f855959aeadcbaad9047fba85bf30911c84891","impliedFormat":1},{"version":"c2cb3c322fe725ee2999aaeafc9143bff53b99448238b83255930083d2eb73ab","impliedFormat":1},{"version":"11e5ff5c50c1aeccf788e9423b7b7963bb754bee8fc605fc43bdd77b16011570","impliedFormat":99},{"version":"8fe43dbb9344739106da68e69e2af9b9ef8e24c3aa2f5d448a9a3a24cc5479c8","impliedFormat":99},{"version":"d9b5d0f70678f81433c0d34a8d32eea2b4ee98b84a28b00633c44ac04884eb14","impliedFormat":99},{"version":"ad546cf39db619bd26e2ca4c5cb83445f2d70779a2381605a9a70e26c199b835","impliedFormat":99},{"version":"69e7da46c48ab0e0872fed0da83c7e9d3ab478112013d1d1f2eec104c97f098a","impliedFormat":99},{"version":"9b8a8d3a5771c7f72173535ea34f86bd53685aaff61223be970ced726424bed2","impliedFormat":99},{"version":"4de10d2664126f6817923e6fdf963fb749416d038e31fb0dabaac0a652eeeb3b","impliedFormat":99},{"version":"13c4802eb5a24b28426512d123f756a4ee9b4cb80197981773eb440aae76ca1e","impliedFormat":99},{"version":"b0bf8f866d3c05dce6c2778455252391bbc3fa0e8c1675e78dcee8fab2e1dd96","impliedFormat":99},{"version":"675058f412cecd4e2c028e1a74aa34d5510ab03ed78dae712437890bb0aba6ba","impliedFormat":99},{"version":"ec70e1b3869e7564a3359bbe035dc054241d54b175a26190c8aed904de6077ed","impliedFormat":99},{"version":"e23f1372618b617ea5afb373562a4924d03b927da5e7c17940baf191ab0d7bfc","impliedFormat":99},{"version":"70885240802a17c2e90a08ce45a996e9bf4c99aa44cc25a099f5fd90f9aede78","impliedFormat":99},{"version":"efab8d889b532dd05f5dba3e74822a1b88cb5c32f4f95fdace0912d97aa9c29f","impliedFormat":99},{"version":"9edf4694bbf7e12184dca29f255b40d0b5d99a955eb9cdf206efb0039a5049fe","impliedFormat":99},{"version":"159c637197f504c4306fa2e1a68dd355a9744af13b55aa9264e37ee226d834b4","impliedFormat":99},{"version":"a318679d1d191ee5ba778c5a635271719888d2059eb6f51542fb96c203b3a634","impliedFormat":99},{"version":"be1a89e9d3f853c563fb8ea9629bd4d8458706ffbf84f40a91eae20568d5076e","impliedFormat":99},{"version":"0ca5f6bd52963e4349a6d1cdd6460a88b47d1733d7ddd0f267fabdbaa7716be5","impliedFormat":99},{"version":"9d1ed7b5e2dbe8b426a63e55ad5c187b2baa7510916659bed78ecb6357aa8fcb","impliedFormat":99},{"version":"143c9af88d55a1439123ac527ee6f6b3db5c626cc33b78496fe80c0e2eb957cb","impliedFormat":99},{"version":"cba0dcd3bfe577fed6d8e6b76ae4e1ae35c14e5d18cd9c80d4a0cd291199d46e","impliedFormat":99},{"version":"82f307488a01e2643f072f0c7b55e2ecf4bc69db7704f91c3a16dcdabebaaa6a","signature":"b1076895ccd7a0abe5abad0837b43611a61c3059a2a04bffd840368eea3becb8"},{"version":"4e11956b677b69519f961d37f7e7999853d240ce5765a1d1155517af8ad3a407","signature":"eff0532db851d6f2b206cf3af4020c01e0994d1dbfddbb3f9d0226c44a1ea432"},{"version":"fca1e5d6fa73ac0f1f8ee2590d435907ba302aba78a7bc6e62fac3f2198198e6","impliedFormat":1},"386a9c23af614ee2d2516c6527ad07d269611292635bdbacec6924bfd187eba5","e532b1c8189f746fec9a43c83f020f44fc50916e8adb3846048aaa64a5ba4833",{"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":"3fad5618174d74a34ee006406d4eb37e8d07dd62eb1315dbf52f48d31a337547","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b50a819485ffe0d237bf0d131e92178d14d11e2aa873d73615a9ec578b341f5","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":"12d602a8fe4c2f2ba4f7804f5eda8ba07e0c83bf5cf0cda8baffa2e9967bfb77","affectsGlobalScope":true,"impliedFormat":1},{"version":"a856ab781967b62b288dfd85b860bef0e62f005ed4b1b8fa25c53ce17856acaf","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"8db46b61a690f15b245cf16270db044dc047dce9f93b103a59f50262f677ea1f","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"757227c8b345c57d76f7f0e3bbad7a91ffca23f1b2547cbed9e10025816c9cb7","impliedFormat":1},{"version":"959d0327c96dd9bb5521f3ed6af0c435996504cc8dd46baa8e12cb3b3518cef1","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"266bee0a41e9c3ba335583e21e9277ae03822402cf5e8e1d99f5196853613b98","affectsGlobalScope":true,"impliedFormat":1},{"version":"386606f8a297988535cb1401959041cfa7f59d54b8a9ed09738e65c98684c976","impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"e236b5eba291f51bdf32c231673e6cab81b5410850e61f51a7a524dddadc0f95","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"90a278f5fab7557e69e97056c0841adf269c42697194f0bd5c5e69152637d4b3","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"f263485c9ca90df9fe7bb3a906db9701997dc6cae86ace1f8106ac8d2f7f677b","impliedFormat":1},{"version":"1edcf2f36fc332615846bde6dcc71a8fe526065505bc5e3dcfd65a14becdf698","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"1dbca38aa4b0db1f4f9e6edacc2780af7e028b733d2a98dd3598cd235ca0c97d","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"19143c930aef7ccf248549f3e78992f2f1049118ec5d4622e95025057d8e392b","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"cca8917838a876e2d7016c9b6af57cbf11fdf903c5fdd8e613fa31840b2957bf","impliedFormat":1},{"version":"d91ae55e4282c22b9c21bc26bd3ef637d3fe132507b10529ae68bf76f5de785b","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"7e8a671604329e178bb479c8f387715ebd40a091fc4a7552a0a75c2f3a21c65c","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"4c5e90ddbcd177ad3f2ffc909ae217c87820f1e968f6959e4b6ba38a8cec935e","impliedFormat":1},{"version":"b70dd9a44e1ac42f030bb12e7d79117eac7cb74170d72d381a1e7913320af23a","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"9a66f750cbfbd9f193e631e433b17b8d9226991537ba66587185c13cd6534e0f","impliedFormat":1},{"version":"70bd24381331ee52aaed3a7cdf9633647edac5dd0df1231b1cf724c90f0547e6","signature":"a9ccb3fe8af1ff9eb3070a63d13f846a0b14f3b2e5df836c8a1ca405caaf7f05"},{"version":"232ea6272abe8c510bfdffb73f48331def4d7296195a8affe2fe872debbd4db4","signature":"1501b9df2770a3b4453b2fca756b57577d60f76becff949f1942064e4e160168"},{"version":"31d790dc755782c3f1443858abe5ab08cbf7c4055174641868b2dab6b37301d3","signature":"f1a9fad9245d707bf9e1546fa23a4c3bfc917fd539fd14f17be02395272dbe0a"},{"version":"61313d5fe68b6e51c961d27baa9c60b70e321c52ab02ffe078e716abd1353ceb","signature":"d57ff8282330ddf3fd55ba2a6d5187166c7883d72756a8efbaae34d864c85c71"},{"version":"37e26c12d5d9f01b27934eb1318ce327237eb826ce88f999e648dc7a8bfb90dd","signature":"44cc00ff40c7d0f8cec7c53ff2d757145edd4857e70ecec0d99c303619c17ccd"},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","impliedFormat":1},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"9c4fb6af2bddd534d1414876d2350f2e1967abdddd3df7b6bc441d885de436b2","impliedFormat":1},{"version":"c5590caef278ad8ba2532ec93e29a32ac354dfb333277348acce18512891d3b2","impliedFormat":1},{"version":"59c06fdbc966afe0abfd67fccac294dfcf6e822485fb22991b2cf4923c9b18c2","impliedFormat":1},{"version":"fb893a0dfc3c9fb0f9ca93d0648694dd95f33cbad2c0f2c629f842981dfd4e2e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"bc9d7f2a012412c294f4eb0fc856e063112a3666957a190542b62662391810b2","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"5d08a179b846f5ee674624b349ebebe2121c455e3a265dc93da4e8d9e89722b4","impliedFormat":1},{"version":"d34aa8df2d0b18fb56b1d772ff9b3c7aea7256cf0d692f969be6e1d27b74d660","impliedFormat":1},{"version":"f4db16820c99b6db923ab18af5fecb02331d785c4c2a8a88373a0cfc08256589","impliedFormat":1},{"version":"2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed","impliedFormat":1},{"version":"90407bbaa24977b8a6a90861148ac98d8652afe69992a90d823f29e9807fe2d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","impliedFormat":1},{"version":"168d88e14e0d81fe170e0dadd38ae9d217476c11435ea640ddb9b7382bdb6c1f","impliedFormat":1},{"version":"003f07cf566395059625b39785398f18652c8952e19790e7d6eeb22a9cbe0440","impliedFormat":1},{"version":"3efb94838c3bf93ac9bfb2f1ef645339221d15533efc17c9271142c9a656b08c","impliedFormat":1},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"7095c3a9156db5b360ef2bc2dc23bda7078bcfe28c99acd5d57701a77b32213f","impliedFormat":1},{"version":"3fdca613d7cef1587f606ea6b88cd7223b352eca4ce63e6428f98eaeba49a6df","impliedFormat":1},{"version":"4b807eb7b43b2547b8074b49aa9dd906ef3963d0f255e372a023467b0c9b91aa","impliedFormat":1},{"version":"380b919bfa0516118edaf25b99e45f855e7bc3fd75ce4163a1cfe4a666388804","impliedFormat":1},{"version":"40de86ced5175a6ffe84a52abe6ac59ac0efbc604a5975a8c6476c3ddc682ff1","impliedFormat":1},{"version":"fcf79300e5257a23ed3bacaa6861d7c645139c6f7ece134d15e6669447e5e6db","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","impliedFormat":1},{"version":"5a0b15210129310cee9fa6af9200714bb4b12af4a04d890e15f34dbea1cf1852","impliedFormat":1},{"version":"0244119dbcbcf34faf3ffdae72dab1e9bc2bc9efc3c477b2240ffa94af3bca56","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"a873c50d3e47c21aa09fbe1e2023d9a44efb07cc0cb8c72f418bf301b0771fd3","impliedFormat":1},{"version":"7c14ccd2eaa82619fffc1bfa877eb68a012e9fb723d07ee98db451fadb618906","impliedFormat":1},{"version":"49c36529ee09ea9ce19525af5bb84985ea8e782cb7ee8c493d9e36d027a3d019","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},{"version":"abd985609200756b15d375982f85e23b975b12bd9791e6224cc739160e8f9863","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"f8a6bb79327f4a6afc63d28624654522fc80f7536efa7a617ef48200b7a5f673","impliedFormat":1},{"version":"8e0733c50eaac49b4e84954106acc144ec1a8019922d6afcde3762523a3634af","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"4ba01987c4b2c4b94a24c0a05bffbd75ab64d9fe8335dc63e9955d6c51a63468","impliedFormat":1},{"version":"916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","impliedFormat":1},{"version":"e85d04f57b46201ddc8ba238a84322432a4803a5d65e0bbd8b3b4f05345edd51","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc0a7f107690ee5cd8afc8dbf05c4df78085471ce16bdd9881642ec738bc81fe","impliedFormat":1},{"version":"fd624f7d7b264922476685870f08c5e1c6d6a0f05dee2429a9747b41f6b699d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2d0630483bf337ef9dac326c3334a245aa4946e9f60f12baf7da5be44beafbb","impliedFormat":1},{"version":"7233cac35711f43b7493061d2fe7636deb6d14f8cb58e4b3ff248be46f0b543d","impliedFormat":1},{"version":"579192636b96ade9bd7f8797a4f18f489cf6cf176dec4a4e269c969b29f00868","impliedFormat":1},{"version":"7d2b7fe4adb76d8253f20e4dbdce044f1cdfab4902ec33c3604585f553883f7d","impliedFormat":1},{"version":"f2f23fe34b735887db1d5597714ae37a6ffae530cafd6908c9d79d485667c956","impliedFormat":1},{"version":"67483628398336d0f9368578a9514bd8cc823a4f3b3ab784f3942077e5047335","impliedFormat":1},{"version":"2dd1d4cea14cead7a7fc9eec8f40593089dff0de8c0199458446143c9b8c4ea9","impliedFormat":1}],"root":[[244,250],[258,304],[306,311],339,340,342,343,[468,472]],"options":{"composite":true,"declaration":true,"declarationDir":"./build","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":false,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":false,"outDir":"./build","rootDir":"./src","skipDefaultLibCheck":true,"skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./tsconfig.lib.tsbuildinfo"},"referencedMap":[[326,1],[327,2],[328,3],[325,4],[243,5],[62,6],[63,7],[149,8],[150,9],[66,10],[67,11],[180,12],[181,13],[105,6],[106,14],[99,6],[100,15],[170,16],[168,17],[169,4],[187,18],[188,19],[189,20],[190,21],[191,22],[192,23],[73,24],[74,25],[151,6],[152,26],[193,27],[194,28],[77,29],[78,30],[95,4],[96,31],[197,32],[195,33],[196,34],[198,35],[199,36],[202,37],[200,38],[203,17],[201,39],[204,40],[207,41],[205,42],[206,43],[208,44],[79,24],[80,45],[174,46],[171,47],[172,48],[173,4],[147,49],[148,50],[119,51],[118,52],[116,53],[115,54],[117,55],[210,56],[209,57],[104,58],[103,6],[88,59],[86,60],[85,10],[87,61],[213,62],[217,63],[211,64],[212,65],[214,62],[215,62],[216,62],[121,66],[120,10],[186,67],[184,68],[185,17],[182,69],[183,70],[76,71],[75,6],[127,72],[64,6],[65,73],[126,74],[82,75],[81,6],[132,76],[131,10],[154,77],[153,6],[102,78],[101,6],[146,79],[145,80],[221,81],[220,82],[218,83],[219,84],[130,85],[129,86],[128,87],[223,88],[222,89],[226,90],[225,91],[224,92],[176,93],[175,4],[230,94],[229,95],[227,96],[228,97],[123,98],[122,10],[72,99],[71,100],[70,101],[69,102],[68,103],[136,104],[135,105],[84,106],[83,10],[138,107],[137,10],[134,108],[133,6],[177,4],[179,109],[178,4],[233,110],[232,111],[231,112],[235,113],[234,114],[237,115],[236,116],[166,117],[167,118],[165,119],[125,120],[124,4],[144,121],[143,122],[239,123],[238,17],[98,124],[97,6],[156,125],[155,6],[61,126],[60,4],[108,127],[109,128],[114,129],[107,130],[111,131],[110,132],[112,133],[113,134],[142,135],[141,10],[94,136],[93,10],[242,137],[241,138],[240,139],[158,140],[157,6],[160,141],[159,6],[92,142],[90,143],[89,10],[91,144],[162,145],[161,6],[140,146],[139,6],[164,147],[163,6],[253,148],[251,4],[252,149],[254,150],[473,4],[467,151],[475,152],[478,153],[479,4],[480,4],[474,154],[481,154],[483,155],[476,4],[484,156],[486,157],[485,4],[490,158],[493,159],[494,4],[341,160],[305,4],[496,161],[491,4],[497,4],[498,4],[501,162],[500,163],[499,4],[503,164],[504,165],[502,166],[505,167],[506,168],[507,169],[508,170],[509,171],[510,172],[511,173],[512,174],[513,175],[514,176],[515,4],[516,4],[517,161],[519,177],[518,4],[482,4],[406,178],[407,178],[408,179],[346,180],[409,181],[410,182],[411,183],[344,4],[412,184],[413,185],[414,186],[415,187],[416,188],[417,189],[418,189],[419,190],[420,191],[421,192],[422,193],[347,4],[345,4],[423,194],[424,195],[425,196],[466,197],[426,198],[427,199],[428,198],[429,200],[430,201],[373,202],[385,203],[370,204],[386,205],[395,206],[361,207],[362,208],[360,209],[394,151],[389,210],[393,211],[364,212],[382,213],[363,214],[392,215],[358,216],[359,210],[365,217],[366,4],[372,218],[369,217],[356,219],[396,220],[387,221],[376,222],[375,217],[377,223],[380,224],[374,225],[378,226],[390,151],[367,227],[368,228],[381,229],[357,205],[384,230],[383,217],[371,228],[379,231],[388,4],[355,4],[391,232],[432,233],[433,234],[434,234],[435,234],[436,235],[437,236],[438,237],[439,238],[440,239],[441,240],[442,240],[443,241],[444,4],[445,4],[446,242],[447,243],[448,242],[449,244],[450,245],[451,246],[452,247],[453,248],[454,249],[455,250],[456,251],[457,252],[458,253],[459,254],[460,255],[461,256],[462,257],[463,258],[348,198],[349,4],[350,259],[351,260],[352,4],[353,261],[354,4],[397,262],[398,263],[399,264],[400,264],[401,265],[402,4],[403,181],[404,266],[405,263],[464,267],[465,268],[520,4],[521,4],[522,4],[523,4],[524,4],[488,4],[489,4],[528,269],[533,270],[532,271],[529,4],[530,272],[525,4],[527,273],[487,274],[492,275],[534,274],[495,4],[535,4],[536,4],[537,151],[538,276],[477,4],[431,4],[526,4],[329,277],[336,278],[334,278],[330,278],[313,279],[333,278],[332,278],[331,278],[335,280],[337,4],[338,281],[318,282],[324,283],[320,283],[322,283],[323,283],[321,283],[319,283],[317,284],[312,4],[315,285],[316,286],[314,4],[256,287],[257,288],[255,4],[531,4],[58,4],[59,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[20,4],[21,4],[4,4],[22,4],[26,4],[23,4],[24,4],[25,4],[27,4],[28,4],[29,4],[5,4],[30,4],[31,4],[32,4],[33,4],[6,4],[37,4],[34,4],[35,4],[36,4],[38,4],[7,4],[39,4],[44,4],[45,4],[40,4],[41,4],[42,4],[43,4],[8,4],[49,4],[46,4],[47,4],[48,4],[50,4],[9,4],[51,4],[52,4],[53,4],[55,4],[54,4],[1,4],[56,4],[57,4],[245,289],[244,290],[302,291],[310,292],[307,293],[342,294],[306,160],[308,295],[343,296],[311,297],[285,298],[340,299],[248,300],[283,301],[297,302],[303,303],[304,304],[469,305],[309,306],[286,307],[287,308],[249,309],[288,310],[289,309],[468,156],[281,311],[259,4],[276,312],[277,4],[246,4],[470,4],[278,4],[279,4],[280,313],[298,314],[264,4],[273,315],[269,316],[270,317],[267,318],[268,319],[275,320],[271,321],[274,322],[265,4],[272,323],[266,319],[261,4],[262,4],[263,4],[290,324],[260,4],[291,301],[250,309],[282,325],[258,326],[292,327],[471,4],[293,4],[295,328],[296,4],[294,4],[284,329],[301,330],[299,329],[472,4],[300,4],[247,313],[339,331]],"latestChangedDtsFile":"./build/models/derivation/schemas/PrismDerivation.d.ts","version":"5.9.3"}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index bad2ccb6a..b3449ea0e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1918,7 +1918,27 @@ __metadata:
languageName: unknown
linkType: soft
-"@hyperledger/identus-sdk@npm:*, @hyperledger/identus-sdk@workspace:packages/lib/sdk":
+"@hyperledger/identus-react@workspace:packages/lib/react":
+ version: 0.0.0-use.local
+ resolution: "@hyperledger/identus-react@workspace:packages/lib/react"
+ dependencies:
+ "@hyperledger/identus-sdk": "workspace:*"
+ "@testing-library/dom": "npm:^10.4.1"
+ "@testing-library/react": "npm:^16"
+ "@types/react": "npm:^18"
+ "@types/react-dom": "npm:^18"
+ multiformats: "npm:^9.9.0"
+ react: "npm:^18"
+ react-dom: "npm:^18"
+ uuid: "npm:^11.1.0"
+ peerDependencies:
+ "@hyperledger/identus-sdk": "workspace:*"
+ react: ^18
+ react-dom: ^18
+ languageName: unknown
+ linkType: soft
+
+"@hyperledger/identus-sdk@npm:*, @hyperledger/identus-sdk@workspace:*, @hyperledger/identus-sdk@workspace:packages/lib/sdk":
version: 0.0.0-use.local
resolution: "@hyperledger/identus-sdk@workspace:packages/lib/sdk"
dependencies:
@@ -3332,7 +3352,7 @@ __metadata:
languageName: node
linkType: hard
-"@testing-library/dom@npm:^10.4.0":
+"@testing-library/dom@npm:^10.4.0, @testing-library/dom@npm:^10.4.1":
version: 10.4.1
resolution: "@testing-library/dom@npm:10.4.1"
dependencies:
@@ -3348,6 +3368,26 @@ __metadata:
languageName: node
linkType: hard
+"@testing-library/react@npm:^16":
+ version: 16.3.2
+ resolution: "@testing-library/react@npm:16.3.2"
+ dependencies:
+ "@babel/runtime": "npm:^7.12.5"
+ peerDependencies:
+ "@testing-library/dom": ^10.0.0
+ "@types/react": ^18.0.0 || ^19.0.0
+ "@types/react-dom": ^18.0.0 || ^19.0.0
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+ checksum: 10c0/f9c7f0915e1b5f7b750e6c7d8b51f091b8ae7ea99bacb761d7b8505ba25de9cfcb749a0f779f1650fb268b499dd79165dc7e1ee0b8b4cb63430d3ddc81ffe044
+ languageName: node
+ linkType: hard
+
"@testing-library/user-event@npm:^14.6.1":
version: 14.6.1
resolution: "@testing-library/user-event@npm:14.6.1"
@@ -3357,19 +3397,6 @@ __metadata:
languageName: node
linkType: hard
-"@trust0/identus-store@npm:^2.0.0":
- version: 2.0.0
- resolution: "@trust0/identus-store@npm:2.0.0"
- dependencies:
- "@trust0/ridb": "npm:^1.5.41"
- "@trust0/ridb-core": "npm:^1.7.36"
- uuid: "npm:^11.1.0"
- peerDependencies:
- "@hyperledger/identus-sdk": ^7.0.0
- checksum: 10c0/0b93899cf464e6ee52bc0e5be61a1160ba1e4c530aeb0ff0a6f11b4f11d007543099932a37737558837ede1393d5602631238ab881833642d7c711ccce520c04
- languageName: node
- linkType: hard
-
"@trust0/ridb-core@npm:1.7.39, @trust0/ridb-core@npm:^1.7.39":
version: 1.7.39
resolution: "@trust0/ridb-core@npm:1.7.39"
@@ -3377,22 +3404,6 @@ __metadata:
languageName: node
linkType: hard
-"@trust0/ridb-core@npm:^1.7.36":
- version: 1.7.36
- resolution: "@trust0/ridb-core@npm:1.7.36"
- checksum: 10c0/609684efbd35ebcd71e06ae2ee90f8992e969fe94ccab9346c2796c500fa12bb76dc384fae718e3709e9568bb6efaa97edc093917a4928ed62abc0699d78cf3e
- languageName: node
- linkType: hard
-
-"@trust0/ridb@npm:^1.5.41":
- version: 1.5.41
- resolution: "@trust0/ridb@npm:1.5.41"
- dependencies:
- "@trust0/ridb-core": "npm:^1.7.36"
- checksum: 10c0/e857b6589f9b031396bdf68b6ec96e3cca31ea21223202105ecda6a8ced7d272588768fb93eea533ebe8f06833074adba5241df18d438e17bb28e0cb401e1efa
- languageName: node
- linkType: hard
-
"@trust0/ridb@npm:^1.5.44":
version: 1.5.44
resolution: "@trust0/ridb@npm:1.5.44"
@@ -3623,6 +3634,32 @@ __metadata:
languageName: node
linkType: hard
+"@types/prop-types@npm:*":
+ version: 15.7.15
+ resolution: "@types/prop-types@npm:15.7.15"
+ checksum: 10c0/b59aad1ad19bf1733cf524fd4e618196c6c7690f48ee70a327eb450a42aab8e8a063fbe59ca0a5701aebe2d92d582292c0fb845ea57474f6a15f6994b0e260b2
+ languageName: node
+ linkType: hard
+
+"@types/react-dom@npm:^18":
+ version: 18.3.7
+ resolution: "@types/react-dom@npm:18.3.7"
+ peerDependencies:
+ "@types/react": ^18.0.0
+ checksum: 10c0/8bd309e2c3d1604a28a736a24f96cbadf6c05d5288cfef8883b74f4054c961b6b3a5e997fd5686e492be903c8f3380dba5ec017eff3906b1256529cd2d39603e
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:^18":
+ version: 18.3.28
+ resolution: "@types/react@npm:18.3.28"
+ dependencies:
+ "@types/prop-types": "npm:*"
+ csstype: "npm:^3.2.2"
+ checksum: 10c0/683e19cd12b5c691215529af2e32b5ffbaccae3bf0ba93bfafa0e460e8dfee18423afed568be2b8eadf4b837c3749dd296a4f64e2d79f68fa66962c05f5af661
+ languageName: node
+ linkType: hard
+
"@types/unist@npm:*, @types/unist@npm:^3.0.0":
version: 3.0.3
resolution: "@types/unist@npm:3.0.3"
@@ -4922,6 +4959,13 @@ __metadata:
languageName: node
linkType: hard
+"csstype@npm:^3.2.2":
+ version: 3.2.3
+ resolution: "csstype@npm:3.2.3"
+ checksum: 10c0/cd29c51e70fa822f1cecd8641a1445bed7063697469d35633b516e60fe8c1bde04b08f6c5b6022136bb669b64c63d4173af54864510fbb4ee23281801841a3ce
+ languageName: node
+ linkType: hard
+
"data-urls@npm:^5.0.0":
version: 5.0.0
resolution: "data-urls@npm:5.0.0"
@@ -6317,7 +6361,6 @@ __metadata:
"@nx/vite": "npm:22.4.4"
"@swc-node/register": "npm:^1.11.1"
"@swc/core": "npm:^1.11.24"
- "@trust0/identus-store": "npm:^2.0.0"
"@types/google-protobuf": "npm:^3.15.6"
"@types/jsonld": "npm:^1.5.14"
"@types/node": "npm:^22"
@@ -6711,7 +6754,7 @@ __metadata:
languageName: node
linkType: hard
-"js-tokens@npm:^4.0.0":
+"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
version: 4.0.0
resolution: "js-tokens@npm:4.0.0"
checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
@@ -7002,6 +7045,17 @@ __metadata:
languageName: node
linkType: hard
+"loose-envify@npm:^1.1.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: "npm:^3.0.0 || ^4.0.0"
+ bin:
+ loose-envify: cli.js
+ checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
+ languageName: node
+ linkType: hard
+
"loupe@npm:^2.3.6":
version: 2.3.7
resolution: "loupe@npm:2.3.7"
@@ -8102,7 +8156,7 @@ __metadata:
languageName: node
linkType: hard
-"multiformats@npm:^9.4.2, multiformats@npm:^9.6.2":
+"multiformats@npm:^9.4.2, multiformats@npm:^9.6.2, multiformats@npm:^9.9.0":
version: 9.9.0
resolution: "multiformats@npm:9.9.0"
checksum: 10c0/1fdb34fd2fb085142665e8bd402570659b50a5fae5994027e1df3add9e1ce1283ed1e0c2584a5c63ac0a58e871b8ee9665c4a99ca36ce71032617449d48aa975
@@ -8841,6 +8895,18 @@ __metadata:
languageName: node
linkType: hard
+"react-dom@npm:^18":
+ version: 18.3.1
+ resolution: "react-dom@npm:18.3.1"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ scheduler: "npm:^0.23.2"
+ peerDependencies:
+ react: ^18.3.1
+ checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85
+ languageName: node
+ linkType: hard
+
"react-is@npm:^17.0.1":
version: 17.0.2
resolution: "react-is@npm:17.0.2"
@@ -8855,6 +8921,15 @@ __metadata:
languageName: node
linkType: hard
+"react@npm:^18":
+ version: 18.3.1
+ resolution: "react@npm:18.3.1"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3
+ languageName: node
+ linkType: hard
+
"read-pkg-up@npm:^7.0.1":
version: 7.0.1
resolution: "read-pkg-up@npm:7.0.1"
@@ -9352,6 +9427,15 @@ __metadata:
languageName: node
linkType: hard
+"scheduler@npm:^0.23.2":
+ version: 0.23.2
+ resolution: "scheduler@npm:0.23.2"
+ dependencies:
+ loose-envify: "npm:^1.1.0"
+ checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78
+ languageName: node
+ linkType: hard
+
"seed-random@npm:~2.2.0":
version: 2.2.0
resolution: "seed-random@npm:2.2.0"
@@ -10895,7 +10979,7 @@ __metadata:
languageName: node
linkType: hard
-"yaml@npm:^2.2.2, yaml@npm:^2.6.0, yaml@npm:^2.8.1":
+"yaml@npm:^2.2.2, yaml@npm:^2.6.0":
version: 2.8.2
resolution: "yaml@npm:2.8.2"
bin:
@@ -10904,6 +10988,15 @@ __metadata:
languageName: node
linkType: hard
+"yaml@npm:^2.8.1":
+ version: 2.8.3
+ resolution: "yaml@npm:2.8.3"
+ bin:
+ yaml: bin.mjs
+ checksum: 10c0/ddff0e11c1b467728d7eb4633db61c5f5de3d8e9373cf84d08fb0cdee03e1f58f02b9f1c51a4a8a865751695addbd465a77f73f1079be91fe5493b29c305fd77
+ languageName: node
+ linkType: hard
+
"yargs-parser@npm:21.1.1, yargs-parser@npm:^21.1.1":
version: 21.1.1
resolution: "yargs-parser@npm:21.1.1"