From e4e972861f7dc5f6e69fc968ad84bd1b50a3861d Mon Sep 17 00:00:00 2001 From: 1lystore Date: Tue, 19 May 2026 22:23:32 +0530 Subject: [PATCH 01/12] feat: add mobile agent pairing invite --- packages/dcp-agent/package.json | 6 +- packages/dcp-agent/src/config.ts | 16 +- packages/dcp-agent/src/index.ts | 129 +++++++++++++++- packages/dcp-agent/src/mobile-pairing.ts | 138 ++++++++++++++++++ packages/dcp-agent/src/types.ts | 55 +++++++ .../dcp-agent/tests/mobile-pairing.test.ts | 64 ++++++++ pnpm-lock.yaml | 17 +++ 7 files changed, 421 insertions(+), 4 deletions(-) create mode 100644 packages/dcp-agent/src/mobile-pairing.ts create mode 100644 packages/dcp-agent/tests/mobile-pairing.test.ts diff --git a/packages/dcp-agent/package.json b/packages/dcp-agent/package.json index e41bd97..3c4d586 100644 --- a/packages/dcp-agent/package.json +++ b/packages/dcp-agent/package.json @@ -55,16 +55,18 @@ "author": "DCP Protocol", "license": "Apache-2.0", "dependencies": { - "@dcprotocol/core": "^2.0.1", "@dcprotocol/client": "^2.0.1", + "@dcprotocol/core": "^2.0.1", "@modelcontextprotocol/sdk": "^1.0.0", "@noble/curves": "^1.4.0", "chalk": "^5.3.0", "commander": "^12.1.0", - "ora": "^8.0.1" + "ora": "^8.0.1", + "qrcode-terminal": "^0.12.0" }, "devDependencies": { "@types/node": "^22.10.2", + "@types/qrcode-terminal": "^0.12.2", "tsup": "^8.3.5", "tsx": "^4.19.2", "typescript": "^5.7.2", diff --git a/packages/dcp-agent/src/config.ts b/packages/dcp-agent/src/config.ts index cf07bbb..682759d 100644 --- a/packages/dcp-agent/src/config.ts +++ b/packages/dcp-agent/src/config.ts @@ -13,7 +13,7 @@ import { generateSigningKeyPair, type SignedPairingGrant, } from '@dcprotocol/core'; -import { AgentConfig, AgentError } from './types.js'; +import { AgentConfig, AgentError, type MobilePendingConfig } from './types.js'; // ============================================================================ // Constants @@ -151,6 +151,20 @@ export function saveConfig(config: AgentConfig): void { fs.writeFileSync(configPath, JSON.stringify(config, null, 2), { mode: 0o600 }); } +/** + * Save pending mobile pairing material. + * + * This is not a usable AgentConfig yet. The mobile vault must approve the + * invite and return vault identity before this can be promoted to a runtime + * agent config. + */ +export function saveMobilePendingConfig(config: MobilePendingConfig): void { + ensureConfigDir(); + const safeInviteId = config.invite_id.replace(/[^a-zA-Z0-9_-]/g, '_'); + const configPath = path.join(CONFIG_DIR, `${safeInviteId}.mobile-pending.json`); + fs.writeFileSync(configPath, JSON.stringify(config, null, 2), { mode: 0o600 }); +} + /** * Load agent configuration * diff --git a/packages/dcp-agent/src/index.ts b/packages/dcp-agent/src/index.ts index e15b89a..09a652c 100644 --- a/packages/dcp-agent/src/index.ts +++ b/packages/dcp-agent/src/index.ts @@ -23,11 +23,13 @@ import * as fs from 'node:fs'; import * as path from 'node:path'; import { spawn } from 'node:child_process'; import { fileURLToPath } from 'node:url'; +import qrcode from 'qrcode-terminal'; import { parseAndVerifyGrant, createConfigFromGrant, exchangePairingGrant, saveConfig, + saveMobilePendingConfig, loadConfig, listConfigs, deleteConfig, @@ -39,12 +41,20 @@ import { runMcpServer } from './mcp.js'; import { runHttpMcpServer } from './http-mcp.js'; import { AgentError } from './types.js'; import { processSecretsRequest, fetchSecret, fetchSecrets } from './secrets.js'; +import { createMobilePairingInvite } from './mobile-pairing.js'; import { configureOpenClawCommand, installServiceCommand, uninstallServiceCommand, } from './commands/install-service.js'; -import type { PairOptions, RunOptions, StatusOptions } from './types.js'; +import type { + MobileAgentClient, + MobileAgentEnvironment, + MobileDcpScope, + PairOptions, + RunOptions, + StatusOptions, +} from './types.js'; // ============================================================================ // Helpers @@ -201,6 +211,103 @@ async function pairCommand(grantToken: string, options: PairOptions): Promise = { + 'claude-desktop': 'Claude Desktop', + cursor: 'Cursor', + vscode: 'VS Code', + hermes: 'Hermes', + openclaw: 'OpenClaw', + mcp: 'MCP Agent', + custom: 'Custom Agent', + hosted: 'Hosted Agent', + }; + return names[client] || 'DCP Agent'; +} + +async function mobilePairCommand(options: MobilePairOptions): Promise { + try { + const client = options.client || 'custom'; + const environment = options.environment || (client === 'hermes' || client === 'openclaw' ? 'vps' : 'local'); + const scopes = (options.scope?.length ? options.scope : ['read:wallet.address', 'sign:solana']) as MobileDcpScope[]; + const daily = parseNumberOption(options.dailyBudget, 0, '--daily-budget'); + const approvalThreshold = parseNumberOption(options.approvalThreshold, 0, '--approval-threshold'); + const ttlSeconds = parseNumberOption(options.ttlSeconds, 10 * 60, '--ttl-seconds'); + + const created = createMobilePairingInvite({ + client, + environment, + agentName: options.name || defaultAgentName(client), + relayUrl: options.relayUrl, + requestedScopes: scopes, + requestedBudget: { + daily, + currency: options.currency || 'USDC', + approval_threshold: approvalThreshold, + }, + ttlSeconds, + }); + + saveMobilePendingConfig(created.pendingConfig); + + if (options.json) { + console.log(JSON.stringify({ + invite: created.invite, + invite_url: created.inviteUrl, + }, null, 2)); + return; + } + + console.log(); + console.log(chalk.bold('DCP Mobile Pairing')); + console.log(dim('Scan this QR with DCP Mobile, or paste the pairing URL into the app.')); + console.log(); + + if (!options.noQr) { + qrcode.generate(created.inviteUrl, { small: true }); + console.log(); + } + + console.log(` ${dim('Agent:')} ${created.invite.agent_name}`); + console.log(` ${dim('Client:')} ${created.invite.agent_client}`); + console.log(` ${dim('Environment:')} ${created.invite.environment}`); + console.log(` ${dim('Invite ID:')} ${created.invite.invite_id}`); + console.log(` ${dim('Expires:')} ${created.invite.expires_at}`); + console.log(); + console.log(chalk.bold('Pairing URL:')); + console.log(created.inviteUrl); + console.log(); + console.log(dim('Pending agent key material was saved locally with 0600 permissions.')); + console.log(dim('The mobile vault must approve the invite before this agent can request DCP actions.')); + } catch (err) { + error(err instanceof Error ? err.message : 'Failed to create mobile pairing invite'); + process.exit(1); + } +} + function getAgentDataDir(): string { const homeDir = process.env.HOME || process.env.USERPROFILE || '.'; return path.join(homeDir, '.dcp', 'agents'); @@ -550,6 +657,26 @@ program .option('-n, --name ', 'Override agent name') .action(pairCommand); +const mobileCommand = program + .command('mobile') + .description('DCP Mobile pairing commands'); + +mobileCommand + .command('pair') + .description('Create a DCP Mobile pairing invite') + .option('--client ', 'Agent client: claude-desktop, cursor, vscode, hermes, openclaw, mcp, custom, hosted', 'custom') + .option('--environment ', 'Environment: local, vps, hosted, dev') + .option('-n, --name ', 'Agent display name') + .option('--relay-url ', 'Mobile relay API/base URL') + .option('--scope ', 'Requested scope. Repeat for multiple scopes.', (value, previous: string[] = []) => [...previous, value]) + .option('--daily-budget ', 'Requested daily budget', '0') + .option('--currency ', 'Budget currency: USDC or SOL', 'USDC') + .option('--approval-threshold ', 'Auto-approval threshold', '0') + .option('--ttl-seconds ', 'Invite lifetime in seconds', '600') + .option('--json', 'Print machine-readable JSON') + .option('--no-qr', 'Do not print terminal QR') + .action(mobilePairCommand); + program .command('run') .description('Run the agent') diff --git a/packages/dcp-agent/src/mobile-pairing.ts b/packages/dcp-agent/src/mobile-pairing.ts new file mode 100644 index 0000000..c5382c1 --- /dev/null +++ b/packages/dcp-agent/src/mobile-pairing.ts @@ -0,0 +1,138 @@ +import { randomUUID } from 'node:crypto'; +import { signMessage, generateSigningKeyPair } from '@dcprotocol/core'; +import type { + MobileAgentClient, + MobileAgentEnvironment, + MobileDcpScope, + MobilePairingBudget, + MobilePairingInvite, + MobilePendingConfig, +} from './types.js'; + +export const MOBILE_PAIRING_TYPE = 'dcp_agent_pairing'; +export const MOBILE_PAIRING_VERSION = '1.0'; +export const DEFAULT_MOBILE_RELAY_URL = 'https://relay.dcp.1ly.store'; + +const SUPPORTED_CLIENTS = new Set([ + 'claude-desktop', + 'cursor', + 'vscode', + 'hermes', + 'openclaw', + 'mcp', + 'custom', + 'hosted', +]); + +const SUPPORTED_ENVIRONMENTS = new Set([ + 'local', + 'vps', + 'hosted', + 'dev', +]); + +const SUPPORTED_SCOPES = new Set([ + 'read:wallet.address', + 'sign:solana', + 'vault_get_address', + 'vault_budget_check', + 'vault_sign_tx', + 'vault_sign_message', +]); + +export interface CreateMobilePairingInviteInput { + client: MobileAgentClient; + environment: MobileAgentEnvironment; + agentName: string; + relayUrl?: string; + requestedScopes?: MobileDcpScope[]; + requestedBudget?: MobilePairingBudget; + ttlSeconds?: number; +} + +export interface CreatedMobilePairingInvite { + invite: MobilePairingInvite; + inviteUrl: string; + pendingConfig: MobilePendingConfig; +} + +function canonicalJson(value: Record): string { + return JSON.stringify(value, Object.keys(value).sort()); +} + +function encodeMobilePairingInvite(invite: MobilePairingInvite): string { + return `dcp://pair?invite=${encodeURIComponent(JSON.stringify(invite))}`; +} + +function assertSupported(input: CreateMobilePairingInviteInput): void { + if (!SUPPORTED_CLIENTS.has(input.client)) { + throw new Error(`Unsupported mobile agent client: ${input.client}`); + } + if (!SUPPORTED_ENVIRONMENTS.has(input.environment)) { + throw new Error(`Unsupported mobile agent environment: ${input.environment}`); + } + for (const scope of input.requestedScopes || []) { + if (!SUPPORTED_SCOPES.has(scope)) { + throw new Error(`Unsupported mobile MVP scope: ${scope}`); + } + } +} + +export function createMobilePairingInvite( + input: CreateMobilePairingInviteInput +): CreatedMobilePairingInvite { + assertSupported(input); + + const keypair = generateSigningKeyPair(); + const createdAt = new Date(); + const ttlSeconds = input.ttlSeconds ?? 10 * 60; + const expiresAt = new Date(createdAt.getTime() + ttlSeconds * 1000); + const inviteId = `mob_${randomUUID().replace(/-/g, '').slice(0, 16)}`; + const requestedBudget = input.requestedBudget ?? { + daily: 0, + currency: 'USDC', + approval_threshold: 0, + }; + + const unsignedInvite: Omit = { + type: MOBILE_PAIRING_TYPE, + version: MOBILE_PAIRING_VERSION, + relay_url: (input.relayUrl || process.env.DCP_MOBILE_RELAY_URL || DEFAULT_MOBILE_RELAY_URL).replace(/\/$/, ''), + invite_id: inviteId, + agent_public_key: keypair.publicKey.toString('base64'), + agent_name: input.agentName.trim(), + agent_client: input.client, + environment: input.environment, + requested_scopes: input.requestedScopes ?? ['read:wallet.address', 'sign:solana'], + requested_budget: requestedBudget, + created_at: createdAt.toISOString(), + expires_at: expiresAt.toISOString(), + nonce: randomUUID(), + }; + + const signature = Buffer.from( + signMessage(Buffer.from(canonicalJson(unsignedInvite), 'utf8'), keypair.privateKey) + ).toString('base64'); + + const invite: MobilePairingInvite = { + ...unsignedInvite, + signature, + }; + const inviteUrl = encodeMobilePairingInvite(invite); + + return { + invite, + inviteUrl, + pendingConfig: { + invite_id: inviteId, + invite_url: inviteUrl, + invite, + service_keypair: { + public: keypair.publicKey.toString('base64'), + private: keypair.privateKey.toString('base64'), + }, + pairing_status: 'pending_mobile_approval', + created_at: createdAt.toISOString(), + }, + }; +} diff --git a/packages/dcp-agent/src/types.ts b/packages/dcp-agent/src/types.ts index 34ba059..ff2f8b6 100644 --- a/packages/dcp-agent/src/types.ts +++ b/packages/dcp-agent/src/types.ts @@ -102,6 +102,61 @@ export interface VpsPendingConfig { agent_name?: string; } +export type MobileAgentClient = + | 'claude-desktop' + | 'cursor' + | 'vscode' + | 'hermes' + | 'openclaw' + | 'mcp' + | 'custom' + | 'hosted'; + +export type MobileAgentEnvironment = 'local' | 'vps' | 'hosted' | 'dev'; + +export type MobileDcpScope = + | 'read:wallet.address' + | 'sign:solana' + | 'vault_get_address' + | 'vault_budget_check' + | 'vault_sign_tx' + | 'vault_sign_message'; + +export interface MobilePairingBudget { + daily: number; + currency: 'SOL' | 'USDC'; + approval_threshold: number; +} + +export interface MobilePairingInvite { + type: 'dcp_agent_pairing'; + version: '1.0'; + relay_url: string; + invite_id: string; + agent_public_key: string; + agent_name: string; + agent_client: MobileAgentClient; + environment: MobileAgentEnvironment; + requested_scopes: MobileDcpScope[]; + requested_budget: MobilePairingBudget; + created_at: string; + expires_at: string; + nonce: string; + signature?: string; +} + +export interface MobilePendingConfig { + invite_id: string; + invite_url: string; + invite: MobilePairingInvite; + service_keypair: { + public: string; + private: string; + }; + pairing_status: 'pending_mobile_approval'; + created_at: string; +} + /** * Check if a config is a VPS pending config (not yet approved) */ diff --git a/packages/dcp-agent/tests/mobile-pairing.test.ts b/packages/dcp-agent/tests/mobile-pairing.test.ts new file mode 100644 index 0000000..12abfec --- /dev/null +++ b/packages/dcp-agent/tests/mobile-pairing.test.ts @@ -0,0 +1,64 @@ +import { describe, expect, it } from 'vitest'; +import { verifySignature } from '@dcprotocol/core'; +import { createMobilePairingInvite } from '../src/mobile-pairing.js'; + +function canonicalInvitePayload(invite: Record): string { + const { signature: _signature, ...unsigned } = invite; + return JSON.stringify(unsigned, Object.keys(unsigned).sort()); +} + +describe('mobile pairing', () => { + it('creates a signed DCP Mobile pairing invite URL', () => { + const { invite, inviteUrl, pendingConfig } = createMobilePairingInvite({ + client: 'claude-desktop', + environment: 'local', + agentName: 'Claude Desktop', + relayUrl: 'https://relay.example.test/', + requestedScopes: ['read:wallet.address', 'sign:solana'], + requestedBudget: { + daily: 5, + currency: 'USDC', + approval_threshold: 0.01, + }, + ttlSeconds: 300, + }); + + expect(invite.type).toBe('dcp_agent_pairing'); + expect(invite.version).toBe('1.0'); + expect(invite.relay_url).toBe('https://relay.example.test'); + expect(invite.agent_client).toBe('claude-desktop'); + expect(invite.environment).toBe('local'); + expect(invite.requested_scopes).toEqual(['read:wallet.address', 'sign:solana']); + expect(invite.signature).toBeTruthy(); + expect(inviteUrl.startsWith('dcp://pair?invite=')).toBe(true); + expect(pendingConfig.service_keypair.private).toBeTruthy(); + expect(pendingConfig.invite_id).toBe(invite.invite_id); + }); + + it('signs the invite with the generated agent public key', () => { + const { invite } = createMobilePairingInvite({ + client: 'custom', + environment: 'dev', + agentName: 'Test Agent', + }); + + const valid = verifySignature( + Buffer.from(canonicalInvitePayload(invite), 'utf8'), + Buffer.from(invite.signature!, 'base64'), + Buffer.from(invite.agent_public_key, 'base64') + ); + + expect(valid).toBe(true); + }); + + it('rejects unsupported MVP scopes', () => { + expect(() => + createMobilePairingInvite({ + client: 'custom', + environment: 'dev', + agentName: 'Bad Scope Agent', + requestedScopes: ['read:api.key' as never], + }) + ).toThrow('Unsupported mobile MVP scope'); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92816aa..6ab0b17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,10 +31,16 @@ importers: ora: specifier: ^8.0.1 version: 8.2.0 + qrcode-terminal: + specifier: ^0.12.0 + version: 0.12.0 devDependencies: '@types/node': specifier: ^22.10.2 version: 22.19.17 + '@types/qrcode-terminal': + specifier: ^0.12.2 + version: 0.12.2 tsup: specifier: ^8.3.5 version: 8.5.1(postcss@8.5.13)(tsx@4.21.0)(typescript@5.9.3) @@ -1293,6 +1299,9 @@ packages: '@types/prompts@2.4.9': resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} + '@types/qrcode-terminal@0.12.2': + resolution: {integrity: sha512-v+RcIEJ+Uhd6ygSQ0u5YYY7ZM+la7GgPbs0V/7l/kFs2uO4S8BcIUEMoP7za4DNIqNnUD5npf0A/7kBhrCKG5Q==} + '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: @@ -2185,6 +2194,10 @@ packages: pump@3.0.4: resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + qrcode-terminal@0.12.0: + resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==} + hasBin: true + qs@6.15.1: resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} engines: {node: '>=0.6'} @@ -3401,6 +3414,8 @@ snapshots: '@types/node': 22.19.17 kleur: 3.0.3 + '@types/qrcode-terminal@0.12.2': {} + '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: '@types/react': 19.2.14 @@ -4348,6 +4363,8 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 + qrcode-terminal@0.12.0: {} + qs@6.15.1: dependencies: side-channel: 1.1.0 From d24b5bd31b060989f967c5ba63e6f0a1690dd7d6 Mon Sep 17 00:00:00 2001 From: 1lystore Date: Tue, 19 May 2026 22:59:21 +0530 Subject: [PATCH 02/12] feat: complete mobile relay pairing runtime --- packages/dcp-agent/src/config.ts | 38 +++- packages/dcp-agent/src/index.ts | 30 ++- packages/dcp-agent/src/mobile-pairing.ts | 56 ++++- packages/dcp-agent/src/types.ts | 12 + .../dcp-agent/tests/mobile-pairing.test.ts | 33 ++- packages/dcp-relay/src/index.ts | 10 +- packages/dcp-relay/src/relay.ts | 215 +++++++++++++++++- packages/dcp-relay/src/store.ts | 135 +++++++++++ packages/dcp-relay/src/types.ts | 84 +++++++ packages/dcp-relay/tests/relay.test.ts | 147 +++++++++++- 10 files changed, 751 insertions(+), 9 deletions(-) diff --git a/packages/dcp-agent/src/config.ts b/packages/dcp-agent/src/config.ts index 682759d..0d570ed 100644 --- a/packages/dcp-agent/src/config.ts +++ b/packages/dcp-agent/src/config.ts @@ -13,7 +13,7 @@ import { generateSigningKeyPair, type SignedPairingGrant, } from '@dcprotocol/core'; -import { AgentConfig, AgentError, type MobilePendingConfig } from './types.js'; +import { AgentConfig, AgentError, type MobilePairingApprovalStatus, type MobilePendingConfig } from './types.js'; // ============================================================================ // Constants @@ -165,6 +165,42 @@ export function saveMobilePendingConfig(config: MobilePendingConfig): void { fs.writeFileSync(configPath, JSON.stringify(config, null, 2), { mode: 0o600 }); } +export function promoteMobilePendingConfig( + pending: MobilePendingConfig, + approval: MobilePairingApprovalStatus +): AgentConfig { + if ( + approval.status !== 'approved' || + !approval.agent_id || + !approval.vault_id || + !approval.vault_hpke_public_key || + !approval.vault_signing_public_key + ) { + throw new AgentError('INVALID_GRANT', 'Mobile pairing approval is incomplete'); + } + + const config: AgentConfig = { + agent_id: approval.agent_id, + agent_name: pending.invite.agent_name, + vault_id: approval.vault_id, + mode: 'mcp', + vault_hpke_public_key: approval.vault_hpke_public_key, + vault_signing_public_key: approval.vault_signing_public_key, + relay_url: pending.invite.relay_url, + service_keypair: pending.service_keypair, + paired_at: new Date().toISOString(), + grant_expires_at: pending.invite.expires_at, + }; + + saveConfig(config); + const safeInviteId = pending.invite_id.replace(/[^a-zA-Z0-9_-]/g, '_'); + const pendingPath = path.join(CONFIG_DIR, `${safeInviteId}.mobile-pending.json`); + if (fs.existsSync(pendingPath)) { + fs.unlinkSync(pendingPath); + } + return config; +} + /** * Load agent configuration * diff --git a/packages/dcp-agent/src/index.ts b/packages/dcp-agent/src/index.ts index 09a652c..9898373 100644 --- a/packages/dcp-agent/src/index.ts +++ b/packages/dcp-agent/src/index.ts @@ -30,6 +30,7 @@ import { exchangePairingGrant, saveConfig, saveMobilePendingConfig, + promoteMobilePendingConfig, loadConfig, listConfigs, deleteConfig, @@ -41,7 +42,7 @@ import { runMcpServer } from './mcp.js'; import { runHttpMcpServer } from './http-mcp.js'; import { AgentError } from './types.js'; import { processSecretsRequest, fetchSecret, fetchSecrets } from './secrets.js'; -import { createMobilePairingInvite } from './mobile-pairing.js'; +import { createMobilePairingInvite, waitForMobilePairingApproval } from './mobile-pairing.js'; import { configureOpenClawCommand, installServiceCommand, @@ -223,6 +224,8 @@ interface MobilePairOptions { ttlSeconds?: string; json?: boolean; noQr?: boolean; + wait?: boolean; + waitSeconds?: string; } function parseNumberOption(value: string | undefined, fallback: number, label: string): number { @@ -302,6 +305,29 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { console.log(); console.log(dim('Pending agent key material was saved locally with 0600 permissions.')); console.log(dim('The mobile vault must approve the invite before this agent can request DCP actions.')); + + if (options.wait) { + const waitSeconds = parseNumberOption(options.waitSeconds, ttlSeconds, '--wait-seconds'); + console.log(); + console.log(dim(`Waiting up to ${waitSeconds}s for DCP Mobile approval...`)); + const status = await waitForMobilePairingApproval( + created.invite.relay_url, + created.invite.invite_id, + { timeoutMs: waitSeconds * 1000 } + ); + + if (status.status !== 'approved') { + error(`Mobile pairing ${status.status}${status.error ? `: ${status.error}` : ''}`); + process.exit(1); + } + + success('Mobile pairing approved'); + console.log(` ${dim('Agent ID:')} ${status.agent_id}`); + console.log(` ${dim('Vault ID:')} ${status.vault_id}`); + const config = promoteMobilePendingConfig(created.pendingConfig, status); + console.log(dim(`Saved agent config: ${config.agent_id}`)); + console.log(dim(`Next: run "dcp-agent run --agent ${config.agent_id} --mode mcp" from your MCP host.`)); + } } catch (err) { error(err instanceof Error ? err.message : 'Failed to create mobile pairing invite'); process.exit(1); @@ -675,6 +701,8 @@ mobileCommand .option('--ttl-seconds ', 'Invite lifetime in seconds', '600') .option('--json', 'Print machine-readable JSON') .option('--no-qr', 'Do not print terminal QR') + .option('--wait', 'Wait until DCP Mobile approves or denies the pairing') + .option('--wait-seconds ', 'How long --wait should poll for approval') .action(mobilePairCommand); program diff --git a/packages/dcp-agent/src/mobile-pairing.ts b/packages/dcp-agent/src/mobile-pairing.ts index c5382c1..3e95016 100644 --- a/packages/dcp-agent/src/mobile-pairing.ts +++ b/packages/dcp-agent/src/mobile-pairing.ts @@ -4,6 +4,7 @@ import type { MobileAgentClient, MobileAgentEnvironment, MobileDcpScope, + MobilePairingApprovalStatus, MobilePairingBudget, MobilePairingInvite, MobilePendingConfig, @@ -56,8 +57,20 @@ export interface CreatedMobilePairingInvite { pendingConfig: MobilePendingConfig; } -function canonicalJson(value: Record): string { - return JSON.stringify(value, Object.keys(value).sort()); +export function canonicalJson(value: unknown): string { + if (Array.isArray(value)) { + return `[${value.map((item) => canonicalJson(item)).join(',')}]`; + } + + if (value && typeof value === 'object') { + const record = value as Record; + return `{${Object.keys(record) + .sort() + .map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key])}`) + .join(',')}}`; + } + + return JSON.stringify(value); } function encodeMobilePairingInvite(invite: MobilePairingInvite): string { @@ -136,3 +149,42 @@ export function createMobilePairingInvite( }, }; } + +export async function getMobilePairingStatus( + relayUrl: string, + inviteId: string +): Promise { + const response = await fetch( + `${relayUrl.replace(/\/$/, '')}/v1/mobile/pairings/${encodeURIComponent(inviteId)}/status` + ); + + if (!response.ok) { + throw new Error(`Failed to fetch mobile pairing status (${response.status})`); + } + + return (await response.json()) as MobilePairingApprovalStatus; +} + +export async function waitForMobilePairingApproval( + relayUrl: string, + inviteId: string, + options: { timeoutMs?: number; pollIntervalMs?: number } = {} +): Promise { + const timeoutMs = options.timeoutMs ?? 10 * 60 * 1000; + const pollIntervalMs = options.pollIntervalMs ?? 2000; + const deadline = Date.now() + timeoutMs; + + while (Date.now() < deadline) { + const status = await getMobilePairingStatus(relayUrl, inviteId); + if (status.status !== 'pending') { + return status; + } + await new Promise((resolve) => setTimeout(resolve, pollIntervalMs)); + } + + return { + status: 'expired', + invite_id: inviteId, + error: 'Timed out waiting for mobile approval', + }; +} diff --git a/packages/dcp-agent/src/types.ts b/packages/dcp-agent/src/types.ts index ff2f8b6..33e14f5 100644 --- a/packages/dcp-agent/src/types.ts +++ b/packages/dcp-agent/src/types.ts @@ -157,6 +157,18 @@ export interface MobilePendingConfig { created_at: string; } +export interface MobilePairingApprovalStatus { + status: 'pending' | 'approved' | 'denied' | 'expired' | 'not_found'; + invite_id?: string; + agent_id?: string; + vault_id?: string; + vault_hpke_public_key?: string; + vault_signing_public_key?: string; + approved_scopes?: MobileDcpScope[]; + approved_budget?: MobilePairingBudget; + error?: string; +} + /** * Check if a config is a VPS pending config (not yet approved) */ diff --git a/packages/dcp-agent/tests/mobile-pairing.test.ts b/packages/dcp-agent/tests/mobile-pairing.test.ts index 12abfec..b955199 100644 --- a/packages/dcp-agent/tests/mobile-pairing.test.ts +++ b/packages/dcp-agent/tests/mobile-pairing.test.ts @@ -1,10 +1,10 @@ import { describe, expect, it } from 'vitest'; import { verifySignature } from '@dcprotocol/core'; -import { createMobilePairingInvite } from '../src/mobile-pairing.js'; +import { canonicalJson, createMobilePairingInvite } from '../src/mobile-pairing.js'; function canonicalInvitePayload(invite: Record): string { const { signature: _signature, ...unsigned } = invite; - return JSON.stringify(unsigned, Object.keys(unsigned).sort()); + return canonicalJson(unsigned); } describe('mobile pairing', () => { @@ -51,6 +51,35 @@ describe('mobile pairing', () => { expect(valid).toBe(true); }); + it('covers nested budget fields in the invite signature', () => { + const { invite } = createMobilePairingInvite({ + client: 'custom', + environment: 'dev', + agentName: 'Budget Integrity Agent', + requestedBudget: { + daily: 1, + currency: 'USDC', + approval_threshold: 0, + }, + }); + + const tampered = { + ...invite, + requested_budget: { + ...invite.requested_budget, + daily: 999, + }, + }; + + const valid = verifySignature( + Buffer.from(canonicalInvitePayload(tampered), 'utf8'), + Buffer.from(invite.signature!, 'base64'), + Buffer.from(invite.agent_public_key, 'base64') + ); + + expect(valid).toBe(false); + }); + it('rejects unsupported MVP scopes', () => { expect(() => createMobilePairingInvite({ diff --git a/packages/dcp-relay/src/index.ts b/packages/dcp-relay/src/index.ts index 8c52bbc..bca80dd 100644 --- a/packages/dcp-relay/src/index.ts +++ b/packages/dcp-relay/src/index.ts @@ -21,7 +21,7 @@ // ============================================================================ export { RelayServer } from './relay.js'; -export { MessageStore, ConnectionStore, RateLimiter } from './store.js'; +export { MessageStore, ConnectionStore, RateLimiter, MobilePairingStore } from './store.js'; export { authenticateRegistration, verifyRegistrationSignature, @@ -48,6 +48,14 @@ export { type StoredPairingClaim, type PairingClaimResponse, type PairingApprovalStatus, + type MobileAgentClient, + type MobileAgentEnvironment, + type MobileDcpScope, + type MobilePairingBudget, + type MobilePairingInvite, + type MobilePairingApprovalRequest, + type MobilePairingRecord, + type MobilePairingStatus, // Constants RELAY_VERSION, diff --git a/packages/dcp-relay/src/relay.ts b/packages/dcp-relay/src/relay.ts index e11ee6f..2123bf0 100644 --- a/packages/dcp-relay/src/relay.ts +++ b/packages/dcp-relay/src/relay.ts @@ -35,13 +35,16 @@ import type { PairingClaimResponse, PairingApprovalStatus, StoredPairingClaim, + MobilePairingApprovalRequest, + MobilePairingStatus, + MobilePairingInvite, } from './types.js'; import { RelayError, DEFAULT_RELAY_CONFIG, RELAY_VERSION, } from './types.js'; -import { MessageStore, ConnectionStore, RateLimiter, PairingClaimStore } from './store.js'; +import { MessageStore, ConnectionStore, RateLimiter, PairingClaimStore, MobilePairingStore } from './store.js'; import { authenticateRegistration, authenticateRequest, closeAuth, type AuthConfig } from './auth.js'; // ============================================================================ @@ -54,6 +57,7 @@ export class RelayServer { private connectionStore: ConnectionStore; private rateLimiter: RateLimiter; private pairingClaimStore: PairingClaimStore; + private mobilePairingStore: MobilePairingStore; private config: RelayConfig; private authConfig: AuthConfig; private heartbeatInterval: ReturnType | null = null; @@ -74,6 +78,7 @@ export class RelayServer { this.config.rateLimitWindowMs ); this.pairingClaimStore = new PairingClaimStore(); + this.mobilePairingStore = new MobilePairingStore(); this.server = Fastify({ logger: this.config.debug @@ -135,6 +140,7 @@ export class RelayServer { this.messageStore.close(); this.rateLimiter.close(); this.pairingClaimStore.close(); + this.mobilePairingStore.close(); closeAuth(); await this.server.close(); } @@ -157,6 +163,7 @@ export class RelayServer { ...this.connectionStore.getStats(), rateLimit: this.rateLimiter.getStats(), pairingClaims: this.pairingClaimStore.getStats(), + mobilePairings: this.mobilePairingStore.getStats(), timestamp: new Date().toISOString(), })); @@ -168,6 +175,7 @@ export class RelayServer { const connectionStats = this.connectionStore.getStats(); const rateLimitStats = this.rateLimiter.getStats(); const pairingStats = this.pairingClaimStore.getStats(); + const mobilePairingStats = this.mobilePairingStore.getStats(); const format = request.query.format; @@ -200,6 +208,9 @@ export class RelayServer { '# HELP dcp_relay_pairing_claims_pending Pending pairing claims', '# TYPE dcp_relay_pairing_claims_pending gauge', `dcp_relay_pairing_claims_pending ${pairingStats.pendingClaims}`, + '# HELP dcp_relay_mobile_pairings_total Total mobile pairings', + '# TYPE dcp_relay_mobile_pairings_total gauge', + `dcp_relay_mobile_pairings_total ${mobilePairingStats.totalMobilePairings}`, '', ]; reply.header('Content-Type', 'text/plain; charset=utf-8'); @@ -212,6 +223,7 @@ export class RelayServer { connections: connectionStats, rateLimit: rateLimitStats, pairingClaims: pairingStats, + mobilePairings: mobilePairingStats, websockets: { vaultConnections: this.wsConnections.size, clientConnections: this.clientSockets.size, @@ -310,6 +322,63 @@ export class RelayServer { return reply.send({ success: true }); } ); + + // ======================================================================== + // DCP Mobile Pairing Routes (Agent QR → Mobile approval → Agent polling) + // ======================================================================== + + this.server.post<{ + Params: { inviteId: string }; + Body: MobilePairingApprovalRequest; + }>( + '/v1/mobile/pairings/:inviteId/approve', + async (request, reply) => { + return this.handleMobilePairingApprove( + request.params.inviteId, + request.body, + reply + ); + } + ); + + this.server.post<{ + Params: { inviteId: string }; + Body: { denied_reason?: string }; + }>( + '/v1/mobile/pairings/:inviteId/deny', + async (request, reply) => { + const record = this.mobilePairingStore.deny( + request.params.inviteId, + request.body?.denied_reason + ); + return reply.send({ + success: true, + invite_id: record.invite_id, + status: record.status, + }); + } + ); + + this.server.get<{ Params: { inviteId: string } }>( + '/v1/mobile/pairings/:inviteId/status', + async (request, reply) => { + return this.handleMobilePairingStatus(request.params.inviteId, reply); + } + ); + + this.server.post<{ + Params: { vaultId: string }; + Body: { public_key: string; signing_public_key?: string }; + }>( + '/v1/mobile/vaults/:vaultId/online', + async (request, reply) => { + if (!request.body?.public_key) { + return reply.status(400).send({ error: 'Missing public_key' }); + } + this.connectionStore.register(request.params.vaultId, request.body.public_key); + return reply.send({ success: true, vault_id: request.params.vaultId }); + } + ); } private async handleRequest( @@ -676,6 +745,61 @@ export class RelayServer { }); } + private async handleMobilePairingApprove( + inviteId: string, + body: MobilePairingApprovalRequest, + reply: FastifyReply + ): Promise { + const validationError = this.validateMobileApproval(inviteId, body); + if (validationError) { + return reply.status(400).send({ success: false, error: validationError }); + } + + const record = this.mobilePairingStore.approve(body); + + if (this.config.debug) { + console.log( + `Mobile pairing approved: ${record.invite_id} (agent: ${record.agent_id}, vault: ${record.vault_id})` + ); + } + + return reply.send({ + success: true, + invite_id: record.invite_id, + status: record.status, + agent_id: record.agent_id, + vault_id: record.vault_id, + vault_hpke_public_key: record.vault_hpke_public_key, + vault_signing_public_key: record.vault_signing_public_key, + }); + } + + private async handleMobilePairingStatus( + inviteId: string, + reply: FastifyReply + ): Promise { + const record = this.mobilePairingStore.get(inviteId); + + if (!record) { + return reply.send({ + status: 'pending', + invite_id: inviteId, + } satisfies MobilePairingStatus); + } + + return reply.send({ + status: record.status, + invite_id: record.invite_id, + agent_id: record.agent_id, + vault_id: record.vault_id, + vault_hpke_public_key: record.vault_hpke_public_key, + vault_signing_public_key: record.vault_signing_public_key, + approved_scopes: record.approved_scopes, + approved_budget: record.approved_budget, + error: record.denied_reason, + } satisfies MobilePairingStatus); + } + // -------------------------------------------------------------------------- // WebSocket Handler // -------------------------------------------------------------------------- @@ -1156,6 +1280,95 @@ export class RelayServer { return null; } + private validateMobileApproval( + inviteId: string, + body: MobilePairingApprovalRequest + ): string | null { + if (!body || typeof body !== 'object') { + return 'Missing approval body'; + } + + const invite = body.invite; + if (!invite || typeof invite !== 'object') { + return 'Missing pairing invite'; + } + if (invite.invite_id !== inviteId) { + return 'Invite ID mismatch'; + } + if (!body.vault_id || !body.agent_id) { + return 'Missing vault_id or agent_id'; + } + if (!body.vault_hpke_public_key || !body.vault_signing_public_key) { + return 'Missing vault relay public keys'; + } + if (!Array.isArray(body.approved_scopes) || body.approved_scopes.length === 0) { + return 'approved_scopes must be a non-empty array'; + } + if (!body.approved_budget || typeof body.approved_budget.daily !== 'number') { + return 'approved_budget is required'; + } + + const inviteError = this.validateMobileInvite(invite); + if (inviteError) { + return inviteError; + } + + const requestedScopes = new Set(invite.requested_scopes); + const unrequestedScope = body.approved_scopes.find((scope) => !requestedScopes.has(scope)); + if (unrequestedScope) { + return `Approved scope was not requested: ${unrequestedScope}`; + } + + return null; + } + + private validateMobileInvite(invite: MobilePairingInvite): string | null { + if (invite.type !== 'dcp_agent_pairing' || invite.version !== '1.0') { + return 'Unsupported mobile pairing invite'; + } + if (!invite.signature) { + return 'Invite signature is required'; + } + + const expiresAt = new Date(invite.expires_at).getTime(); + if (!Number.isFinite(expiresAt)) { + return 'Invalid invite expiry'; + } + if (Date.now() > expiresAt) { + return 'Invite expired'; + } + + try { + const { signature: _signature, ...unsignedInvite } = invite; + const message = Buffer.from(this.canonicalJson(unsignedInvite), 'utf8'); + const signature = Buffer.from(invite.signature, 'base64'); + const publicKey = Buffer.from(invite.agent_public_key, 'base64'); + if (!ed25519.verify(signature, message, publicKey)) { + return 'Invalid invite signature'; + } + } catch (err) { + return 'Failed to verify invite signature: ' + (err instanceof Error ? err.message : 'unknown error'); + } + + return null; + } + + private canonicalJson(value: unknown): string { + if (Array.isArray(value)) { + return `[${value.map((item) => this.canonicalJson(item)).join(',')}]`; + } + + if (value && typeof value === 'object') { + const record = value as Record; + return `{${Object.keys(record) + .sort() + .map((key) => `${JSON.stringify(key)}:${this.canonicalJson(record[key])}`) + .join(',')}}`; + } + + return JSON.stringify(value); + } + // -------------------------------------------------------------------------- // Getters (for testing) // -------------------------------------------------------------------------- diff --git a/packages/dcp-relay/src/store.ts b/packages/dcp-relay/src/store.ts index f7ac149..970d6c3 100644 --- a/packages/dcp-relay/src/store.ts +++ b/packages/dcp-relay/src/store.ts @@ -20,6 +20,8 @@ import type { RelayConfig, PairingClaim, StoredPairingClaim, + MobilePairingApprovalRequest, + MobilePairingRecord, } from './types.js'; import { RelayError, MESSAGE_TTL_MS } from './types.js'; import { createHash, randomUUID } from 'node:crypto'; @@ -775,3 +777,136 @@ export class PairingClaimStore { } } } + +// ============================================================================ +// DCP Mobile Pairing Store +// ============================================================================ + +/** Mobile pairing status TTL: enough time for the QR terminal to poll. */ +const MOBILE_PAIRING_TTL_MS = 10 * 60 * 1000; +const MOBILE_PAIRING_RESOLVED_TTL_MS = 60 * 60 * 1000; + +export class MobilePairingStore { + private records: Map = new Map(); + private cleanupInterval: ReturnType | null = null; + + constructor() { + this.cleanupInterval = setInterval(() => { + this.cleanup(); + }, 60_000); + } + + approve(request: MobilePairingApprovalRequest): MobilePairingRecord { + const now = Date.now(); + const existing = this.records.get(request.invite.invite_id); + if (existing && existing.status === 'approved') { + return existing; + } + + const record: MobilePairingRecord = { + invite_id: request.invite.invite_id, + invite: request.invite, + received_at: existing?.received_at ?? now, + status: 'approved', + vault_id: request.vault_id, + vault_hpke_public_key: request.vault_hpke_public_key, + vault_signing_public_key: request.vault_signing_public_key, + agent_id: request.agent_id, + approved_scopes: request.approved_scopes, + approved_budget: request.approved_budget, + resolved_at: now, + }; + + this.records.set(record.invite_id, record); + return record; + } + + deny(inviteId: string, deniedReason?: string): MobilePairingRecord { + const now = Date.now(); + const existing = this.records.get(inviteId); + const record: MobilePairingRecord = { + invite_id: inviteId, + invite: existing?.invite ?? { + type: 'dcp_agent_pairing', + version: '1.0', + relay_url: '', + invite_id: inviteId, + agent_public_key: '', + agent_name: '', + agent_client: 'custom', + environment: 'dev', + requested_scopes: [], + requested_budget: { daily: 0, currency: 'USDC', approval_threshold: 0 }, + created_at: new Date(now).toISOString(), + expires_at: new Date(now + MOBILE_PAIRING_TTL_MS).toISOString(), + nonce: '', + }, + received_at: existing?.received_at ?? now, + status: 'denied', + resolved_at: now, + denied_reason: deniedReason, + }; + + this.records.set(inviteId, record); + return record; + } + + get(inviteId: string): MobilePairingRecord | undefined { + const record = this.records.get(inviteId); + if (!record) return undefined; + + const now = Date.now(); + if (record.status === 'approved' || record.status === 'denied') { + return record; + } + + if (now - record.received_at > MOBILE_PAIRING_TTL_MS) { + record.status = 'expired'; + record.resolved_at = now; + } + + return record; + } + + cleanup(): number { + const now = Date.now(); + let removed = 0; + + for (const [inviteId, record] of this.records) { + if (record.status !== 'approved' && record.status !== 'denied' && now - record.received_at > MOBILE_PAIRING_TTL_MS) { + record.status = 'expired'; + record.resolved_at = now; + } + + if (record.resolved_at && now - record.resolved_at > MOBILE_PAIRING_RESOLVED_TTL_MS) { + this.records.delete(inviteId); + removed++; + } + } + + return removed; + } + + getStats(): { totalMobilePairings: number; approvedMobilePairings: number; deniedMobilePairings: number } { + let approved = 0; + let denied = 0; + + for (const record of this.records.values()) { + if (record.status === 'approved') approved++; + if (record.status === 'denied') denied++; + } + + return { + totalMobilePairings: this.records.size, + approvedMobilePairings: approved, + deniedMobilePairings: denied, + }; + } + + close(): void { + if (this.cleanupInterval) { + clearInterval(this.cleanupInterval); + this.cleanupInterval = null; + } + } +} diff --git a/packages/dcp-relay/src/types.ts b/packages/dcp-relay/src/types.ts index cd2e283..a262a0a 100644 --- a/packages/dcp-relay/src/types.ts +++ b/packages/dcp-relay/src/types.ts @@ -304,3 +304,87 @@ export interface PairingApprovalStatus { vault_id?: string; error?: string; } + +// ============================================================================ +// DCP Mobile Pairing Types (Agent QR → Mobile approval → Agent polling) +// ============================================================================ + +export type MobileAgentClient = + | 'claude-desktop' + | 'cursor' + | 'vscode' + | 'hermes' + | 'openclaw' + | 'mcp' + | 'custom' + | 'hosted'; + +export type MobileAgentEnvironment = 'local' | 'vps' | 'hosted' | 'dev'; + +export type MobileDcpScope = + | 'read:wallet.address' + | 'sign:solana' + | 'vault_get_address' + | 'vault_budget_check' + | 'vault_sign_tx' + | 'vault_sign_message'; + +export interface MobilePairingBudget { + daily: number; + currency: 'SOL' | 'USDC'; + approval_threshold: number; +} + +export interface MobilePairingInvite { + type: 'dcp_agent_pairing'; + version: '1.0'; + relay_url: string; + invite_id: string; + agent_public_key: string; + agent_name: string; + agent_client: MobileAgentClient; + environment: MobileAgentEnvironment; + requested_scopes: MobileDcpScope[]; + requested_budget: MobilePairingBudget; + created_at: string; + expires_at: string; + nonce: string; + signature?: string; +} + +export interface MobilePairingApprovalRequest { + invite: MobilePairingInvite; + vault_id: string; + agent_id: string; + vault_hpke_public_key: string; + vault_signing_public_key: string; + approved_scopes: MobileDcpScope[]; + approved_budget: MobilePairingBudget; +} + +export interface MobilePairingRecord { + invite_id: string; + invite: MobilePairingInvite; + received_at: number; + status: 'approved' | 'denied' | 'expired'; + vault_id?: string; + vault_hpke_public_key?: string; + vault_signing_public_key?: string; + agent_id?: string; + approved_scopes?: MobileDcpScope[]; + approved_budget?: MobilePairingBudget; + resolved_at?: number; + denied_reason?: string; +} + +export interface MobilePairingStatus { + status: 'pending' | 'approved' | 'denied' | 'expired' | 'not_found'; + invite_id?: string; + agent_id?: string; + vault_id?: string; + vault_hpke_public_key?: string; + vault_signing_public_key?: string; + approved_scopes?: MobileDcpScope[]; + approved_budget?: MobilePairingBudget; + error?: string; +} diff --git a/packages/dcp-relay/tests/relay.test.ts b/packages/dcp-relay/tests/relay.test.ts index ec32a83..787f184 100644 --- a/packages/dcp-relay/tests/relay.test.ts +++ b/packages/dcp-relay/tests/relay.test.ts @@ -5,9 +5,11 @@ */ import { describe, it, expect, beforeEach, afterEach } from 'vitest'; +import { randomBytes } from 'node:crypto'; +import { ed25519 } from '@noble/curves/ed25519'; import { MessageStore, ConnectionStore, RateLimiter } from '../src/store.js'; import { RelayServer } from '../src/relay.js'; -import type { RelayEnvelope, RelayResponseEnvelope } from '../src/types.js'; +import type { MobilePairingInvite, RelayEnvelope, RelayResponseEnvelope } from '../src/types.js'; import { RelayError, RELAY_VERSION } from '../src/types.js'; // ============================================================================ @@ -35,6 +37,46 @@ function createTestResponse(requestId: string): RelayResponseEnvelope { }; } +function canonicalJson(value: unknown): string { + if (Array.isArray(value)) { + return `[${value.map((item) => canonicalJson(item)).join(',')}]`; + } + if (value && typeof value === 'object') { + const record = value as Record; + return `{${Object.keys(record) + .sort() + .map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key])}`) + .join(',')}}`; + } + return JSON.stringify(value); +} + +function createMobileInvite(overrides: Partial = {}): MobilePairingInvite { + const privateKey = randomBytes(32); + const publicKey = ed25519.getPublicKey(privateKey); + const unsigned: Omit = { + type: 'dcp_agent_pairing', + version: '1.0', + relay_url: 'http://127.0.0.1:8422', + invite_id: `mob_${Date.now()}_${Math.random().toString(36).slice(2)}`, + agent_public_key: Buffer.from(publicKey).toString('base64'), + agent_name: 'Test Mobile Agent', + agent_client: 'custom', + environment: 'dev', + requested_scopes: ['read:wallet.address', 'sign:solana'], + requested_budget: { daily: 5, currency: 'USDC', approval_threshold: 0 }, + created_at: new Date().toISOString(), + expires_at: new Date(Date.now() + 5 * 60 * 1000).toISOString(), + nonce: randomBytes(16).toString('hex'), + ...overrides, + }; + const signature = ed25519.sign(Buffer.from(canonicalJson(unsigned), 'utf8'), privateKey); + return { + ...unsigned, + signature: Buffer.from(signature).toString('base64'), + }; +} + // ============================================================================ // MessageStore Tests // ============================================================================ @@ -490,6 +532,109 @@ describe('RelayServer', () => { }); }); + describe('Mobile pairing endpoints', () => { + it('returns pending until the mobile vault approves an invite', async () => { + const invite = createMobileInvite(); + + const pendingResponse = await fetch( + `http://127.0.0.1:${testPort}/v1/mobile/pairings/${encodeURIComponent(invite.invite_id)}/status` + ); + const pending = await pendingResponse.json(); + + expect(pendingResponse.status).toBe(200); + expect(pending.status).toBe('pending'); + + const approveResponse = await fetch( + `http://127.0.0.1:${testPort}/v1/mobile/pairings/${encodeURIComponent(invite.invite_id)}/approve`, + { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + invite, + vault_id: 'vault_mobile_test', + agent_id: 'agent_mobile_test', + vault_hpke_public_key: Buffer.alloc(32, 1).toString('base64'), + vault_signing_public_key: Buffer.alloc(32, 2).toString('base64'), + approved_scopes: invite.requested_scopes, + approved_budget: invite.requested_budget, + }), + } + ); + const approved = await approveResponse.json(); + + expect(approveResponse.status).toBe(200); + expect(approved.status).toBe('approved'); + expect(approved.agent_id).toBe('agent_mobile_test'); + + const statusResponse = await fetch( + `http://127.0.0.1:${testPort}/v1/mobile/pairings/${encodeURIComponent(invite.invite_id)}/status` + ); + const status = await statusResponse.json(); + + expect(status.status).toBe('approved'); + expect(status.vault_id).toBe('vault_mobile_test'); + expect(status.vault_hpke_public_key).toBe(Buffer.alloc(32, 1).toString('base64')); + expect(status.approved_scopes).toEqual(invite.requested_scopes); + }); + + it('rejects forged mobile approval payloads', async () => { + const invite = createMobileInvite(); + const forged = { + ...invite, + requested_budget: { + ...invite.requested_budget, + daily: 999, + }, + }; + + const response = await fetch( + `http://127.0.0.1:${testPort}/v1/mobile/pairings/${encodeURIComponent(invite.invite_id)}/approve`, + { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + invite: forged, + vault_id: 'vault_mobile_test', + agent_id: 'agent_mobile_test', + vault_hpke_public_key: Buffer.alloc(32, 1).toString('base64'), + vault_signing_public_key: Buffer.alloc(32, 2).toString('base64'), + approved_scopes: forged.requested_scopes, + approved_budget: forged.requested_budget, + }), + } + ); + const data = await response.json(); + + expect(response.status).toBe(400); + expect(data.error).toContain('Invalid invite signature'); + }); + + it('rejects scopes the agent did not request', async () => { + const invite = createMobileInvite({ requested_scopes: ['read:wallet.address'] }); + + const response = await fetch( + `http://127.0.0.1:${testPort}/v1/mobile/pairings/${encodeURIComponent(invite.invite_id)}/approve`, + { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + invite, + vault_id: 'vault_mobile_test', + agent_id: 'agent_mobile_test', + vault_hpke_public_key: Buffer.alloc(32, 1).toString('base64'), + vault_signing_public_key: Buffer.alloc(32, 2).toString('base64'), + approved_scopes: ['read:wallet.address', 'sign:solana'], + approved_budget: invite.requested_budget, + }), + } + ); + const data = await response.json(); + + expect(response.status).toBe(400); + expect(data.error).toContain('Approved scope was not requested'); + }); + }); + describe('Request endpoint', () => { it('should reject request for unconnected vault', async () => { const envelope = createTestEnvelope({ vault_id: 'vault_not_connected' }); From d91b7da29eff99d4520a56b4869dd858a1456074 Mon Sep 17 00:00:00 2001 From: 1lystore Date: Tue, 19 May 2026 23:04:36 +0530 Subject: [PATCH 03/12] feat: add agent relay smoke test --- packages/dcp-agent/src/index.ts | 92 +++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/packages/dcp-agent/src/index.ts b/packages/dcp-agent/src/index.ts index 9898373..2ae744b 100644 --- a/packages/dcp-agent/src/index.ts +++ b/packages/dcp-agent/src/index.ts @@ -38,6 +38,7 @@ import { findAgent, } from './config.js'; import { AgentProxy } from './proxy.js'; +import { AgentConnection } from './connection.js'; import { runMcpServer } from './mcp.js'; import { runHttpMcpServer } from './http-mcp.js'; import { AgentError } from './types.js'; @@ -228,6 +229,13 @@ interface MobilePairOptions { waitSeconds?: string; } +interface SmokeOptions { + agent?: string; + signMessage?: string; + forceRelay?: boolean; + json?: boolean; +} + function parseNumberOption(value: string | undefined, fallback: number, label: string): number { if (value === undefined) return fallback; const parsed = Number(value); @@ -339,6 +347,81 @@ function getAgentDataDir(): string { return path.join(homeDir, '.dcp', 'agents'); } +function loadAgentForCommand(agentIdOrName?: string) { + if (agentIdOrName) { + const config = findAgent(agentIdOrName); + if (!config) { + error(`Agent not found: ${agentIdOrName}`); + console.log(dim('Available agents:')); + listConfigs().forEach((c) => console.log(dim(` - ${c.agent_name} (${c.agent_id})`))); + process.exit(1); + } + return config; + } + + const config = getDefaultAgent(); + if (!config) { + error('No agent configured. Run "dcp-agent mobile pair --wait" first.'); + process.exit(1); + } + return config; +} + +async function smokeCommand(options: SmokeOptions): Promise { + const config = loadAgentForCommand(options.agent); + const connection = new AgentConnection(config, { forceRelay: options.forceRelay ?? true }); + + try { + if (!options.json) { + console.log(); + console.log(chalk.bold('DCP Agent Smoke Test')); + console.log(dim('─'.repeat(50))); + console.log(` ${dim('Agent:')} ${config.agent_name} (${config.agent_id})`); + console.log(` ${dim('Vault:')} ${config.vault_id}`); + console.log(` ${dim('Relay:')} ${config.relay_url}`); + console.log(); + } + + await connection.connect(); + const address = await connection.getAddress('solana'); + const result: Record = { address }; + + if (!options.json) { + success(`Wallet address: ${address.address}`); + } + + if (options.signMessage) { + if (!options.json) { + console.log(dim('Waiting for mobile approval of sign_message...')); + } + const signed = await connection.signMessage({ + chain: 'solana', + message: options.signMessage, + encoding: 'utf8', + description: 'DCP mobile smoke test', + }); + result.signature = signed; + if (!options.json) { + success(`Signature: ${signed.signature}`); + } + } + + await connection.close(); + + if (options.json) { + console.log(JSON.stringify(result, null, 2)); + } + } catch (err) { + await connection.close().catch(() => undefined); + if (options.json) { + console.log(JSON.stringify({ error: err instanceof Error ? err.message : 'Smoke test failed' }, null, 2)); + } else { + error(err instanceof Error ? err.message : 'Smoke test failed'); + } + process.exit(1); + } +} + async function runCommand(options: RunOptions): Promise { // Get agent config let config; @@ -717,6 +800,15 @@ program .option('--force-relay', 'Force relay mode (skip local vault detection)') .action(runCommand); +program + .command('smoke') + .description('Test a paired agent against the vault/relay without configuring Claude') + .option('-a, --agent ', 'Agent ID or name to test (default: first configured)') + .option('--sign-message ', 'Also request a mobile-approved Solana message signature') + .option('--force-relay', 'Force relay mode (default for smoke)', true) + .option('-j, --json', 'Output as JSON') + .action(smokeCommand); + program .command('status') .description('Show agent status') From ff0c04ce84b5671750134a3a6f38ee02c530bf33 Mon Sep 17 00:00:00 2001 From: 1lystore Date: Tue, 19 May 2026 23:23:41 +0530 Subject: [PATCH 04/12] feat: use canonical agent ids for mobile pairing --- packages/dcp-agent/src/index.ts | 4 ++++ packages/dcp-agent/src/mobile-pairing.ts | 17 +++++++++++++++++ packages/dcp-agent/src/types.ts | 1 + packages/dcp-agent/tests/mobile-pairing.test.ts | 4 ++++ packages/dcp-relay/src/relay.ts | 3 +++ packages/dcp-relay/src/store.ts | 1 + packages/dcp-relay/src/types.ts | 1 + packages/dcp-relay/tests/relay.test.ts | 9 +++++---- 8 files changed, 36 insertions(+), 4 deletions(-) diff --git a/packages/dcp-agent/src/index.ts b/packages/dcp-agent/src/index.ts index 2ae744b..190dde0 100644 --- a/packages/dcp-agent/src/index.ts +++ b/packages/dcp-agent/src/index.ts @@ -217,6 +217,7 @@ interface MobilePairOptions { client?: MobileAgentClient; environment?: MobileAgentEnvironment; name?: string; + agentId?: string; relayUrl?: string; scope?: string[]; dailyBudget?: string; @@ -272,6 +273,7 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { client, environment, agentName: options.name || defaultAgentName(client), + agentId: options.agentId, relayUrl: options.relayUrl, requestedScopes: scopes, requestedBudget: { @@ -303,6 +305,7 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { } console.log(` ${dim('Agent:')} ${created.invite.agent_name}`); + console.log(` ${dim('Agent ID:')} ${created.invite.requested_agent_id}`); console.log(` ${dim('Client:')} ${created.invite.agent_client}`); console.log(` ${dim('Environment:')} ${created.invite.environment}`); console.log(` ${dim('Invite ID:')} ${created.invite.invite_id}`); @@ -776,6 +779,7 @@ mobileCommand .option('--client ', 'Agent client: claude-desktop, cursor, vscode, hermes, openclaw, mcp, custom, hosted', 'custom') .option('--environment ', 'Environment: local, vps, hosted, dev') .option('-n, --name ', 'Agent display name') + .option('--agent-id ', 'Agent ID to request. Defaults to canonical DCP ID for known clients.') .option('--relay-url ', 'Mobile relay API/base URL') .option('--scope ', 'Requested scope. Repeat for multiple scopes.', (value, previous: string[] = []) => [...previous, value]) .option('--daily-budget ', 'Requested daily budget', '0') diff --git a/packages/dcp-agent/src/mobile-pairing.ts b/packages/dcp-agent/src/mobile-pairing.ts index 3e95016..25961c1 100644 --- a/packages/dcp-agent/src/mobile-pairing.ts +++ b/packages/dcp-agent/src/mobile-pairing.ts @@ -45,6 +45,7 @@ export interface CreateMobilePairingInviteInput { client: MobileAgentClient; environment: MobileAgentEnvironment; agentName: string; + agentId?: string; relayUrl?: string; requestedScopes?: MobileDcpScope[]; requestedBudget?: MobilePairingBudget; @@ -77,6 +78,20 @@ function encodeMobilePairingInvite(invite: MobilePairingInvite): string { return `dcp://pair?invite=${encodeURIComponent(JSON.stringify(invite))}`; } +export function canonicalMobileAgentId(client: MobileAgentClient): string { + const ids: Record = { + 'claude-desktop': 'agent_claude_desktop', + cursor: 'agent_cursor', + vscode: 'agent_vscode', + hermes: 'agent_hermes_local', + openclaw: 'agent_openclaw_local', + mcp: 'agent_local_mcp', + custom: `agent_mobile_${randomUUID().replace(/-/g, '').slice(0, 12)}`, + hosted: `agent_hosted_${randomUUID().replace(/-/g, '').slice(0, 12)}`, + }; + return ids[client]; +} + function assertSupported(input: CreateMobilePairingInviteInput): void { if (!SUPPORTED_CLIENTS.has(input.client)) { throw new Error(`Unsupported mobile agent client: ${input.client}`); @@ -101,6 +116,7 @@ export function createMobilePairingInvite( const ttlSeconds = input.ttlSeconds ?? 10 * 60; const expiresAt = new Date(createdAt.getTime() + ttlSeconds * 1000); const inviteId = `mob_${randomUUID().replace(/-/g, '').slice(0, 16)}`; + const requestedAgentId = input.agentId?.trim() || canonicalMobileAgentId(input.client); const requestedBudget = input.requestedBudget ?? { daily: 0, currency: 'USDC', @@ -112,6 +128,7 @@ export function createMobilePairingInvite( version: MOBILE_PAIRING_VERSION, relay_url: (input.relayUrl || process.env.DCP_MOBILE_RELAY_URL || DEFAULT_MOBILE_RELAY_URL).replace(/\/$/, ''), invite_id: inviteId, + requested_agent_id: requestedAgentId, agent_public_key: keypair.publicKey.toString('base64'), agent_name: input.agentName.trim(), agent_client: input.client, diff --git a/packages/dcp-agent/src/types.ts b/packages/dcp-agent/src/types.ts index 33e14f5..d41c479 100644 --- a/packages/dcp-agent/src/types.ts +++ b/packages/dcp-agent/src/types.ts @@ -133,6 +133,7 @@ export interface MobilePairingInvite { version: '1.0'; relay_url: string; invite_id: string; + requested_agent_id: string; agent_public_key: string; agent_name: string; agent_client: MobileAgentClient; diff --git a/packages/dcp-agent/tests/mobile-pairing.test.ts b/packages/dcp-agent/tests/mobile-pairing.test.ts index b955199..e86eed3 100644 --- a/packages/dcp-agent/tests/mobile-pairing.test.ts +++ b/packages/dcp-agent/tests/mobile-pairing.test.ts @@ -26,6 +26,7 @@ describe('mobile pairing', () => { expect(invite.type).toBe('dcp_agent_pairing'); expect(invite.version).toBe('1.0'); expect(invite.relay_url).toBe('https://relay.example.test'); + expect(invite.requested_agent_id).toBe('agent_claude_desktop'); expect(invite.agent_client).toBe('claude-desktop'); expect(invite.environment).toBe('local'); expect(invite.requested_scopes).toEqual(['read:wallet.address', 'sign:solana']); @@ -40,8 +41,11 @@ describe('mobile pairing', () => { client: 'custom', environment: 'dev', agentName: 'Test Agent', + agentId: 'agent_custom_test', }); + expect(invite.requested_agent_id).toBe('agent_custom_test'); + const valid = verifySignature( Buffer.from(canonicalInvitePayload(invite), 'utf8'), Buffer.from(invite.signature!, 'base64'), diff --git a/packages/dcp-relay/src/relay.ts b/packages/dcp-relay/src/relay.ts index 2123bf0..e920840 100644 --- a/packages/dcp-relay/src/relay.ts +++ b/packages/dcp-relay/src/relay.ts @@ -1298,6 +1298,9 @@ export class RelayServer { if (!body.vault_id || !body.agent_id) { return 'Missing vault_id or agent_id'; } + if (body.agent_id !== invite.requested_agent_id) { + return 'Agent ID mismatch'; + } if (!body.vault_hpke_public_key || !body.vault_signing_public_key) { return 'Missing vault relay public keys'; } diff --git a/packages/dcp-relay/src/store.ts b/packages/dcp-relay/src/store.ts index 970d6c3..388eb8e 100644 --- a/packages/dcp-relay/src/store.ts +++ b/packages/dcp-relay/src/store.ts @@ -831,6 +831,7 @@ export class MobilePairingStore { version: '1.0', relay_url: '', invite_id: inviteId, + requested_agent_id: '', agent_public_key: '', agent_name: '', agent_client: 'custom', diff --git a/packages/dcp-relay/src/types.ts b/packages/dcp-relay/src/types.ts index a262a0a..b282481 100644 --- a/packages/dcp-relay/src/types.ts +++ b/packages/dcp-relay/src/types.ts @@ -340,6 +340,7 @@ export interface MobilePairingInvite { version: '1.0'; relay_url: string; invite_id: string; + requested_agent_id: string; agent_public_key: string; agent_name: string; agent_client: MobileAgentClient; diff --git a/packages/dcp-relay/tests/relay.test.ts b/packages/dcp-relay/tests/relay.test.ts index 787f184..5b34909 100644 --- a/packages/dcp-relay/tests/relay.test.ts +++ b/packages/dcp-relay/tests/relay.test.ts @@ -59,6 +59,7 @@ function createMobileInvite(overrides: Partial = {}): Mobil version: '1.0', relay_url: 'http://127.0.0.1:8422', invite_id: `mob_${Date.now()}_${Math.random().toString(36).slice(2)}`, + requested_agent_id: 'agent_claude_desktop', agent_public_key: Buffer.from(publicKey).toString('base64'), agent_name: 'Test Mobile Agent', agent_client: 'custom', @@ -552,7 +553,7 @@ describe('RelayServer', () => { body: JSON.stringify({ invite, vault_id: 'vault_mobile_test', - agent_id: 'agent_mobile_test', + agent_id: 'agent_claude_desktop', vault_hpke_public_key: Buffer.alloc(32, 1).toString('base64'), vault_signing_public_key: Buffer.alloc(32, 2).toString('base64'), approved_scopes: invite.requested_scopes, @@ -564,7 +565,7 @@ describe('RelayServer', () => { expect(approveResponse.status).toBe(200); expect(approved.status).toBe('approved'); - expect(approved.agent_id).toBe('agent_mobile_test'); + expect(approved.agent_id).toBe('agent_claude_desktop'); const statusResponse = await fetch( `http://127.0.0.1:${testPort}/v1/mobile/pairings/${encodeURIComponent(invite.invite_id)}/status` @@ -595,7 +596,7 @@ describe('RelayServer', () => { body: JSON.stringify({ invite: forged, vault_id: 'vault_mobile_test', - agent_id: 'agent_mobile_test', + agent_id: 'agent_claude_desktop', vault_hpke_public_key: Buffer.alloc(32, 1).toString('base64'), vault_signing_public_key: Buffer.alloc(32, 2).toString('base64'), approved_scopes: forged.requested_scopes, @@ -620,7 +621,7 @@ describe('RelayServer', () => { body: JSON.stringify({ invite, vault_id: 'vault_mobile_test', - agent_id: 'agent_mobile_test', + agent_id: 'agent_claude_desktop', vault_hpke_public_key: Buffer.alloc(32, 1).toString('base64'), vault_signing_public_key: Buffer.alloc(32, 2).toString('base64'), approved_scopes: ['read:wallet.address', 'sign:solana'], From 255bd2d56ad14d5258465ebf6686609959bcbc60 Mon Sep 17 00:00:00 2001 From: 1lystore Date: Tue, 19 May 2026 23:52:40 +0530 Subject: [PATCH 05/12] feat: add mobile install command --- packages/dcp-agent/src/index.ts | 111 +++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/packages/dcp-agent/src/index.ts b/packages/dcp-agent/src/index.ts index 190dde0..3f04093 100644 --- a/packages/dcp-agent/src/index.ts +++ b/packages/dcp-agent/src/index.ts @@ -21,6 +21,7 @@ import chalk from 'chalk'; import ora, { type Ora } from 'ora'; import * as fs from 'node:fs'; import * as path from 'node:path'; +import * as os from 'node:os'; import { spawn } from 'node:child_process'; import { fileURLToPath } from 'node:url'; import qrcode from 'qrcode-terminal'; @@ -228,6 +229,7 @@ interface MobilePairOptions { noQr?: boolean; wait?: boolean; waitSeconds?: string; + configureMcp?: boolean; } interface SmokeOptions { @@ -260,6 +262,80 @@ function defaultAgentName(client: MobileAgentClient): string { return names[client] || 'DCP Agent'; } +function mcpServerConfig(agentId: string): { command: string; args: string[] } { + return { + command: 'npx', + args: ['-y', '@dcprotocol/agent', 'run', '--mode', 'mcp', '--agent', agentId, '--force-relay'], + }; +} + +function claudeDesktopConfigPath(): string | null { + const home = os.homedir(); + if (process.platform === 'darwin') { + return path.join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'); + } + if (process.platform === 'win32') { + const appData = process.env.APPDATA; + return appData ? path.join(appData, 'Claude', 'claude_desktop_config.json') : null; + } + return path.join(home, '.config', 'Claude', 'claude_desktop_config.json'); +} + +function readJsonFile(filePath: string): Record { + if (!fs.existsSync(filePath)) return {}; + try { + const raw = fs.readFileSync(filePath, 'utf8'); + return raw.trim() ? JSON.parse(raw) as Record : {}; + } catch { + throw new Error(`Could not parse existing MCP config: ${filePath}`); + } +} + +function upsertClaudeDesktopMcp(agentId: string): string { + const configPath = claudeDesktopConfigPath(); + if (!configPath) { + throw new Error('Could not locate Claude Desktop config path on this OS'); + } + + const config = readJsonFile(configPath); + const mcpServers = config.mcpServers && typeof config.mcpServers === 'object' + ? config.mcpServers as Record + : {}; + mcpServers.dcp = mcpServerConfig(agentId); + config.mcpServers = mcpServers; + + fs.mkdirSync(path.dirname(configPath), { recursive: true, mode: 0o700 }); + fs.writeFileSync(configPath, JSON.stringify(config, null, 2), { mode: 0o600 }); + return configPath; +} + +function printMcpInstallHelp(client: MobileAgentClient, agentId: string): void { + const serverConfig = mcpServerConfig(agentId); + if (client === 'cursor') { + const deepLink = `cursor://anysphere.cursor-deeplink/mcp/install?name=dcp&config=${Buffer.from(JSON.stringify(serverConfig)).toString('base64')}`; + console.log(); + console.log(chalk.bold('Cursor MCP install link:')); + console.log(deepLink); + return; + } + + console.log(); + console.log(chalk.bold('MCP config:')); + console.log(JSON.stringify({ mcpServers: { dcp: serverConfig } }, null, 2)); +} + +function configureMcpForClient(client: MobileAgentClient, agentId: string): void { + if (client === 'claude-desktop') { + const configPath = upsertClaudeDesktopMcp(agentId); + success('Claude Desktop MCP config updated'); + console.log(` ${dim('Config:')} ${configPath}`); + console.log(dim('Restart Claude Desktop to load the DCP mobile-backed server.')); + return; + } + + printMcpInstallHelp(client, agentId); +} + async function mobilePairCommand(options: MobilePairOptions): Promise { try { const client = options.client || 'custom'; @@ -337,7 +413,11 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { console.log(` ${dim('Vault ID:')} ${status.vault_id}`); const config = promoteMobilePendingConfig(created.pendingConfig, status); console.log(dim(`Saved agent config: ${config.agent_id}`)); - console.log(dim(`Next: run "dcp-agent run --agent ${config.agent_id} --mode mcp" from your MCP host.`)); + if (options.configureMcp) { + configureMcpForClient(client, config.agent_id); + } else { + console.log(dim(`Next: run "dcp-agent run --agent ${config.agent_id} --mode mcp --force-relay" from your MCP host.`)); + } } } catch (err) { error(err instanceof Error ? err.message : 'Failed to create mobile pairing invite'); @@ -345,6 +425,14 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { } } +async function mobileInstallCommand(options: MobilePairOptions): Promise { + await mobilePairCommand({ + ...options, + wait: true, + configureMcp: options.configureMcp ?? true, + }); +} + function getAgentDataDir(): string { const homeDir = process.env.HOME || process.env.USERPROFILE || '.'; return path.join(homeDir, '.dcp', 'agents'); @@ -790,8 +878,29 @@ mobileCommand .option('--no-qr', 'Do not print terminal QR') .option('--wait', 'Wait until DCP Mobile approves or denies the pairing') .option('--wait-seconds ', 'How long --wait should poll for approval') + .option('--configure-mcp', 'After approval, configure the local MCP client when supported') .action(mobilePairCommand); +mobileCommand + .command('install') + .description('Pair DCP Mobile and configure this MCP client when supported') + .option('--client ', 'Agent client: claude-desktop, cursor, vscode, hermes, openclaw, mcp, custom, hosted', 'claude-desktop') + .option('--environment ', 'Environment: local, vps, hosted, dev') + .option('-n, --name ', 'Agent display name') + .option('--agent-id ', 'Agent ID to request. Defaults to canonical DCP ID for known clients.') + .option('--relay-url ', 'Mobile relay API/base URL') + .option('--scope ', 'Requested scope. Repeat for multiple scopes.', (value, previous: string[] = []) => [...previous, value]) + .option('--daily-budget ', 'Requested daily budget', '0') + .option('--currency ', 'Budget currency: USDC or SOL', 'USDC') + .option('--approval-threshold ', 'Auto-approval threshold', '0') + .option('--ttl-seconds ', 'Invite lifetime in seconds', '600') + .option('--json', 'Print machine-readable JSON') + .option('--no-qr', 'Do not print terminal QR') + .option('--wait-seconds ', 'How long to wait for approval') + .option('--configure-mcp', 'Configure the local MCP client when supported', true) + .option('--no-configure-mcp', 'Do not write MCP client config; print next steps only') + .action(mobileInstallCommand); + program .command('run') .description('Run the agent') From 24113f46b093ab94acca0282039869b4184d4080 Mon Sep 17 00:00:00 2001 From: 1lystore Date: Wed, 20 May 2026 00:26:44 +0530 Subject: [PATCH 06/12] fix: reuse core canonical json for mobile pairing --- packages/dcp-agent/src/mobile-pairing.ts | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/packages/dcp-agent/src/mobile-pairing.ts b/packages/dcp-agent/src/mobile-pairing.ts index 25961c1..b57dee0 100644 --- a/packages/dcp-agent/src/mobile-pairing.ts +++ b/packages/dcp-agent/src/mobile-pairing.ts @@ -1,5 +1,5 @@ import { randomUUID } from 'node:crypto'; -import { signMessage, generateSigningKeyPair } from '@dcprotocol/core'; +import { canonicalJson, signMessage, generateSigningKeyPair } from '@dcprotocol/core'; import type { MobileAgentClient, MobileAgentEnvironment, @@ -58,21 +58,7 @@ export interface CreatedMobilePairingInvite { pendingConfig: MobilePendingConfig; } -export function canonicalJson(value: unknown): string { - if (Array.isArray(value)) { - return `[${value.map((item) => canonicalJson(item)).join(',')}]`; - } - - if (value && typeof value === 'object') { - const record = value as Record; - return `{${Object.keys(record) - .sort() - .map((key) => `${JSON.stringify(key)}:${canonicalJson(record[key])}`) - .join(',')}}`; - } - - return JSON.stringify(value); -} +export { canonicalJson }; function encodeMobilePairingInvite(invite: MobilePairingInvite): string { return `dcp://pair?invite=${encodeURIComponent(JSON.stringify(invite))}`; From 0a7d98a4c51499f925ebd0c1368cd8af5e77e728 Mon Sep 17 00:00:00 2001 From: 1lystore Date: Wed, 20 May 2026 00:32:02 +0530 Subject: [PATCH 07/12] chore: add issue templates --- .github/ISSUE_TEMPLATE/bug_report.yml | 108 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 ++ .github/ISSUE_TEMPLATE/feature_request.yml | 106 ++++++++++++++++++++ 3 files changed, 222 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..19154d4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,108 @@ +name: Bug report +description: Create a report to help us improve DCP. +title: "[Bug]: " +labels: ["bug", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Thanks for reporting a bug. Please include enough detail for us to reproduce it safely. + + If this involves leaked secrets, private keys, unauthorized signing, or a live exploit, do not open a public issue. Email security@1ly.store instead. + - type: textarea + id: summary + attributes: + label: What happened? + description: Describe the bug and the impact. + placeholder: DCP did X when I expected Y. + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What should have happened instead? + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce + description: Include commands, config, agent flow, or UI steps. + placeholder: | + 1. Run ... + 2. Connect ... + 3. Approve/sign ... + 4. See error ... + validations: + required: true + - type: dropdown + id: component + attributes: + label: Affected component + multiple: true + options: + - Desktop app + - Mobile app + - Vault + - Agent + - MCP + - Telegram approvals + - Relay + - CLI + - SDK / client + - Documentation + - Unsure + validations: + required: true + - type: textarea + id: environment + attributes: + label: Environment + description: Share relevant versions and platform details. + placeholder: | + OS: + Node: + pnpm: + DCP package/version or commit: + Agent/client used: + validations: + required: true + - type: dropdown + id: security_impact + attributes: + label: Security or privacy impact + description: Select any area this may affect. + multiple: true + options: + - None known + - Approval flow + - Wallet/signing + - Budget enforcement + - Secret/key storage + - Logs or notifications + - Agent permissions + - User privacy + - Unsure + validations: + required: true + - type: textarea + id: logs + attributes: + label: Logs, screenshots, or traces + description: Redact private keys, tokens, recovery phrases, API keys, and personal data. + render: shell + - type: textarea + id: regression + attributes: + label: Regression details + description: Did this work before? If yes, which version/commit was good? + - type: checkboxes + id: checks + attributes: + label: Before submitting + options: + - label: I have removed private keys, tokens, recovery phrases, and sensitive personal data. + required: true + - label: I searched existing issues and did not find a duplicate. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..697c3d2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Security vulnerability + url: mailto:security@1ly.store + about: Report private keys, unauthorized signing, live exploits, or sensitive security issues privately. + - name: General discussion + url: https://github.com/1lystore/dcp/discussions + about: Ask questions, share ideas, or discuss broader DCP usage. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..0adc608 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,106 @@ +name: Feature request +description: Suggest an idea for this project. +title: "[Feature]: " +labels: ["enhancement", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Use this form for product ideas, developer experience improvements, and protocol/API requests. + + DCP treats security and user experience as core product requirements. Please include any approval, signing, privacy, or recovery implications. + - type: textarea + id: problem + attributes: + label: Problem + description: What user pain or workflow limitation are you trying to solve? + placeholder: It is hard to... + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: Describe the feature in plain language. + validations: + required: true + - type: dropdown + id: user_type + attributes: + label: Who is this for? + multiple: true + options: + - Wallet owner + - AI agent user + - App developer + - MCP user + - Protocol integrator + - OSS contributor + - Other + validations: + required: true + - type: dropdown + id: component + attributes: + label: Affected component + multiple: true + options: + - Desktop app + - Mobile app + - Vault + - Agent + - MCP + - Telegram approvals + - Relay + - CLI + - SDK / client + - Documentation + - Unsure + validations: + required: true + - type: textarea + id: ux + attributes: + label: UX expectations + description: What should the user see, click, approve, or understand? + placeholder: The user should be able to... + validations: + required: true + - type: dropdown + id: security_area + attributes: + label: Security or privacy considerations + description: Select any areas that need special care. + multiple: true + options: + - None known + - Approval flow + - Wallet/signing + - Budget enforcement + - Secret/key storage + - Logs or notifications + - Agent permissions + - User privacy + - Recovery / backup + - Unsure + validations: + required: true + - type: textarea + id: mvp + attributes: + label: MVP scope + description: What is the smallest useful version of this feature? + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: What other approaches did you consider? + - type: checkboxes + id: checks + attributes: + label: Before submitting + options: + - label: I searched existing issues and did not find a duplicate. + required: true + - label: I described any security or privacy implications I am aware of. + required: true From 385942453fd5ee468958dfc538315854fd60624d Mon Sep 17 00:00:00 2001 From: 1lystore Date: Wed, 20 May 2026 23:23:07 +0530 Subject: [PATCH 08/12] feat: add mobile credential smoke support --- packages/dcp-agent/src/index.ts | 37 +++++++++++++++++++ packages/dcp-agent/src/mobile-pairing.ts | 10 ++++- packages/dcp-agent/src/types.ts | 4 +- .../dcp-agent/tests/mobile-pairing.test.ts | 11 ++++++ packages/dcp-client/src/relay-transport.ts | 17 ++++++++- 5 files changed, 75 insertions(+), 4 deletions(-) diff --git a/packages/dcp-agent/src/index.ts b/packages/dcp-agent/src/index.ts index 3f04093..768fecd 100644 --- a/packages/dcp-agent/src/index.ts +++ b/packages/dcp-agent/src/index.ts @@ -235,6 +235,10 @@ interface MobilePairOptions { interface SmokeOptions { agent?: string; signMessage?: string; + readScope?: string; + writeScope?: string; + writeName?: string; + writeValue?: string; forceRelay?: boolean; json?: boolean; } @@ -497,6 +501,35 @@ async function smokeCommand(options: SmokeOptions): Promise { } } + if (options.writeScope) { + if (!options.writeValue) { + throw new Error('--write-value is required with --write-scope'); + } + if (!options.json) { + console.log(dim(`Waiting for mobile approval of vault_write ${options.writeScope}...`)); + } + const written = await connection.writeCredential(options.writeScope, { + name: options.writeName || options.writeScope.split('.').at(-1) || options.writeScope, + value: options.writeValue, + }); + result.write = written; + if (!options.json) { + success(`Write approved: ${written.scope}`); + } + } + + if (options.readScope) { + if (!options.json) { + console.log(dim(`Waiting for mobile approval of vault_read ${options.readScope}...`)); + } + const read = await connection.readCredential(options.readScope); + result.read = read; + if (!options.json) { + const keys = read.data ? Object.keys(read.data).join(', ') : 'no data'; + success(`Read approved: ${read.scope} (${keys})`); + } + } + await connection.close(); if (options.json) { @@ -918,6 +951,10 @@ program .description('Test a paired agent against the vault/relay without configuring Claude') .option('-a, --agent ', 'Agent ID or name to test (default: first configured)') .option('--sign-message ', 'Also request a mobile-approved Solana message signature') + .option('--read-scope ', 'Also request a mobile-approved vault_read for a scope, e.g. credentials.api.openai') + .option('--write-scope ', 'Also request a mobile-approved vault_write for a scope, e.g. credentials.api.openai') + .option('--write-name ', 'Display name to store with --write-scope') + .option('--write-value ', 'Secret value to store with --write-scope') .option('--force-relay', 'Force relay mode (default for smoke)', true) .option('-j, --json', 'Output as JSON') .action(smokeCommand); diff --git a/packages/dcp-agent/src/mobile-pairing.ts b/packages/dcp-agent/src/mobile-pairing.ts index b57dee0..c9eac2f 100644 --- a/packages/dcp-agent/src/mobile-pairing.ts +++ b/packages/dcp-agent/src/mobile-pairing.ts @@ -41,6 +41,14 @@ const SUPPORTED_SCOPES = new Set([ 'vault_sign_message', ]); +function isSupportedMobileScope(scope: string): scope is MobileDcpScope { + return ( + SUPPORTED_SCOPES.has(scope as MobileDcpScope) || + scope.startsWith('read:credentials.api.') || + scope.startsWith('write:credentials.api.') + ); +} + export interface CreateMobilePairingInviteInput { client: MobileAgentClient; environment: MobileAgentEnvironment; @@ -86,7 +94,7 @@ function assertSupported(input: CreateMobilePairingInviteInput): void { throw new Error(`Unsupported mobile agent environment: ${input.environment}`); } for (const scope of input.requestedScopes || []) { - if (!SUPPORTED_SCOPES.has(scope)) { + if (!isSupportedMobileScope(scope)) { throw new Error(`Unsupported mobile MVP scope: ${scope}`); } } diff --git a/packages/dcp-agent/src/types.ts b/packages/dcp-agent/src/types.ts index d41c479..8b5157c 100644 --- a/packages/dcp-agent/src/types.ts +++ b/packages/dcp-agent/src/types.ts @@ -120,7 +120,9 @@ export type MobileDcpScope = | 'vault_get_address' | 'vault_budget_check' | 'vault_sign_tx' - | 'vault_sign_message'; + | 'vault_sign_message' + | `read:credentials.api.${string}` + | `write:credentials.api.${string}`; export interface MobilePairingBudget { daily: number; diff --git a/packages/dcp-agent/tests/mobile-pairing.test.ts b/packages/dcp-agent/tests/mobile-pairing.test.ts index e86eed3..430470f 100644 --- a/packages/dcp-agent/tests/mobile-pairing.test.ts +++ b/packages/dcp-agent/tests/mobile-pairing.test.ts @@ -84,6 +84,17 @@ describe('mobile pairing', () => { expect(valid).toBe(false); }); + it('allows mobile API credential read and write scopes', () => { + const { invite } = createMobilePairingInvite({ + client: 'custom', + environment: 'dev', + agentName: 'Credential Agent', + requestedScopes: ['read:credentials.api.openai', 'write:credentials.api.openai'], + }); + + expect(invite.requested_scopes).toEqual(['read:credentials.api.openai', 'write:credentials.api.openai']); + }); + it('rejects unsupported MVP scopes', () => { expect(() => createMobilePairingInvite({ diff --git a/packages/dcp-client/src/relay-transport.ts b/packages/dcp-client/src/relay-transport.ts index 9be1493..e102821 100644 --- a/packages/dcp-client/src/relay-transport.ts +++ b/packages/dcp-client/src/relay-transport.ts @@ -401,6 +401,8 @@ export class RelayTransport implements Transport { const data = response as { scope?: string; data?: Record; + name?: string; + value?: unknown; sensitivity?: 'standard' | 'sensitive' | 'critical'; is_reference?: boolean; requires_consent?: boolean; @@ -428,7 +430,7 @@ export class RelayTransport implements Transport { return { scope: data.scope || scope, - data: data.data ?? null, + data: data.data ?? (data.value !== undefined ? { name: data.name, value: data.value } : null), sensitivity: data.sensitivity, isReference: data.is_reference, sessionId: data.session_id, @@ -445,9 +447,19 @@ export class RelayTransport implements Transport { ): Promise { const sessionId = this.getSessionId(scope); + const secretValue = typeof data.value === 'string' + ? data.value + : typeof data.api_key === 'string' + ? data.api_key + : typeof data.token === 'string' + ? data.token + : undefined; + const params = { scope, data, + name: typeof data.name === 'string' ? data.name : undefined, + value: secretValue, session_id: sessionId, }; @@ -457,6 +469,7 @@ export class RelayTransport implements Transport { scope?: string; created?: boolean; updated?: boolean; + ok?: boolean; sensitivity?: 'standard' | 'sensitive' | 'critical'; requires_consent?: boolean; consent_id?: string; @@ -483,7 +496,7 @@ export class RelayTransport implements Transport { return { scope: result.scope || scope, - created: result.created ?? false, + created: result.created ?? result.ok === true, updated: result.updated ?? false, sensitivity: result.sensitivity, sessionId: result.session_id, From 46ef44594b9fe72b72429a6f3314f471296c6eee Mon Sep 17 00:00:00 2001 From: 1lystore Date: Thu, 21 May 2026 15:41:09 +0530 Subject: [PATCH 09/12] feat: add mobile approval push routing --- packages/dcp-relay/src/index.ts | 13 +++- packages/dcp-relay/src/relay.ts | 93 +++++++++++++++++++++++++- packages/dcp-relay/src/store.ts | 42 ++++++++++++ packages/dcp-relay/src/types.ts | 11 +++ packages/dcp-relay/tests/relay.test.ts | 33 +++++++++ 5 files changed, 188 insertions(+), 4 deletions(-) diff --git a/packages/dcp-relay/src/index.ts b/packages/dcp-relay/src/index.ts index bca80dd..3eec219 100644 --- a/packages/dcp-relay/src/index.ts +++ b/packages/dcp-relay/src/index.ts @@ -21,7 +21,7 @@ // ============================================================================ export { RelayServer } from './relay.js'; -export { MessageStore, ConnectionStore, RateLimiter, MobilePairingStore } from './store.js'; +export { MessageStore, ConnectionStore, RateLimiter, MobilePairingStore, PushTokenStore } from './store.js'; export { authenticateRegistration, verifyRegistrationSignature, @@ -43,6 +43,7 @@ export { type LongPollResponse, type StoredMessage, type VaultConnection, + type PushTokenRegistration, type RelayErrorCode, type PairingClaim, type StoredPairingClaim, @@ -84,6 +85,7 @@ interface RelayCliOptions { host: string; debug: boolean; rateLimitPerMinute: number; + expoPushUrl: string; } function parseArgs(): RelayCliOptions { @@ -94,6 +96,7 @@ function parseArgs(): RelayCliOptions { let host = process.env.DCP_RELAY_HOST || DEFAULT_RELAY_CONFIG.host; let debug = process.env.DCP_RELAY_DEBUG === 'true' || false; let rateLimitPerMinute = parseInt(process.env.DCP_RELAY_RATE_LIMIT || '', 10) || DEFAULT_RELAY_CONFIG.rateLimitPerMinute; + let expoPushUrl = process.env.DCP_EXPO_PUSH_URL ?? DEFAULT_RELAY_CONFIG.expoPushUrl; for (let i = 0; i < args.length; i++) { const arg = args[i]; @@ -105,6 +108,8 @@ function parseArgs(): RelayCliOptions { debug = true; } else if (arg === '--rate-limit' || arg === '-r') { rateLimitPerMinute = parseInt(args[++i], 10) || rateLimitPerMinute; + } else if (arg === '--no-push') { + expoPushUrl = ''; } else if (arg === '--help') { console.log(` DCP Relay - Encrypted message bus for cloud MCP clients @@ -124,6 +129,7 @@ Environment Variables: DCP_RELAY_HOST Host to bind to DCP_RELAY_DEBUG Enable debug logging (true/false) DCP_RELAY_RATE_LIMIT Max requests per vault per minute + DCP_EXPO_PUSH_URL Expo push API endpoint; set empty with --no-push to disable Examples: dcp-relay # Start on default port @@ -135,11 +141,11 @@ Examples: } } - return { port, host, debug, rateLimitPerMinute }; + return { port, host, debug, rateLimitPerMinute, expoPushUrl }; } async function main(): Promise { - const { port, host, debug, rateLimitPerMinute } = parseArgs(); + const { port, host, debug, rateLimitPerMinute, expoPushUrl } = parseArgs(); const relay = new RelayServer({ port, @@ -147,6 +153,7 @@ async function main(): Promise { debug, enableLongPoll: true, rateLimitPerMinute, + expoPushUrl, }); // Handle shutdown diff --git a/packages/dcp-relay/src/relay.ts b/packages/dcp-relay/src/relay.ts index e920840..5ff9242 100644 --- a/packages/dcp-relay/src/relay.ts +++ b/packages/dcp-relay/src/relay.ts @@ -44,7 +44,7 @@ import { DEFAULT_RELAY_CONFIG, RELAY_VERSION, } from './types.js'; -import { MessageStore, ConnectionStore, RateLimiter, PairingClaimStore, MobilePairingStore } from './store.js'; +import { MessageStore, ConnectionStore, RateLimiter, PairingClaimStore, MobilePairingStore, PushTokenStore } from './store.js'; import { authenticateRegistration, authenticateRequest, closeAuth, type AuthConfig } from './auth.js'; // ============================================================================ @@ -58,6 +58,7 @@ export class RelayServer { private rateLimiter: RateLimiter; private pairingClaimStore: PairingClaimStore; private mobilePairingStore: MobilePairingStore; + private pushTokenStore: PushTokenStore; private config: RelayConfig; private authConfig: AuthConfig; private heartbeatInterval: ReturnType | null = null; @@ -79,6 +80,7 @@ export class RelayServer { ); this.pairingClaimStore = new PairingClaimStore(); this.mobilePairingStore = new MobilePairingStore(); + this.pushTokenStore = new PushTokenStore(); this.server = Fastify({ logger: this.config.debug @@ -164,6 +166,7 @@ export class RelayServer { rateLimit: this.rateLimiter.getStats(), pairingClaims: this.pairingClaimStore.getStats(), mobilePairings: this.mobilePairingStore.getStats(), + push: this.pushTokenStore.getStats(), timestamp: new Date().toISOString(), })); @@ -176,6 +179,7 @@ export class RelayServer { const rateLimitStats = this.rateLimiter.getStats(); const pairingStats = this.pairingClaimStore.getStats(); const mobilePairingStats = this.mobilePairingStore.getStats(); + const pushStats = this.pushTokenStore.getStats(); const format = request.query.format; @@ -211,6 +215,9 @@ export class RelayServer { '# HELP dcp_relay_mobile_pairings_total Total mobile pairings', '# TYPE dcp_relay_mobile_pairings_total gauge', `dcp_relay_mobile_pairings_total ${mobilePairingStats.totalMobilePairings}`, + '# HELP dcp_relay_push_tokens_registered Registered mobile push tokens', + '# TYPE dcp_relay_push_tokens_registered gauge', + `dcp_relay_push_tokens_registered ${pushStats.registeredPushTokens}`, '', ]; reply.header('Content-Type', 'text/plain; charset=utf-8'); @@ -224,6 +231,7 @@ export class RelayServer { rateLimit: rateLimitStats, pairingClaims: pairingStats, mobilePairings: mobilePairingStats, + push: pushStats, websockets: { vaultConnections: this.wsConnections.size, clientConnections: this.clientSockets.size, @@ -379,6 +387,40 @@ export class RelayServer { return reply.send({ success: true, vault_id: request.params.vaultId }); } ); + + this.server.post<{ + Body: { + vault_id: string; + token: string; + platform?: 'ios' | 'android' | 'web' | 'unknown'; + device_id?: string; + }; + }>( + '/v1/devices/push-token', + async (request, reply) => { + const { vault_id, token, platform, device_id } = request.body; + if (!vault_id || !token) { + return reply.status(400).send({ error: 'Missing vault_id or token' }); + } + if (!this.isExpoPushToken(token)) { + return reply.status(400).send({ error: 'Unsupported push token format' }); + } + + const record = this.pushTokenStore.register({ + vault_id, + token, + platform: platform ?? 'unknown', + device_id, + }); + + return reply.send({ + success: true, + vault_id: record.vault_id, + platform: record.platform, + updated_at: new Date(record.updated_at).toISOString(), + }); + } + ); } private async handleRequest( @@ -468,6 +510,8 @@ export class RelayServer { this.messageStore.markDelivered(envelope.request_id); } + void this.notifyMobilePush(envelope); + return reply.status(202).send({ queued: true, accepted: true, @@ -1133,6 +1177,8 @@ export class RelayServer { this.messageStore.markDelivered(envelope.request_id); } + void this.notifyMobilePush(envelope); + this.sendWsMessage(ws, { type: 'ack', payload: { request_id: envelope.request_id, accepted: true }, @@ -1184,6 +1230,47 @@ export class RelayServer { this.unregisterClientRequest(response.request_id); } + private isExpoPushToken(token: string): boolean { + return /^Expo(nent)?PushToken\[[A-Za-z0-9_-]+\]$/.test(token); + } + + private async notifyMobilePush(envelope: RelayEnvelope): Promise { + if (!this.config.expoPushUrl) return; + const registration = this.pushTokenStore.get(envelope.vault_id); + if (!registration) return; + + try { + const response = await fetch(this.config.expoPushUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + body: JSON.stringify({ + to: registration.token, + title: 'DCP approval needed', + body: 'Open DCP to review this request.', + sound: 'default', + priority: 'high', + data: { + type: 'approval_pending', + vault_id: envelope.vault_id, + request_id: envelope.request_id, + }, + }), + }); + + if (!response.ok && this.config.debug) { + const text = await response.text().catch(() => ''); + console.error(`Expo push failed (${response.status})${text ? `: ${text}` : ''}`); + } + } catch (err) { + if (this.config.debug) { + console.error('Expo push dispatch failed:', err); + } + } + } + private sendWsMessage(ws: WebSocket, msg: WsMessage): void { try { ws.send(JSON.stringify(msg)); @@ -1383,4 +1470,8 @@ export class RelayServer { getConnectionStore(): ConnectionStore { return this.connectionStore; } + + getPushTokenStore(): PushTokenStore { + return this.pushTokenStore; + } } diff --git a/packages/dcp-relay/src/store.ts b/packages/dcp-relay/src/store.ts index 388eb8e..3c1f568 100644 --- a/packages/dcp-relay/src/store.ts +++ b/packages/dcp-relay/src/store.ts @@ -22,6 +22,7 @@ import type { StoredPairingClaim, MobilePairingApprovalRequest, MobilePairingRecord, + PushTokenRegistration, } from './types.js'; import { RelayError, MESSAGE_TTL_MS } from './types.js'; import { createHash, randomUUID } from 'node:crypto'; @@ -48,6 +49,7 @@ export class MessageStore { debug: config.debug ?? false, rateLimitPerMinute: config.rateLimitPerMinute ?? 60, rateLimitWindowMs: config.rateLimitWindowMs ?? 60_000, + expoPushUrl: config.expoPushUrl ?? 'https://exp.host/--/api/v2/push/send', }; // Start cleanup interval @@ -911,3 +913,43 @@ export class MobilePairingStore { } } } + +// ============================================================================ +// Mobile Push Token Store +// ============================================================================ + +const PUSH_TOKEN_MAX_AGE_MS = 90 * 24 * 60 * 60 * 1000; + +export class PushTokenStore { + private tokensByVault: Map = new Map(); + + register(input: Omit): PushTokenRegistration { + const record: PushTokenRegistration = { + ...input, + platform: input.platform ?? 'unknown', + updated_at: Date.now(), + }; + this.tokensByVault.set(input.vault_id, record); + return record; + } + + get(vaultId: string): PushTokenRegistration | undefined { + const record = this.tokensByVault.get(vaultId); + if (!record) return undefined; + if (Date.now() - record.updated_at > PUSH_TOKEN_MAX_AGE_MS) { + this.tokensByVault.delete(vaultId); + return undefined; + } + return record; + } + + remove(vaultId: string): boolean { + return this.tokensByVault.delete(vaultId); + } + + getStats(): { registeredPushTokens: number } { + return { + registeredPushTokens: this.tokensByVault.size, + }; + } +} diff --git a/packages/dcp-relay/src/types.ts b/packages/dcp-relay/src/types.ts index b282481..f0c4dce 100644 --- a/packages/dcp-relay/src/types.ts +++ b/packages/dcp-relay/src/types.ts @@ -157,6 +157,14 @@ export interface VaultConnection { ws?: unknown; // WebSocket reference } +export interface PushTokenRegistration { + vault_id: string; + token: string; + platform?: 'ios' | 'android' | 'web' | 'unknown'; + device_id?: string; + updated_at: number; +} + // ============================================================================ // Error Types (from protocol spec section 7.3) // ============================================================================ @@ -219,6 +227,8 @@ export interface RelayConfig { rateLimitPerMinute: number; /** Rate limit window in ms (default: 60000 = 1 minute) */ rateLimitWindowMs: number; + /** Expo push API endpoint. Empty disables outbound push delivery. */ + expoPushUrl: string; } export const DEFAULT_RELAY_CONFIG: RelayConfig = { @@ -231,6 +241,7 @@ export const DEFAULT_RELAY_CONFIG: RelayConfig = { debug: false, rateLimitPerMinute: 60, rateLimitWindowMs: 60_000, + expoPushUrl: 'https://exp.host/--/api/v2/push/send', }; // ============================================================================ diff --git a/packages/dcp-relay/tests/relay.test.ts b/packages/dcp-relay/tests/relay.test.ts index 5b34909..51982e7 100644 --- a/packages/dcp-relay/tests/relay.test.ts +++ b/packages/dcp-relay/tests/relay.test.ts @@ -637,6 +637,39 @@ describe('RelayServer', () => { }); describe('Request endpoint', () => { + it('registers mobile push tokens without exposing approval details', async () => { + const response = await fetch(`http://127.0.0.1:${testPort}/v1/devices/push-token`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + vault_id: 'vault_push', + token: 'ExpoPushToken[abc123_DEF-456]', + platform: 'android', + device_id: 'device_test', + }), + }); + const data = await response.json(); + + expect(response.status).toBe(200); + expect(data.success).toBe(true); + expect(data.vault_id).toBe('vault_push'); + expect(server.getPushTokenStore().get('vault_push')?.token).toBe('ExpoPushToken[abc123_DEF-456]'); + }); + + it('rejects unsupported push token formats', async () => { + const response = await fetch(`http://127.0.0.1:${testPort}/v1/devices/push-token`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + vault_id: 'vault_push', + token: 'plain-secret-token', + platform: 'android', + }), + }); + + expect(response.status).toBe(400); + }); + it('should reject request for unconnected vault', async () => { const envelope = createTestEnvelope({ vault_id: 'vault_not_connected' }); From 8ea28159dcb2115daafa59e1ff00c04961bc1dd1 Mon Sep 17 00:00:00 2001 From: 1lystore Date: Thu, 21 May 2026 21:41:00 +0530 Subject: [PATCH 10/12] feat: support mobile agent approvals --- packages/dcp-agent/package.json | 1 + packages/dcp-agent/src/index.ts | 103 +++++++++++++++--- packages/dcp-agent/src/mobile-pairing.ts | 28 ++++- packages/dcp-agent/src/types.ts | 2 +- .../dcp-agent/tests/mobile-pairing.test.ts | 1 + packages/dcp-relay/src/relay.ts | 41 ++++++- packages/dcp-relay/src/store.ts | 20 +++- packages/dcp-relay/src/types.ts | 4 +- pnpm-lock.yaml | 7 +- 9 files changed, 184 insertions(+), 23 deletions(-) diff --git a/packages/dcp-agent/package.json b/packages/dcp-agent/package.json index 3c4d586..8e84d19 100644 --- a/packages/dcp-agent/package.json +++ b/packages/dcp-agent/package.json @@ -59,6 +59,7 @@ "@dcprotocol/core": "^2.0.1", "@modelcontextprotocol/sdk": "^1.0.0", "@noble/curves": "^1.4.0", + "@solana/web3.js": "^1.98.0", "chalk": "^5.3.0", "commander": "^12.1.0", "ora": "^8.0.1", diff --git a/packages/dcp-agent/src/index.ts b/packages/dcp-agent/src/index.ts index 768fecd..48f328b 100644 --- a/packages/dcp-agent/src/index.ts +++ b/packages/dcp-agent/src/index.ts @@ -25,6 +25,7 @@ import * as os from 'node:os'; import { spawn } from 'node:child_process'; import { fileURLToPath } from 'node:url'; import qrcode from 'qrcode-terminal'; +import { Keypair, LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction } from '@solana/web3.js'; import { parseAndVerifyGrant, createConfigFromGrant, @@ -44,7 +45,7 @@ import { runMcpServer } from './mcp.js'; import { runHttpMcpServer } from './http-mcp.js'; import { AgentError } from './types.js'; import { processSecretsRequest, fetchSecret, fetchSecrets } from './secrets.js'; -import { createMobilePairingInvite, waitForMobilePairingApproval } from './mobile-pairing.js'; +import { createMobilePairingInvite, publishMobilePairingInvite, waitForMobilePairingApproval } from './mobile-pairing.js'; import { configureOpenClawCommand, installServiceCommand, @@ -222,11 +223,12 @@ interface MobilePairOptions { relayUrl?: string; scope?: string[]; dailyBudget?: string; - currency?: 'SOL' | 'USDC'; + currency?: 'SOL' | 'USDC' | '1LY'; approvalThreshold?: string; ttlSeconds?: string; json?: boolean; noQr?: boolean; + largeQr?: boolean; wait?: boolean; waitSeconds?: string; configureMcp?: boolean; @@ -235,10 +237,14 @@ interface MobilePairOptions { interface SmokeOptions { agent?: string; signMessage?: string; + signTxAmount?: string; + signTxCurrency?: string; + signTxDestination?: string; readScope?: string; writeScope?: string; writeName?: string; writeValue?: string; + skipAddress?: boolean; forceRelay?: boolean; json?: boolean; } @@ -344,7 +350,7 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { try { const client = options.client || 'custom'; const environment = options.environment || (client === 'hermes' || client === 'openclaw' ? 'vps' : 'local'); - const scopes = (options.scope?.length ? options.scope : ['read:wallet.address', 'sign:solana']) as MobileDcpScope[]; + const scopes = (options.scope?.length ? options.scope : []) as MobileDcpScope[]; const daily = parseNumberOption(options.dailyBudget, 0, '--daily-budget'); const approvalThreshold = parseNumberOption(options.approvalThreshold, 0, '--approval-threshold'); const ttlSeconds = parseNumberOption(options.ttlSeconds, 10 * 60, '--ttl-seconds'); @@ -358,18 +364,20 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { requestedScopes: scopes, requestedBudget: { daily, - currency: options.currency || 'USDC', + currency: options.currency || 'SOL', approval_threshold: approvalThreshold, }, ttlSeconds, }); + await publishMobilePairingInvite(created.invite); saveMobilePendingConfig(created.pendingConfig); if (options.json) { console.log(JSON.stringify({ invite: created.invite, invite_url: created.inviteUrl, + short_invite_url: created.shortInviteUrl, }, null, 2)); return; } @@ -380,7 +388,7 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { console.log(); if (!options.noQr) { - qrcode.generate(created.inviteUrl, { small: true }); + qrcode.generate(created.shortInviteUrl, { small: !options.largeQr }); console.log(); } @@ -392,7 +400,8 @@ async function mobilePairCommand(options: MobilePairOptions): Promise { console.log(` ${dim('Expires:')} ${created.invite.expires_at}`); console.log(); console.log(chalk.bold('Pairing URL:')); - console.log(created.inviteUrl); + console.log(created.shortInviteUrl); + console.log(dim('Full signed invite is stored on relay and verified by the mobile app.')); console.log(); console.log(dim('Pending agent key material was saved locally with 0600 permissions.')); console.log(dim('The mobile vault must approve the invite before this agent can request DCP actions.')); @@ -462,6 +471,28 @@ function loadAgentForCommand(agentIdOrName?: string) { return config; } +function buildSmokeTransferTx(fromAddress: string, destinationAddress: string, amountSol: number): string { + if (!Number.isFinite(amountSol) || amountSol <= 0) { + throw new Error('--sign-tx-amount must be a positive SOL amount'); + } + + const fromPubkey = new PublicKey(fromAddress); + const toPubkey = new PublicKey(destinationAddress); + const lamports = Math.max(1, Math.round(amountSol * LAMPORTS_PER_SOL)); + const tx = new Transaction({ + feePayer: fromPubkey, + recentBlockhash: Keypair.generate().publicKey.toBase58(), + }).add( + SystemProgram.transfer({ + fromPubkey, + toPubkey, + lamports, + }) + ); + + return tx.serialize({ requireAllSignatures: false, verifySignatures: false }).toString('base64'); +} + async function smokeCommand(options: SmokeOptions): Promise { const config = loadAgentForCommand(options.agent); const connection = new AgentConnection(config, { forceRelay: options.forceRelay ?? true }); @@ -478,11 +509,16 @@ async function smokeCommand(options: SmokeOptions): Promise { } await connection.connect(); - const address = await connection.getAddress('solana'); - const result: Record = { address }; + const result: Record = {}; - if (!options.json) { - success(`Wallet address: ${address.address}`); + const needsAddress = !options.skipAddress || Boolean(options.signTxAmount); + const address = needsAddress ? await connection.getAddress('solana') : null; + if (address) { + result.address = address; + + if (!options.json) { + success(`Wallet address: ${address.address}`); + } } if (options.signMessage) { @@ -501,6 +537,41 @@ async function smokeCommand(options: SmokeOptions): Promise { } } + if (options.signTxAmount) { + if (!address) { + throw new Error('Wallet address is required to build the smoke transaction'); + } + const amount = parseNumberOption(options.signTxAmount, Number.NaN, '--sign-tx-amount'); + const currency = (options.signTxCurrency || 'SOL').toUpperCase(); + if (currency !== 'SOL') { + throw new Error('--sign-tx-currency currently supports SOL for generated smoke transactions'); + } + const destination = options.signTxDestination || Keypair.generate().publicKey.toBase58(); + const unsignedTx = buildSmokeTransferTx(address.address, destination, amount); + + if (!options.json) { + console.log(dim(`Waiting for mobile approval of vault_sign_tx ${amount} SOL...`)); + console.log(dim(`Destination: ${destination}`)); + } + + const signedTx = await connection.signTx({ + chain: 'solana', + unsignedTx, + amount, + currency, + destination, + description: `DCP mobile smoke test transfer (${amount} SOL)`, + idempotencyKey: `smoke-${Date.now()}`, + }); + result.sign_tx = signedTx; + if (!options.json) { + success(`Transaction signed: ${signedTx.signature}`); + if (signedTx.remaining_daily !== undefined) { + success(`Remaining daily budget: ${signedTx.remaining_daily} ${currency}`); + } + } + } + if (options.writeScope) { if (!options.writeValue) { throw new Error('--write-value is required with --write-scope'); @@ -904,11 +975,12 @@ mobileCommand .option('--relay-url ', 'Mobile relay API/base URL') .option('--scope ', 'Requested scope. Repeat for multiple scopes.', (value, previous: string[] = []) => [...previous, value]) .option('--daily-budget ', 'Requested daily budget', '0') - .option('--currency ', 'Budget currency: USDC or SOL', 'USDC') + .option('--currency ', 'Budget currency: SOL, USDC, or 1LY', 'SOL') .option('--approval-threshold ', 'Auto-approval threshold', '0') .option('--ttl-seconds ', 'Invite lifetime in seconds', '600') .option('--json', 'Print machine-readable JSON') .option('--no-qr', 'Do not print terminal QR') + .option('--large-qr', 'Print a larger terminal QR for difficult scanners') .option('--wait', 'Wait until DCP Mobile approves or denies the pairing') .option('--wait-seconds ', 'How long --wait should poll for approval') .option('--configure-mcp', 'After approval, configure the local MCP client when supported') @@ -924,11 +996,12 @@ mobileCommand .option('--relay-url ', 'Mobile relay API/base URL') .option('--scope ', 'Requested scope. Repeat for multiple scopes.', (value, previous: string[] = []) => [...previous, value]) .option('--daily-budget ', 'Requested daily budget', '0') - .option('--currency ', 'Budget currency: USDC or SOL', 'USDC') + .option('--currency ', 'Budget currency: SOL, USDC, or 1LY', 'SOL') .option('--approval-threshold ', 'Auto-approval threshold', '0') .option('--ttl-seconds ', 'Invite lifetime in seconds', '600') .option('--json', 'Print machine-readable JSON') .option('--no-qr', 'Do not print terminal QR') + .option('--large-qr', 'Print a larger terminal QR for difficult scanners') .option('--wait-seconds ', 'How long to wait for approval') .option('--configure-mcp', 'Configure the local MCP client when supported', true) .option('--no-configure-mcp', 'Do not write MCP client config; print next steps only') @@ -950,11 +1023,15 @@ program .command('smoke') .description('Test a paired agent against the vault/relay without configuring Claude') .option('-a, --agent ', 'Agent ID or name to test (default: first configured)') - .option('--sign-message ', 'Also request a mobile-approved Solana message signature') + .option('--sign-message ', 'Request a Solana message signature for login/auth challenge testing') + .option('--sign-tx-amount ', 'Generate and request signing for a smoke-test SOL transfer amount') + .option('--sign-tx-currency ', 'Currency for --sign-tx-amount (currently SOL)', 'SOL') + .option('--sign-tx-destination
', 'Destination public key for generated smoke-test transfer') .option('--read-scope ', 'Also request a mobile-approved vault_read for a scope, e.g. credentials.api.openai') .option('--write-scope ', 'Also request a mobile-approved vault_write for a scope, e.g. credentials.api.openai') .option('--write-name ', 'Display name to store with --write-scope') .option('--write-value ', 'Secret value to store with --write-scope') + .option('--skip-address', 'Skip the initial wallet address check') .option('--force-relay', 'Force relay mode (default for smoke)', true) .option('-j, --json', 'Output as JSON') .action(smokeCommand); diff --git a/packages/dcp-agent/src/mobile-pairing.ts b/packages/dcp-agent/src/mobile-pairing.ts index c9eac2f..a954131 100644 --- a/packages/dcp-agent/src/mobile-pairing.ts +++ b/packages/dcp-agent/src/mobile-pairing.ts @@ -63,6 +63,7 @@ export interface CreateMobilePairingInviteInput { export interface CreatedMobilePairingInvite { invite: MobilePairingInvite; inviteUrl: string; + shortInviteUrl: string; pendingConfig: MobilePendingConfig; } @@ -72,6 +73,14 @@ function encodeMobilePairingInvite(invite: MobilePairingInvite): string { return `dcp://pair?invite=${encodeURIComponent(JSON.stringify(invite))}`; } +function encodeShortMobilePairingInvite(invite: MobilePairingInvite): string { + const params = new URLSearchParams({ + relay: invite.relay_url, + invite_id: invite.invite_id, + }); + return `dcp://pair?${params.toString()}`; +} + export function canonicalMobileAgentId(client: MobileAgentClient): string { const ids: Record = { 'claude-desktop': 'agent_claude_desktop', @@ -113,7 +122,7 @@ export function createMobilePairingInvite( const requestedAgentId = input.agentId?.trim() || canonicalMobileAgentId(input.client); const requestedBudget = input.requestedBudget ?? { daily: 0, - currency: 'USDC', + currency: 'SOL', approval_threshold: 0, }; @@ -127,7 +136,7 @@ export function createMobilePairingInvite( agent_name: input.agentName.trim(), agent_client: input.client, environment: input.environment, - requested_scopes: input.requestedScopes ?? ['read:wallet.address', 'sign:solana'], + requested_scopes: input.requestedScopes ?? [], requested_budget: requestedBudget, created_at: createdAt.toISOString(), expires_at: expiresAt.toISOString(), @@ -143,10 +152,12 @@ export function createMobilePairingInvite( signature, }; const inviteUrl = encodeMobilePairingInvite(invite); + const shortInviteUrl = encodeShortMobilePairingInvite(invite); return { invite, inviteUrl, + shortInviteUrl, pendingConfig: { invite_id: inviteId, invite_url: inviteUrl, @@ -161,6 +172,19 @@ export function createMobilePairingInvite( }; } +export async function publishMobilePairingInvite(invite: MobilePairingInvite): Promise { + const response = await fetch(`${invite.relay_url.replace(/\/$/, '')}/v1/mobile/pairings`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ invite }), + }); + + if (!response.ok) { + const text = await response.text().catch(() => ''); + throw new Error(`Failed to publish mobile pairing invite (${response.status})${text ? `: ${text}` : ''}`); + } +} + export async function getMobilePairingStatus( relayUrl: string, inviteId: string diff --git a/packages/dcp-agent/src/types.ts b/packages/dcp-agent/src/types.ts index 8b5157c..a9f492f 100644 --- a/packages/dcp-agent/src/types.ts +++ b/packages/dcp-agent/src/types.ts @@ -126,7 +126,7 @@ export type MobileDcpScope = export interface MobilePairingBudget { daily: number; - currency: 'SOL' | 'USDC'; + currency: 'SOL' | 'USDC' | '1LY'; approval_threshold: number; } diff --git a/packages/dcp-agent/tests/mobile-pairing.test.ts b/packages/dcp-agent/tests/mobile-pairing.test.ts index 430470f..459e363 100644 --- a/packages/dcp-agent/tests/mobile-pairing.test.ts +++ b/packages/dcp-agent/tests/mobile-pairing.test.ts @@ -45,6 +45,7 @@ describe('mobile pairing', () => { }); expect(invite.requested_agent_id).toBe('agent_custom_test'); + expect(invite.requested_scopes).toEqual([]); const valid = verifySignature( Buffer.from(canonicalInvitePayload(invite), 'utf8'), diff --git a/packages/dcp-relay/src/relay.ts b/packages/dcp-relay/src/relay.ts index 5ff9242..0c07637 100644 --- a/packages/dcp-relay/src/relay.ts +++ b/packages/dcp-relay/src/relay.ts @@ -335,6 +335,43 @@ export class RelayServer { // DCP Mobile Pairing Routes (Agent QR → Mobile approval → Agent polling) // ======================================================================== + this.server.post<{ + Body: { invite?: MobilePairingInvite }; + }>( + '/v1/mobile/pairings', + async (request, reply) => { + const invite = request.body?.invite; + if (!invite || typeof invite !== 'object') { + return reply.status(400).send({ success: false, error: 'Missing pairing invite' }); + } + const inviteError = this.validateMobileInvite(invite); + if (inviteError) { + return reply.status(400).send({ success: false, error: inviteError }); + } + const record = this.mobilePairingStore.registerInvite(invite); + return reply.send({ + success: true, + invite_id: record.invite_id, + status: record.status, + }); + } + ); + + this.server.get<{ Params: { inviteId: string } }>( + '/v1/mobile/pairings/:inviteId/invite', + async (request, reply) => { + const record = this.mobilePairingStore.get(request.params.inviteId); + if (!record || record.status === 'expired') { + return reply.status(404).send({ success: false, error: 'Pairing invite not found' }); + } + return reply.send({ + invite_id: record.invite_id, + invite: record.invite, + status: record.status, + }); + } + ); + this.server.post<{ Params: { inviteId: string }; Body: MobilePairingApprovalRequest; @@ -1391,8 +1428,8 @@ export class RelayServer { if (!body.vault_hpke_public_key || !body.vault_signing_public_key) { return 'Missing vault relay public keys'; } - if (!Array.isArray(body.approved_scopes) || body.approved_scopes.length === 0) { - return 'approved_scopes must be a non-empty array'; + if (!Array.isArray(body.approved_scopes)) { + return 'approved_scopes must be an array'; } if (!body.approved_budget || typeof body.approved_budget.daily !== 'number') { return 'approved_budget is required'; diff --git a/packages/dcp-relay/src/store.ts b/packages/dcp-relay/src/store.ts index 3c1f568..b62f2fc 100644 --- a/packages/dcp-relay/src/store.ts +++ b/packages/dcp-relay/src/store.ts @@ -798,6 +798,24 @@ export class MobilePairingStore { }, 60_000); } + registerInvite(invite: MobilePairingApprovalRequest['invite']): MobilePairingRecord { + const now = Date.now(); + const existing = this.records.get(invite.invite_id); + if (existing && existing.status !== 'expired') { + return existing; + } + + const record: MobilePairingRecord = { + invite_id: invite.invite_id, + invite, + received_at: now, + status: 'pending', + }; + + this.records.set(record.invite_id, record); + return record; + } + approve(request: MobilePairingApprovalRequest): MobilePairingRecord { const now = Date.now(); const existing = this.records.get(request.invite.invite_id); @@ -839,7 +857,7 @@ export class MobilePairingStore { agent_client: 'custom', environment: 'dev', requested_scopes: [], - requested_budget: { daily: 0, currency: 'USDC', approval_threshold: 0 }, + requested_budget: { daily: 0, currency: 'SOL', approval_threshold: 0 }, created_at: new Date(now).toISOString(), expires_at: new Date(now + MOBILE_PAIRING_TTL_MS).toISOString(), nonce: '', diff --git a/packages/dcp-relay/src/types.ts b/packages/dcp-relay/src/types.ts index f0c4dce..d1f1acc 100644 --- a/packages/dcp-relay/src/types.ts +++ b/packages/dcp-relay/src/types.ts @@ -342,7 +342,7 @@ export type MobileDcpScope = export interface MobilePairingBudget { daily: number; - currency: 'SOL' | 'USDC'; + currency: 'SOL' | 'USDC' | '1LY'; approval_threshold: number; } @@ -378,7 +378,7 @@ export interface MobilePairingRecord { invite_id: string; invite: MobilePairingInvite; received_at: number; - status: 'approved' | 'denied' | 'expired'; + status: 'pending' | 'approved' | 'denied' | 'expired'; vault_id?: string; vault_hpke_public_key?: string; vault_signing_public_key?: string; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8c23706..98dde7e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,6 +22,9 @@ importers: '@noble/curves': specifier: ^1.4.0 version: 1.9.7 + '@solana/web3.js': + specifier: ^1.98.0 + version: 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@6.0.6) chalk: specifier: ^5.3.0 version: 5.6.2 @@ -4087,7 +4090,7 @@ snapshots: isexe@2.0.0: {} - isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)): + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6)): dependencies: ws: 7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -4100,7 +4103,7 @@ snapshots: delay: 5.0.0 es6-promisify: 5.0.0 eyes: 0.1.8 - isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.1.0)) + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.1.0)(utf-8-validate@6.0.6)) json-stringify-safe: 5.0.1 stream-json: 1.9.1 uuid: 8.3.2 From 1d8cf687ea91e29f7bf935184e0e43e661dc8eb4 Mon Sep 17 00:00:00 2001 From: 1lystore Date: Sat, 13 Jun 2026 06:25:12 +0530 Subject: [PATCH 11/12] =?UTF-8?q?chore(oss):=20remove=20community=20deskto?= =?UTF-8?q?p=20=E2=80=94=20official=20desktop=20is=20now=20a=20private=20p?= =?UTF-8?q?roduct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Open-core cleanup: the desktop GUI ships as the private official product (free+premium). OSS self-host is via the CLI + protocol packages. Removes packages/dcp-desktop, its build-desktop workflow, and its cargo dependabot entry. No OSS package depends on it. Co-Authored-By: Claude Opus 4.8 --- .github/dependabot.yml | 11 - .github/workflows/build-desktop.yml | 172 - packages/dcp-desktop/.gitignore | 5 - packages/dcp-desktop/README.md | 40 - packages/dcp-desktop/index.html | 29 - packages/dcp-desktop/package.json | 43 - packages/dcp-desktop/public/vault.svg | 5 - .../dcp-desktop/scripts/bundle-helper.mjs | 523 - packages/dcp-desktop/scripts/fetch-node.mjs | 97 - packages/dcp-desktop/src-tauri/Cargo.lock | 5957 - packages/dcp-desktop/src-tauri/Cargo.toml | 37 - packages/dcp-desktop/src-tauri/bin/.gitkeep | 0 packages/dcp-desktop/src-tauri/build.rs | 3 - .../src-tauri/capabilities/default.json | 22 - .../src-tauri/gen/schemas/acl-manifests.json | 1 - .../src-tauri/gen/schemas/capabilities.json | 1 - .../src-tauri/gen/schemas/desktop-schema.json | 2852 - .../src-tauri/gen/schemas/macOS-schema.json | 2852 - .../dcp-desktop/src-tauri/icons/128x128.png | Bin 9780 -> 0 bytes .../src-tauri/icons/128x128@2x.png | Bin 30366 -> 0 bytes .../dcp-desktop/src-tauri/icons/32x32.png | Bin 1323 -> 0 bytes .../dcp-desktop/src-tauri/icons/64x64.png | Bin 3454 -> 0 bytes .../src-tauri/icons/Square107x107Logo.png | Bin 7332 -> 0 bytes .../src-tauri/icons/Square142x142Logo.png | Bin 11398 -> 0 bytes .../src-tauri/icons/Square150x150Logo.png | Bin 12454 -> 0 bytes .../src-tauri/icons/Square284x284Logo.png | Bin 36369 -> 0 bytes .../src-tauri/icons/Square30x30Logo.png | Bin 1180 -> 0 bytes .../src-tauri/icons/Square310x310Logo.png | Bin 42373 -> 0 bytes .../src-tauri/icons/Square44x44Logo.png | Bin 2043 -> 0 bytes .../src-tauri/icons/Square71x71Logo.png | Bin 4028 -> 0 bytes .../src-tauri/icons/Square89x89Logo.png | Bin 5602 -> 0 bytes .../dcp-desktop/src-tauri/icons/StoreLogo.png | Bin 2475 -> 0 bytes .../android/mipmap-anydpi-v26/ic_launcher.xml | 5 - .../icons/android/mipmap-hdpi/ic_launcher.png | Bin 2380 -> 0 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 3631 -> 0 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 2250 -> 0 bytes .../icons/android/mipmap-mdpi/ic_launcher.png | Bin 2305 -> 0 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 2532 -> 0 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 2139 -> 0 bytes .../android/mipmap-xhdpi/ic_launcher.png | Bin 4776 -> 0 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 4899 -> 0 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 4862 -> 0 bytes .../android/mipmap-xxhdpi/ic_launcher.png | Bin 7796 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 7227 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 7728 -> 0 bytes .../android/mipmap-xxxhdpi/ic_launcher.png | Bin 9798 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 9806 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 9593 -> 0 bytes .../android/values/ic_launcher_background.xml | 4 - .../dcp-desktop/src-tauri/icons/icon.icns | Bin 1893150 -> 0 bytes packages/dcp-desktop/src-tauri/icons/icon.ico | Bin 48822 -> 0 bytes packages/dcp-desktop/src-tauri/icons/icon.png | Bin 103766 -> 0 bytes .../src-tauri/icons/icons_backup/icon.icns | Bin 69681 -> 0 bytes .../src-tauri/icons/icons_backup/icon.ico | Bin 13078 -> 0 bytes .../src-tauri/icons/ios/AppIcon-20x20@1x.png | Bin 684 -> 0 bytes .../icons/ios/AppIcon-20x20@2x-1.png | Bin 1017 -> 0 bytes .../src-tauri/icons/ios/AppIcon-20x20@2x.png | Bin 1017 -> 0 bytes .../src-tauri/icons/ios/AppIcon-20x20@3x.png | Bin 1480 -> 0 bytes .../src-tauri/icons/ios/AppIcon-29x29@1x.png | Bin 811 -> 0 bytes .../icons/ios/AppIcon-29x29@2x-1.png | Bin 1482 -> 0 bytes .../src-tauri/icons/ios/AppIcon-29x29@2x.png | Bin 1482 -> 0 bytes .../src-tauri/icons/ios/AppIcon-29x29@3x.png | Bin 2038 -> 0 bytes .../src-tauri/icons/ios/AppIcon-40x40@1x.png | Bin 1017 -> 0 bytes .../icons/ios/AppIcon-40x40@2x-1.png | Bin 1836 -> 0 bytes .../src-tauri/icons/ios/AppIcon-40x40@2x.png | Bin 1836 -> 0 bytes .../src-tauri/icons/ios/AppIcon-40x40@3x.png | Bin 2723 -> 0 bytes .../src-tauri/icons/ios/AppIcon-512@2x.png | Bin 25346 -> 0 bytes .../src-tauri/icons/ios/AppIcon-60x60@2x.png | Bin 2723 -> 0 bytes .../src-tauri/icons/ios/AppIcon-60x60@3x.png | Bin 3852 -> 0 bytes .../src-tauri/icons/ios/AppIcon-76x76@1x.png | Bin 1845 -> 0 bytes .../src-tauri/icons/ios/AppIcon-76x76@2x.png | Bin 3387 -> 0 bytes .../icons/ios/AppIcon-83.5x83.5@2x.png | Bin 3674 -> 0 bytes .../src-tauri/icons_backup/128x128.png | Bin 3051 -> 0 bytes .../src-tauri/icons_backup/128x128@2x.png | Bin 5635 -> 0 bytes .../src-tauri/icons_backup/32x32.png | Bin 878 -> 0 bytes .../src-tauri/icons_backup/64x64.png | Bin 1599 -> 0 bytes .../icons_backup/Square107x107Logo.png | Bin 2592 -> 0 bytes .../icons_backup/Square142x142Logo.png | Bin 3289 -> 0 bytes .../icons_backup/Square150x150Logo.png | Bin 3455 -> 0 bytes .../icons_backup/Square284x284Logo.png | Bin 6357 -> 0 bytes .../icons_backup/Square30x30Logo.png | Bin 786 -> 0 bytes .../icons_backup/Square310x310Logo.png | Bin 6991 -> 0 bytes .../icons_backup/Square44x44Logo.png | Bin 1175 -> 0 bytes .../icons_backup/Square71x71Logo.png | Bin 1775 -> 0 bytes .../icons_backup/Square89x89Logo.png | Bin 2180 -> 0 bytes .../src-tauri/icons_backup/StoreLogo.png | Bin 1334 -> 0 bytes .../android/mipmap-anydpi-v26/ic_launcher.xml | 5 - .../android/mipmap-hdpi/ic_launcher.png | Bin 2380 -> 0 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 3631 -> 0 bytes .../android/mipmap-hdpi/ic_launcher_round.png | Bin 2250 -> 0 bytes .../android/mipmap-mdpi/ic_launcher.png | Bin 2305 -> 0 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 2532 -> 0 bytes .../android/mipmap-mdpi/ic_launcher_round.png | Bin 2139 -> 0 bytes .../android/mipmap-xhdpi/ic_launcher.png | Bin 4776 -> 0 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 4899 -> 0 bytes .../mipmap-xhdpi/ic_launcher_round.png | Bin 4862 -> 0 bytes .../android/mipmap-xxhdpi/ic_launcher.png | Bin 7796 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 7227 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_round.png | Bin 7728 -> 0 bytes .../android/mipmap-xxxhdpi/ic_launcher.png | Bin 9798 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 9806 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_round.png | Bin 9593 -> 0 bytes .../android/values/ic_launcher_background.xml | 4 - .../src-tauri/icons_backup/icon.icns | Bin 69681 -> 0 bytes .../src-tauri/icons_backup/icon.ico | Bin 13078 -> 0 bytes .../src-tauri/icons_backup/icon.png | Bin 11707 -> 0 bytes .../icons_backup/ios/AppIcon-20x20@1x.png | Bin 684 -> 0 bytes .../icons_backup/ios/AppIcon-20x20@2x-1.png | Bin 1017 -> 0 bytes .../icons_backup/ios/AppIcon-20x20@2x.png | Bin 1017 -> 0 bytes .../icons_backup/ios/AppIcon-20x20@3x.png | Bin 1480 -> 0 bytes .../icons_backup/ios/AppIcon-29x29@1x.png | Bin 811 -> 0 bytes .../icons_backup/ios/AppIcon-29x29@2x-1.png | Bin 1482 -> 0 bytes .../icons_backup/ios/AppIcon-29x29@2x.png | Bin 1482 -> 0 bytes .../icons_backup/ios/AppIcon-29x29@3x.png | Bin 2038 -> 0 bytes .../icons_backup/ios/AppIcon-40x40@1x.png | Bin 1017 -> 0 bytes .../icons_backup/ios/AppIcon-40x40@2x-1.png | Bin 1836 -> 0 bytes .../icons_backup/ios/AppIcon-40x40@2x.png | Bin 1836 -> 0 bytes .../icons_backup/ios/AppIcon-40x40@3x.png | Bin 2723 -> 0 bytes .../icons_backup/ios/AppIcon-512@2x.png | Bin 25346 -> 0 bytes .../icons_backup/ios/AppIcon-60x60@2x.png | Bin 2723 -> 0 bytes .../icons_backup/ios/AppIcon-60x60@3x.png | Bin 3852 -> 0 bytes .../icons_backup/ios/AppIcon-76x76@1x.png | Bin 1845 -> 0 bytes .../icons_backup/ios/AppIcon-76x76@2x.png | Bin 3387 -> 0 bytes .../icons_backup/ios/AppIcon-83.5x83.5@2x.png | Bin 3674 -> 0 bytes .../src-tauri/resources/dcp-vault-bundle.cjs | 102642 --------------- packages/dcp-desktop/src-tauri/src/lib.rs | 1188 - packages/dcp-desktop/src-tauri/src/main.rs | 6 - .../dcp-desktop/src-tauri/tauri.conf.json | 80 - packages/dcp-desktop/src/App.tsx | 415 - packages/dcp-desktop/src/api.ts | 674 - packages/dcp-desktop/src/main.tsx | 13 - packages/dcp-desktop/src/pages/Activity.tsx | 252 - packages/dcp-desktop/src/pages/Agents.tsx | 1044 - packages/dcp-desktop/src/pages/Connect.tsx | 1161 - packages/dcp-desktop/src/pages/Data.tsx | 731 - packages/dcp-desktop/src/pages/Home.tsx | 328 - packages/dcp-desktop/src/pages/Onboarding.tsx | 427 - packages/dcp-desktop/src/pages/Settings.tsx | 869 - packages/dcp-desktop/src/pages/Unlock.tsx | 146 - packages/dcp-desktop/src/styles.css | 504 - packages/dcp-desktop/tsconfig.json | 24 - packages/dcp-desktop/tsconfig.node.json | 11 - packages/dcp-desktop/vite.config.ts | 19 - 143 files changed, 123202 deletions(-) delete mode 100644 .github/workflows/build-desktop.yml delete mode 100644 packages/dcp-desktop/.gitignore delete mode 100644 packages/dcp-desktop/README.md delete mode 100644 packages/dcp-desktop/index.html delete mode 100644 packages/dcp-desktop/package.json delete mode 100644 packages/dcp-desktop/public/vault.svg delete mode 100644 packages/dcp-desktop/scripts/bundle-helper.mjs delete mode 100644 packages/dcp-desktop/scripts/fetch-node.mjs delete mode 100644 packages/dcp-desktop/src-tauri/Cargo.lock delete mode 100644 packages/dcp-desktop/src-tauri/Cargo.toml delete mode 100644 packages/dcp-desktop/src-tauri/bin/.gitkeep delete mode 100644 packages/dcp-desktop/src-tauri/build.rs delete mode 100644 packages/dcp-desktop/src-tauri/capabilities/default.json delete mode 100644 packages/dcp-desktop/src-tauri/gen/schemas/acl-manifests.json delete mode 100644 packages/dcp-desktop/src-tauri/gen/schemas/capabilities.json delete mode 100644 packages/dcp-desktop/src-tauri/gen/schemas/desktop-schema.json delete mode 100644 packages/dcp-desktop/src-tauri/gen/schemas/macOS-schema.json delete mode 100644 packages/dcp-desktop/src-tauri/icons/128x128.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/128x128@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/32x32.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/64x64.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square107x107Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square142x142Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square150x150Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square284x284Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square30x30Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square310x310Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square44x44Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square71x71Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/Square89x89Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/StoreLogo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/android/values/ic_launcher_background.xml delete mode 100644 packages/dcp-desktop/src-tauri/icons/icon.icns delete mode 100644 packages/dcp-desktop/src-tauri/icons/icon.ico delete mode 100644 packages/dcp-desktop/src-tauri/icons/icon.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/icons_backup/icon.icns delete mode 100644 packages/dcp-desktop/src-tauri/icons/icons_backup/icon.ico delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-20x20@1x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-20x20@2x-1.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-20x20@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-20x20@3x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-29x29@1x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-29x29@2x-1.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-29x29@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-29x29@3x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-40x40@1x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-40x40@2x-1.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-40x40@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-40x40@3x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-512@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-60x60@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-60x60@3x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-76x76@1x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-76x76@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/128x128.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/128x128@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/32x32.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/64x64.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square107x107Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square142x142Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square150x150Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square284x284Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square30x30Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square310x310Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square44x44Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square71x71Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/Square89x89Logo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/StoreLogo.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-hdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-hdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-hdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-mdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-mdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-mdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xhdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xhdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xxhdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xxhdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xxxhdpi/ic_launcher_foreground.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/mipmap-xxxhdpi/ic_launcher_round.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/android/values/ic_launcher_background.xml delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/icon.icns delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/icon.ico delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/icon.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-20x20@1x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-20x20@2x-1.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-20x20@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-20x20@3x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-29x29@1x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-29x29@2x-1.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-29x29@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-29x29@3x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-40x40@1x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-40x40@2x-1.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-40x40@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-40x40@3x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-512@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-60x60@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-60x60@3x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-76x76@1x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-76x76@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/icons_backup/ios/AppIcon-83.5x83.5@2x.png delete mode 100644 packages/dcp-desktop/src-tauri/resources/dcp-vault-bundle.cjs delete mode 100644 packages/dcp-desktop/src-tauri/src/lib.rs delete mode 100644 packages/dcp-desktop/src-tauri/src/main.rs delete mode 100644 packages/dcp-desktop/src-tauri/tauri.conf.json delete mode 100644 packages/dcp-desktop/src/App.tsx delete mode 100644 packages/dcp-desktop/src/api.ts delete mode 100644 packages/dcp-desktop/src/main.tsx delete mode 100644 packages/dcp-desktop/src/pages/Activity.tsx delete mode 100644 packages/dcp-desktop/src/pages/Agents.tsx delete mode 100644 packages/dcp-desktop/src/pages/Connect.tsx delete mode 100644 packages/dcp-desktop/src/pages/Data.tsx delete mode 100644 packages/dcp-desktop/src/pages/Home.tsx delete mode 100644 packages/dcp-desktop/src/pages/Onboarding.tsx delete mode 100644 packages/dcp-desktop/src/pages/Settings.tsx delete mode 100644 packages/dcp-desktop/src/pages/Unlock.tsx delete mode 100644 packages/dcp-desktop/src/styles.css delete mode 100644 packages/dcp-desktop/tsconfig.json delete mode 100644 packages/dcp-desktop/tsconfig.node.json delete mode 100644 packages/dcp-desktop/vite.config.ts diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1edd56a..506cd90 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -23,17 +23,6 @@ updates: interval: monthly open-pull-requests-limit: 1 - - package-ecosystem: cargo - directory: /packages/dcp-desktop/src-tauri - schedule: - interval: monthly - open-pull-requests-limit: 2 - groups: - cargo-minor-and-patch: - update-types: - - minor - - patch - - package-ecosystem: pip directory: /sdks/python schedule: diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml deleted file mode 100644 index f3fded2..0000000 --- a/.github/workflows/build-desktop.yml +++ /dev/null @@ -1,172 +0,0 @@ -name: Build Desktop Apps - -on: - push: - tags: - - 'v*' - workflow_dispatch: - -permissions: - contents: write - -jobs: - build: - strategy: - fail-fast: false - matrix: - include: - - platform: 'macos-latest' - args: '--target aarch64-apple-darwin' - name: 'macOS Apple Silicon' - - platform: 'macos-latest' - args: '--target x86_64-apple-darwin' - name: 'macOS Intel' - - platform: 'ubuntu-22.04' - args: '' - name: 'Linux' - - platform: 'windows-latest' - args: '' - name: 'Windows' - - runs-on: ${{ matrix.platform }} - name: Build ${{ matrix.name }} - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 9.15.0 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '22.22.2' - cache: 'pnpm' - - - name: Install Rust stable - uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} - - - name: Install Linux dependencies - if: matrix.platform == 'ubuntu-22.04' - run: | - sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Build all packages - run: pnpm run build - - - name: Build Desktop App - run: pnpm --filter @dcprotocol/desktop exec tauri build ${{ matrix.args }} - env: - TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - - - name: Upload macOS Apple Silicon artifacts - if: matrix.platform == 'macos-latest' && contains(matrix.args, 'aarch64') - uses: actions/upload-artifact@v4 - with: - name: macos-aarch64 - path: | - packages/dcp-desktop/src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/*.dmg - packages/dcp-desktop/src-tauri/target/aarch64-apple-darwin/release/bundle/macos/*.app - - - name: Upload macOS Intel artifacts - if: matrix.platform == 'macos-latest' && contains(matrix.args, 'x86_64') - uses: actions/upload-artifact@v4 - with: - name: macos-x86_64 - path: | - packages/dcp-desktop/src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/*.dmg - packages/dcp-desktop/src-tauri/target/x86_64-apple-darwin/release/bundle/macos/*.app - - - name: Upload Linux artifacts - if: matrix.platform == 'ubuntu-22.04' - uses: actions/upload-artifact@v4 - with: - name: linux-x86_64 - path: | - packages/dcp-desktop/src-tauri/target/release/bundle/deb/*.deb - packages/dcp-desktop/src-tauri/target/release/bundle/rpm/*.rpm - - - name: Upload Windows artifacts - if: matrix.platform == 'windows-latest' - uses: actions/upload-artifact@v4 - with: - name: windows-x86_64 - path: | - packages/dcp-desktop/src-tauri/target/release/bundle/msi/*.msi - packages/dcp-desktop/src-tauri/target/release/bundle/nsis/*.exe - - release: - needs: build - runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' - - steps: - - name: Download all artifacts - uses: actions/download-artifact@v4 - - - name: Create Release - uses: softprops/action-gh-release@v1 - with: - files: | - macos-aarch64/**/*.dmg - macos-aarch64/**/*.app - macos-x86_64/**/*.dmg - macos-x86_64/**/*.app - linux-x86_64/**/*.deb - linux-x86_64/**/*.rpm - windows-x86_64/**/*.msi - windows-x86_64/**/*.exe - tag_name: ${{ github.event_name == 'workflow_dispatch' && format('dev-{0}', github.sha) || github.ref_name }} - name: ${{ github.event_name == 'workflow_dispatch' && format('Development Build ({0})', github.sha) || github.ref_name }} - body: | - ## DCP Desktop ${{ github.event_name == 'workflow_dispatch' && format('Development Build ({0})', github.sha) || github.ref_name }} - - Cross-platform desktop application for DCP - connect AI agents to your Solana wallet and personal vault with local approval. - - ### Release notes - - - Fixed auto-approved budget accounting for `sign_x402` and `/v1/vault/sign`. - - Kept internal budget ledger sessions hidden from user-facing agent lists. - - Added regression coverage for repeated under-threshold spend reaching the daily budget limit. - - Updated the bundled vault runtime used by the Desktop app. - - Thanks to @TateLyman for the community contribution behind this fix. - - ### Downloads - - **macOS:** - - Apple Silicon (M1/M2/M3): Download the `aarch64` DMG - - Intel: Download the `x86_64` DMG - - **Windows:** - - Download the `.msi` installer or `.exe` installer - - **Linux:** - - Download the `.deb` package (Debian/Ubuntu) - - Download the `.rpm` package (Fedora/RHEL) - - ### Installation - - - **macOS**: Open the DMG file and drag DCP to your Applications folder. If macOS blocks the app because this build is not notarized yet, run `xattr -cr /Applications/DCP.app` once, then open DCP again. - - **Windows**: Run the MSI or EXE installer - - **Linux**: Install the DEB or RPM package using your package manager - - ### Features - - - Secure local data storage with encryption - - System tray integration - - Auto-start on system boot - - Cross-platform support (macOS, Windows, Linux) - draft: false - prerelease: ${{ github.event_name == 'workflow_dispatch' }} - overwrite_files: true diff --git a/packages/dcp-desktop/.gitignore b/packages/dcp-desktop/.gitignore deleted file mode 100644 index 8fcc0a7..0000000 --- a/packages/dcp-desktop/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -node_modules/ -dist/ -target/ -*.log -.DS_Store diff --git a/packages/dcp-desktop/README.md b/packages/dcp-desktop/README.md deleted file mode 100644 index 97d3a8e..0000000 --- a/packages/dcp-desktop/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# @dcprotocol/desktop - -DCP Desktop is the user app for the vault. - -Use it to create and unlock the vault, approve agent requests, manage agents, pair Telegram, create remote-agent invites, and review audit history. - -## What Users Do Here - -- create or unlock a vault -- add identity data and wallets -- connect local MCP agents such as Claude Desktop, Cursor, and Hermes -- create remote-agent invites for VPS OpenClaw and Hermes installs -- approve or deny requests -- connect Telegram approvals -- revoke agents -- view audit events - -## Connect Agents - -Use the **Connect** screen for local agents. Desktop writes the right MCP config for supported clients, including Hermes at `~/.hermes/config.yaml`. - -Use the remote invite flow for agents running on a VPS. The generated curl command installs the DCP service, pairs it with this Desktop vault, starts HTTP MCP on the VPS, and configures OpenClaw or Hermes when detected. - -## Source Build - -Desktop uses Tauri, so local builds need Node, Rust, and the Tauri system prerequisites. - -```bash -pnpm install -pnpm --filter @dcprotocol/desktop run build -pnpm --filter @dcprotocol/desktop run tauri:dev -``` - -Create a desktop app bundle: - -```bash -pnpm --filter @dcprotocol/desktop run tauri:build -``` - -The desktop app packages a local vault runtime. After changing vault/runtime code, rebuild the app bundle from source before testing Desktop again. diff --git a/packages/dcp-desktop/index.html b/packages/dcp-desktop/index.html deleted file mode 100644 index 6a5ee72..0000000 --- a/packages/dcp-desktop/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - DCP - - - -
- - - diff --git a/packages/dcp-desktop/package.json b/packages/dcp-desktop/package.json deleted file mode 100644 index 7b6da72..0000000 --- a/packages/dcp-desktop/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "@dcprotocol/desktop", - "version": "2.0.4", - "description": "DCP Desktop - Cross-platform desktop app for DCP", - "private": true, - "type": "module", - "scripts": { - "dev": "vite", - "build": "tsc && vite build", - "preview": "vite preview", - "tauri": "tauri", - "tauri:dev": "tauri dev", - "tauri:build": "tauri build", - "bundle:node": "node scripts/fetch-node.mjs", - "bundle:helper": "node scripts/bundle-helper.mjs", - "bundle": "npm run bundle:node && npm run bundle:helper", - "test": "vitest run --passWithNoTests", - "typecheck": "tsc --noEmit" - }, - "dependencies": { - "@tauri-apps/api": "^2.10.1", - "@tauri-apps/plugin-autostart": "^2.2.0", - "@tauri-apps/plugin-notification": "^2.2.1", - "@tauri-apps/plugin-shell": "^2.2.1", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-router-dom": "^7.4.0" - }, - "devDependencies": { - "@tauri-apps/cli": "^2.10.1", - "@types/node": "^22.13.10", - "@types/react": "^19.0.10", - "@types/react-dom": "^19.0.4", - "@vitejs/plugin-react": "^4.3.4", - "esbuild": "^0.20.2", - "typescript": "^5.8.2", - "vite": "^6.2.2", - "vitest": "^3.0.7" - }, - "engines": { - "node": ">=22 <23" - } -} diff --git a/packages/dcp-desktop/public/vault.svg b/packages/dcp-desktop/public/vault.svg deleted file mode 100644 index 6fa52a7..0000000 --- a/packages/dcp-desktop/public/vault.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/dcp-desktop/scripts/bundle-helper.mjs b/packages/dcp-desktop/scripts/bundle-helper.mjs deleted file mode 100644 index c2000b8..0000000 --- a/packages/dcp-desktop/scripts/bundle-helper.mjs +++ /dev/null @@ -1,523 +0,0 @@ -#!/usr/bin/env node -/** - * Bundle the DCP desktop helper and server with all JS dependencies. - * Native addons are kept external and copied separately so their .node - * binaries continue to work inside the packaged app. - */ - -import { build } from 'esbuild'; -import { execFileSync } from 'child_process'; -import { readFileSync, writeFileSync, mkdirSync, existsSync, cpSync, rmSync, readdirSync } from 'fs'; -import { dirname, join, relative } from 'path'; -import { createRequire } from 'module'; -import { fileURLToPath } from 'url'; - -const __dirname = dirname(fileURLToPath(import.meta.url)); -const require = createRequire(import.meta.url); -const outDir = join(__dirname, '..', 'src-tauri', 'resources'); -const helperOutFile = join(outDir, 'dcp-helper-bundle.cjs'); -const serverOutFile = join(outDir, 'dcp-vault-bundle.cjs'); -const nodeModulesOut = join(outDir, 'node_modules'); -const serverRuntimeDir = join(outDir, 'dcp-vault-runtime'); -const serverRuntimeAppDir = join(serverRuntimeDir, 'app'); -const serverRuntimeNodeModulesDir = join(serverRuntimeDir, 'node_modules'); -const monorepoRoot = join(__dirname, '..', '..', '..'); -const monorepoNodeModules = join(monorepoRoot, 'node_modules'); -const serverEntry = join(monorepoRoot, 'packages', 'dcp-vault', 'dist', 'index.js'); -const serverPackageDir = join(monorepoRoot, 'packages', 'dcp-vault'); -const workspacePackages = { - '@dcprotocol/core': join(monorepoRoot, 'packages', 'dcp-core', 'dist', 'index.js'), - '@dcprotocol/client': join(monorepoRoot, 'packages', 'dcp-client', 'dist', 'index.js'), - '@dcprotocol/relay': join(monorepoRoot, 'packages', 'dcp-relay', 'dist', 'index.js'), - '@dcprotocol/relay-client': join(monorepoRoot, 'packages', 'dcp-relay-client', 'dist', 'index.js'), -}; - -const workspacePackagePlugin = { - name: 'dcp-workspace-packages', - setup(build) { - build.onResolve({ filter: /^@dcprotocol\/(core|client|relay|relay-client)$/ }, (args) => ({ - path: workspacePackages[args.path], - })); - }, -}; - -// Native modules that can't be bundled - need their .node binaries -const NATIVE_MODULES = [ - 'better-sqlite3', - 'sodium-native', - 'keytar', - // Transitive native deps - 'node-gyp-build', - 'require-addon', // Required by sodium-native to load .node binaries -]; - -// Native modules that must stay external. -const EXTERNAL_MODULES = [ - ...NATIVE_MODULES, - 'bindings', - 'file-uri-to-path', - // @hpke packages have UMD builds that require at runtime - '@hpke/common', - '@hpke/core', - '@hpke/chacha20poly1305', - '@hpke/dhkem-x25519', - // Pino logger transport - 'pino-pretty', -]; - -// Root runtime modules for the helper bundle. Their full dependency closure -// must be copied into resources/node_modules because the packaged app no longer -// resolves against the monorepo's node_modules. -const HELPER_RUNTIME_ROOTS = [...EXTERNAL_MODULES]; - -// The helper source code -const helperSource = ` -const { - VaultStorage, - generateRecoveryMnemonic, - deriveKeyFromMnemonic, - zeroize, - createWallet, - exportWalletPrivateKey, - isChainSupported, -} = require('@dcprotocol/core'); - -function readStdin() { - return new Promise((resolve, reject) => { - let data = ''; - process.stdin.setEncoding('utf8'); - process.stdin.on('data', chunk => (data += chunk)); - process.stdin.on('end', () => resolve(data)); - process.stdin.on('error', reject); - }); -} - -function reply(obj) { - process.stdout.write(JSON.stringify(obj)); -} - -function fail(message) { - reply({ ok: false, error: message }); - process.exit(1); -} - -async function main() { - const raw = await readStdin(); - if (!raw) fail('No input provided'); - - let input; - try { - input = JSON.parse(raw); - } catch { - fail('Invalid JSON input'); - } - - const action = input.action; - const passphrase = input.passphrase || ''; - const chains = Array.isArray(input.chains) ? input.chains : []; - const vaultDir = input.vault_dir || process.env.VAULT_DIR; - - if (!action) fail('Missing action'); - - if (action === 'init') { - if (passphrase.length < 8) fail('Passphrase must be at least 8 characters'); - const storage = new VaultStorage(vaultDir); - if (await storage.isProvisioned()) fail('Vault already initialized'); - - const recoveryPhrase = generateRecoveryMnemonic(); - const masterKey = deriveKeyFromMnemonic(recoveryPhrase); - try { - storage.initializeSchema(); - await storage.storeMasterKeyWithPassphrase(masterKey, passphrase); - } catch (err) { - fail(err?.message || 'Failed to initialize vault'); - } finally { - zeroize(masterKey); - } - - reply({ ok: true, recovery_phrase: recoveryPhrase.split(' ') }); - process.exit(0); - } - - if (action === 'create_wallets') { - if (passphrase.length < 8) fail('Passphrase must be at least 8 characters'); - const storage = new VaultStorage(vaultDir); - if (!(await storage.isProvisioned())) fail('Vault not initialized'); - - try { - await storage.unlock(passphrase); - } catch (err) { - fail(err?.message || 'Failed to unlock vault'); - } - - const wallets = []; - try { - for (const chainRaw of chains) { - const chain = String(chainRaw).toLowerCase(); - if (!isChainSupported(chain)) fail(\`Unsupported chain: \${chain}\`); - const scope = \`crypto.wallet.\${chain}\`; - const existing = storage.getRecord(scope); - if (existing?.public_address) { - wallets.push({ chain, address: existing.public_address }); - continue; - } - const masterKey = storage.getMasterKey(); - const { encrypted, info } = createWallet(chain, masterKey); - storage.createRecord({ - scope, - item_type: 'WALLET_KEY', - sensitivity: 'critical', - data: encrypted, - chain, - public_address: info.public_address, - }); - wallets.push({ chain, address: info.public_address }); - } - } catch (err) { - fail(err?.message || 'Failed to create wallets'); - } finally { - storage.lock(); - } - - reply({ ok: true, wallets }); - process.exit(0); - } - - if (action === 'export_wallet_private_key') { - if (passphrase.length < 8) fail('Passphrase must be at least 8 characters'); - if (input.confirmation !== 'EXPORT') fail('Type EXPORT to confirm'); - - const chain = String(input.chain || 'solana').toLowerCase(); - if (!isChainSupported(chain)) fail(\`Unsupported chain: \${chain}\`); - - const storage = new VaultStorage(vaultDir); - if (!(await storage.isProvisioned())) fail('Vault not initialized'); - - try { - await storage.unlock(passphrase); - } catch (err) { - fail(err?.message || 'Failed to unlock vault'); - } - - try { - const scope = \`crypto.wallet.\${chain}\`; - const record = storage.getRecord(scope); - const encrypted = storage.getEncryptedPayload(scope); - if (!record || !encrypted || record.item_type !== 'WALLET_KEY') { - fail(\`No \${chain} wallet found\`); - } - - const masterKey = storage.getMasterKey(); - const privateKey = exportWalletPrivateKey(encrypted, masterKey, chain); - storage.logAudit('EXECUTE', 'success', { - agentName: 'desktop-owner', - scope, - operation: 'wallet_export', - details: JSON.stringify({ chain, address: record.public_address }), - }); - reply({ - ok: true, - chain, - address: record.public_address, - private_key: privateKey, - }); - process.exit(0); - } catch (err) { - fail(err?.message || 'Failed to export wallet'); - } finally { - storage.lock(); - } - } - - if (action === 'replace_wallet') { - if (passphrase.length < 8) fail('Passphrase must be at least 8 characters'); - if (input.confirmation !== 'REPLACE') fail('Type REPLACE to confirm'); - - const chain = String(input.chain || 'solana').toLowerCase(); - if (!isChainSupported(chain)) fail(\`Unsupported chain: \${chain}\`); - - const storage = new VaultStorage(vaultDir); - if (!(await storage.isProvisioned())) fail('Vault not initialized'); - - try { - await storage.unlock(passphrase); - } catch (err) { - fail(err?.message || 'Failed to unlock vault'); - } - - try { - const scope = \`crypto.wallet.\${chain}\`; - const existing = storage.getRecord(scope); - if (existing && existing.item_type !== 'WALLET_KEY') { - fail(\`Existing \${scope} record is not a wallet\`); - } - const oldAddress = existing?.public_address || null; - const masterKey = storage.getMasterKey(); - const { encrypted, info } = createWallet(chain, masterKey); - - if (existing) { - storage.updateWalletRecord(existing.id, encrypted, chain, info.public_address); - } else { - storage.createRecord({ - scope, - item_type: 'WALLET_KEY', - sensitivity: 'critical', - data: encrypted, - chain, - public_address: info.public_address, - }); - } - - storage.logAudit('CONFIG', 'success', { - agentName: 'desktop-owner', - scope, - operation: 'wallet_replace', - details: JSON.stringify({ chain, old_address: oldAddress, new_address: info.public_address }), - }); - reply({ - ok: true, - chain, - old_address: oldAddress, - new_address: info.public_address, - }); - process.exit(0); - } catch (err) { - fail(err?.message || 'Failed to replace wallet'); - } finally { - storage.lock(); - } - } - - fail(\`Unknown action: \${action}\`); -} - -main().catch(err => fail(err?.message || 'Unexpected error')); -`; - -// Write temp source file -const tempSource = join(__dirname, '.helper-temp.js'); -writeFileSync(tempSource, helperSource); - -// Ensure output directory exists -if (!existsSync(outDir)) { - mkdirSync(outDir, { recursive: true }); -} - -function listServerRuntimePaths() { - let stdout = ''; - try { - stdout = execFileSync( - 'npm', - ['ls', '--omit=dev', '--all', '--parseable', '-w', '@dcprotocol/vault'], - { cwd: monorepoRoot, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] } - ); - } catch (err) { - stdout = String(err.stdout || ''); - } - - return stdout - .split('\n') - .map((line) => line.trim()) - .filter((line) => line.startsWith(monorepoRoot) && line !== monorepoRoot); -} - -function destinationForRuntimePath(srcPath) { - if (srcPath === serverPackageDir) { - return serverRuntimeAppDir; - } - - if (srcPath.startsWith(`${monorepoNodeModules}/`)) { - return join(serverRuntimeDir, relative(monorepoRoot, srcPath)); - } - - const packageJsonPath = join(srcPath, 'package.json'); - if (!existsSync(packageJsonPath)) { - return null; - } - - const packageName = JSON.parse(readFileSync(packageJsonPath, 'utf8')).name; - if (!packageName) { - return null; - } - - return join(serverRuntimeNodeModulesDir, ...packageName.split('/')); -} - -function stageServerRuntime() { - if (existsSync(serverRuntimeDir)) { - rmSync(serverRuntimeDir, { recursive: true }); - } - - mkdirSync(serverRuntimeDir, { recursive: true }); - mkdirSync(serverRuntimeNodeModulesDir, { recursive: true }); - - const copied = new Set(); - for (const srcPath of listServerRuntimePaths()) { - const destPath = destinationForRuntimePath(srcPath); - if (!destPath || copied.has(destPath)) { - continue; - } - - mkdirSync(dirname(destPath), { recursive: true }); - cpSync(srcPath, destPath, { recursive: true, dereference: true }); - copied.add(destPath); - } - - console.log(`[bundle-helper] Server runtime staged in ${serverRuntimeDir}`); -} - -function resolvePackageDir(name) { - let entry; - try { - entry = require.resolve(name, { - paths: [ - monorepoRoot, - monorepoNodeModules, - serverPackageDir, - join(monorepoRoot, 'packages', 'dcp-core'), - join(monorepoRoot, 'packages', 'dcp-client'), - join(monorepoRoot, 'packages', 'dcp-relay'), - join(monorepoRoot, 'packages', 'dcp-relay-client'), - ], - }); - } catch { - // Fallback: search in pnpm's .pnpm directory structure - const pnpmDir = join(monorepoNodeModules, '.pnpm'); - if (existsSync(pnpmDir)) { - try { - const entries = readdirSync(pnpmDir); - for (const entry of entries) { - if (entry.startsWith(`${name}@`) || entry.startsWith(`${name.replace('/', '+')}@`)) { - const candidatePath = join(pnpmDir, entry, 'node_modules', name); - if (existsSync(candidatePath)) { - return candidatePath; - } - } - } - } catch { - // ignore - } - } - return null; - } - let cursor = dirname(entry); - - while (cursor !== dirname(cursor)) { - const packageJsonPath = join(cursor, 'package.json'); - if (existsSync(packageJsonPath)) { - const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf8')); - if (pkg.name === name) { - return cursor; - } - } - cursor = dirname(cursor); - } - - return null; -} - -function collectRuntimeDependencyClosure(rootModules) { - const queue = [...rootModules]; - const seen = new Set(); - const ordered = []; - - while (queue.length > 0) { - const name = queue.shift(); - if (!name || seen.has(name)) { - continue; - } - - const packageDir = resolvePackageDir(name); - if (!packageDir) { - console.warn(`[bundle-helper] WARNING: Runtime dependency not found: ${name}`); - continue; - } - - seen.add(name); - ordered.push({ name, packageDir }); - - const packageJson = JSON.parse(readFileSync(join(packageDir, 'package.json'), 'utf8')); - const runtimeDeps = { - ...(packageJson.dependencies || {}), - ...(packageJson.optionalDependencies || {}), - }; - - for (const depName of Object.keys(runtimeDeps)) { - if (!seen.has(depName)) { - queue.push(depName); - } - } - } - - return ordered; -} - -console.log('[bundle-helper] Bundling DCP helper with @dcprotocol/core...'); -console.log('[bundle-helper] Native modules will be copied separately:', NATIVE_MODULES.join(', ')); - -try { - // Step 1: Bundle the helper, keeping native modules external - await build({ - entryPoints: [tempSource], - bundle: true, - platform: 'node', - target: 'node18', - format: 'cjs', - outfile: helperOutFile, - minify: false, - external: EXTERNAL_MODULES, - mainFields: ['module', 'main'], - nodePaths: [monorepoNodeModules], - plugins: [workspacePackagePlugin], - }); - - console.log(`[bundle-helper] Helper bundle created: ${helperOutFile}`); - - if (!existsSync(serverEntry)) { - throw new Error(`Server bundle input not found: ${serverEntry}. Run npm -w @dcprotocol/vault run build first.`); - } - - await build({ - entryPoints: [serverEntry], - bundle: true, - platform: 'node', - target: 'node18', - format: 'cjs', - outfile: serverOutFile, - minify: false, - external: EXTERNAL_MODULES, - mainFields: ['module', 'main'], - nodePaths: [monorepoNodeModules], - plugins: [workspacePackagePlugin], - }); - - console.log(`[bundle-helper] Server bundle created: ${serverOutFile}`); - - // Step 2: Copy the full helper runtime dependency tree to resources/node_modules. - // The onboarding helper uses native modules (sodium-native, better-sqlite3, - // keytar) plus their transitive JS dependencies. Missing any of those causes - // packaged desktop startup/create-vault flows to fail at runtime. - if (existsSync(nodeModulesOut)) { - rmSync(nodeModulesOut, { recursive: true }); - } - mkdirSync(nodeModulesOut, { recursive: true }); - - for (const { name, packageDir } of collectRuntimeDependencyClosure(HELPER_RUNTIME_ROOTS)) { - const destPath = join(nodeModulesOut, ...name.split('/')); - console.log(`[bundle-helper] Copying helper runtime module: ${name}`); - mkdirSync(dirname(destPath), { recursive: true }); - cpSync(packageDir, destPath, { recursive: true, dereference: true }); - } - - // Step 3: Stage an exact runtime copy of the server dependency tree. - stageServerRuntime(); - - console.log(`[bundle-helper] SUCCESS: Bundle and native modules ready in ${outDir}`); - - // Clean up temp file - const { unlinkSync } = await import('fs'); - unlinkSync(tempSource); -} catch (err) { - console.error('[bundle-helper] FAILED:', err.message); - process.exit(1); -} diff --git a/packages/dcp-desktop/scripts/fetch-node.mjs b/packages/dcp-desktop/scripts/fetch-node.mjs deleted file mode 100644 index dfc755a..0000000 --- a/packages/dcp-desktop/scripts/fetch-node.mjs +++ /dev/null @@ -1,97 +0,0 @@ -import fs from 'node:fs'; -import path from 'node:path'; -import os from 'node:os'; -import https from 'node:https'; -import { pipeline } from 'node:stream/promises'; -import { spawnSync } from 'node:child_process'; - -const VERSION = process.env.DCP_NODE_VERSION || '22.22.2'; -const platform = process.platform; -const arch = process.arch; - -const isWin = platform === 'win32'; -const ext = isWin ? 'zip' : 'tar.gz'; - -function mapPlatform(p) { - if (p === 'darwin') return 'darwin'; - if (p === 'linux') return 'linux'; - if (p === 'win32') return 'win'; - throw new Error(`Unsupported platform: ${p}`); -} - -function mapArch(a) { - if (a === 'arm64') return 'arm64'; - if (a === 'x64') return 'x64'; - throw new Error(`Unsupported architecture: ${a}`); -} - -const plat = mapPlatform(platform); -const archId = mapArch(arch); -const filename = `node-v${VERSION}-${plat}-${archId}.${ext}`; -const url = `https://nodejs.org/dist/v${VERSION}/${filename}`; - -const root = path.resolve(process.cwd()); -const binDir = path.join(root, 'src-tauri', 'bin'); -const outPath = path.join(binDir, isWin ? 'node.exe' : 'node'); - -if (fs.existsSync(outPath)) { - const existing = spawnSync(outPath, ['-v'], { encoding: 'utf8' }); - const existingVersion = existing.stdout.trim().replace(/^v/, ''); - if (existing.status === 0 && existingVersion === VERSION) { - console.log(`[bundle:node] Node ${VERSION} already present at ${outPath}`); - process.exit(0); - } - console.log(`[bundle:node] Replacing Node ${existingVersion || 'unknown'} with ${VERSION}`); -} - -fs.mkdirSync(binDir, { recursive: true }); - -const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'dcp-node-')); -const archivePath = path.join(tmpDir, filename); - -console.log(`[bundle:node] Downloading ${url}`); -await new Promise((resolve, reject) => { - https.get(url, (res) => { - if (res.statusCode !== 200) { - reject(new Error(`Download failed: ${res.statusCode}`)); - return; - } - const file = fs.createWriteStream(archivePath); - pipeline(res, file).then(resolve, reject); - }).on('error', reject); -}); - -console.log('[bundle:node] Extracting...'); -if (ext === 'tar.gz') { - const tar = spawnSync('tar', ['-xzf', archivePath, '-C', tmpDir]); - if (tar.status !== 0) { - throw new Error(`tar failed: ${tar.stderr?.toString() || 'unknown error'}`); - } -} else { - // Use PowerShell's Expand-Archive on Windows (no unzip available by default) - const ps = spawnSync('powershell', [ - '-NoProfile', - '-Command', - `Expand-Archive -Path '${archivePath}' -DestinationPath '${tmpDir}' -Force` - ]); - if (ps.status !== 0) { - throw new Error(`PowerShell Expand-Archive failed: ${ps.stderr?.toString() || 'unknown error'}`); - } -} - -const extractedDir = path.join(tmpDir, `node-v${VERSION}-${plat}-${archId}`); -// Windows puts node.exe in root, Unix puts it in bin/ -const nodePath = isWin - ? path.join(extractedDir, 'node.exe') - : path.join(extractedDir, 'bin', 'node'); - -if (!fs.existsSync(nodePath)) { - throw new Error(`Node binary not found after extraction: ${nodePath}`); -} - -fs.copyFileSync(nodePath, outPath); -if (!isWin) { - fs.chmodSync(outPath, 0o755); -} - -console.log(`[bundle:node] Node bundled at ${outPath}`); diff --git a/packages/dcp-desktop/src-tauri/Cargo.lock b/packages/dcp-desktop/src-tauri/Cargo.lock deleted file mode 100644 index e566085..0000000 --- a/packages/dcp-desktop/src-tauri/Cargo.lock +++ /dev/null @@ -1,5957 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "aho-corasick" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" -dependencies = [ - "memchr", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anyhow" -version = "1.0.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" - -[[package]] -name = "async-broadcast" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" -dependencies = [ - "event-listener", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-channel" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" -dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "pin-project-lite", - "slab", -] - -[[package]] -name = "async-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" -dependencies = [ - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite", - "parking", - "polling", - "rustix", - "slab", - "windows-sys 0.61.2", -] - -[[package]] -name = "async-lock" -version = "3.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" -dependencies = [ - "event-listener", - "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-process" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" -dependencies = [ - "async-channel", - "async-io", - "async-lock", - "async-signal", - "async-task", - "blocking", - "cfg-if", - "event-listener", - "futures-lite", - "rustix", -] - -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "async-signal" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485" -dependencies = [ - "async-io", - "async-lock", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix", - "signal-hook-registry", - "slab", - "windows-sys 0.61.2", -] - -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - -[[package]] -name = "async-trait" -version = "0.1.89" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "atk" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" -dependencies = [ - "atk-sys", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "auto-launch" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f012b8cc0c850f34117ec8252a44418f2e34a2cf501de89e29b241ae5f79471" -dependencies = [ - "dirs 4.0.0", - "thiserror 1.0.69", - "winreg 0.10.1", -] - -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" -dependencies = [ - "serde_core", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block2" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" -dependencies = [ - "objc2", -] - -[[package]] -name = "blocking" -version = "1.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" -dependencies = [ - "async-channel", - "async-task", - "futures-io", - "futures-lite", - "piper", -] - -[[package]] -name = "brotli" -version = "8.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bumpalo" -version = "3.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" - -[[package]] -name = "bytemuck" -version = "1.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" -dependencies = [ - "serde", -] - -[[package]] -name = "cairo-rs" -version = "0.18.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" -dependencies = [ - "bitflags 2.11.1", - "cairo-sys-rs", - "glib", - "libc", - "once_cell", - "thiserror 1.0.69", -] - -[[package]] -name = "cairo-sys-rs" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "camino" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" -dependencies = [ - "serde_core", -] - -[[package]] -name = "cargo-platform" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" -dependencies = [ - "camino", - "cargo-platform", - "semver", - "serde", - "serde_json", - "thiserror 2.0.18", -] - -[[package]] -name = "cargo_toml" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77" -dependencies = [ - "serde", - "toml 0.9.12+spec-1.1.0", -] - -[[package]] -name = "cc" -version = "1.2.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" -dependencies = [ - "find-msvc-tools", - "shlex", -] - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cfb" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" -dependencies = [ - "byteorder", - "fnv", - "uuid", -] - -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[package]] -name = "chrono" -version = "0.4.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" -dependencies = [ - "iana-time-zone", - "num-traits", - "serde", - "windows-link 0.2.1", -] - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "cookie" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" -dependencies = [ - "time", - "version_check", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core-graphics" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" -dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.10.1", - "core-graphics-types", - "foreign-types 0.5.0", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" -dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.10.1", - "libc", -] - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crypto-common" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "cssparser" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" -dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa", - "phf 0.13.1", - "smallvec", -] - -[[package]] -name = "cssparser-macros" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" -dependencies = [ - "quote", - "syn 2.0.117", -] - -[[package]] -name = "ctor" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" -dependencies = [ - "ctor-proc-macro", - "dtor", -] - -[[package]] -name = "ctor-proc-macro" -version = "0.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest", - "fiat-crypto", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "darling" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" -dependencies = [ - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.117", -] - -[[package]] -name = "darling_macro" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "dbus" -version = "0.9.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b942602992bb7acfd1f51c49811c58a610ef9181b6e66f3e519d79b540a3bf73" -dependencies = [ - "libc", - "libdbus-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "dcp" -version = "0.1.0" -dependencies = [ - "base64 0.22.1", - "dirs 6.0.0", - "ed25519-dalek", - "keyring", - "rand 0.8.6", - "reqwest 0.12.28", - "serde", - "serde_json", - "tauri", - "tauri-build", - "tauri-plugin-autostart", - "tauri-plugin-notification", - "tauri-plugin-shell", - "tokio", - "uuid", -] - -[[package]] -name = "der" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" -dependencies = [ - "powerfmt", - "serde_core", -] - -[[package]] -name = "derive_more" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" -dependencies = [ - "proc-macro2", - "quote", - "rustc_version", - "syn 2.0.117", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys 0.5.0", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users 0.4.6", - "winapi", -] - -[[package]] -name = "dirs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.5.2", - "windows-sys 0.61.2", -] - -[[package]] -name = "dispatch2" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" -dependencies = [ - "bitflags 2.11.1", - "block2", - "libc", - "objc2", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "dlopen2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4" -dependencies = [ - "dlopen2_derive", - "libc", - "once_cell", - "winapi", -] - -[[package]] -name = "dlopen2_derive" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "dom_query" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" -dependencies = [ - "bit-set", - "cssparser", - "foldhash 0.2.0", - "html5ever", - "precomputed-hash", - "selectors", - "tendril", -] - -[[package]] -name = "dpi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" -dependencies = [ - "serde", -] - -[[package]] -name = "dtoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590" - -[[package]] -name = "dtoa-short" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" -dependencies = [ - "dtoa", -] - -[[package]] -name = "dtor" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4" -dependencies = [ - "dtor-proc-macro", -] - -[[package]] -name = "dtor-proc-macro" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5" - -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "dyn-clone" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" -dependencies = [ - "curve25519-dalek", - "ed25519", - "rand_core 0.6.4", - "serde", - "sha2", - "subtle", - "zeroize", -] - -[[package]] -name = "embed-resource" -version = "3.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a88c8d26de40ed18fe748c547845aa39de1db3afd958f8cb91579f3644bcb" -dependencies = [ - "cc", - "memchr", - "rustc_version", - "toml 1.1.2+spec-1.1.0", - "vswhom", - "winreg 0.55.0", -] - -[[package]] -name = "embed_plist" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "endi" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" - -[[package]] -name = "enumflags2" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "erased-serde" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" -dependencies = [ - "serde", - "serde_core", - "typeid", -] - -[[package]] -name = "errno" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener", - "pin-project-lite", -] - -[[package]] -name = "fastrand" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" - -[[package]] -name = "fdeflate" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "field-offset" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" -dependencies = [ - "memoffset", - "rustc_version", -] - -[[package]] -name = "find-msvc-tools" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - -[[package]] -name = "flate2" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared 0.1.1", -] - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared 0.3.1", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" - -[[package]] -name = "futures-executor" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" - -[[package]] -name = "futures-lite" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - -[[package]] -name = "futures-macro" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "futures-sink" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" - -[[package]] -name = "futures-task" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" - -[[package]] -name = "futures-util" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" -dependencies = [ - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "slab", -] - -[[package]] -name = "gdk" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" -dependencies = [ - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", -] - -[[package]] -name = "gdk-pixbuf" -version = "0.18.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" -dependencies = [ - "gdk-pixbuf-sys", - "gio", - "glib", - "libc", - "once_cell", -] - -[[package]] -name = "gdk-pixbuf-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gdk-sys" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps", -] - -[[package]] -name = "gdkwayland-sys" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" -dependencies = [ - "gdk-sys", - "glib-sys", - "gobject-sys", - "libc", - "pkg-config", - "system-deps", -] - -[[package]] -name = "gdkx11" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" -dependencies = [ - "gdk", - "gdkx11-sys", - "gio", - "glib", - "libc", - "x11", -] - -[[package]] -name = "gdkx11-sys" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" -dependencies = [ - "gdk-sys", - "glib-sys", - "libc", - "system-deps", - "x11", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "getrandom" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" -dependencies = [ - "cfg-if", - "libc", - "r-efi 5.3.0", - "wasip2", -] - -[[package]] -name = "getrandom" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" -dependencies = [ - "cfg-if", - "libc", - "r-efi 6.0.0", - "wasip2", - "wasip3", -] - -[[package]] -name = "gio" -version = "0.18.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "gio-sys", - "glib", - "libc", - "once_cell", - "pin-project-lite", - "smallvec", - "thiserror 1.0.69", -] - -[[package]] -name = "gio-sys" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", - "winapi", -] - -[[package]] -name = "glib" -version = "0.18.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" -dependencies = [ - "bitflags 2.11.1", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "futures-util", - "gio-sys", - "glib-macros", - "glib-sys", - "gobject-sys", - "libc", - "memchr", - "once_cell", - "smallvec", - "thiserror 1.0.69", -] - -[[package]] -name = "glib-macros" -version = "0.18.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" -dependencies = [ - "heck 0.4.1", - "proc-macro-crate 2.0.2", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "glib-sys" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" -dependencies = [ - "libc", - "system-deps", -] - -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - -[[package]] -name = "gobject-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gtk" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" -dependencies = [ - "atk", - "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", - "glib", - "gtk-sys", - "gtk3-macros", - "libc", - "pango", - "pkg-config", -] - -[[package]] -name = "gtk-sys" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" -dependencies = [ - "atk-sys", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "system-deps", -] - -[[package]] -name = "gtk3-macros" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "h2" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap 2.14.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash 0.1.5", -] - -[[package]] -name = "hashbrown" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "html5ever" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" -dependencies = [ - "log", - "markup5ever", -] - -[[package]] -name = "http" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" -dependencies = [ - "bytes", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" -dependencies = [ - "bytes", - "futures-core", - "http", - "http-body", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "hyper" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" -dependencies = [ - "atomic-waker", - "bytes", - "futures-channel", - "futures-core", - "h2", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" -dependencies = [ - "http", - "hyper", - "hyper-util", - "rustls", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "ipnet", - "libc", - "percent-encoding", - "pin-project-lite", - "socket2", - "system-configuration", - "tokio", - "tower-service", - "tracing", - "windows-registry", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core 0.62.2", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ico" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371" -dependencies = [ - "byteorder", - "png 0.17.16", -] - -[[package]] -name = "icu_collections" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" -dependencies = [ - "displaydoc", - "potential_utf", - "utf8_iter", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" - -[[package]] -name = "icu_properties" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" - -[[package]] -name = "icu_provider" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" -dependencies = [ - "equivalent", - "hashbrown 0.17.0", - "serde", - "serde_core", -] - -[[package]] -name = "infer" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7" -dependencies = [ - "cfb", -] - -[[package]] -name = "ipnet" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" - -[[package]] -name = "iri-string" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "is-docker" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" -dependencies = [ - "once_cell", -] - -[[package]] -name = "is-wsl" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" -dependencies = [ - "is-docker", - "once_cell", -] - -[[package]] -name = "itoa" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" - -[[package]] -name = "javascriptcore-rs" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" -dependencies = [ - "bitflags 1.3.2", - "glib", - "javascriptcore-rs-sys", -] - -[[package]] -name = "javascriptcore-rs-sys" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "jni" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" -dependencies = [ - "cesu8", - "cfg-if", - "combine", - "jni-sys 0.3.1", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", -] - -[[package]] -name = "jni-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" -dependencies = [ - "jni-sys 0.4.1", -] - -[[package]] -name = "jni-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" -dependencies = [ - "jni-sys-macros", -] - -[[package]] -name = "jni-sys-macros" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" -dependencies = [ - "quote", - "syn 2.0.117", -] - -[[package]] -name = "js-sys" -version = "0.3.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1840c94c045fbcf8ba2812c95db44499f7c64910a912551aaaa541decebcacf" -dependencies = [ - "cfg-if", - "futures-util", - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "json-patch" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" -dependencies = [ - "jsonptr", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "jsonptr" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "keyboard-types" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" -dependencies = [ - "bitflags 2.11.1", - "serde", - "unicode-segmentation", -] - -[[package]] -name = "keyring" -version = "3.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc3aff044e5944a8fbaf69eb277d11986064cba30c468730e8b9909fb551c" -dependencies = [ - "log", - "zeroize", -] - -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - -[[package]] -name = "libappindicator" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" -dependencies = [ - "glib", - "gtk", - "gtk-sys", - "libappindicator-sys", - "log", -] - -[[package]] -name = "libappindicator-sys" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" -dependencies = [ - "gtk-sys", - "libloading", - "once_cell", -] - -[[package]] -name = "libc" -version = "0.2.186" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" - -[[package]] -name = "libdbus-sys" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043" -dependencies = [ - "pkg-config", -] - -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - -[[package]] -name = "libredox" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" -dependencies = [ - "libc", -] - -[[package]] -name = "linux-raw-sys" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" - -[[package]] -name = "litemap" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" - -[[package]] -name = "lock_api" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" - -[[package]] -name = "mac-notification-sys" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29a16783dd1a47849b8c8133c9cd3eb2112cfbc6901670af3dba47c8bbfb07d3" -dependencies = [ - "cc", - "objc2", - "objc2-foundation", - "time", -] - -[[package]] -name = "markup5ever" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" -dependencies = [ - "log", - "tendril", - "web_atoms", -] - -[[package]] -name = "memchr" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "muda" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae8844f63b5b118e334e205585b8c5c17b984121dbdb179d44aeb087ffad3cb" -dependencies = [ - "crossbeam-channel", - "dpi", - "gtk", - "keyboard-types", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-foundation", - "once_cell", - "png 0.18.1", - "serde", - "thiserror 2.0.18", - "windows-sys 0.61.2", -] - -[[package]] -name = "native-tls" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "ndk" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" -dependencies = [ - "bitflags 2.11.1", - "jni-sys 0.3.1", - "log", - "ndk-sys", - "num_enum", - "raw-window-handle", - "thiserror 1.0.69", -] - -[[package]] -name = "ndk-sys" -version = "0.6.0+11769913" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" -dependencies = [ - "jni-sys 0.3.1", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - -[[package]] -name = "notify-rust" -version = "4.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdaf6120b9df005d37e58f6b75329be6255450453fbeba9ce4192324f921fb9" -dependencies = [ - "futures-lite", - "log", - "mac-notification-sys", - "serde", - "tauri-winrt-notification", - "zbus", -] - -[[package]] -name = "num-conv" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_enum" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" -dependencies = [ - "proc-macro-crate 3.5.0", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "objc2" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" -dependencies = [ - "objc2-encode", - "objc2-exception-helper", -] - -[[package]] -name = "objc2-app-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" -dependencies = [ - "bitflags 2.11.1", - "block2", - "objc2", - "objc2-core-foundation", - "objc2-foundation", -] - -[[package]] -name = "objc2-cloud-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" -dependencies = [ - "bitflags 2.11.1", - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-data" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-foundation" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" -dependencies = [ - "bitflags 2.11.1", - "dispatch2", - "objc2", -] - -[[package]] -name = "objc2-core-graphics" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" -dependencies = [ - "bitflags 2.11.1", - "dispatch2", - "objc2", - "objc2-core-foundation", - "objc2-io-surface", -] - -[[package]] -name = "objc2-core-image" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-location" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-text" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" -dependencies = [ - "bitflags 2.11.1", - "objc2", - "objc2-core-foundation", - "objc2-core-graphics", -] - -[[package]] -name = "objc2-encode" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" - -[[package]] -name = "objc2-exception-helper" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a" -dependencies = [ - "cc", -] - -[[package]] -name = "objc2-foundation" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" -dependencies = [ - "bitflags 2.11.1", - "block2", - "libc", - "objc2", - "objc2-core-foundation", -] - -[[package]] -name = "objc2-io-surface" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" -dependencies = [ - "bitflags 2.11.1", - "objc2", - "objc2-core-foundation", -] - -[[package]] -name = "objc2-quartz-core" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" -dependencies = [ - "bitflags 2.11.1", - "objc2", - "objc2-core-foundation", - "objc2-foundation", -] - -[[package]] -name = "objc2-ui-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" -dependencies = [ - "bitflags 2.11.1", - "block2", - "objc2", - "objc2-cloud-kit", - "objc2-core-data", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-core-image", - "objc2-core-location", - "objc2-core-text", - "objc2-foundation", - "objc2-quartz-core", - "objc2-user-notifications", -] - -[[package]] -name = "objc2-user-notifications" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-web-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f" -dependencies = [ - "bitflags 2.11.1", - "block2", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-foundation", -] - -[[package]] -name = "once_cell" -version = "1.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" - -[[package]] -name = "open" -version = "5.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3bab717c29a857abf75fcef718d441ec7cb2725f937343c734740a985d37fd" -dependencies = [ - "dunce", - "is-wsl", - "libc", - "pathdiff", -] - -[[package]] -name = "openssl" -version = "0.10.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38c4372413cdaaf3cc79dd92d29d7d9f5ab09b51b10dded508fb90bb70b9222" -dependencies = [ - "bitflags 2.11.1", - "cfg-if", - "foreign-types 0.3.2", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - -[[package]] -name = "openssl-sys" -version = "0.9.114" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13ce1245cd07fcc4cfdb438f7507b0c7e4f3849a69fd84d52374c66d83741bb6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ordered-stream" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "os_pipe" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "pango" -version = "0.18.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" -dependencies = [ - "gio", - "glib", - "libc", - "once_cell", - "pango-sys", -] - -[[package]] -name = "pango-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-link 0.2.1", -] - -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_macros 0.11.3", - "phf_shared 0.11.3", -] - -[[package]] -name = "phf" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" -dependencies = [ - "phf_macros 0.13.1", - "phf_shared 0.13.1", - "serde", -] - -[[package]] -name = "phf_codegen" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_generator" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" -dependencies = [ - "phf_shared 0.11.3", - "rand 0.8.6", -] - -[[package]] -name = "phf_generator" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" -dependencies = [ - "fastrand", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_macros" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "phf_macros" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "phf_shared" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - -[[package]] -name = "piper" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" -dependencies = [ - "atomic-waker", - "fastrand", - "futures-io", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" - -[[package]] -name = "plist" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092791278e026273c1b65bbdcfbba3a300f2994c896bd01ab01da613c29c46f1" -dependencies = [ - "base64 0.22.1", - "indexmap 2.14.0", - "quick-xml 0.39.2", - "serde", - "time", -] - -[[package]] -name = "png" -version = "0.17.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "png" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" -dependencies = [ - "bitflags 2.11.1", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "polling" -version = "3.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi", - "pin-project-lite", - "rustix", - "windows-sys 0.61.2", -] - -[[package]] -name = "potential_utf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.117", -] - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" -dependencies = [ - "toml_datetime 0.6.3", - "toml_edit 0.20.2", -] - -[[package]] -name = "proc-macro-crate" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" -dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quick-xml" -version = "0.37.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" -dependencies = [ - "memchr", -] - -[[package]] -name = "quick-xml" -version = "0.39.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958f21e8e7ceb5a1aa7fa87fab28e7c75976e0bfe7e23ff069e0a260f894067d" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "r-efi" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" - -[[package]] -name = "rand" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", -] - -[[package]] -name = "rand_core" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" -dependencies = [ - "getrandom 0.3.4", -] - -[[package]] -name = "raw-window-handle" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.11.1", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 1.0.69", -] - -[[package]] -name = "redox_users" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" -dependencies = [ - "getrandom 0.2.17", - "libredox", - "thiserror 2.0.18", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "regex" -version = "1.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" - -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-core", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "js-sys", - "log", - "mime", - "native-tls", - "percent-encoding", - "pin-project-lite", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-native-tls", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "reqwest" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "js-sys", - "log", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "sync_wrapper", - "tokio", - "tokio-util", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.17", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustc-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" -dependencies = [ - "bitflags 2.11.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "rustls" -version = "0.23.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" -dependencies = [ - "once_cell", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" -dependencies = [ - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - -[[package]] -name = "ryu" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "schemars" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" -dependencies = [ - "dyn-clone", - "indexmap 1.9.3", - "schemars_derive", - "serde", - "serde_json", - "url", - "uuid", -] - -[[package]] -name = "schemars" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" -dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 2.0.117", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "security-framework" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" -dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "selectors" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" -dependencies = [ - "bitflags 2.11.1", - "cssparser", - "derive_more", - "log", - "new_debug_unreachable", - "phf 0.13.1", - "phf_codegen", - "precomputed-hash", - "rustc-hash", - "servo_arc", - "smallvec", -] - -[[package]] -name = "semver" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" -dependencies = [ - "serde", - "serde_core", -] - -[[package]] -name = "serde" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" -dependencies = [ - "serde_core", - "serde_derive", -] - -[[package]] -name = "serde-untagged" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" -dependencies = [ - "erased-serde", - "serde", - "serde_core", - "typeid", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "serde_derive_internals" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "serde_json" -version = "1.0.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" -dependencies = [ - "itoa", - "memchr", - "serde", - "serde_core", - "zmij", -] - -[[package]] -name = "serde_repr" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_spanned" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" -dependencies = [ - "serde_core", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.14.0", - "schemars 0.9.0", - "schemars 1.2.1", - "serde_core", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "serialize-to-javascript" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5" -dependencies = [ - "serde", - "serde_json", - "serialize-to-javascript-impl", -] - -[[package]] -name = "serialize-to-javascript-impl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "servo_arc" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" -dependencies = [ - "stable_deref_trait", -] - -[[package]] -name = "sha2" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "shared_child" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7" -dependencies = [ - "libc", - "sigchld", - "windows-sys 0.60.2", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "sigchld" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1" -dependencies = [ - "libc", - "os_pipe", - "signal-hook", -] - -[[package]] -name = "signal-hook" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" -dependencies = [ - "errno", - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "simd-adler32" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" - -[[package]] -name = "siphasher" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" - -[[package]] -name = "slab" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" - -[[package]] -name = "smallvec" -version = "1.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - -[[package]] -name = "socket2" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "softbuffer" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3" -dependencies = [ - "bytemuck", - "js-sys", - "ndk", - "objc2", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation", - "objc2-quartz-core", - "raw-window-handle", - "redox_syscall", - "tracing", - "wasm-bindgen", - "web-sys", - "windows-sys 0.61.2", -] - -[[package]] -name = "soup3" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" -dependencies = [ - "futures-channel", - "gio", - "glib", - "libc", - "soup3-sys", -] - -[[package]] -name = "soup3-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - -[[package]] -name = "string_cache" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" -dependencies = [ - "new_debug_unreachable", - "parking_lot", - "phf_shared 0.13.1", - "precomputed-hash", -] - -[[package]] -name = "string_cache_codegen" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", - "proc-macro2", - "quote", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "swift-rs" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7" -dependencies = [ - "base64 0.21.7", - "serde", - "serde_json", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.117" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "system-configuration" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" -dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "system-deps" -version = "6.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" -dependencies = [ - "cfg-expr", - "heck 0.5.0", - "pkg-config", - "toml 0.8.2", - "version-compare", -] - -[[package]] -name = "tao" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cf65722394c2ac443e80120064987f8914ee1d4e4e36e63cdf10f2990f01159" -dependencies = [ - "bitflags 2.11.1", - "block2", - "core-foundation 0.10.1", - "core-graphics", - "crossbeam-channel", - "dbus", - "dispatch2", - "dlopen2", - "dpi", - "gdkwayland-sys", - "gdkx11-sys", - "gtk", - "jni", - "libc", - "log", - "ndk", - "ndk-sys", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "objc2-ui-kit", - "once_cell", - "parking_lot", - "percent-encoding", - "raw-window-handle", - "tao-macros", - "unicode-segmentation", - "url", - "windows", - "windows-core 0.61.2", - "windows-version", - "x11-dl", -] - -[[package]] -name = "tao-macros" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "target-lexicon" -version = "0.12.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" - -[[package]] -name = "tauri" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d059f2527558d9dba6f186dec4772610e1aecfd3f94002397613e7e648752b66" -dependencies = [ - "anyhow", - "bytes", - "cookie", - "dirs 6.0.0", - "dunce", - "embed_plist", - "getrandom 0.3.4", - "glob", - "gtk", - "heck 0.5.0", - "http", - "jni", - "libc", - "log", - "mime", - "muda", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "objc2-ui-kit", - "objc2-web-kit", - "percent-encoding", - "plist", - "raw-window-handle", - "reqwest 0.13.3", - "serde", - "serde_json", - "serde_repr", - "serialize-to-javascript", - "swift-rs", - "tauri-build", - "tauri-macros", - "tauri-runtime", - "tauri-runtime-wry", - "tauri-utils", - "thiserror 2.0.18", - "tokio", - "tray-icon", - "url", - "webkit2gtk", - "webview2-com", - "window-vibrancy", - "windows", -] - -[[package]] -name = "tauri-build" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be9aa8c59a894f76c29a002501c589de5eb4987a5913d62a6e0a47f320901988" -dependencies = [ - "anyhow", - "cargo_toml", - "dirs 6.0.0", - "glob", - "heck 0.5.0", - "json-patch", - "schemars 0.8.22", - "semver", - "serde", - "serde_json", - "tauri-utils", - "tauri-winres", - "walkdir", -] - -[[package]] -name = "tauri-codegen" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e4e8230d565106aa19dfbaa01a7ed01abf78047fe0577a83377224bd1bf20e" -dependencies = [ - "base64 0.22.1", - "brotli", - "ico", - "json-patch", - "plist", - "png 0.17.16", - "proc-macro2", - "quote", - "semver", - "serde", - "serde_json", - "sha2", - "syn 2.0.117", - "tauri-utils", - "thiserror 2.0.18", - "time", - "url", - "uuid", - "walkdir", -] - -[[package]] -name = "tauri-macros" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc8de2cddbbc33dbdf4c84f170121886595efdbcc9cb4b3d76342b79d082cedc" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.117", - "tauri-codegen", - "tauri-utils", -] - -[[package]] -name = "tauri-plugin" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8d5f58bfd0cdcfdbc0a68dc08b354eea2afc551b421de91b07b69e0dd769d57" -dependencies = [ - "anyhow", - "glob", - "plist", - "schemars 0.8.22", - "serde", - "serde_json", - "tauri-utils", - "walkdir", -] - -[[package]] -name = "tauri-plugin-autostart" -version = "2.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459383cebc193cdd03d1ba4acc40f2c408a7abce419d64bdcd2d745bc2886f70" -dependencies = [ - "auto-launch", - "serde", - "serde_json", - "tauri", - "tauri-plugin", - "thiserror 2.0.18", -] - -[[package]] -name = "tauri-plugin-notification" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fc2c5ff41105bd1f7242d8201fdf3efd70749b82fa013a17f2126357d194cc" -dependencies = [ - "log", - "notify-rust", - "rand 0.9.4", - "serde", - "serde_json", - "serde_repr", - "tauri", - "tauri-plugin", - "thiserror 2.0.18", - "time", - "url", -] - -[[package]] -name = "tauri-plugin-shell" -version = "2.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8457dbf9e2bab1edd8df22bb2c20857a59a9868e79cb3eac5ed639eec4d0c73b" -dependencies = [ - "encoding_rs", - "log", - "open", - "os_pipe", - "regex", - "schemars 0.8.22", - "serde", - "serde_json", - "shared_child", - "tauri", - "tauri-plugin", - "thiserror 2.0.18", - "tokio", -] - -[[package]] -name = "tauri-runtime" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e42bbcb76237351fbaa02f08d808c537dc12eb5a6eabbf3e517b50056334d95" -dependencies = [ - "cookie", - "dpi", - "gtk", - "http", - "jni", - "objc2", - "objc2-ui-kit", - "objc2-web-kit", - "raw-window-handle", - "serde", - "serde_json", - "tauri-utils", - "thiserror 2.0.18", - "url", - "webkit2gtk", - "webview2-com", - "windows", -] - -[[package]] -name = "tauri-runtime-wry" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cadb13dad0c681e1e0a2c49ae488f0e2906ded3d57e7a0017f4aaf46e387117" -dependencies = [ - "gtk", - "http", - "jni", - "log", - "objc2", - "objc2-app-kit", - "once_cell", - "percent-encoding", - "raw-window-handle", - "softbuffer", - "tao", - "tauri-runtime", - "tauri-utils", - "url", - "webkit2gtk", - "webview2-com", - "windows", - "wry", -] - -[[package]] -name = "tauri-utils" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55f61d2bf7188fbcf2b0ed095b67a6bc498f713c939314bb19eb700118a573b7" -dependencies = [ - "anyhow", - "brotli", - "cargo_metadata", - "ctor", - "dom_query", - "dunce", - "glob", - "http", - "infer", - "json-patch", - "log", - "memchr", - "phf 0.11.3", - "plist", - "proc-macro2", - "quote", - "regex", - "schemars 0.8.22", - "semver", - "serde", - "serde-untagged", - "serde_json", - "serde_with", - "swift-rs", - "thiserror 2.0.18", - "toml 1.1.2+spec-1.1.0", - "url", - "urlpattern", - "uuid", - "walkdir", -] - -[[package]] -name = "tauri-winres" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6" -dependencies = [ - "dunce", - "embed-resource", - "toml 1.1.2+spec-1.1.0", -] - -[[package]] -name = "tauri-winrt-notification" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b1e66e07de489fe43a46678dd0b8df65e0c973909df1b60ba33874e297ba9b9" -dependencies = [ - "quick-xml 0.37.5", - "thiserror 2.0.18", - "windows", - "windows-version", -] - -[[package]] -name = "tempfile" -version = "3.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" -dependencies = [ - "fastrand", - "getrandom 0.4.2", - "once_cell", - "rustix", - "windows-sys 0.61.2", -] - -[[package]] -name = "tendril" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24" -dependencies = [ - "new_debug_unreachable", - "utf-8", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" -dependencies = [ - "thiserror-impl 2.0.18", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "time" -version = "0.3.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde_core", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" - -[[package]] -name = "time-macros" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tinystr" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.52.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6" -dependencies = [ - "bytes", - "libc", - "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.61.2", -] - -[[package]] -name = "tokio-macros" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" -dependencies = [ - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.3", - "toml_edit 0.20.2", -] - -[[package]] -name = "toml" -version = "0.9.12+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" -dependencies = [ - "indexmap 2.14.0", - "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 0.7.5+spec-1.1.0", - "toml_parser", - "toml_writer", - "winnow 0.7.15", -] - -[[package]] -name = "toml" -version = "1.1.2+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" -dependencies = [ - "indexmap 2.14.0", - "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 1.1.1+spec-1.1.0", - "toml_parser", - "toml_writer", - "winnow 1.0.2", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "0.7.5+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_datetime" -version = "1.1.1+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.14.0", - "toml_datetime 0.6.3", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" -dependencies = [ - "indexmap 2.14.0", - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.3", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.25.11+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" -dependencies = [ - "indexmap 2.14.0", - "toml_datetime 1.1.1+spec-1.1.0", - "toml_parser", - "winnow 1.0.2", -] - -[[package]] -name = "toml_parser" -version = "1.1.2+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" -dependencies = [ - "winnow 1.0.2", -] - -[[package]] -name = "toml_writer" -version = "1.1.1+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" - -[[package]] -name = "tower" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-http" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" -dependencies = [ - "bitflags 2.11.1", - "bytes", - "futures-util", - "http", - "http-body", - "iri-string", - "pin-project-lite", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "tracing-core" -version = "0.1.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" -dependencies = [ - "once_cell", -] - -[[package]] -name = "tray-icon" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15edbb0d80583e85ee8df283410038e17314df5cba30da2087a54a85216c0773" -dependencies = [ - "crossbeam-channel", - "dirs 6.0.0", - "libappindicator", - "muda", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-foundation", - "once_cell", - "png 0.18.1", - "serde", - "thiserror 2.0.18", - "windows-sys 0.61.2", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "typeid" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" - -[[package]] -name = "typenum" -version = "1.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" - -[[package]] -name = "uds_windows" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" -dependencies = [ - "memoffset", - "tempfile", - "windows-sys 0.61.2", -] - -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-ucd-ident" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - -[[package]] -name = "unicode-ident" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" - -[[package]] -name = "unicode-segmentation" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", - "serde_derive", -] - -[[package]] -name = "urlpattern" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" -dependencies = [ - "regex", - "serde", - "unic-ucd-ident", - "url", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" -dependencies = [ - "getrandom 0.4.2", - "js-sys", - "serde_core", - "wasm-bindgen", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version-compare" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "vswhom" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" -dependencies = [ - "libc", - "vswhom-sys", -] - -[[package]] -name = "vswhom-sys" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasip2" -version = "1.0.3+wasi-0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" -dependencies = [ - "wit-bindgen 0.57.1", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen 0.51.0", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df52b6d9b87e0c74c9edfa1eb2d9bf85e5d63515474513aa50fa181b3c4f5db1" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af934872acec734c2d80e6617bbb5ff4f12b052dd8e6332b0817bce889516084" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b1041f495fb322e64aca85f5756b2172e35cd459376e67f2a6c9dffcedb103" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcd0ff20416988a18ac686d4d4d0f6aae9ebf08a389ff5d29012b05af2a1b41" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.117", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.120" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49757b3c82ebf16c57d69365a142940b384176c24df52a087fb748e2085359ea" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap 2.14.0", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasm-streams" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags 2.11.1", - "hashbrown 0.15.5", - "indexmap 2.14.0", - "semver", -] - -[[package]] -name = "web-sys" -version = "0.3.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eadbac71025cd7b0834f20d1fe8472e8495821b4e9801eb0a60bd1f19827602" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web_atoms" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" -dependencies = [ - "phf 0.13.1", - "phf_codegen", - "string_cache", - "string_cache_codegen", -] - -[[package]] -name = "webkit2gtk" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793" -dependencies = [ - "bitflags 1.3.2", - "cairo-rs", - "gdk", - "gdk-sys", - "gio", - "gio-sys", - "glib", - "glib-sys", - "gobject-sys", - "gtk", - "gtk-sys", - "javascriptcore-rs", - "libc", - "once_cell", - "soup3", - "webkit2gtk-sys", -] - -[[package]] -name = "webkit2gtk-sys" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5" -dependencies = [ - "bitflags 1.3.2", - "cairo-sys-rs", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "gtk-sys", - "javascriptcore-rs-sys", - "libc", - "pkg-config", - "soup3-sys", - "system-deps", -] - -[[package]] -name = "webview2-com" -version = "0.38.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7130243a7a5b33c54a444e54842e6a9e133de08b5ad7b5861cd8ed9a6a5bc96a" -dependencies = [ - "webview2-com-macros", - "webview2-com-sys", - "windows", - "windows-core 0.61.2", - "windows-implement", - "windows-interface", -] - -[[package]] -name = "webview2-com-macros" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "webview2-com-sys" -version = "0.38.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" -dependencies = [ - "thiserror 2.0.18", - "windows", - "windows-core 0.61.2", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "window-vibrancy" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c" -dependencies = [ - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-foundation", - "raw-window-handle", - "windows-sys 0.59.0", - "windows-version", -] - -[[package]] -name = "windows" -version = "0.61.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" -dependencies = [ - "windows-collections", - "windows-core 0.61.2", - "windows-future", - "windows-link 0.1.3", - "windows-numerics", -] - -[[package]] -name = "windows-collections" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" -dependencies = [ - "windows-core 0.61.2", -] - -[[package]] -name = "windows-core" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", -] - -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - -[[package]] -name = "windows-future" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" -dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", - "windows-threading", -] - -[[package]] -name = "windows-implement" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "windows-interface" -version = "0.59.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-link" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" - -[[package]] -name = "windows-numerics" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" -dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", -] - -[[package]] -name = "windows-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" -dependencies = [ - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - -[[package]] -name = "windows-sys" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" -dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link 0.2.1", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - -[[package]] -name = "windows-threading" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-version" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" -dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" - -[[package]] -name = "winnow" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "winreg" -version = "0.55.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" -dependencies = [ - "cfg-if", - "windows-sys 0.59.0", -] - -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen" -version = "0.57.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck 0.5.0", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck 0.5.0", - "indexmap 2.14.0", - "prettyplease", - "syn 2.0.117", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.117", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.11.1", - "indexmap 2.14.0", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.14.0", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - -[[package]] -name = "writeable" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" - -[[package]] -name = "wry" -version = "0.55.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3013fd6116aac351dd2e18f349b28b2cfef3a5ff3253a9d0ce2d7193bb1b4429" -dependencies = [ - "base64 0.22.1", - "block2", - "cookie", - "crossbeam-channel", - "dirs 6.0.0", - "dom_query", - "dpi", - "dunce", - "gdkx11", - "gtk", - "http", - "javascriptcore-rs", - "jni", - "libc", - "ndk", - "objc2", - "objc2-app-kit", - "objc2-core-foundation", - "objc2-foundation", - "objc2-ui-kit", - "objc2-web-kit", - "once_cell", - "percent-encoding", - "raw-window-handle", - "sha2", - "soup3", - "tao-macros", - "thiserror 2.0.18", - "url", - "webkit2gtk", - "webkit2gtk-sys", - "webview2-com", - "windows", - "windows-core 0.61.2", - "windows-version", - "x11-dl", -] - -[[package]] -name = "x11" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" -dependencies = [ - "libc", - "pkg-config", -] - -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "yoke" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", - "synstructure", -] - -[[package]] -name = "zbus" -version = "5.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bcbf15c8708d7fc1be0c993622e0a5cbd5e8b52bfa40afa4c3e0cd8d724ac1" -dependencies = [ - "async-broadcast", - "async-executor", - "async-io", - "async-lock", - "async-process", - "async-recursion", - "async-task", - "async-trait", - "blocking", - "enumflags2", - "event-listener", - "futures-core", - "futures-lite", - "hex", - "libc", - "ordered-stream", - "rustix", - "serde", - "serde_repr", - "tracing", - "uds_windows", - "uuid", - "windows-sys 0.61.2", - "winnow 1.0.2", - "zbus_macros", - "zbus_names", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "5.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fa5406ad9175a8c825a931f8cf347116b531b3634fcb0b627c290f1f2516ff" -dependencies = [ - "proc-macro-crate 3.5.0", - "proc-macro2", - "quote", - "syn 2.0.117", - "zbus_names", - "zvariant", - "zvariant_utils", -] - -[[package]] -name = "zbus_names" -version = "4.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" -dependencies = [ - "serde", - "winnow 1.0.2", - "zvariant", -] - -[[package]] -name = "zerocopy" -version = "0.8.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "zerofrom" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" - -[[package]] -name = "zerotrie" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "zmij" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" - -[[package]] -name = "zvariant" -version = "5.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db0ecb8987cf5e92653c57c098f7f0e39a03112edb796f4fe089fb7eaa14ff" -dependencies = [ - "endi", - "enumflags2", - "serde", - "winnow 1.0.2", - "zvariant_derive", - "zvariant_utils", -] - -[[package]] -name = "zvariant_derive" -version = "5.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b949b639ab1b4bed763aa7481ba0e368af68d8b55532f8ed4bec86a59f2ca98" -dependencies = [ - "proc-macro-crate 3.5.0", - "proc-macro2", - "quote", - "syn 2.0.117", - "zvariant_utils", -] - -[[package]] -name = "zvariant_utils" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d464f5733ffa07a3164d656f18533caace9d0638596721355d73256a410d691" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "syn 2.0.117", - "winnow 1.0.2", -] diff --git a/packages/dcp-desktop/src-tauri/Cargo.toml b/packages/dcp-desktop/src-tauri/Cargo.toml deleted file mode 100644 index 7bde325..0000000 --- a/packages/dcp-desktop/src-tauri/Cargo.toml +++ /dev/null @@ -1,37 +0,0 @@ -[package] -name = "dcp" -version = "0.1.0" -description = "DCP Desktop" -authors = ["DCP Protocol"] -edition = "2021" -license = "Apache-2.0" - -[lib] -name = "dcp_lib" -crate-type = ["staticlib", "cdylib", "rlib"] - -[build-dependencies] -tauri-build = { version = "2", features = [] } - -[dependencies] -tauri = { version = "2", features = ["tray-icon"] } -tauri-plugin-notification = "2" -tauri-plugin-autostart = "2" -tauri-plugin-shell = "2" -serde = { version = "1", features = ["derive"] } -serde_json = "1" -tokio = { version = "1", features = ["full"] } -reqwest = { version = "0.12", features = ["json"] } -dirs = "6" -ed25519-dalek = { version = "2", features = ["rand_core"] } -keyring = "3" -uuid = { version = "1", features = ["v4"] } -base64 = "0.22" -rand = "0.8" - -[profile.release] -panic = "abort" -codegen-units = 1 -lto = true -opt-level = "z" -strip = true diff --git a/packages/dcp-desktop/src-tauri/bin/.gitkeep b/packages/dcp-desktop/src-tauri/bin/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/dcp-desktop/src-tauri/build.rs b/packages/dcp-desktop/src-tauri/build.rs deleted file mode 100644 index d860e1e..0000000 --- a/packages/dcp-desktop/src-tauri/build.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - tauri_build::build() -} diff --git a/packages/dcp-desktop/src-tauri/capabilities/default.json b/packages/dcp-desktop/src-tauri/capabilities/default.json deleted file mode 100644 index 7a8ae47..0000000 --- a/packages/dcp-desktop/src-tauri/capabilities/default.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://schema.tauri.app/config/2/capability", - "identifier": "default", - "description": "Default capability for DCP", - "windows": ["main"], - "permissions": [ - "core:default", - "notification:default", - "autostart:default", - "shell:default", - { - "identifier": "shell:allow-open", - "allow": [ - { "url": "https://*" }, - { "url": "http://*" }, - { "url": "cursor://*" }, - { "url": "vscode://*" }, - { "url": "vscode:*" } - ] - } - ] -} diff --git a/packages/dcp-desktop/src-tauri/gen/schemas/acl-manifests.json b/packages/dcp-desktop/src-tauri/gen/schemas/acl-manifests.json deleted file mode 100644 index 8fe3240..0000000 --- a/packages/dcp-desktop/src-tauri/gen/schemas/acl-manifests.json +++ /dev/null @@ -1 +0,0 @@ -{"autostart":{"default_permission":{"identifier":"default","description":"This permission set configures if your\napplication can enable or disable auto\nstarting the application on boot.\n\n#### Granted Permissions\n\nIt allows all to check, enable and\ndisable the automatic start on boot.\n\n","permissions":["allow-enable","allow-disable","allow-is-enabled"]},"permissions":{"allow-disable":{"identifier":"allow-disable","description":"Enables the disable command without any pre-configured scope.","commands":{"allow":["disable"],"deny":[]}},"allow-enable":{"identifier":"allow-enable","description":"Enables the enable command without any pre-configured scope.","commands":{"allow":["enable"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"deny-disable":{"identifier":"deny-disable","description":"Denies the disable command without any pre-configured scope.","commands":{"allow":[],"deny":["disable"]}},"deny-enable":{"identifier":"deny-enable","description":"Denies the enable command without any pre-configured scope.","commands":{"allow":[],"deny":["enable"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener","allow-supports-multiple-windows"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-supports-multiple-windows":{"identifier":"allow-supports-multiple-windows","description":"Enables the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":["supports_multiple_windows"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-supports-multiple-windows":{"identifier":"deny-supports-multiple-windows","description":"Denies the supports_multiple_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["supports_multiple_windows"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-icon-with-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-icon-with-as-template":{"identifier":"allow-set-icon-with-as-template","description":"Enables the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_with_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-icon-with-as-template":{"identifier":"deny-set-icon-with-as-template","description":"Denies the set_icon_with_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_with_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-activity-name","allow-scene-identifier","allow-internal-toggle-maximize"]},"permissions":{"allow-activity-name":{"identifier":"allow-activity-name","description":"Enables the activity_name command without any pre-configured scope.","commands":{"allow":["activity_name"],"deny":[]}},"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-scene-identifier":{"identifier":"allow-scene-identifier","description":"Enables the scene_identifier command without any pre-configured scope.","commands":{"allow":["scene_identifier"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-activity-name":{"identifier":"deny-activity-name","description":"Denies the activity_name command without any pre-configured scope.","commands":{"allow":[],"deny":["activity_name"]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-scene-identifier":{"identifier":"deny-scene-identifier","description":"Denies the scene_identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["scene_identifier"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"notification":{"default_permission":{"identifier":"default","description":"This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n","permissions":["allow-is-permission-granted","allow-request-permission","allow-notify","allow-register-action-types","allow-register-listener","allow-cancel","allow-get-pending","allow-remove-active","allow-get-active","allow-check-permissions","allow-show","allow-batch","allow-list-channels","allow-delete-channel","allow-create-channel","allow-permission-state"]},"permissions":{"allow-batch":{"identifier":"allow-batch","description":"Enables the batch command without any pre-configured scope.","commands":{"allow":["batch"],"deny":[]}},"allow-cancel":{"identifier":"allow-cancel","description":"Enables the cancel command without any pre-configured scope.","commands":{"allow":["cancel"],"deny":[]}},"allow-check-permissions":{"identifier":"allow-check-permissions","description":"Enables the check_permissions command without any pre-configured scope.","commands":{"allow":["check_permissions"],"deny":[]}},"allow-create-channel":{"identifier":"allow-create-channel","description":"Enables the create_channel command without any pre-configured scope.","commands":{"allow":["create_channel"],"deny":[]}},"allow-delete-channel":{"identifier":"allow-delete-channel","description":"Enables the delete_channel command without any pre-configured scope.","commands":{"allow":["delete_channel"],"deny":[]}},"allow-get-active":{"identifier":"allow-get-active","description":"Enables the get_active command without any pre-configured scope.","commands":{"allow":["get_active"],"deny":[]}},"allow-get-pending":{"identifier":"allow-get-pending","description":"Enables the get_pending command without any pre-configured scope.","commands":{"allow":["get_pending"],"deny":[]}},"allow-is-permission-granted":{"identifier":"allow-is-permission-granted","description":"Enables the is_permission_granted command without any pre-configured scope.","commands":{"allow":["is_permission_granted"],"deny":[]}},"allow-list-channels":{"identifier":"allow-list-channels","description":"Enables the list_channels command without any pre-configured scope.","commands":{"allow":["list_channels"],"deny":[]}},"allow-notify":{"identifier":"allow-notify","description":"Enables the notify command without any pre-configured scope.","commands":{"allow":["notify"],"deny":[]}},"allow-permission-state":{"identifier":"allow-permission-state","description":"Enables the permission_state command without any pre-configured scope.","commands":{"allow":["permission_state"],"deny":[]}},"allow-register-action-types":{"identifier":"allow-register-action-types","description":"Enables the register_action_types command without any pre-configured scope.","commands":{"allow":["register_action_types"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-active":{"identifier":"allow-remove-active","description":"Enables the remove_active command without any pre-configured scope.","commands":{"allow":["remove_active"],"deny":[]}},"allow-request-permission":{"identifier":"allow-request-permission","description":"Enables the request_permission command without any pre-configured scope.","commands":{"allow":["request_permission"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"deny-batch":{"identifier":"deny-batch","description":"Denies the batch command without any pre-configured scope.","commands":{"allow":[],"deny":["batch"]}},"deny-cancel":{"identifier":"deny-cancel","description":"Denies the cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["cancel"]}},"deny-check-permissions":{"identifier":"deny-check-permissions","description":"Denies the check_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["check_permissions"]}},"deny-create-channel":{"identifier":"deny-create-channel","description":"Denies the create_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["create_channel"]}},"deny-delete-channel":{"identifier":"deny-delete-channel","description":"Denies the delete_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["delete_channel"]}},"deny-get-active":{"identifier":"deny-get-active","description":"Denies the get_active command without any pre-configured scope.","commands":{"allow":[],"deny":["get_active"]}},"deny-get-pending":{"identifier":"deny-get-pending","description":"Denies the get_pending command without any pre-configured scope.","commands":{"allow":[],"deny":["get_pending"]}},"deny-is-permission-granted":{"identifier":"deny-is-permission-granted","description":"Denies the is_permission_granted command without any pre-configured scope.","commands":{"allow":[],"deny":["is_permission_granted"]}},"deny-list-channels":{"identifier":"deny-list-channels","description":"Denies the list_channels command without any pre-configured scope.","commands":{"allow":[],"deny":["list_channels"]}},"deny-notify":{"identifier":"deny-notify","description":"Denies the notify command without any pre-configured scope.","commands":{"allow":[],"deny":["notify"]}},"deny-permission-state":{"identifier":"deny-permission-state","description":"Denies the permission_state command without any pre-configured scope.","commands":{"allow":[],"deny":["permission_state"]}},"deny-register-action-types":{"identifier":"deny-register-action-types","description":"Denies the register_action_types command without any pre-configured scope.","commands":{"allow":[],"deny":["register_action_types"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-active":{"identifier":"deny-remove-active","description":"Denies the remove_active command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_active"]}},"deny-request-permission":{"identifier":"deny-request-permission","description":"Denies the request_permission command without any pre-configured scope.","commands":{"allow":[],"deny":["request_permission"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"cmd":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"required":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"raw":{"default":false,"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","type":"boolean"},"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"type":"array"}],"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}}} \ No newline at end of file diff --git a/packages/dcp-desktop/src-tauri/gen/schemas/capabilities.json b/packages/dcp-desktop/src-tauri/gen/schemas/capabilities.json deleted file mode 100644 index 3abab4c..0000000 --- a/packages/dcp-desktop/src-tauri/gen/schemas/capabilities.json +++ /dev/null @@ -1 +0,0 @@ -{"default":{"identifier":"default","description":"Default capability for DCP","local":true,"windows":["main"],"permissions":["core:default","notification:default","autostart:default","shell:default",{"identifier":"shell:allow-open","allow":[{"url":"https://*"},{"url":"http://*"},{"url":"cursor://*"},{"url":"vscode://*"},{"url":"vscode:*"}]}]}} \ No newline at end of file diff --git a/packages/dcp-desktop/src-tauri/gen/schemas/desktop-schema.json b/packages/dcp-desktop/src-tauri/gen/schemas/desktop-schema.json deleted file mode 100644 index ff1e793..0000000 --- a/packages/dcp-desktop/src-tauri/gen/schemas/desktop-schema.json +++ /dev/null @@ -1,2852 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CapabilityFile", - "description": "Capability formats accepted in a capability file.", - "anyOf": [ - { - "description": "A single capability.", - "allOf": [ - { - "$ref": "#/definitions/Capability" - } - ] - }, - { - "description": "A list of capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - }, - { - "description": "A list of capabilities.", - "type": "object", - "required": [ - "capabilities" - ], - "properties": { - "capabilities": { - "description": "The list of capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - } - } - } - ], - "definitions": { - "Capability": { - "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", - "type": "object", - "required": [ - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", - "type": "string" - }, - "description": { - "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", - "default": "", - "type": "string" - }, - "remote": { - "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", - "anyOf": [ - { - "$ref": "#/definitions/CapabilityRemote" - }, - { - "type": "null" - } - ] - }, - "local": { - "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", - "default": true, - "type": "boolean" - }, - "windows": { - "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "webviews": { - "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "permissions": { - "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ] ```", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionEntry" - }, - "uniqueItems": true - }, - "platforms": { - "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Target" - } - } - } - }, - "CapabilityRemote": { - "description": "Configuration for remote URLs that are associated with the capability.", - "type": "object", - "required": [ - "urls" - ], - "properties": { - "urls": { - "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PermissionEntry": { - "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", - "anyOf": [ - { - "description": "Reference a permission or permission set by identifier.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - }, - { - "description": "Reference a permission or permission set by identifier and extends its scope.", - "type": "object", - "allOf": [ - { - "if": { - "properties": { - "identifier": { - "anyOf": [ - { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", - "type": "string", - "const": "shell:default", - "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" - }, - { - "description": "Enables the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-execute", - "markdownDescription": "Enables the execute command without any pre-configured scope." - }, - { - "description": "Enables the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-kill", - "markdownDescription": "Enables the kill command without any pre-configured scope." - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-open", - "markdownDescription": "Enables the open command without any pre-configured scope." - }, - { - "description": "Enables the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-spawn", - "markdownDescription": "Enables the spawn command without any pre-configured scope." - }, - { - "description": "Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-stdin-write", - "markdownDescription": "Enables the stdin_write command without any pre-configured scope." - }, - { - "description": "Denies the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-execute", - "markdownDescription": "Denies the execute command without any pre-configured scope." - }, - { - "description": "Denies the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-kill", - "markdownDescription": "Denies the kill command without any pre-configured scope." - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-open", - "markdownDescription": "Denies the open command without any pre-configured scope." - }, - { - "description": "Denies the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-spawn", - "markdownDescription": "Denies the spawn command without any pre-configured scope." - }, - { - "description": "Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-stdin-write", - "markdownDescription": "Denies the stdin_write command without any pre-configured scope." - } - ] - } - } - }, - "then": { - "properties": { - "allow": { - "items": { - "title": "ShellScopeEntry", - "description": "Shell scope entry.", - "anyOf": [ - { - "type": "object", - "required": [ - "cmd", - "name" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellScopeEntryAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellScopeEntryAllowedArgs" - } - ] - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - }, - "additionalProperties": false - } - ] - } - }, - "deny": { - "items": { - "title": "ShellScopeEntry", - "description": "Shell scope entry.", - "anyOf": [ - { - "type": "object", - "required": [ - "cmd", - "name" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellScopeEntryAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellScopeEntryAllowedArgs" - } - ] - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - }, - "additionalProperties": false - } - ] - } - } - } - }, - "properties": { - "identifier": { - "description": "Identifier of the permission or permission set.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - } - } - }, - { - "properties": { - "identifier": { - "description": "Identifier of the permission or permission set.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - }, - "allow": { - "description": "Data that defines what is allowed by the scope.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - }, - "deny": { - "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - } - } - } - ], - "required": [ - "identifier" - ] - } - ] - }, - "Identifier": { - "description": "Permission identifier", - "oneOf": [ - { - "description": "This permission set configures if your\napplication can enable or disable auto\nstarting the application on boot.\n\n#### Granted Permissions\n\nIt allows all to check, enable and\ndisable the automatic start on boot.\n\n\n#### This default permission set includes:\n\n- `allow-enable`\n- `allow-disable`\n- `allow-is-enabled`", - "type": "string", - "const": "autostart:default", - "markdownDescription": "This permission set configures if your\napplication can enable or disable auto\nstarting the application on boot.\n\n#### Granted Permissions\n\nIt allows all to check, enable and\ndisable the automatic start on boot.\n\n\n#### This default permission set includes:\n\n- `allow-enable`\n- `allow-disable`\n- `allow-is-enabled`" - }, - { - "description": "Enables the disable command without any pre-configured scope.", - "type": "string", - "const": "autostart:allow-disable", - "markdownDescription": "Enables the disable command without any pre-configured scope." - }, - { - "description": "Enables the enable command without any pre-configured scope.", - "type": "string", - "const": "autostart:allow-enable", - "markdownDescription": "Enables the enable command without any pre-configured scope." - }, - { - "description": "Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "autostart:allow-is-enabled", - "markdownDescription": "Enables the is_enabled command without any pre-configured scope." - }, - { - "description": "Denies the disable command without any pre-configured scope.", - "type": "string", - "const": "autostart:deny-disable", - "markdownDescription": "Denies the disable command without any pre-configured scope." - }, - { - "description": "Denies the enable command without any pre-configured scope.", - "type": "string", - "const": "autostart:deny-enable", - "markdownDescription": "Denies the enable command without any pre-configured scope." - }, - { - "description": "Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "autostart:deny-is-enabled", - "markdownDescription": "Denies the is_enabled command without any pre-configured scope." - }, - { - "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", - "type": "string", - "const": "core:default", - "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" - }, - { - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`", - "type": "string", - "const": "core:app:default", - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`" - }, - { - "description": "Enables the app_hide command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-app-hide", - "markdownDescription": "Enables the app_hide command without any pre-configured scope." - }, - { - "description": "Enables the app_show command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-app-show", - "markdownDescription": "Enables the app_show command without any pre-configured scope." - }, - { - "description": "Enables the bundle_type command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-bundle-type", - "markdownDescription": "Enables the bundle_type command without any pre-configured scope." - }, - { - "description": "Enables the default_window_icon command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-default-window-icon", - "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." - }, - { - "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-fetch-data-store-identifiers", - "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." - }, - { - "description": "Enables the identifier command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-identifier", - "markdownDescription": "Enables the identifier command without any pre-configured scope." - }, - { - "description": "Enables the name command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-name", - "markdownDescription": "Enables the name command without any pre-configured scope." - }, - { - "description": "Enables the register_listener command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-register-listener", - "markdownDescription": "Enables the register_listener command without any pre-configured scope." - }, - { - "description": "Enables the remove_data_store command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-remove-data-store", - "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." - }, - { - "description": "Enables the remove_listener command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-remove-listener", - "markdownDescription": "Enables the remove_listener command without any pre-configured scope." - }, - { - "description": "Enables the set_app_theme command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-set-app-theme", - "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." - }, - { - "description": "Enables the set_dock_visibility command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-set-dock-visibility", - "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." - }, - { - "description": "Enables the supports_multiple_windows command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-supports-multiple-windows", - "markdownDescription": "Enables the supports_multiple_windows command without any pre-configured scope." - }, - { - "description": "Enables the tauri_version command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-tauri-version", - "markdownDescription": "Enables the tauri_version command without any pre-configured scope." - }, - { - "description": "Enables the version command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-version", - "markdownDescription": "Enables the version command without any pre-configured scope." - }, - { - "description": "Denies the app_hide command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-app-hide", - "markdownDescription": "Denies the app_hide command without any pre-configured scope." - }, - { - "description": "Denies the app_show command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-app-show", - "markdownDescription": "Denies the app_show command without any pre-configured scope." - }, - { - "description": "Denies the bundle_type command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-bundle-type", - "markdownDescription": "Denies the bundle_type command without any pre-configured scope." - }, - { - "description": "Denies the default_window_icon command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-default-window-icon", - "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." - }, - { - "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-fetch-data-store-identifiers", - "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." - }, - { - "description": "Denies the identifier command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-identifier", - "markdownDescription": "Denies the identifier command without any pre-configured scope." - }, - { - "description": "Denies the name command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-name", - "markdownDescription": "Denies the name command without any pre-configured scope." - }, - { - "description": "Denies the register_listener command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-register-listener", - "markdownDescription": "Denies the register_listener command without any pre-configured scope." - }, - { - "description": "Denies the remove_data_store command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-remove-data-store", - "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." - }, - { - "description": "Denies the remove_listener command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-remove-listener", - "markdownDescription": "Denies the remove_listener command without any pre-configured scope." - }, - { - "description": "Denies the set_app_theme command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-set-app-theme", - "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." - }, - { - "description": "Denies the set_dock_visibility command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-set-dock-visibility", - "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." - }, - { - "description": "Denies the supports_multiple_windows command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-supports-multiple-windows", - "markdownDescription": "Denies the supports_multiple_windows command without any pre-configured scope." - }, - { - "description": "Denies the tauri_version command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-tauri-version", - "markdownDescription": "Denies the tauri_version command without any pre-configured scope." - }, - { - "description": "Denies the version command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-version", - "markdownDescription": "Denies the version command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", - "type": "string", - "const": "core:event:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" - }, - { - "description": "Enables the emit command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-emit", - "markdownDescription": "Enables the emit command without any pre-configured scope." - }, - { - "description": "Enables the emit_to command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-emit-to", - "markdownDescription": "Enables the emit_to command without any pre-configured scope." - }, - { - "description": "Enables the listen command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-listen", - "markdownDescription": "Enables the listen command without any pre-configured scope." - }, - { - "description": "Enables the unlisten command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-unlisten", - "markdownDescription": "Enables the unlisten command without any pre-configured scope." - }, - { - "description": "Denies the emit command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-emit", - "markdownDescription": "Denies the emit command without any pre-configured scope." - }, - { - "description": "Denies the emit_to command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-emit-to", - "markdownDescription": "Denies the emit_to command without any pre-configured scope." - }, - { - "description": "Denies the listen command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-listen", - "markdownDescription": "Denies the listen command without any pre-configured scope." - }, - { - "description": "Denies the unlisten command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-unlisten", - "markdownDescription": "Denies the unlisten command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", - "type": "string", - "const": "core:image:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" - }, - { - "description": "Enables the from_bytes command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-from-bytes", - "markdownDescription": "Enables the from_bytes command without any pre-configured scope." - }, - { - "description": "Enables the from_path command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-from-path", - "markdownDescription": "Enables the from_path command without any pre-configured scope." - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-new", - "markdownDescription": "Enables the new command without any pre-configured scope." - }, - { - "description": "Enables the rgba command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-rgba", - "markdownDescription": "Enables the rgba command without any pre-configured scope." - }, - { - "description": "Enables the size command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-size", - "markdownDescription": "Enables the size command without any pre-configured scope." - }, - { - "description": "Denies the from_bytes command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-from-bytes", - "markdownDescription": "Denies the from_bytes command without any pre-configured scope." - }, - { - "description": "Denies the from_path command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-from-path", - "markdownDescription": "Denies the from_path command without any pre-configured scope." - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-new", - "markdownDescription": "Denies the new command without any pre-configured scope." - }, - { - "description": "Denies the rgba command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-rgba", - "markdownDescription": "Denies the rgba command without any pre-configured scope." - }, - { - "description": "Denies the size command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-size", - "markdownDescription": "Denies the size command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", - "type": "string", - "const": "core:menu:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" - }, - { - "description": "Enables the append command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-append", - "markdownDescription": "Enables the append command without any pre-configured scope." - }, - { - "description": "Enables the create_default command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-create-default", - "markdownDescription": "Enables the create_default command without any pre-configured scope." - }, - { - "description": "Enables the get command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-get", - "markdownDescription": "Enables the get command without any pre-configured scope." - }, - { - "description": "Enables the insert command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-insert", - "markdownDescription": "Enables the insert command without any pre-configured scope." - }, - { - "description": "Enables the is_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-is-checked", - "markdownDescription": "Enables the is_checked command without any pre-configured scope." - }, - { - "description": "Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-is-enabled", - "markdownDescription": "Enables the is_enabled command without any pre-configured scope." - }, - { - "description": "Enables the items command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-items", - "markdownDescription": "Enables the items command without any pre-configured scope." - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-new", - "markdownDescription": "Enables the new command without any pre-configured scope." - }, - { - "description": "Enables the popup command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-popup", - "markdownDescription": "Enables the popup command without any pre-configured scope." - }, - { - "description": "Enables the prepend command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-prepend", - "markdownDescription": "Enables the prepend command without any pre-configured scope." - }, - { - "description": "Enables the remove command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-remove", - "markdownDescription": "Enables the remove command without any pre-configured scope." - }, - { - "description": "Enables the remove_at command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-remove-at", - "markdownDescription": "Enables the remove_at command without any pre-configured scope." - }, - { - "description": "Enables the set_accelerator command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-accelerator", - "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." - }, - { - "description": "Enables the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-app-menu", - "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." - }, - { - "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-help-menu-for-nsapp", - "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." - }, - { - "description": "Enables the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-window-menu", - "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." - }, - { - "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-windows-menu-for-nsapp", - "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." - }, - { - "description": "Enables the set_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-checked", - "markdownDescription": "Enables the set_checked command without any pre-configured scope." - }, - { - "description": "Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-enabled", - "markdownDescription": "Enables the set_enabled command without any pre-configured scope." - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-icon", - "markdownDescription": "Enables the set_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-text", - "markdownDescription": "Enables the set_text command without any pre-configured scope." - }, - { - "description": "Enables the text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-text", - "markdownDescription": "Enables the text command without any pre-configured scope." - }, - { - "description": "Denies the append command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-append", - "markdownDescription": "Denies the append command without any pre-configured scope." - }, - { - "description": "Denies the create_default command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-create-default", - "markdownDescription": "Denies the create_default command without any pre-configured scope." - }, - { - "description": "Denies the get command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-get", - "markdownDescription": "Denies the get command without any pre-configured scope." - }, - { - "description": "Denies the insert command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-insert", - "markdownDescription": "Denies the insert command without any pre-configured scope." - }, - { - "description": "Denies the is_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-is-checked", - "markdownDescription": "Denies the is_checked command without any pre-configured scope." - }, - { - "description": "Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-is-enabled", - "markdownDescription": "Denies the is_enabled command without any pre-configured scope." - }, - { - "description": "Denies the items command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-items", - "markdownDescription": "Denies the items command without any pre-configured scope." - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-new", - "markdownDescription": "Denies the new command without any pre-configured scope." - }, - { - "description": "Denies the popup command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-popup", - "markdownDescription": "Denies the popup command without any pre-configured scope." - }, - { - "description": "Denies the prepend command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-prepend", - "markdownDescription": "Denies the prepend command without any pre-configured scope." - }, - { - "description": "Denies the remove command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-remove", - "markdownDescription": "Denies the remove command without any pre-configured scope." - }, - { - "description": "Denies the remove_at command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-remove-at", - "markdownDescription": "Denies the remove_at command without any pre-configured scope." - }, - { - "description": "Denies the set_accelerator command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-accelerator", - "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." - }, - { - "description": "Denies the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-app-menu", - "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." - }, - { - "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-help-menu-for-nsapp", - "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." - }, - { - "description": "Denies the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-window-menu", - "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." - }, - { - "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-windows-menu-for-nsapp", - "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." - }, - { - "description": "Denies the set_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-checked", - "markdownDescription": "Denies the set_checked command without any pre-configured scope." - }, - { - "description": "Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-enabled", - "markdownDescription": "Denies the set_enabled command without any pre-configured scope." - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-icon", - "markdownDescription": "Denies the set_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-text", - "markdownDescription": "Denies the set_text command without any pre-configured scope." - }, - { - "description": "Denies the text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-text", - "markdownDescription": "Denies the text command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", - "type": "string", - "const": "core:path:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" - }, - { - "description": "Enables the basename command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-basename", - "markdownDescription": "Enables the basename command without any pre-configured scope." - }, - { - "description": "Enables the dirname command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-dirname", - "markdownDescription": "Enables the dirname command without any pre-configured scope." - }, - { - "description": "Enables the extname command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-extname", - "markdownDescription": "Enables the extname command without any pre-configured scope." - }, - { - "description": "Enables the is_absolute command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-is-absolute", - "markdownDescription": "Enables the is_absolute command without any pre-configured scope." - }, - { - "description": "Enables the join command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-join", - "markdownDescription": "Enables the join command without any pre-configured scope." - }, - { - "description": "Enables the normalize command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-normalize", - "markdownDescription": "Enables the normalize command without any pre-configured scope." - }, - { - "description": "Enables the resolve command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-resolve", - "markdownDescription": "Enables the resolve command without any pre-configured scope." - }, - { - "description": "Enables the resolve_directory command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-resolve-directory", - "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." - }, - { - "description": "Denies the basename command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-basename", - "markdownDescription": "Denies the basename command without any pre-configured scope." - }, - { - "description": "Denies the dirname command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-dirname", - "markdownDescription": "Denies the dirname command without any pre-configured scope." - }, - { - "description": "Denies the extname command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-extname", - "markdownDescription": "Denies the extname command without any pre-configured scope." - }, - { - "description": "Denies the is_absolute command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-is-absolute", - "markdownDescription": "Denies the is_absolute command without any pre-configured scope." - }, - { - "description": "Denies the join command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-join", - "markdownDescription": "Denies the join command without any pre-configured scope." - }, - { - "description": "Denies the normalize command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-normalize", - "markdownDescription": "Denies the normalize command without any pre-configured scope." - }, - { - "description": "Denies the resolve command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-resolve", - "markdownDescription": "Denies the resolve command without any pre-configured scope." - }, - { - "description": "Denies the resolve_directory command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-resolve-directory", - "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", - "type": "string", - "const": "core:resources:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" - }, - { - "description": "Enables the close command without any pre-configured scope.", - "type": "string", - "const": "core:resources:allow-close", - "markdownDescription": "Enables the close command without any pre-configured scope." - }, - { - "description": "Denies the close command without any pre-configured scope.", - "type": "string", - "const": "core:resources:deny-close", - "markdownDescription": "Denies the close command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`", - "type": "string", - "const": "core:tray:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`" - }, - { - "description": "Enables the get_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-get-by-id", - "markdownDescription": "Enables the get_by_id command without any pre-configured scope." - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-new", - "markdownDescription": "Enables the new command without any pre-configured scope." - }, - { - "description": "Enables the remove_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-remove-by-id", - "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-icon", - "markdownDescription": "Enables the set_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-icon-as-template", - "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." - }, - { - "description": "Enables the set_icon_with_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-icon-with-as-template", - "markdownDescription": "Enables the set_icon_with_as_template command without any pre-configured scope." - }, - { - "description": "Enables the set_menu command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-menu", - "markdownDescription": "Enables the set_menu command without any pre-configured scope." - }, - { - "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-show-menu-on-left-click", - "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." - }, - { - "description": "Enables the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-temp-dir-path", - "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." - }, - { - "description": "Enables the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-title", - "markdownDescription": "Enables the set_title command without any pre-configured scope." - }, - { - "description": "Enables the set_tooltip command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-tooltip", - "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." - }, - { - "description": "Enables the set_visible command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-visible", - "markdownDescription": "Enables the set_visible command without any pre-configured scope." - }, - { - "description": "Denies the get_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-get-by-id", - "markdownDescription": "Denies the get_by_id command without any pre-configured scope." - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-new", - "markdownDescription": "Denies the new command without any pre-configured scope." - }, - { - "description": "Denies the remove_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-remove-by-id", - "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-icon", - "markdownDescription": "Denies the set_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-icon-as-template", - "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." - }, - { - "description": "Denies the set_icon_with_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-icon-with-as-template", - "markdownDescription": "Denies the set_icon_with_as_template command without any pre-configured scope." - }, - { - "description": "Denies the set_menu command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-menu", - "markdownDescription": "Denies the set_menu command without any pre-configured scope." - }, - { - "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-show-menu-on-left-click", - "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." - }, - { - "description": "Denies the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-temp-dir-path", - "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." - }, - { - "description": "Denies the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-title", - "markdownDescription": "Denies the set_title command without any pre-configured scope." - }, - { - "description": "Denies the set_tooltip command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-tooltip", - "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." - }, - { - "description": "Denies the set_visible command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-visible", - "markdownDescription": "Denies the set_visible command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", - "type": "string", - "const": "core:webview:default", - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" - }, - { - "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-clear-all-browsing-data", - "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." - }, - { - "description": "Enables the create_webview command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-create-webview", - "markdownDescription": "Enables the create_webview command without any pre-configured scope." - }, - { - "description": "Enables the create_webview_window command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-create-webview-window", - "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." - }, - { - "description": "Enables the get_all_webviews command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-get-all-webviews", - "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." - }, - { - "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-internal-toggle-devtools", - "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." - }, - { - "description": "Enables the print command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-print", - "markdownDescription": "Enables the print command without any pre-configured scope." - }, - { - "description": "Enables the reparent command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-reparent", - "markdownDescription": "Enables the reparent command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-auto-resize", - "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_background_color command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-background-color", - "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_focus command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-focus", - "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-position", - "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-size", - "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-zoom", - "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." - }, - { - "description": "Enables the webview_close command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-close", - "markdownDescription": "Enables the webview_close command without any pre-configured scope." - }, - { - "description": "Enables the webview_hide command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-hide", - "markdownDescription": "Enables the webview_hide command without any pre-configured scope." - }, - { - "description": "Enables the webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-position", - "markdownDescription": "Enables the webview_position command without any pre-configured scope." - }, - { - "description": "Enables the webview_show command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-show", - "markdownDescription": "Enables the webview_show command without any pre-configured scope." - }, - { - "description": "Enables the webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-size", - "markdownDescription": "Enables the webview_size command without any pre-configured scope." - }, - { - "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-clear-all-browsing-data", - "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." - }, - { - "description": "Denies the create_webview command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-create-webview", - "markdownDescription": "Denies the create_webview command without any pre-configured scope." - }, - { - "description": "Denies the create_webview_window command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-create-webview-window", - "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." - }, - { - "description": "Denies the get_all_webviews command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-get-all-webviews", - "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." - }, - { - "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-internal-toggle-devtools", - "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." - }, - { - "description": "Denies the print command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-print", - "markdownDescription": "Denies the print command without any pre-configured scope." - }, - { - "description": "Denies the reparent command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-reparent", - "markdownDescription": "Denies the reparent command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-auto-resize", - "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_background_color command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-background-color", - "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_focus command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-focus", - "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-position", - "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-size", - "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-zoom", - "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." - }, - { - "description": "Denies the webview_close command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-close", - "markdownDescription": "Denies the webview_close command without any pre-configured scope." - }, - { - "description": "Denies the webview_hide command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-hide", - "markdownDescription": "Denies the webview_hide command without any pre-configured scope." - }, - { - "description": "Denies the webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-position", - "markdownDescription": "Denies the webview_position command without any pre-configured scope." - }, - { - "description": "Denies the webview_show command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-show", - "markdownDescription": "Denies the webview_show command without any pre-configured scope." - }, - { - "description": "Denies the webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-size", - "markdownDescription": "Denies the webview_size command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`", - "type": "string", - "const": "core:window:default", - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`" - }, - { - "description": "Enables the activity_name command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-activity-name", - "markdownDescription": "Enables the activity_name command without any pre-configured scope." - }, - { - "description": "Enables the available_monitors command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-available-monitors", - "markdownDescription": "Enables the available_monitors command without any pre-configured scope." - }, - { - "description": "Enables the center command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-center", - "markdownDescription": "Enables the center command without any pre-configured scope." - }, - { - "description": "Enables the close command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-close", - "markdownDescription": "Enables the close command without any pre-configured scope." - }, - { - "description": "Enables the create command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-create", - "markdownDescription": "Enables the create command without any pre-configured scope." - }, - { - "description": "Enables the current_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-current-monitor", - "markdownDescription": "Enables the current_monitor command without any pre-configured scope." - }, - { - "description": "Enables the cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-cursor-position", - "markdownDescription": "Enables the cursor_position command without any pre-configured scope." - }, - { - "description": "Enables the destroy command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-destroy", - "markdownDescription": "Enables the destroy command without any pre-configured scope." - }, - { - "description": "Enables the get_all_windows command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-get-all-windows", - "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." - }, - { - "description": "Enables the hide command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-hide", - "markdownDescription": "Enables the hide command without any pre-configured scope." - }, - { - "description": "Enables the inner_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-inner-position", - "markdownDescription": "Enables the inner_position command without any pre-configured scope." - }, - { - "description": "Enables the inner_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-inner-size", - "markdownDescription": "Enables the inner_size command without any pre-configured scope." - }, - { - "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-internal-toggle-maximize", - "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." - }, - { - "description": "Enables the is_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-always-on-top", - "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." - }, - { - "description": "Enables the is_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-closable", - "markdownDescription": "Enables the is_closable command without any pre-configured scope." - }, - { - "description": "Enables the is_decorated command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-decorated", - "markdownDescription": "Enables the is_decorated command without any pre-configured scope." - }, - { - "description": "Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-enabled", - "markdownDescription": "Enables the is_enabled command without any pre-configured scope." - }, - { - "description": "Enables the is_focused command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-focused", - "markdownDescription": "Enables the is_focused command without any pre-configured scope." - }, - { - "description": "Enables the is_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-fullscreen", - "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." - }, - { - "description": "Enables the is_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-maximizable", - "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." - }, - { - "description": "Enables the is_maximized command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-maximized", - "markdownDescription": "Enables the is_maximized command without any pre-configured scope." - }, - { - "description": "Enables the is_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-minimizable", - "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." - }, - { - "description": "Enables the is_minimized command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-minimized", - "markdownDescription": "Enables the is_minimized command without any pre-configured scope." - }, - { - "description": "Enables the is_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-resizable", - "markdownDescription": "Enables the is_resizable command without any pre-configured scope." - }, - { - "description": "Enables the is_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-visible", - "markdownDescription": "Enables the is_visible command without any pre-configured scope." - }, - { - "description": "Enables the maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-maximize", - "markdownDescription": "Enables the maximize command without any pre-configured scope." - }, - { - "description": "Enables the minimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-minimize", - "markdownDescription": "Enables the minimize command without any pre-configured scope." - }, - { - "description": "Enables the monitor_from_point command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-monitor-from-point", - "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." - }, - { - "description": "Enables the outer_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-outer-position", - "markdownDescription": "Enables the outer_position command without any pre-configured scope." - }, - { - "description": "Enables the outer_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-outer-size", - "markdownDescription": "Enables the outer_size command without any pre-configured scope." - }, - { - "description": "Enables the primary_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-primary-monitor", - "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." - }, - { - "description": "Enables the request_user_attention command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-request-user-attention", - "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." - }, - { - "description": "Enables the scale_factor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-scale-factor", - "markdownDescription": "Enables the scale_factor command without any pre-configured scope." - }, - { - "description": "Enables the scene_identifier command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-scene-identifier", - "markdownDescription": "Enables the scene_identifier command without any pre-configured scope." - }, - { - "description": "Enables the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-always-on-bottom", - "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." - }, - { - "description": "Enables the set_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-always-on-top", - "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." - }, - { - "description": "Enables the set_background_color command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-background-color", - "markdownDescription": "Enables the set_background_color command without any pre-configured scope." - }, - { - "description": "Enables the set_badge_count command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-badge-count", - "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." - }, - { - "description": "Enables the set_badge_label command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-badge-label", - "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." - }, - { - "description": "Enables the set_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-closable", - "markdownDescription": "Enables the set_closable command without any pre-configured scope." - }, - { - "description": "Enables the set_content_protected command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-content-protected", - "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." - }, - { - "description": "Enables the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-grab", - "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." - }, - { - "description": "Enables the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-icon", - "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-position", - "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." - }, - { - "description": "Enables the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-visible", - "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." - }, - { - "description": "Enables the set_decorations command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-decorations", - "markdownDescription": "Enables the set_decorations command without any pre-configured scope." - }, - { - "description": "Enables the set_effects command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-effects", - "markdownDescription": "Enables the set_effects command without any pre-configured scope." - }, - { - "description": "Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-enabled", - "markdownDescription": "Enables the set_enabled command without any pre-configured scope." - }, - { - "description": "Enables the set_focus command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-focus", - "markdownDescription": "Enables the set_focus command without any pre-configured scope." - }, - { - "description": "Enables the set_focusable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-focusable", - "markdownDescription": "Enables the set_focusable command without any pre-configured scope." - }, - { - "description": "Enables the set_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-fullscreen", - "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-icon", - "markdownDescription": "Enables the set_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-ignore-cursor-events", - "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." - }, - { - "description": "Enables the set_max_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-max-size", - "markdownDescription": "Enables the set_max_size command without any pre-configured scope." - }, - { - "description": "Enables the set_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-maximizable", - "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." - }, - { - "description": "Enables the set_min_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-min-size", - "markdownDescription": "Enables the set_min_size command without any pre-configured scope." - }, - { - "description": "Enables the set_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-minimizable", - "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." - }, - { - "description": "Enables the set_overlay_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-overlay-icon", - "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-position", - "markdownDescription": "Enables the set_position command without any pre-configured scope." - }, - { - "description": "Enables the set_progress_bar command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-progress-bar", - "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." - }, - { - "description": "Enables the set_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-resizable", - "markdownDescription": "Enables the set_resizable command without any pre-configured scope." - }, - { - "description": "Enables the set_shadow command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-shadow", - "markdownDescription": "Enables the set_shadow command without any pre-configured scope." - }, - { - "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-simple-fullscreen", - "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." - }, - { - "description": "Enables the set_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-size", - "markdownDescription": "Enables the set_size command without any pre-configured scope." - }, - { - "description": "Enables the set_size_constraints command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-size-constraints", - "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." - }, - { - "description": "Enables the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-skip-taskbar", - "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." - }, - { - "description": "Enables the set_theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-theme", - "markdownDescription": "Enables the set_theme command without any pre-configured scope." - }, - { - "description": "Enables the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-title", - "markdownDescription": "Enables the set_title command without any pre-configured scope." - }, - { - "description": "Enables the set_title_bar_style command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-title-bar-style", - "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." - }, - { - "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-visible-on-all-workspaces", - "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." - }, - { - "description": "Enables the show command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-show", - "markdownDescription": "Enables the show command without any pre-configured scope." - }, - { - "description": "Enables the start_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-start-dragging", - "markdownDescription": "Enables the start_dragging command without any pre-configured scope." - }, - { - "description": "Enables the start_resize_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-start-resize-dragging", - "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." - }, - { - "description": "Enables the theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-theme", - "markdownDescription": "Enables the theme command without any pre-configured scope." - }, - { - "description": "Enables the title command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-title", - "markdownDescription": "Enables the title command without any pre-configured scope." - }, - { - "description": "Enables the toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-toggle-maximize", - "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." - }, - { - "description": "Enables the unmaximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-unmaximize", - "markdownDescription": "Enables the unmaximize command without any pre-configured scope." - }, - { - "description": "Enables the unminimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-unminimize", - "markdownDescription": "Enables the unminimize command without any pre-configured scope." - }, - { - "description": "Denies the activity_name command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-activity-name", - "markdownDescription": "Denies the activity_name command without any pre-configured scope." - }, - { - "description": "Denies the available_monitors command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-available-monitors", - "markdownDescription": "Denies the available_monitors command without any pre-configured scope." - }, - { - "description": "Denies the center command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-center", - "markdownDescription": "Denies the center command without any pre-configured scope." - }, - { - "description": "Denies the close command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-close", - "markdownDescription": "Denies the close command without any pre-configured scope." - }, - { - "description": "Denies the create command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-create", - "markdownDescription": "Denies the create command without any pre-configured scope." - }, - { - "description": "Denies the current_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-current-monitor", - "markdownDescription": "Denies the current_monitor command without any pre-configured scope." - }, - { - "description": "Denies the cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-cursor-position", - "markdownDescription": "Denies the cursor_position command without any pre-configured scope." - }, - { - "description": "Denies the destroy command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-destroy", - "markdownDescription": "Denies the destroy command without any pre-configured scope." - }, - { - "description": "Denies the get_all_windows command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-get-all-windows", - "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." - }, - { - "description": "Denies the hide command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-hide", - "markdownDescription": "Denies the hide command without any pre-configured scope." - }, - { - "description": "Denies the inner_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-inner-position", - "markdownDescription": "Denies the inner_position command without any pre-configured scope." - }, - { - "description": "Denies the inner_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-inner-size", - "markdownDescription": "Denies the inner_size command without any pre-configured scope." - }, - { - "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-internal-toggle-maximize", - "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." - }, - { - "description": "Denies the is_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-always-on-top", - "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." - }, - { - "description": "Denies the is_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-closable", - "markdownDescription": "Denies the is_closable command without any pre-configured scope." - }, - { - "description": "Denies the is_decorated command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-decorated", - "markdownDescription": "Denies the is_decorated command without any pre-configured scope." - }, - { - "description": "Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-enabled", - "markdownDescription": "Denies the is_enabled command without any pre-configured scope." - }, - { - "description": "Denies the is_focused command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-focused", - "markdownDescription": "Denies the is_focused command without any pre-configured scope." - }, - { - "description": "Denies the is_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-fullscreen", - "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." - }, - { - "description": "Denies the is_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-maximizable", - "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." - }, - { - "description": "Denies the is_maximized command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-maximized", - "markdownDescription": "Denies the is_maximized command without any pre-configured scope." - }, - { - "description": "Denies the is_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-minimizable", - "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." - }, - { - "description": "Denies the is_minimized command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-minimized", - "markdownDescription": "Denies the is_minimized command without any pre-configured scope." - }, - { - "description": "Denies the is_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-resizable", - "markdownDescription": "Denies the is_resizable command without any pre-configured scope." - }, - { - "description": "Denies the is_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-visible", - "markdownDescription": "Denies the is_visible command without any pre-configured scope." - }, - { - "description": "Denies the maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-maximize", - "markdownDescription": "Denies the maximize command without any pre-configured scope." - }, - { - "description": "Denies the minimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-minimize", - "markdownDescription": "Denies the minimize command without any pre-configured scope." - }, - { - "description": "Denies the monitor_from_point command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-monitor-from-point", - "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." - }, - { - "description": "Denies the outer_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-outer-position", - "markdownDescription": "Denies the outer_position command without any pre-configured scope." - }, - { - "description": "Denies the outer_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-outer-size", - "markdownDescription": "Denies the outer_size command without any pre-configured scope." - }, - { - "description": "Denies the primary_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-primary-monitor", - "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." - }, - { - "description": "Denies the request_user_attention command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-request-user-attention", - "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." - }, - { - "description": "Denies the scale_factor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-scale-factor", - "markdownDescription": "Denies the scale_factor command without any pre-configured scope." - }, - { - "description": "Denies the scene_identifier command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-scene-identifier", - "markdownDescription": "Denies the scene_identifier command without any pre-configured scope." - }, - { - "description": "Denies the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-always-on-bottom", - "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." - }, - { - "description": "Denies the set_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-always-on-top", - "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." - }, - { - "description": "Denies the set_background_color command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-background-color", - "markdownDescription": "Denies the set_background_color command without any pre-configured scope." - }, - { - "description": "Denies the set_badge_count command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-badge-count", - "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." - }, - { - "description": "Denies the set_badge_label command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-badge-label", - "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." - }, - { - "description": "Denies the set_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-closable", - "markdownDescription": "Denies the set_closable command without any pre-configured scope." - }, - { - "description": "Denies the set_content_protected command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-content-protected", - "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." - }, - { - "description": "Denies the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-grab", - "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." - }, - { - "description": "Denies the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-icon", - "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-position", - "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." - }, - { - "description": "Denies the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-visible", - "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." - }, - { - "description": "Denies the set_decorations command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-decorations", - "markdownDescription": "Denies the set_decorations command without any pre-configured scope." - }, - { - "description": "Denies the set_effects command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-effects", - "markdownDescription": "Denies the set_effects command without any pre-configured scope." - }, - { - "description": "Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-enabled", - "markdownDescription": "Denies the set_enabled command without any pre-configured scope." - }, - { - "description": "Denies the set_focus command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-focus", - "markdownDescription": "Denies the set_focus command without any pre-configured scope." - }, - { - "description": "Denies the set_focusable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-focusable", - "markdownDescription": "Denies the set_focusable command without any pre-configured scope." - }, - { - "description": "Denies the set_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-fullscreen", - "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-icon", - "markdownDescription": "Denies the set_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-ignore-cursor-events", - "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." - }, - { - "description": "Denies the set_max_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-max-size", - "markdownDescription": "Denies the set_max_size command without any pre-configured scope." - }, - { - "description": "Denies the set_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-maximizable", - "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." - }, - { - "description": "Denies the set_min_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-min-size", - "markdownDescription": "Denies the set_min_size command without any pre-configured scope." - }, - { - "description": "Denies the set_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-minimizable", - "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." - }, - { - "description": "Denies the set_overlay_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-overlay-icon", - "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-position", - "markdownDescription": "Denies the set_position command without any pre-configured scope." - }, - { - "description": "Denies the set_progress_bar command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-progress-bar", - "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." - }, - { - "description": "Denies the set_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-resizable", - "markdownDescription": "Denies the set_resizable command without any pre-configured scope." - }, - { - "description": "Denies the set_shadow command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-shadow", - "markdownDescription": "Denies the set_shadow command without any pre-configured scope." - }, - { - "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-simple-fullscreen", - "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." - }, - { - "description": "Denies the set_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-size", - "markdownDescription": "Denies the set_size command without any pre-configured scope." - }, - { - "description": "Denies the set_size_constraints command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-size-constraints", - "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." - }, - { - "description": "Denies the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-skip-taskbar", - "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." - }, - { - "description": "Denies the set_theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-theme", - "markdownDescription": "Denies the set_theme command without any pre-configured scope." - }, - { - "description": "Denies the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-title", - "markdownDescription": "Denies the set_title command without any pre-configured scope." - }, - { - "description": "Denies the set_title_bar_style command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-title-bar-style", - "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." - }, - { - "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-visible-on-all-workspaces", - "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." - }, - { - "description": "Denies the show command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-show", - "markdownDescription": "Denies the show command without any pre-configured scope." - }, - { - "description": "Denies the start_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-start-dragging", - "markdownDescription": "Denies the start_dragging command without any pre-configured scope." - }, - { - "description": "Denies the start_resize_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-start-resize-dragging", - "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." - }, - { - "description": "Denies the theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-theme", - "markdownDescription": "Denies the theme command without any pre-configured scope." - }, - { - "description": "Denies the title command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-title", - "markdownDescription": "Denies the title command without any pre-configured scope." - }, - { - "description": "Denies the toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-toggle-maximize", - "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." - }, - { - "description": "Denies the unmaximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-unmaximize", - "markdownDescription": "Denies the unmaximize command without any pre-configured scope." - }, - { - "description": "Denies the unminimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-unminimize", - "markdownDescription": "Denies the unminimize command without any pre-configured scope." - }, - { - "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n\n#### This default permission set includes:\n\n- `allow-is-permission-granted`\n- `allow-request-permission`\n- `allow-notify`\n- `allow-register-action-types`\n- `allow-register-listener`\n- `allow-cancel`\n- `allow-get-pending`\n- `allow-remove-active`\n- `allow-get-active`\n- `allow-check-permissions`\n- `allow-show`\n- `allow-batch`\n- `allow-list-channels`\n- `allow-delete-channel`\n- `allow-create-channel`\n- `allow-permission-state`", - "type": "string", - "const": "notification:default", - "markdownDescription": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n\n#### This default permission set includes:\n\n- `allow-is-permission-granted`\n- `allow-request-permission`\n- `allow-notify`\n- `allow-register-action-types`\n- `allow-register-listener`\n- `allow-cancel`\n- `allow-get-pending`\n- `allow-remove-active`\n- `allow-get-active`\n- `allow-check-permissions`\n- `allow-show`\n- `allow-batch`\n- `allow-list-channels`\n- `allow-delete-channel`\n- `allow-create-channel`\n- `allow-permission-state`" - }, - { - "description": "Enables the batch command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-batch", - "markdownDescription": "Enables the batch command without any pre-configured scope." - }, - { - "description": "Enables the cancel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-cancel", - "markdownDescription": "Enables the cancel command without any pre-configured scope." - }, - { - "description": "Enables the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-check-permissions", - "markdownDescription": "Enables the check_permissions command without any pre-configured scope." - }, - { - "description": "Enables the create_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-create-channel", - "markdownDescription": "Enables the create_channel command without any pre-configured scope." - }, - { - "description": "Enables the delete_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-delete-channel", - "markdownDescription": "Enables the delete_channel command without any pre-configured scope." - }, - { - "description": "Enables the get_active command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-get-active", - "markdownDescription": "Enables the get_active command without any pre-configured scope." - }, - { - "description": "Enables the get_pending command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-get-pending", - "markdownDescription": "Enables the get_pending command without any pre-configured scope." - }, - { - "description": "Enables the is_permission_granted command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-is-permission-granted", - "markdownDescription": "Enables the is_permission_granted command without any pre-configured scope." - }, - { - "description": "Enables the list_channels command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-list-channels", - "markdownDescription": "Enables the list_channels command without any pre-configured scope." - }, - { - "description": "Enables the notify command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-notify", - "markdownDescription": "Enables the notify command without any pre-configured scope." - }, - { - "description": "Enables the permission_state command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-permission-state", - "markdownDescription": "Enables the permission_state command without any pre-configured scope." - }, - { - "description": "Enables the register_action_types command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-register-action-types", - "markdownDescription": "Enables the register_action_types command without any pre-configured scope." - }, - { - "description": "Enables the register_listener command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-register-listener", - "markdownDescription": "Enables the register_listener command without any pre-configured scope." - }, - { - "description": "Enables the remove_active command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-remove-active", - "markdownDescription": "Enables the remove_active command without any pre-configured scope." - }, - { - "description": "Enables the request_permission command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-request-permission", - "markdownDescription": "Enables the request_permission command without any pre-configured scope." - }, - { - "description": "Enables the show command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-show", - "markdownDescription": "Enables the show command without any pre-configured scope." - }, - { - "description": "Denies the batch command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-batch", - "markdownDescription": "Denies the batch command without any pre-configured scope." - }, - { - "description": "Denies the cancel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-cancel", - "markdownDescription": "Denies the cancel command without any pre-configured scope." - }, - { - "description": "Denies the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-check-permissions", - "markdownDescription": "Denies the check_permissions command without any pre-configured scope." - }, - { - "description": "Denies the create_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-create-channel", - "markdownDescription": "Denies the create_channel command without any pre-configured scope." - }, - { - "description": "Denies the delete_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-delete-channel", - "markdownDescription": "Denies the delete_channel command without any pre-configured scope." - }, - { - "description": "Denies the get_active command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-get-active", - "markdownDescription": "Denies the get_active command without any pre-configured scope." - }, - { - "description": "Denies the get_pending command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-get-pending", - "markdownDescription": "Denies the get_pending command without any pre-configured scope." - }, - { - "description": "Denies the is_permission_granted command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-is-permission-granted", - "markdownDescription": "Denies the is_permission_granted command without any pre-configured scope." - }, - { - "description": "Denies the list_channels command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-list-channels", - "markdownDescription": "Denies the list_channels command without any pre-configured scope." - }, - { - "description": "Denies the notify command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-notify", - "markdownDescription": "Denies the notify command without any pre-configured scope." - }, - { - "description": "Denies the permission_state command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-permission-state", - "markdownDescription": "Denies the permission_state command without any pre-configured scope." - }, - { - "description": "Denies the register_action_types command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-register-action-types", - "markdownDescription": "Denies the register_action_types command without any pre-configured scope." - }, - { - "description": "Denies the register_listener command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-register-listener", - "markdownDescription": "Denies the register_listener command without any pre-configured scope." - }, - { - "description": "Denies the remove_active command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-remove-active", - "markdownDescription": "Denies the remove_active command without any pre-configured scope." - }, - { - "description": "Denies the request_permission command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-request-permission", - "markdownDescription": "Denies the request_permission command without any pre-configured scope." - }, - { - "description": "Denies the show command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-show", - "markdownDescription": "Denies the show command without any pre-configured scope." - }, - { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", - "type": "string", - "const": "shell:default", - "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" - }, - { - "description": "Enables the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-execute", - "markdownDescription": "Enables the execute command without any pre-configured scope." - }, - { - "description": "Enables the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-kill", - "markdownDescription": "Enables the kill command without any pre-configured scope." - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-open", - "markdownDescription": "Enables the open command without any pre-configured scope." - }, - { - "description": "Enables the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-spawn", - "markdownDescription": "Enables the spawn command without any pre-configured scope." - }, - { - "description": "Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-stdin-write", - "markdownDescription": "Enables the stdin_write command without any pre-configured scope." - }, - { - "description": "Denies the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-execute", - "markdownDescription": "Denies the execute command without any pre-configured scope." - }, - { - "description": "Denies the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-kill", - "markdownDescription": "Denies the kill command without any pre-configured scope." - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-open", - "markdownDescription": "Denies the open command without any pre-configured scope." - }, - { - "description": "Denies the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-spawn", - "markdownDescription": "Denies the spawn command without any pre-configured scope." - }, - { - "description": "Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-stdin-write", - "markdownDescription": "Denies the stdin_write command without any pre-configured scope." - } - ] - }, - "Value": { - "description": "All supported ACL values.", - "anyOf": [ - { - "description": "Represents a null JSON value.", - "type": "null" - }, - { - "description": "Represents a [`bool`].", - "type": "boolean" - }, - { - "description": "Represents a valid ACL [`Number`].", - "allOf": [ - { - "$ref": "#/definitions/Number" - } - ] - }, - { - "description": "Represents a [`String`].", - "type": "string" - }, - { - "description": "Represents a list of other [`Value`]s.", - "type": "array", - "items": { - "$ref": "#/definitions/Value" - } - }, - { - "description": "Represents a map of [`String`] keys to [`Value`]s.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Value" - } - } - ] - }, - "Number": { - "description": "A valid ACL number.", - "anyOf": [ - { - "description": "Represents an [`i64`].", - "type": "integer", - "format": "int64" - }, - { - "description": "Represents a [`f64`].", - "type": "number", - "format": "double" - } - ] - }, - "Target": { - "description": "Platform target.", - "oneOf": [ - { - "description": "MacOS.", - "type": "string", - "enum": [ - "macOS" - ] - }, - { - "description": "Windows.", - "type": "string", - "enum": [ - "windows" - ] - }, - { - "description": "Linux.", - "type": "string", - "enum": [ - "linux" - ] - }, - { - "description": "Android.", - "type": "string", - "enum": [ - "android" - ] - }, - { - "description": "iOS.", - "type": "string", - "enum": [ - "iOS" - ] - } - ] - }, - "ShellScopeEntryAllowedArg": { - "description": "A command argument allowed to be executed by the webview API.", - "anyOf": [ - { - "description": "A non-configurable argument that is passed to the command in the order it was specified.", - "type": "string" - }, - { - "description": "A variable that is set while calling the command from the webview API.", - "type": "object", - "required": [ - "validator" - ], - "properties": { - "raw": { - "description": "Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.", - "default": false, - "type": "boolean" - }, - "validator": { - "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ", - "type": "string" - } - }, - "additionalProperties": false - } - ] - }, - "ShellScopeEntryAllowedArgs": { - "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", - "anyOf": [ - { - "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", - "type": "boolean" - }, - { - "description": "A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.", - "type": "array", - "items": { - "$ref": "#/definitions/ShellScopeEntryAllowedArg" - } - } - ] - } - } -} \ No newline at end of file diff --git a/packages/dcp-desktop/src-tauri/gen/schemas/macOS-schema.json b/packages/dcp-desktop/src-tauri/gen/schemas/macOS-schema.json deleted file mode 100644 index ff1e793..0000000 --- a/packages/dcp-desktop/src-tauri/gen/schemas/macOS-schema.json +++ /dev/null @@ -1,2852 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "CapabilityFile", - "description": "Capability formats accepted in a capability file.", - "anyOf": [ - { - "description": "A single capability.", - "allOf": [ - { - "$ref": "#/definitions/Capability" - } - ] - }, - { - "description": "A list of capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - }, - { - "description": "A list of capabilities.", - "type": "object", - "required": [ - "capabilities" - ], - "properties": { - "capabilities": { - "description": "The list of capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - } - } - } - } - ], - "definitions": { - "Capability": { - "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", - "type": "object", - "required": [ - "identifier", - "permissions" - ], - "properties": { - "identifier": { - "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", - "type": "string" - }, - "description": { - "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", - "default": "", - "type": "string" - }, - "remote": { - "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", - "anyOf": [ - { - "$ref": "#/definitions/CapabilityRemote" - }, - { - "type": "null" - } - ] - }, - "local": { - "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", - "default": true, - "type": "boolean" - }, - "windows": { - "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "webviews": { - "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", - "type": "array", - "items": { - "type": "string" - } - }, - "permissions": { - "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ] ```", - "type": "array", - "items": { - "$ref": "#/definitions/PermissionEntry" - }, - "uniqueItems": true - }, - "platforms": { - "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Target" - } - } - } - }, - "CapabilityRemote": { - "description": "Configuration for remote URLs that are associated with the capability.", - "type": "object", - "required": [ - "urls" - ], - "properties": { - "urls": { - "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "PermissionEntry": { - "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", - "anyOf": [ - { - "description": "Reference a permission or permission set by identifier.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - }, - { - "description": "Reference a permission or permission set by identifier and extends its scope.", - "type": "object", - "allOf": [ - { - "if": { - "properties": { - "identifier": { - "anyOf": [ - { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", - "type": "string", - "const": "shell:default", - "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" - }, - { - "description": "Enables the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-execute", - "markdownDescription": "Enables the execute command without any pre-configured scope." - }, - { - "description": "Enables the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-kill", - "markdownDescription": "Enables the kill command without any pre-configured scope." - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-open", - "markdownDescription": "Enables the open command without any pre-configured scope." - }, - { - "description": "Enables the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-spawn", - "markdownDescription": "Enables the spawn command without any pre-configured scope." - }, - { - "description": "Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-stdin-write", - "markdownDescription": "Enables the stdin_write command without any pre-configured scope." - }, - { - "description": "Denies the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-execute", - "markdownDescription": "Denies the execute command without any pre-configured scope." - }, - { - "description": "Denies the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-kill", - "markdownDescription": "Denies the kill command without any pre-configured scope." - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-open", - "markdownDescription": "Denies the open command without any pre-configured scope." - }, - { - "description": "Denies the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-spawn", - "markdownDescription": "Denies the spawn command without any pre-configured scope." - }, - { - "description": "Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-stdin-write", - "markdownDescription": "Denies the stdin_write command without any pre-configured scope." - } - ] - } - } - }, - "then": { - "properties": { - "allow": { - "items": { - "title": "ShellScopeEntry", - "description": "Shell scope entry.", - "anyOf": [ - { - "type": "object", - "required": [ - "cmd", - "name" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellScopeEntryAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellScopeEntryAllowedArgs" - } - ] - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - }, - "additionalProperties": false - } - ] - } - }, - "deny": { - "items": { - "title": "ShellScopeEntry", - "description": "Shell scope entry.", - "anyOf": [ - { - "type": "object", - "required": [ - "cmd", - "name" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellScopeEntryAllowedArgs" - } - ] - }, - "cmd": { - "description": "The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.", - "type": "string" - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "name", - "sidecar" - ], - "properties": { - "args": { - "description": "The allowed arguments for the command execution.", - "allOf": [ - { - "$ref": "#/definitions/ShellScopeEntryAllowedArgs" - } - ] - }, - "name": { - "description": "The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.", - "type": "string" - }, - "sidecar": { - "description": "If this command is a sidecar command.", - "type": "boolean" - } - }, - "additionalProperties": false - } - ] - } - } - } - }, - "properties": { - "identifier": { - "description": "Identifier of the permission or permission set.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - } - } - }, - { - "properties": { - "identifier": { - "description": "Identifier of the permission or permission set.", - "allOf": [ - { - "$ref": "#/definitions/Identifier" - } - ] - }, - "allow": { - "description": "Data that defines what is allowed by the scope.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - }, - "deny": { - "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/Value" - } - } - } - } - ], - "required": [ - "identifier" - ] - } - ] - }, - "Identifier": { - "description": "Permission identifier", - "oneOf": [ - { - "description": "This permission set configures if your\napplication can enable or disable auto\nstarting the application on boot.\n\n#### Granted Permissions\n\nIt allows all to check, enable and\ndisable the automatic start on boot.\n\n\n#### This default permission set includes:\n\n- `allow-enable`\n- `allow-disable`\n- `allow-is-enabled`", - "type": "string", - "const": "autostart:default", - "markdownDescription": "This permission set configures if your\napplication can enable or disable auto\nstarting the application on boot.\n\n#### Granted Permissions\n\nIt allows all to check, enable and\ndisable the automatic start on boot.\n\n\n#### This default permission set includes:\n\n- `allow-enable`\n- `allow-disable`\n- `allow-is-enabled`" - }, - { - "description": "Enables the disable command without any pre-configured scope.", - "type": "string", - "const": "autostart:allow-disable", - "markdownDescription": "Enables the disable command without any pre-configured scope." - }, - { - "description": "Enables the enable command without any pre-configured scope.", - "type": "string", - "const": "autostart:allow-enable", - "markdownDescription": "Enables the enable command without any pre-configured scope." - }, - { - "description": "Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "autostart:allow-is-enabled", - "markdownDescription": "Enables the is_enabled command without any pre-configured scope." - }, - { - "description": "Denies the disable command without any pre-configured scope.", - "type": "string", - "const": "autostart:deny-disable", - "markdownDescription": "Denies the disable command without any pre-configured scope." - }, - { - "description": "Denies the enable command without any pre-configured scope.", - "type": "string", - "const": "autostart:deny-enable", - "markdownDescription": "Denies the enable command without any pre-configured scope." - }, - { - "description": "Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "autostart:deny-is-enabled", - "markdownDescription": "Denies the is_enabled command without any pre-configured scope." - }, - { - "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", - "type": "string", - "const": "core:default", - "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" - }, - { - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`", - "type": "string", - "const": "core:app:default", - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`\n- `allow-supports-multiple-windows`" - }, - { - "description": "Enables the app_hide command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-app-hide", - "markdownDescription": "Enables the app_hide command without any pre-configured scope." - }, - { - "description": "Enables the app_show command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-app-show", - "markdownDescription": "Enables the app_show command without any pre-configured scope." - }, - { - "description": "Enables the bundle_type command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-bundle-type", - "markdownDescription": "Enables the bundle_type command without any pre-configured scope." - }, - { - "description": "Enables the default_window_icon command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-default-window-icon", - "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." - }, - { - "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-fetch-data-store-identifiers", - "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." - }, - { - "description": "Enables the identifier command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-identifier", - "markdownDescription": "Enables the identifier command without any pre-configured scope." - }, - { - "description": "Enables the name command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-name", - "markdownDescription": "Enables the name command without any pre-configured scope." - }, - { - "description": "Enables the register_listener command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-register-listener", - "markdownDescription": "Enables the register_listener command without any pre-configured scope." - }, - { - "description": "Enables the remove_data_store command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-remove-data-store", - "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." - }, - { - "description": "Enables the remove_listener command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-remove-listener", - "markdownDescription": "Enables the remove_listener command without any pre-configured scope." - }, - { - "description": "Enables the set_app_theme command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-set-app-theme", - "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." - }, - { - "description": "Enables the set_dock_visibility command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-set-dock-visibility", - "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." - }, - { - "description": "Enables the supports_multiple_windows command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-supports-multiple-windows", - "markdownDescription": "Enables the supports_multiple_windows command without any pre-configured scope." - }, - { - "description": "Enables the tauri_version command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-tauri-version", - "markdownDescription": "Enables the tauri_version command without any pre-configured scope." - }, - { - "description": "Enables the version command without any pre-configured scope.", - "type": "string", - "const": "core:app:allow-version", - "markdownDescription": "Enables the version command without any pre-configured scope." - }, - { - "description": "Denies the app_hide command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-app-hide", - "markdownDescription": "Denies the app_hide command without any pre-configured scope." - }, - { - "description": "Denies the app_show command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-app-show", - "markdownDescription": "Denies the app_show command without any pre-configured scope." - }, - { - "description": "Denies the bundle_type command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-bundle-type", - "markdownDescription": "Denies the bundle_type command without any pre-configured scope." - }, - { - "description": "Denies the default_window_icon command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-default-window-icon", - "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." - }, - { - "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-fetch-data-store-identifiers", - "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." - }, - { - "description": "Denies the identifier command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-identifier", - "markdownDescription": "Denies the identifier command without any pre-configured scope." - }, - { - "description": "Denies the name command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-name", - "markdownDescription": "Denies the name command without any pre-configured scope." - }, - { - "description": "Denies the register_listener command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-register-listener", - "markdownDescription": "Denies the register_listener command without any pre-configured scope." - }, - { - "description": "Denies the remove_data_store command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-remove-data-store", - "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." - }, - { - "description": "Denies the remove_listener command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-remove-listener", - "markdownDescription": "Denies the remove_listener command without any pre-configured scope." - }, - { - "description": "Denies the set_app_theme command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-set-app-theme", - "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." - }, - { - "description": "Denies the set_dock_visibility command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-set-dock-visibility", - "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." - }, - { - "description": "Denies the supports_multiple_windows command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-supports-multiple-windows", - "markdownDescription": "Denies the supports_multiple_windows command without any pre-configured scope." - }, - { - "description": "Denies the tauri_version command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-tauri-version", - "markdownDescription": "Denies the tauri_version command without any pre-configured scope." - }, - { - "description": "Denies the version command without any pre-configured scope.", - "type": "string", - "const": "core:app:deny-version", - "markdownDescription": "Denies the version command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", - "type": "string", - "const": "core:event:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" - }, - { - "description": "Enables the emit command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-emit", - "markdownDescription": "Enables the emit command without any pre-configured scope." - }, - { - "description": "Enables the emit_to command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-emit-to", - "markdownDescription": "Enables the emit_to command without any pre-configured scope." - }, - { - "description": "Enables the listen command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-listen", - "markdownDescription": "Enables the listen command without any pre-configured scope." - }, - { - "description": "Enables the unlisten command without any pre-configured scope.", - "type": "string", - "const": "core:event:allow-unlisten", - "markdownDescription": "Enables the unlisten command without any pre-configured scope." - }, - { - "description": "Denies the emit command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-emit", - "markdownDescription": "Denies the emit command without any pre-configured scope." - }, - { - "description": "Denies the emit_to command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-emit-to", - "markdownDescription": "Denies the emit_to command without any pre-configured scope." - }, - { - "description": "Denies the listen command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-listen", - "markdownDescription": "Denies the listen command without any pre-configured scope." - }, - { - "description": "Denies the unlisten command without any pre-configured scope.", - "type": "string", - "const": "core:event:deny-unlisten", - "markdownDescription": "Denies the unlisten command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", - "type": "string", - "const": "core:image:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" - }, - { - "description": "Enables the from_bytes command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-from-bytes", - "markdownDescription": "Enables the from_bytes command without any pre-configured scope." - }, - { - "description": "Enables the from_path command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-from-path", - "markdownDescription": "Enables the from_path command without any pre-configured scope." - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-new", - "markdownDescription": "Enables the new command without any pre-configured scope." - }, - { - "description": "Enables the rgba command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-rgba", - "markdownDescription": "Enables the rgba command without any pre-configured scope." - }, - { - "description": "Enables the size command without any pre-configured scope.", - "type": "string", - "const": "core:image:allow-size", - "markdownDescription": "Enables the size command without any pre-configured scope." - }, - { - "description": "Denies the from_bytes command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-from-bytes", - "markdownDescription": "Denies the from_bytes command without any pre-configured scope." - }, - { - "description": "Denies the from_path command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-from-path", - "markdownDescription": "Denies the from_path command without any pre-configured scope." - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-new", - "markdownDescription": "Denies the new command without any pre-configured scope." - }, - { - "description": "Denies the rgba command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-rgba", - "markdownDescription": "Denies the rgba command without any pre-configured scope." - }, - { - "description": "Denies the size command without any pre-configured scope.", - "type": "string", - "const": "core:image:deny-size", - "markdownDescription": "Denies the size command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", - "type": "string", - "const": "core:menu:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" - }, - { - "description": "Enables the append command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-append", - "markdownDescription": "Enables the append command without any pre-configured scope." - }, - { - "description": "Enables the create_default command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-create-default", - "markdownDescription": "Enables the create_default command without any pre-configured scope." - }, - { - "description": "Enables the get command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-get", - "markdownDescription": "Enables the get command without any pre-configured scope." - }, - { - "description": "Enables the insert command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-insert", - "markdownDescription": "Enables the insert command without any pre-configured scope." - }, - { - "description": "Enables the is_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-is-checked", - "markdownDescription": "Enables the is_checked command without any pre-configured scope." - }, - { - "description": "Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-is-enabled", - "markdownDescription": "Enables the is_enabled command without any pre-configured scope." - }, - { - "description": "Enables the items command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-items", - "markdownDescription": "Enables the items command without any pre-configured scope." - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-new", - "markdownDescription": "Enables the new command without any pre-configured scope." - }, - { - "description": "Enables the popup command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-popup", - "markdownDescription": "Enables the popup command without any pre-configured scope." - }, - { - "description": "Enables the prepend command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-prepend", - "markdownDescription": "Enables the prepend command without any pre-configured scope." - }, - { - "description": "Enables the remove command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-remove", - "markdownDescription": "Enables the remove command without any pre-configured scope." - }, - { - "description": "Enables the remove_at command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-remove-at", - "markdownDescription": "Enables the remove_at command without any pre-configured scope." - }, - { - "description": "Enables the set_accelerator command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-accelerator", - "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." - }, - { - "description": "Enables the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-app-menu", - "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." - }, - { - "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-help-menu-for-nsapp", - "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." - }, - { - "description": "Enables the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-window-menu", - "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." - }, - { - "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-as-windows-menu-for-nsapp", - "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." - }, - { - "description": "Enables the set_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-checked", - "markdownDescription": "Enables the set_checked command without any pre-configured scope." - }, - { - "description": "Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-enabled", - "markdownDescription": "Enables the set_enabled command without any pre-configured scope." - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-icon", - "markdownDescription": "Enables the set_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-set-text", - "markdownDescription": "Enables the set_text command without any pre-configured scope." - }, - { - "description": "Enables the text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:allow-text", - "markdownDescription": "Enables the text command without any pre-configured scope." - }, - { - "description": "Denies the append command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-append", - "markdownDescription": "Denies the append command without any pre-configured scope." - }, - { - "description": "Denies the create_default command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-create-default", - "markdownDescription": "Denies the create_default command without any pre-configured scope." - }, - { - "description": "Denies the get command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-get", - "markdownDescription": "Denies the get command without any pre-configured scope." - }, - { - "description": "Denies the insert command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-insert", - "markdownDescription": "Denies the insert command without any pre-configured scope." - }, - { - "description": "Denies the is_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-is-checked", - "markdownDescription": "Denies the is_checked command without any pre-configured scope." - }, - { - "description": "Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-is-enabled", - "markdownDescription": "Denies the is_enabled command without any pre-configured scope." - }, - { - "description": "Denies the items command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-items", - "markdownDescription": "Denies the items command without any pre-configured scope." - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-new", - "markdownDescription": "Denies the new command without any pre-configured scope." - }, - { - "description": "Denies the popup command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-popup", - "markdownDescription": "Denies the popup command without any pre-configured scope." - }, - { - "description": "Denies the prepend command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-prepend", - "markdownDescription": "Denies the prepend command without any pre-configured scope." - }, - { - "description": "Denies the remove command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-remove", - "markdownDescription": "Denies the remove command without any pre-configured scope." - }, - { - "description": "Denies the remove_at command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-remove-at", - "markdownDescription": "Denies the remove_at command without any pre-configured scope." - }, - { - "description": "Denies the set_accelerator command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-accelerator", - "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." - }, - { - "description": "Denies the set_as_app_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-app-menu", - "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." - }, - { - "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-help-menu-for-nsapp", - "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." - }, - { - "description": "Denies the set_as_window_menu command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-window-menu", - "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." - }, - { - "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-as-windows-menu-for-nsapp", - "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." - }, - { - "description": "Denies the set_checked command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-checked", - "markdownDescription": "Denies the set_checked command without any pre-configured scope." - }, - { - "description": "Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-enabled", - "markdownDescription": "Denies the set_enabled command without any pre-configured scope." - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-icon", - "markdownDescription": "Denies the set_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-set-text", - "markdownDescription": "Denies the set_text command without any pre-configured scope." - }, - { - "description": "Denies the text command without any pre-configured scope.", - "type": "string", - "const": "core:menu:deny-text", - "markdownDescription": "Denies the text command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", - "type": "string", - "const": "core:path:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" - }, - { - "description": "Enables the basename command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-basename", - "markdownDescription": "Enables the basename command without any pre-configured scope." - }, - { - "description": "Enables the dirname command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-dirname", - "markdownDescription": "Enables the dirname command without any pre-configured scope." - }, - { - "description": "Enables the extname command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-extname", - "markdownDescription": "Enables the extname command without any pre-configured scope." - }, - { - "description": "Enables the is_absolute command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-is-absolute", - "markdownDescription": "Enables the is_absolute command without any pre-configured scope." - }, - { - "description": "Enables the join command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-join", - "markdownDescription": "Enables the join command without any pre-configured scope." - }, - { - "description": "Enables the normalize command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-normalize", - "markdownDescription": "Enables the normalize command without any pre-configured scope." - }, - { - "description": "Enables the resolve command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-resolve", - "markdownDescription": "Enables the resolve command without any pre-configured scope." - }, - { - "description": "Enables the resolve_directory command without any pre-configured scope.", - "type": "string", - "const": "core:path:allow-resolve-directory", - "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." - }, - { - "description": "Denies the basename command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-basename", - "markdownDescription": "Denies the basename command without any pre-configured scope." - }, - { - "description": "Denies the dirname command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-dirname", - "markdownDescription": "Denies the dirname command without any pre-configured scope." - }, - { - "description": "Denies the extname command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-extname", - "markdownDescription": "Denies the extname command without any pre-configured scope." - }, - { - "description": "Denies the is_absolute command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-is-absolute", - "markdownDescription": "Denies the is_absolute command without any pre-configured scope." - }, - { - "description": "Denies the join command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-join", - "markdownDescription": "Denies the join command without any pre-configured scope." - }, - { - "description": "Denies the normalize command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-normalize", - "markdownDescription": "Denies the normalize command without any pre-configured scope." - }, - { - "description": "Denies the resolve command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-resolve", - "markdownDescription": "Denies the resolve command without any pre-configured scope." - }, - { - "description": "Denies the resolve_directory command without any pre-configured scope.", - "type": "string", - "const": "core:path:deny-resolve-directory", - "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", - "type": "string", - "const": "core:resources:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" - }, - { - "description": "Enables the close command without any pre-configured scope.", - "type": "string", - "const": "core:resources:allow-close", - "markdownDescription": "Enables the close command without any pre-configured scope." - }, - { - "description": "Denies the close command without any pre-configured scope.", - "type": "string", - "const": "core:resources:deny-close", - "markdownDescription": "Denies the close command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`", - "type": "string", - "const": "core:tray:default", - "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-icon-with-as-template`\n- `allow-set-show-menu-on-left-click`" - }, - { - "description": "Enables the get_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-get-by-id", - "markdownDescription": "Enables the get_by_id command without any pre-configured scope." - }, - { - "description": "Enables the new command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-new", - "markdownDescription": "Enables the new command without any pre-configured scope." - }, - { - "description": "Enables the remove_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-remove-by-id", - "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-icon", - "markdownDescription": "Enables the set_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-icon-as-template", - "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." - }, - { - "description": "Enables the set_icon_with_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-icon-with-as-template", - "markdownDescription": "Enables the set_icon_with_as_template command without any pre-configured scope." - }, - { - "description": "Enables the set_menu command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-menu", - "markdownDescription": "Enables the set_menu command without any pre-configured scope." - }, - { - "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-show-menu-on-left-click", - "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." - }, - { - "description": "Enables the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-temp-dir-path", - "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." - }, - { - "description": "Enables the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-title", - "markdownDescription": "Enables the set_title command without any pre-configured scope." - }, - { - "description": "Enables the set_tooltip command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-tooltip", - "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." - }, - { - "description": "Enables the set_visible command without any pre-configured scope.", - "type": "string", - "const": "core:tray:allow-set-visible", - "markdownDescription": "Enables the set_visible command without any pre-configured scope." - }, - { - "description": "Denies the get_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-get-by-id", - "markdownDescription": "Denies the get_by_id command without any pre-configured scope." - }, - { - "description": "Denies the new command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-new", - "markdownDescription": "Denies the new command without any pre-configured scope." - }, - { - "description": "Denies the remove_by_id command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-remove-by-id", - "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-icon", - "markdownDescription": "Denies the set_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_icon_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-icon-as-template", - "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." - }, - { - "description": "Denies the set_icon_with_as_template command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-icon-with-as-template", - "markdownDescription": "Denies the set_icon_with_as_template command without any pre-configured scope." - }, - { - "description": "Denies the set_menu command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-menu", - "markdownDescription": "Denies the set_menu command without any pre-configured scope." - }, - { - "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-show-menu-on-left-click", - "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." - }, - { - "description": "Denies the set_temp_dir_path command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-temp-dir-path", - "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." - }, - { - "description": "Denies the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-title", - "markdownDescription": "Denies the set_title command without any pre-configured scope." - }, - { - "description": "Denies the set_tooltip command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-tooltip", - "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." - }, - { - "description": "Denies the set_visible command without any pre-configured scope.", - "type": "string", - "const": "core:tray:deny-set-visible", - "markdownDescription": "Denies the set_visible command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", - "type": "string", - "const": "core:webview:default", - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" - }, - { - "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-clear-all-browsing-data", - "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." - }, - { - "description": "Enables the create_webview command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-create-webview", - "markdownDescription": "Enables the create_webview command without any pre-configured scope." - }, - { - "description": "Enables the create_webview_window command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-create-webview-window", - "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." - }, - { - "description": "Enables the get_all_webviews command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-get-all-webviews", - "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." - }, - { - "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-internal-toggle-devtools", - "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." - }, - { - "description": "Enables the print command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-print", - "markdownDescription": "Enables the print command without any pre-configured scope." - }, - { - "description": "Enables the reparent command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-reparent", - "markdownDescription": "Enables the reparent command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-auto-resize", - "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_background_color command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-background-color", - "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_focus command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-focus", - "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-position", - "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-size", - "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." - }, - { - "description": "Enables the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-set-webview-zoom", - "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." - }, - { - "description": "Enables the webview_close command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-close", - "markdownDescription": "Enables the webview_close command without any pre-configured scope." - }, - { - "description": "Enables the webview_hide command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-hide", - "markdownDescription": "Enables the webview_hide command without any pre-configured scope." - }, - { - "description": "Enables the webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-position", - "markdownDescription": "Enables the webview_position command without any pre-configured scope." - }, - { - "description": "Enables the webview_show command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-show", - "markdownDescription": "Enables the webview_show command without any pre-configured scope." - }, - { - "description": "Enables the webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:allow-webview-size", - "markdownDescription": "Enables the webview_size command without any pre-configured scope." - }, - { - "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-clear-all-browsing-data", - "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." - }, - { - "description": "Denies the create_webview command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-create-webview", - "markdownDescription": "Denies the create_webview command without any pre-configured scope." - }, - { - "description": "Denies the create_webview_window command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-create-webview-window", - "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." - }, - { - "description": "Denies the get_all_webviews command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-get-all-webviews", - "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." - }, - { - "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-internal-toggle-devtools", - "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." - }, - { - "description": "Denies the print command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-print", - "markdownDescription": "Denies the print command without any pre-configured scope." - }, - { - "description": "Denies the reparent command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-reparent", - "markdownDescription": "Denies the reparent command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-auto-resize", - "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_background_color command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-background-color", - "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_focus command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-focus", - "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-position", - "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-size", - "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." - }, - { - "description": "Denies the set_webview_zoom command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-set-webview-zoom", - "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." - }, - { - "description": "Denies the webview_close command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-close", - "markdownDescription": "Denies the webview_close command without any pre-configured scope." - }, - { - "description": "Denies the webview_hide command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-hide", - "markdownDescription": "Denies the webview_hide command without any pre-configured scope." - }, - { - "description": "Denies the webview_position command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-position", - "markdownDescription": "Denies the webview_position command without any pre-configured scope." - }, - { - "description": "Denies the webview_show command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-show", - "markdownDescription": "Denies the webview_show command without any pre-configured scope." - }, - { - "description": "Denies the webview_size command without any pre-configured scope.", - "type": "string", - "const": "core:webview:deny-webview-size", - "markdownDescription": "Denies the webview_size command without any pre-configured scope." - }, - { - "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`", - "type": "string", - "const": "core:window:default", - "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-activity-name`\n- `allow-scene-identifier`\n- `allow-internal-toggle-maximize`" - }, - { - "description": "Enables the activity_name command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-activity-name", - "markdownDescription": "Enables the activity_name command without any pre-configured scope." - }, - { - "description": "Enables the available_monitors command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-available-monitors", - "markdownDescription": "Enables the available_monitors command without any pre-configured scope." - }, - { - "description": "Enables the center command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-center", - "markdownDescription": "Enables the center command without any pre-configured scope." - }, - { - "description": "Enables the close command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-close", - "markdownDescription": "Enables the close command without any pre-configured scope." - }, - { - "description": "Enables the create command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-create", - "markdownDescription": "Enables the create command without any pre-configured scope." - }, - { - "description": "Enables the current_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-current-monitor", - "markdownDescription": "Enables the current_monitor command without any pre-configured scope." - }, - { - "description": "Enables the cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-cursor-position", - "markdownDescription": "Enables the cursor_position command without any pre-configured scope." - }, - { - "description": "Enables the destroy command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-destroy", - "markdownDescription": "Enables the destroy command without any pre-configured scope." - }, - { - "description": "Enables the get_all_windows command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-get-all-windows", - "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." - }, - { - "description": "Enables the hide command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-hide", - "markdownDescription": "Enables the hide command without any pre-configured scope." - }, - { - "description": "Enables the inner_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-inner-position", - "markdownDescription": "Enables the inner_position command without any pre-configured scope." - }, - { - "description": "Enables the inner_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-inner-size", - "markdownDescription": "Enables the inner_size command without any pre-configured scope." - }, - { - "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-internal-toggle-maximize", - "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." - }, - { - "description": "Enables the is_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-always-on-top", - "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." - }, - { - "description": "Enables the is_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-closable", - "markdownDescription": "Enables the is_closable command without any pre-configured scope." - }, - { - "description": "Enables the is_decorated command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-decorated", - "markdownDescription": "Enables the is_decorated command without any pre-configured scope." - }, - { - "description": "Enables the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-enabled", - "markdownDescription": "Enables the is_enabled command without any pre-configured scope." - }, - { - "description": "Enables the is_focused command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-focused", - "markdownDescription": "Enables the is_focused command without any pre-configured scope." - }, - { - "description": "Enables the is_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-fullscreen", - "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." - }, - { - "description": "Enables the is_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-maximizable", - "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." - }, - { - "description": "Enables the is_maximized command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-maximized", - "markdownDescription": "Enables the is_maximized command without any pre-configured scope." - }, - { - "description": "Enables the is_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-minimizable", - "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." - }, - { - "description": "Enables the is_minimized command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-minimized", - "markdownDescription": "Enables the is_minimized command without any pre-configured scope." - }, - { - "description": "Enables the is_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-resizable", - "markdownDescription": "Enables the is_resizable command without any pre-configured scope." - }, - { - "description": "Enables the is_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-is-visible", - "markdownDescription": "Enables the is_visible command without any pre-configured scope." - }, - { - "description": "Enables the maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-maximize", - "markdownDescription": "Enables the maximize command without any pre-configured scope." - }, - { - "description": "Enables the minimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-minimize", - "markdownDescription": "Enables the minimize command without any pre-configured scope." - }, - { - "description": "Enables the monitor_from_point command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-monitor-from-point", - "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." - }, - { - "description": "Enables the outer_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-outer-position", - "markdownDescription": "Enables the outer_position command without any pre-configured scope." - }, - { - "description": "Enables the outer_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-outer-size", - "markdownDescription": "Enables the outer_size command without any pre-configured scope." - }, - { - "description": "Enables the primary_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-primary-monitor", - "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." - }, - { - "description": "Enables the request_user_attention command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-request-user-attention", - "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." - }, - { - "description": "Enables the scale_factor command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-scale-factor", - "markdownDescription": "Enables the scale_factor command without any pre-configured scope." - }, - { - "description": "Enables the scene_identifier command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-scene-identifier", - "markdownDescription": "Enables the scene_identifier command without any pre-configured scope." - }, - { - "description": "Enables the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-always-on-bottom", - "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." - }, - { - "description": "Enables the set_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-always-on-top", - "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." - }, - { - "description": "Enables the set_background_color command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-background-color", - "markdownDescription": "Enables the set_background_color command without any pre-configured scope." - }, - { - "description": "Enables the set_badge_count command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-badge-count", - "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." - }, - { - "description": "Enables the set_badge_label command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-badge-label", - "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." - }, - { - "description": "Enables the set_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-closable", - "markdownDescription": "Enables the set_closable command without any pre-configured scope." - }, - { - "description": "Enables the set_content_protected command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-content-protected", - "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." - }, - { - "description": "Enables the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-grab", - "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." - }, - { - "description": "Enables the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-icon", - "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-position", - "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." - }, - { - "description": "Enables the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-cursor-visible", - "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." - }, - { - "description": "Enables the set_decorations command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-decorations", - "markdownDescription": "Enables the set_decorations command without any pre-configured scope." - }, - { - "description": "Enables the set_effects command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-effects", - "markdownDescription": "Enables the set_effects command without any pre-configured scope." - }, - { - "description": "Enables the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-enabled", - "markdownDescription": "Enables the set_enabled command without any pre-configured scope." - }, - { - "description": "Enables the set_focus command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-focus", - "markdownDescription": "Enables the set_focus command without any pre-configured scope." - }, - { - "description": "Enables the set_focusable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-focusable", - "markdownDescription": "Enables the set_focusable command without any pre-configured scope." - }, - { - "description": "Enables the set_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-fullscreen", - "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." - }, - { - "description": "Enables the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-icon", - "markdownDescription": "Enables the set_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-ignore-cursor-events", - "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." - }, - { - "description": "Enables the set_max_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-max-size", - "markdownDescription": "Enables the set_max_size command without any pre-configured scope." - }, - { - "description": "Enables the set_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-maximizable", - "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." - }, - { - "description": "Enables the set_min_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-min-size", - "markdownDescription": "Enables the set_min_size command without any pre-configured scope." - }, - { - "description": "Enables the set_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-minimizable", - "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." - }, - { - "description": "Enables the set_overlay_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-overlay-icon", - "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." - }, - { - "description": "Enables the set_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-position", - "markdownDescription": "Enables the set_position command without any pre-configured scope." - }, - { - "description": "Enables the set_progress_bar command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-progress-bar", - "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." - }, - { - "description": "Enables the set_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-resizable", - "markdownDescription": "Enables the set_resizable command without any pre-configured scope." - }, - { - "description": "Enables the set_shadow command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-shadow", - "markdownDescription": "Enables the set_shadow command without any pre-configured scope." - }, - { - "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-simple-fullscreen", - "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." - }, - { - "description": "Enables the set_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-size", - "markdownDescription": "Enables the set_size command without any pre-configured scope." - }, - { - "description": "Enables the set_size_constraints command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-size-constraints", - "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." - }, - { - "description": "Enables the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-skip-taskbar", - "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." - }, - { - "description": "Enables the set_theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-theme", - "markdownDescription": "Enables the set_theme command without any pre-configured scope." - }, - { - "description": "Enables the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-title", - "markdownDescription": "Enables the set_title command without any pre-configured scope." - }, - { - "description": "Enables the set_title_bar_style command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-title-bar-style", - "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." - }, - { - "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-set-visible-on-all-workspaces", - "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." - }, - { - "description": "Enables the show command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-show", - "markdownDescription": "Enables the show command without any pre-configured scope." - }, - { - "description": "Enables the start_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-start-dragging", - "markdownDescription": "Enables the start_dragging command without any pre-configured scope." - }, - { - "description": "Enables the start_resize_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-start-resize-dragging", - "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." - }, - { - "description": "Enables the theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-theme", - "markdownDescription": "Enables the theme command without any pre-configured scope." - }, - { - "description": "Enables the title command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-title", - "markdownDescription": "Enables the title command without any pre-configured scope." - }, - { - "description": "Enables the toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-toggle-maximize", - "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." - }, - { - "description": "Enables the unmaximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-unmaximize", - "markdownDescription": "Enables the unmaximize command without any pre-configured scope." - }, - { - "description": "Enables the unminimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:allow-unminimize", - "markdownDescription": "Enables the unminimize command without any pre-configured scope." - }, - { - "description": "Denies the activity_name command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-activity-name", - "markdownDescription": "Denies the activity_name command without any pre-configured scope." - }, - { - "description": "Denies the available_monitors command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-available-monitors", - "markdownDescription": "Denies the available_monitors command without any pre-configured scope." - }, - { - "description": "Denies the center command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-center", - "markdownDescription": "Denies the center command without any pre-configured scope." - }, - { - "description": "Denies the close command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-close", - "markdownDescription": "Denies the close command without any pre-configured scope." - }, - { - "description": "Denies the create command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-create", - "markdownDescription": "Denies the create command without any pre-configured scope." - }, - { - "description": "Denies the current_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-current-monitor", - "markdownDescription": "Denies the current_monitor command without any pre-configured scope." - }, - { - "description": "Denies the cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-cursor-position", - "markdownDescription": "Denies the cursor_position command without any pre-configured scope." - }, - { - "description": "Denies the destroy command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-destroy", - "markdownDescription": "Denies the destroy command without any pre-configured scope." - }, - { - "description": "Denies the get_all_windows command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-get-all-windows", - "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." - }, - { - "description": "Denies the hide command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-hide", - "markdownDescription": "Denies the hide command without any pre-configured scope." - }, - { - "description": "Denies the inner_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-inner-position", - "markdownDescription": "Denies the inner_position command without any pre-configured scope." - }, - { - "description": "Denies the inner_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-inner-size", - "markdownDescription": "Denies the inner_size command without any pre-configured scope." - }, - { - "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-internal-toggle-maximize", - "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." - }, - { - "description": "Denies the is_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-always-on-top", - "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." - }, - { - "description": "Denies the is_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-closable", - "markdownDescription": "Denies the is_closable command without any pre-configured scope." - }, - { - "description": "Denies the is_decorated command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-decorated", - "markdownDescription": "Denies the is_decorated command without any pre-configured scope." - }, - { - "description": "Denies the is_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-enabled", - "markdownDescription": "Denies the is_enabled command without any pre-configured scope." - }, - { - "description": "Denies the is_focused command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-focused", - "markdownDescription": "Denies the is_focused command without any pre-configured scope." - }, - { - "description": "Denies the is_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-fullscreen", - "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." - }, - { - "description": "Denies the is_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-maximizable", - "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." - }, - { - "description": "Denies the is_maximized command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-maximized", - "markdownDescription": "Denies the is_maximized command without any pre-configured scope." - }, - { - "description": "Denies the is_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-minimizable", - "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." - }, - { - "description": "Denies the is_minimized command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-minimized", - "markdownDescription": "Denies the is_minimized command without any pre-configured scope." - }, - { - "description": "Denies the is_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-resizable", - "markdownDescription": "Denies the is_resizable command without any pre-configured scope." - }, - { - "description": "Denies the is_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-is-visible", - "markdownDescription": "Denies the is_visible command without any pre-configured scope." - }, - { - "description": "Denies the maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-maximize", - "markdownDescription": "Denies the maximize command without any pre-configured scope." - }, - { - "description": "Denies the minimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-minimize", - "markdownDescription": "Denies the minimize command without any pre-configured scope." - }, - { - "description": "Denies the monitor_from_point command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-monitor-from-point", - "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." - }, - { - "description": "Denies the outer_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-outer-position", - "markdownDescription": "Denies the outer_position command without any pre-configured scope." - }, - { - "description": "Denies the outer_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-outer-size", - "markdownDescription": "Denies the outer_size command without any pre-configured scope." - }, - { - "description": "Denies the primary_monitor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-primary-monitor", - "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." - }, - { - "description": "Denies the request_user_attention command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-request-user-attention", - "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." - }, - { - "description": "Denies the scale_factor command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-scale-factor", - "markdownDescription": "Denies the scale_factor command without any pre-configured scope." - }, - { - "description": "Denies the scene_identifier command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-scene-identifier", - "markdownDescription": "Denies the scene_identifier command without any pre-configured scope." - }, - { - "description": "Denies the set_always_on_bottom command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-always-on-bottom", - "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." - }, - { - "description": "Denies the set_always_on_top command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-always-on-top", - "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." - }, - { - "description": "Denies the set_background_color command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-background-color", - "markdownDescription": "Denies the set_background_color command without any pre-configured scope." - }, - { - "description": "Denies the set_badge_count command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-badge-count", - "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." - }, - { - "description": "Denies the set_badge_label command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-badge-label", - "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." - }, - { - "description": "Denies the set_closable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-closable", - "markdownDescription": "Denies the set_closable command without any pre-configured scope." - }, - { - "description": "Denies the set_content_protected command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-content-protected", - "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." - }, - { - "description": "Denies the set_cursor_grab command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-grab", - "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." - }, - { - "description": "Denies the set_cursor_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-icon", - "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_cursor_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-position", - "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." - }, - { - "description": "Denies the set_cursor_visible command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-cursor-visible", - "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." - }, - { - "description": "Denies the set_decorations command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-decorations", - "markdownDescription": "Denies the set_decorations command without any pre-configured scope." - }, - { - "description": "Denies the set_effects command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-effects", - "markdownDescription": "Denies the set_effects command without any pre-configured scope." - }, - { - "description": "Denies the set_enabled command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-enabled", - "markdownDescription": "Denies the set_enabled command without any pre-configured scope." - }, - { - "description": "Denies the set_focus command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-focus", - "markdownDescription": "Denies the set_focus command without any pre-configured scope." - }, - { - "description": "Denies the set_focusable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-focusable", - "markdownDescription": "Denies the set_focusable command without any pre-configured scope." - }, - { - "description": "Denies the set_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-fullscreen", - "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." - }, - { - "description": "Denies the set_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-icon", - "markdownDescription": "Denies the set_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-ignore-cursor-events", - "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." - }, - { - "description": "Denies the set_max_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-max-size", - "markdownDescription": "Denies the set_max_size command without any pre-configured scope." - }, - { - "description": "Denies the set_maximizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-maximizable", - "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." - }, - { - "description": "Denies the set_min_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-min-size", - "markdownDescription": "Denies the set_min_size command without any pre-configured scope." - }, - { - "description": "Denies the set_minimizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-minimizable", - "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." - }, - { - "description": "Denies the set_overlay_icon command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-overlay-icon", - "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." - }, - { - "description": "Denies the set_position command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-position", - "markdownDescription": "Denies the set_position command without any pre-configured scope." - }, - { - "description": "Denies the set_progress_bar command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-progress-bar", - "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." - }, - { - "description": "Denies the set_resizable command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-resizable", - "markdownDescription": "Denies the set_resizable command without any pre-configured scope." - }, - { - "description": "Denies the set_shadow command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-shadow", - "markdownDescription": "Denies the set_shadow command without any pre-configured scope." - }, - { - "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-simple-fullscreen", - "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." - }, - { - "description": "Denies the set_size command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-size", - "markdownDescription": "Denies the set_size command without any pre-configured scope." - }, - { - "description": "Denies the set_size_constraints command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-size-constraints", - "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." - }, - { - "description": "Denies the set_skip_taskbar command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-skip-taskbar", - "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." - }, - { - "description": "Denies the set_theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-theme", - "markdownDescription": "Denies the set_theme command without any pre-configured scope." - }, - { - "description": "Denies the set_title command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-title", - "markdownDescription": "Denies the set_title command without any pre-configured scope." - }, - { - "description": "Denies the set_title_bar_style command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-title-bar-style", - "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." - }, - { - "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-set-visible-on-all-workspaces", - "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." - }, - { - "description": "Denies the show command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-show", - "markdownDescription": "Denies the show command without any pre-configured scope." - }, - { - "description": "Denies the start_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-start-dragging", - "markdownDescription": "Denies the start_dragging command without any pre-configured scope." - }, - { - "description": "Denies the start_resize_dragging command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-start-resize-dragging", - "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." - }, - { - "description": "Denies the theme command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-theme", - "markdownDescription": "Denies the theme command without any pre-configured scope." - }, - { - "description": "Denies the title command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-title", - "markdownDescription": "Denies the title command without any pre-configured scope." - }, - { - "description": "Denies the toggle_maximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-toggle-maximize", - "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." - }, - { - "description": "Denies the unmaximize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-unmaximize", - "markdownDescription": "Denies the unmaximize command without any pre-configured scope." - }, - { - "description": "Denies the unminimize command without any pre-configured scope.", - "type": "string", - "const": "core:window:deny-unminimize", - "markdownDescription": "Denies the unminimize command without any pre-configured scope." - }, - { - "description": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n\n#### This default permission set includes:\n\n- `allow-is-permission-granted`\n- `allow-request-permission`\n- `allow-notify`\n- `allow-register-action-types`\n- `allow-register-listener`\n- `allow-cancel`\n- `allow-get-pending`\n- `allow-remove-active`\n- `allow-get-active`\n- `allow-check-permissions`\n- `allow-show`\n- `allow-batch`\n- `allow-list-channels`\n- `allow-delete-channel`\n- `allow-create-channel`\n- `allow-permission-state`", - "type": "string", - "const": "notification:default", - "markdownDescription": "This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n\n#### This default permission set includes:\n\n- `allow-is-permission-granted`\n- `allow-request-permission`\n- `allow-notify`\n- `allow-register-action-types`\n- `allow-register-listener`\n- `allow-cancel`\n- `allow-get-pending`\n- `allow-remove-active`\n- `allow-get-active`\n- `allow-check-permissions`\n- `allow-show`\n- `allow-batch`\n- `allow-list-channels`\n- `allow-delete-channel`\n- `allow-create-channel`\n- `allow-permission-state`" - }, - { - "description": "Enables the batch command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-batch", - "markdownDescription": "Enables the batch command without any pre-configured scope." - }, - { - "description": "Enables the cancel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-cancel", - "markdownDescription": "Enables the cancel command without any pre-configured scope." - }, - { - "description": "Enables the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-check-permissions", - "markdownDescription": "Enables the check_permissions command without any pre-configured scope." - }, - { - "description": "Enables the create_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-create-channel", - "markdownDescription": "Enables the create_channel command without any pre-configured scope." - }, - { - "description": "Enables the delete_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-delete-channel", - "markdownDescription": "Enables the delete_channel command without any pre-configured scope." - }, - { - "description": "Enables the get_active command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-get-active", - "markdownDescription": "Enables the get_active command without any pre-configured scope." - }, - { - "description": "Enables the get_pending command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-get-pending", - "markdownDescription": "Enables the get_pending command without any pre-configured scope." - }, - { - "description": "Enables the is_permission_granted command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-is-permission-granted", - "markdownDescription": "Enables the is_permission_granted command without any pre-configured scope." - }, - { - "description": "Enables the list_channels command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-list-channels", - "markdownDescription": "Enables the list_channels command without any pre-configured scope." - }, - { - "description": "Enables the notify command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-notify", - "markdownDescription": "Enables the notify command without any pre-configured scope." - }, - { - "description": "Enables the permission_state command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-permission-state", - "markdownDescription": "Enables the permission_state command without any pre-configured scope." - }, - { - "description": "Enables the register_action_types command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-register-action-types", - "markdownDescription": "Enables the register_action_types command without any pre-configured scope." - }, - { - "description": "Enables the register_listener command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-register-listener", - "markdownDescription": "Enables the register_listener command without any pre-configured scope." - }, - { - "description": "Enables the remove_active command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-remove-active", - "markdownDescription": "Enables the remove_active command without any pre-configured scope." - }, - { - "description": "Enables the request_permission command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-request-permission", - "markdownDescription": "Enables the request_permission command without any pre-configured scope." - }, - { - "description": "Enables the show command without any pre-configured scope.", - "type": "string", - "const": "notification:allow-show", - "markdownDescription": "Enables the show command without any pre-configured scope." - }, - { - "description": "Denies the batch command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-batch", - "markdownDescription": "Denies the batch command without any pre-configured scope." - }, - { - "description": "Denies the cancel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-cancel", - "markdownDescription": "Denies the cancel command without any pre-configured scope." - }, - { - "description": "Denies the check_permissions command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-check-permissions", - "markdownDescription": "Denies the check_permissions command without any pre-configured scope." - }, - { - "description": "Denies the create_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-create-channel", - "markdownDescription": "Denies the create_channel command without any pre-configured scope." - }, - { - "description": "Denies the delete_channel command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-delete-channel", - "markdownDescription": "Denies the delete_channel command without any pre-configured scope." - }, - { - "description": "Denies the get_active command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-get-active", - "markdownDescription": "Denies the get_active command without any pre-configured scope." - }, - { - "description": "Denies the get_pending command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-get-pending", - "markdownDescription": "Denies the get_pending command without any pre-configured scope." - }, - { - "description": "Denies the is_permission_granted command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-is-permission-granted", - "markdownDescription": "Denies the is_permission_granted command without any pre-configured scope." - }, - { - "description": "Denies the list_channels command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-list-channels", - "markdownDescription": "Denies the list_channels command without any pre-configured scope." - }, - { - "description": "Denies the notify command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-notify", - "markdownDescription": "Denies the notify command without any pre-configured scope." - }, - { - "description": "Denies the permission_state command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-permission-state", - "markdownDescription": "Denies the permission_state command without any pre-configured scope." - }, - { - "description": "Denies the register_action_types command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-register-action-types", - "markdownDescription": "Denies the register_action_types command without any pre-configured scope." - }, - { - "description": "Denies the register_listener command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-register-listener", - "markdownDescription": "Denies the register_listener command without any pre-configured scope." - }, - { - "description": "Denies the remove_active command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-remove-active", - "markdownDescription": "Denies the remove_active command without any pre-configured scope." - }, - { - "description": "Denies the request_permission command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-request-permission", - "markdownDescription": "Denies the request_permission command without any pre-configured scope." - }, - { - "description": "Denies the show command without any pre-configured scope.", - "type": "string", - "const": "notification:deny-show", - "markdownDescription": "Denies the show command without any pre-configured scope." - }, - { - "description": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`", - "type": "string", - "const": "shell:default", - "markdownDescription": "This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality with a reasonable\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n\n#### This default permission set includes:\n\n- `allow-open`" - }, - { - "description": "Enables the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-execute", - "markdownDescription": "Enables the execute command without any pre-configured scope." - }, - { - "description": "Enables the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-kill", - "markdownDescription": "Enables the kill command without any pre-configured scope." - }, - { - "description": "Enables the open command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-open", - "markdownDescription": "Enables the open command without any pre-configured scope." - }, - { - "description": "Enables the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-spawn", - "markdownDescription": "Enables the spawn command without any pre-configured scope." - }, - { - "description": "Enables the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:allow-stdin-write", - "markdownDescription": "Enables the stdin_write command without any pre-configured scope." - }, - { - "description": "Denies the execute command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-execute", - "markdownDescription": "Denies the execute command without any pre-configured scope." - }, - { - "description": "Denies the kill command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-kill", - "markdownDescription": "Denies the kill command without any pre-configured scope." - }, - { - "description": "Denies the open command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-open", - "markdownDescription": "Denies the open command without any pre-configured scope." - }, - { - "description": "Denies the spawn command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-spawn", - "markdownDescription": "Denies the spawn command without any pre-configured scope." - }, - { - "description": "Denies the stdin_write command without any pre-configured scope.", - "type": "string", - "const": "shell:deny-stdin-write", - "markdownDescription": "Denies the stdin_write command without any pre-configured scope." - } - ] - }, - "Value": { - "description": "All supported ACL values.", - "anyOf": [ - { - "description": "Represents a null JSON value.", - "type": "null" - }, - { - "description": "Represents a [`bool`].", - "type": "boolean" - }, - { - "description": "Represents a valid ACL [`Number`].", - "allOf": [ - { - "$ref": "#/definitions/Number" - } - ] - }, - { - "description": "Represents a [`String`].", - "type": "string" - }, - { - "description": "Represents a list of other [`Value`]s.", - "type": "array", - "items": { - "$ref": "#/definitions/Value" - } - }, - { - "description": "Represents a map of [`String`] keys to [`Value`]s.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Value" - } - } - ] - }, - "Number": { - "description": "A valid ACL number.", - "anyOf": [ - { - "description": "Represents an [`i64`].", - "type": "integer", - "format": "int64" - }, - { - "description": "Represents a [`f64`].", - "type": "number", - "format": "double" - } - ] - }, - "Target": { - "description": "Platform target.", - "oneOf": [ - { - "description": "MacOS.", - "type": "string", - "enum": [ - "macOS" - ] - }, - { - "description": "Windows.", - "type": "string", - "enum": [ - "windows" - ] - }, - { - "description": "Linux.", - "type": "string", - "enum": [ - "linux" - ] - }, - { - "description": "Android.", - "type": "string", - "enum": [ - "android" - ] - }, - { - "description": "iOS.", - "type": "string", - "enum": [ - "iOS" - ] - } - ] - }, - "ShellScopeEntryAllowedArg": { - "description": "A command argument allowed to be executed by the webview API.", - "anyOf": [ - { - "description": "A non-configurable argument that is passed to the command in the order it was specified.", - "type": "string" - }, - { - "description": "A variable that is set while calling the command from the webview API.", - "type": "object", - "required": [ - "validator" - ], - "properties": { - "raw": { - "description": "Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.", - "default": false, - "type": "boolean" - }, - "validator": { - "description": "[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ", - "type": "string" - } - }, - "additionalProperties": false - } - ] - }, - "ShellScopeEntryAllowedArgs": { - "description": "A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration.", - "anyOf": [ - { - "description": "Use a simple boolean to allow all or disable all arguments to this command configuration.", - "type": "boolean" - }, - { - "description": "A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.", - "type": "array", - "items": { - "$ref": "#/definitions/ShellScopeEntryAllowedArg" - } - } - ] - } - } -} \ No newline at end of file diff --git a/packages/dcp-desktop/src-tauri/icons/128x128.png b/packages/dcp-desktop/src-tauri/icons/128x128.png deleted file mode 100644 index 50d87670938b3bbf55462227c2f8cb1e1f0e646a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9780 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 diff --git a/packages/dcp-desktop/src-tauri/icons/128x128@2x.png b/packages/dcp-desktop/src-tauri/icons/128x128@2x.png deleted file mode 100644 index e877266d3afac1d3351b5eb3d7cd25f4b9a1849a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30366 zcmeFZ({m=y6EFNcv2EM7xv_2Awv&x*dt)0L+qUgwW8-{(7jM1)!>M!8)tI^Isp{#O zPxnluqPzq=3=Rwc0Dza0{G|*40RIz#04Rw6n67iV`TsN*WeE{L?F`=ef66a2O(}CZ zIRMRnG86z9ZUq4Q-<1Cd=RX1fKns8X(Em8_f3^aU|8EosC;|C>?k};7r%Z`lOfjNJVO)W5+@!%oL{U^x(4eJmtJ`kNZqt_sQAS^K zlIlq)=vaxwvw^0L3FETfZ`)gbA3r^Hl{Y>iSCyb}U7ULV+%%ReT;$bqc}`W`JlqUs zqebb0G(j4`jG>26BFK?sh|+}qpW*-J^`IvK21GBh0BN|do2k5>mi=FOY%B4L&&1?N zHS6U@ZrNrx$$I;BB0fR(7>4$}NcEd0vb(*AC~ScU1DK!!3O^upCteM0gIiwyKDn6m z`dw?RY`+7_TX`iQ0I!qk|)KP0a@SZUZ@Ba5H zl2o{;5nhf|xCSVxa1-WMVnP6XKOmDlV0o4e;K<)n;0(*TQ=v}wJ(TWaWE-t(JO17H z)rucCv(H>dq9gd$Hy?8+h7+f1R|6rd;j%nOSgu}Kwf~R@9aSPRDHh;V!svVPe44$o zelj$Vkrs&GL$7;TrLK3>`xBuS?)&4x8W2x2a{0Wgdbs(5y;0^Ny?CAZ{>!CL%Z_g8 zh)sS}EsAe4;_{KOi3I==CAHCq4;rnYZ84g|KOXuB7iGHv(1jnH-wTacwxdEIQXiLO9@wWjoPH0o#dY@~q+XU-Mv z2;?fahXVPDv}XSFOMtz>^7en+7sLH4A&C>NVE}>`Erl-Ny*7p^WA^X)-|lvoqYKaT z_h9f#Ycsk3nGv*p$%%-_QowB`HrK)wYZsaT>B4}vXcq;KORGmXcK+zH;F(dMKmjuLrP+=1qHGYn-dBZ!+UDUC&bzxvRR|fDq zbObZbvC+#fe;tL%oay~mJVYFwV);o z&cqKn*$HeQ!qUQw5`~O&#<3FF(baTZ*vf;SnqvB~G2SZNSHUnrN9R$5UCByZnuM!T zw9TvehluDyY&XcJGp`{OzZ1DcT0iY}k~Y#-wn804#5 z1vm_;l$Lj{fjGj=XtrB4T6lyoA-btZu4h1;lkzVdNDaLJEpc6p<##!pdE_(C4K@-I znYfsF>K)Y~Ju$8zp54jTkH2hkGJe%w;ukl`adlfxQ~f1PFPE<>u;&N26Ox7t+<_^l z$291(HdfO;r=Oyegj;yb+pYG}_FogR4utq{1oGsC8LGNeB`Io&>^OsXhS`BMGLeN- z^)yL}U+BDKBS)hEyzC@oti83&a(f62$~#B2Qv5J_qZ6i)-_6uW-K^eeR_uZAk<;$W zubphdlC+a+{n)hKR@p;RUkz?Bvv(d(%aV3}rMjPV26`Y3dSg}cIV3xLaQjGma0~Fc z6{6W?77Urrb8(1xexApRkh3`F<~oPB_hd}xctThd-()3HANo2r7qq8W{Jwi95oZ^a z-Yc~RxOvQ3(drcYU@_xdxPeIvzhl<94@sr%%+)e8;ca#XuoI{%&PsE-;PGLqg}L$$ z-=IsKSEeT%_sp}I9S7hPBy2Wh`O-2HIphHFv9Wwe)^6nr+4rQmP9jGp2z(S^Q@890 zBDRY3Z(6nWI;#jOy(Pk4HFX@*zBPJr`VISK2)Ct$kpJ{|Z)WXtv)-*o?cos#Tr7{9 z9(-1x>npiz^S~%_L8&k%{Zugs)_Hn6x|{Yb9CjKUPEI0DCj?jc|N6V#Jt_yd@!voz z<5yI$L6wf;?v!5T9^iCk5o^{fxhoPG93H*`iv+`uVkVCD#29B#89+Ip4q)*@#19Ye zvz}s?%UNv3M9BIGE=VUL=xKy8R%-P7vmu)>s*O;e880%kn@fQio1X9#csS_80Tj zm5_EEPT^x&yWBl`}^1jc@JA1R~RXYxNeb>Rj-{tfuxWs z`TZKKHpg_$c5L7*_Rj`(Vjoho{POl%b=3u7`S*PuevWSENtV7}7npC{y7etjzZ}6f zB-C~jw`$GA-+5K!Z@vfjVWTJ${&T|pe@@i7v4*`p2(IjQJIS4=92mNRa!du$q9JcceUB;KUGtISl$QK$m3^;Dl2dq88e;9o zDTdMtht7h+Pl_2yC4%^5#0x3b$Yf?#PKfuU9!!Q7U?lEaZP9{v78ggG8?PT;T`H@s zqHoP@)ysN|JmrzqzN??q>op z?PJPZ{LHmgdOI@{)+pTO0YK0cnUn0(SiI6%J1=9bW&7ox%q?o!A!u6I$&`re)@POj zyMkFkvfY?4{mKBsqc>q;L4PoN>KJPm;+mF_%jT5LSI7To&S{3`L->AZQ|EaFX`vO-6Q`O<8NK) z>U~lXb)bwhBuX}mi`FnlNI6IG26-PAj#uKa=4DE1A=gSE(?2+9!-E7$D}0AVhx`u!b)87I35!TR|W%O88qkI1)ChhTH*EGzdL3D@*G7BMurdAmu3VZm` zW;K@jCvLCuuRhi%+`J-kSm#hWHNjlJR{r@#uHyZVa6-&2$3A`0ra;v2A2E>R1z^f# z1>`H0;)eLLI!IKQ90mUNIIMu9<+039G~YMP>q7WK^!rNKD5iK(nTjI_2^McWr^q58 zWqxiM26gi-F3V=q{H$V5TIvmds%4BS03On?XdJ4#f1GP95rQ(qiOLpLIZWi&l!JD< zBOW0)$DlzKl2)P3U#lje(iYp$*UVNb9aGB6uwo{HdYE>hmeR>pQAF+M-D-H&ypvJZZhUsv>jNxOAvfla;dC zp}+qcE=GA)rjG0WW=~@|p0PAzOAF&-H|}3kAiHHeROD6)tib$@)DY8D4^QUO?o7bK zfRna=6SLd}C+WS&k{Zp3t))8>yuNm_?mpkZ;^XLMSdO*n3`>kK564KM%e`-lI|(IG z-ja;1QfE5!!o5%vX$8M{$q=w;^j0@}ds9IvjWjNGDhK@+7{ zzt1k(w`1+gkU2ko`}28P53jw?cXJ{8zDK1Q^n5slGdk0^q2GeAx*Z}3tU0jO4`PHB zA*EsMMAA5zoguwN=xM$`Ww}5+2TQpNRrE@5sbLX)?u*cc6u*A+K6u zw_bWog~B>GIu~J#DnLh`>o_b?!+h47n+78}$q&o4T>D=lq$` z9~$AK$B;#3Z_I=cRemF5Wj+p`mp4kCEn5dc2}59w^-;__m025Ed1`t0<_e34U1;Wgm2DD`3@h2E;rPk7)hzfEqs=4o1=pPF#(wTjWe98f04| zQ!EKTuCeyWk*7clZVaP!w53!jk5(Nw942TTH$+Ne9XE13whm(Kj_L5=Sm-tTrz{*; zOJZW^Up{jmQrLrp^fy$Q9We43d7|yCtMW^`PUl|H@Hm$zyV$!wZUDTg0Yyi#1|)D_ zG0Xt*%yLjg9P3PkQY8qVSZ!X^zw+xn-zQBwnp?Id?I+Yfp@iG}`76D|ud?Kr$Mqma z?BcXa=(~gIjVv5i)YZ$Dt;xc2CIdyRR>8Clo@wwdECNUXFz-BMIG1dKLme0K0aiA4 z)dZe06LaHxW;(pB{YLpyB3F$7-If92yoN#MI3Ou8U$geHWlatU>yU@nqW-ec3t(wO z6dE|ov0F;r-SAuva}P@IBHlm1tpxaC3;Xh{g)kLi_cavUBV zK{gT80~Z_tGTe3aBpG)&XIyVheDySDe$sSB+IwxO!Ij%>=eE}H3I;_BsOH(5us_kO zRf}nunzm``0zxwes4kGmLBCJ9vUYsdU0%WOkUu;nzx{*tFH@Pk1*`o>MNq#pJ*#1KQ3?c*L?Nu(p_~} zXCB%(V{4y&F`U<;tMEK=1R(&z0I&ZzFt`~nDnc+5A~im1Xi)r}ZCTO4^QZ6qc3VR* z(eM6P^1|+cMuOdyvUh&&;-C2O(l;3C7c;3D_y|-Ed^tTBFTiT_R8QM6dZ<~BXGa?x zkPgu&f=y{fCgVk|}R$O+~Je#%ePuYx*u-pm#|G zjr9g1yp-k;8}~ac+}iybY3r^D9cZo&5;mfya0>ceDpn+#=irU8l8OP(*K@UIk+*JE z^+t96M-!OizM(e0h~Rmyr@vZje@+`0CMd7CSV3eyRHCcOY#Aao36Hf+5(p_-)OvH| zzs?oCDDhias6v!xDl#< zovOGWA)jr46wgYV@&Q8Jm%y^4WU(atupgnj9q!CLjDk_a-mu8bFD=e3A$1=fPv-J0 zwgH%3O~=T($ZJAgBUhZ`yRIAZW6aYEY#$Pl^_S)Kx2Baux7-=3X&F66KYYQzJ%m(i zM(7PB>V)A*y%{H1Yw>KqwD%NGVXmfy) z=8jF)@AM`1&ym3%LmyaQE?87QXsB z{N$sU_cbi(uhbaDn2>7{vCYXJVNp>nbGR%mlPwB|J8)LBMz|m^7T1=)FU>dvY%KRD z#8~$+X7In)pPBY8bvq`b{j2q=MX8FgP1slLL0#kr8$eZstI#=uf|#q+vrLZck2+bf zS&*2-F*IITd=C`8PYiKtnzxbgflPjrpm;+e2*kW4-`fs+oj;;NYcwF_%+v!Ph%*Lx zx5=w|z8cRH=@)Y!2-E>pO`Km&0{1RKhw;s5{R3#zD7QLUDv>QVWx6@3IMB(zqu{9*P0>S?h=2GzgsXD2IfJLxqY3>F2skj619b&=G9z0^!*xy%Jy`yBaE^|pP6Yr3$=fOe-!yB1ge-_I zf-`z5+X3lL>cnTCPtzje%xC4kM7JjP*Hz)Wxg8=Qzpg zN)YlC^D*FD!lR2fI-eF67F4Z%oA)bf8~7p92;hG&e9Ys@t|3r^$tHbW=*@7bLJyWf(b{7jS5kJMaS(+*ej;-j5YTQBi^ zy}#Y@DCTaaKjTO~st|q7N_S6%$Lx$xHZRKG0|q{HlVog3Z&R`&uK{FbE$f(a=7K@u zsVzmfbxVWuQiwq?j=b1Eq3q=3H8(Sy<7~GF2tz zy88UiM<$#tyWsay*i%fh!L|5Ihk5T`?%N;xX>pHNNQ9v4^*x`%gx>-mjEpxM+z(Ns z9`dug`IRrp3q^M*LK`%RV+rQeZlgJ}bTHL5(5vx*DbY%7Jc?g$@94t;?N(Zg+6SXX zU0}7+1g>Xy4zgve4l=E;4hozUWp7qvDd`mLjR_^VgDHHmR@#|5?T6-5Xc%@Q6Q1x0 zI1f13GT{-28iN{nSdI`w%j>1^ZgvIS^_>_4GzHBKj=N(;Zs80%t$y<@Ml8eXrpd)J zgaXyBS{4o`Q!wI8RAM`OBln?#pQ76VJ?$Qz;I9&TDyaYV@%=ebg{i4vbUrg^5g z$|t6e_Rxl>6#o#@-!Pnn6)O3vixu=Yy%Q5C)+0T#DCDS4LIfS3Prdo42_ep>{J%a!CQf_WLqbR+XAxcw z2MehRIQH@{NU!J0b<9w5n+rzzX_RY*&hV)UDV0?I_PSig9J&4DVtd_pa*-%oDnIxo z2cobCso@_Wb5i7{0RJ!FK;^T{aLCsxGx*3116~_LyLj$(PQtQ0V)X8yzQYMrmJE+3 z6*q*FDMSG$d(_ZLFVGDV*bYIKN$)Wu?A3RhUgB$vfDE_Do;D4s7O zsoiYfjE6~{@g7f$TN*yaZ$78Ut0H{ngnLmF49qWMu(l{zM4*8^4LC$fINT}}MBv)b z^2;ckoV(~Zq^{$^?fT{8aNn(BzQV|3^0Tn{8#n)31SFn+h2!=^=dzct)7RDC-{e^O z8xCt!WChCBez_!uSOwEMX~l7V3^)&zgv8Wc;I+cy9fR|H>Bgc44a=v;-i>QQ2iU;!~2ND&{argCm zc6?u`h2Wz8xDKLzD>p_D%E;{X9ZsGuwUPD4aXxODXcKqV=&A3Rq(jaCkzgC$o!btB zy4bzfdG&OpuD`5@>M7t}j63D2(gqGke@T~I zZ5Q>khK-jUBHxItdbpPO2ag6?#1OXTZ@GL0z`=)UXcK2-_EVwGj~UtW2g0cdPl)5u zgja-En88P#J*o<*h5v(-Rmjl7emjnzx-X)0Jh(+c(R4LAu^6<0l}HOKhHOD8 zhzV*N7sj&iu=%7R2)CGrkJa078RC-n-73ak&;>`Dzhz;j0vnWvYSLyJ)F1307HQ;O zyz(#;gjkS5r$`0e8$*K#&XxhMtF-II@{Qqz=bhjnzu4$p5cGTTKX%&WQ$W;UQ0Q^+ z6m6Fb?$cFVwP%TtdHIEOXq0J+ClI!PrZL0Fm1a68-)Quv5@48ZsN<@zDzql$p; z=lc!|&F5&bNccg3E6~|q=-X{7@fIscw4hC}lyIG~I3l^%7|Oy2R!XE^|_>$zE)Bq4NhFOx04iZ0=^ zg7%N-2G|JK>#Q0SBWsq=7pRZB?2h+}QU4DfXIXvCa7?ii%3gO6dh}|Jk|v?PY<7vE zUV<_INP;`r&HZh7(Bfj|B`{i$`p;Ml4>k73fM$uM=bonTDY zygF{6bu9FeQCh65B7TfK_c2?>P-AClr|$HcxeQDTBvmGa;5IY6m;MWaTeLiP!Dj>Z z&cv(EQ^MqHpT&)bLGq`gk=^m;{SY265m&JoAID;`ZBEn5wCH}2NE5#mK7UfZZydRt zj^j@IG7NyZa7%<=yiQ%o?pOam@weEge``+PM{iR1Ql|heQ&Q36sz+)jIKJ3<{LaGP zz91S0*V`2exjvG|Wq)64?Z~D}Ja>B?}GCJn?X`-J2Y4}w79Gl+7_X~qr{OcMM5 zYM&9n)dnR1JZtUE-`*PD5gfc%InIChj?OAPdd%_5S~#iE_>Ou9Wu5-e-; z4`!#j)X?RE7yq~dXbJQ`4J)u1N{L;z*t-^RS*={IP&JcYT+3z!4Bcm2D5p6LKzly# zu8J=;ROKh^V!m^VP=ds>Rr`dqez`9prAev$E{2h{PHuXHL{hhCzng-q6-$glS%Y6) zNZzXR%f5=Wz$egmI|rTas}6_wEd z3b=CO{MH;9JP3)DjhrG^&iNTTRyoTCRj5VRE9E_ktwua1bta4#4mZhX|d& zT|k;mW1eH-;8kVQchQodN;|dN{!Uc!Dc;TF;ceq|s`aP)SR28lp^QP0Q0Na@GIuGH zUBIYs(H3P06P!^Mf~eBX;fCv;7ej}}r7mcc{U(p?29;Yxaj@C!|9ko`6{FHABT zgmN3QZvk_P{t@zVo0N#$mC8OMg!_Dzv6K^>+B-D*w)q)}IXeBBJ)g*W+J3iJkdXcg zEpCR4n==2Y6qaiq+4-p7wA0xAIGiTGW~s~rh!fu(xlMnYw=DL-0VITBfldT1X*ye< z=mkDgf8&vmA@- zL{#^6N?9+BbAdTKA&5k&?_RXD%}DyXPuM>p<~U1w_VYQ&g%Iy{&UP_#wYNITn{oN} zAM%3XfI%;1FpthhK^;~Z<1oMz8lpL|Z5;zpFbD^uK=z^JC>T_c3j3UwCq($*6d2bN zq|`4}k`EvyC~H95Pbx+*VLJ9SSbot!ss%wxq=Hub*9;^KqI=KoPR7&ev#627TX)Z$ zLg8iNxIJ+MJ%~HFyLVR)r-rk?BvS2aT;Unjc3ju_hY3)x-;@PtfeyTzo%;`=-R#d+ ze8P{k(>AAI*tq*s;gQ=OaPHbVnq=29zu4Bs$J^QZN!(Q!4(kMi-9Nr64bD=sz3~E> zanOh_w6ApFt!Q~)fZU_o$HiIDV7SwcxKKpG@KXXhCFV&M(S{qJ?Qt;VF_*jobSw~u zblGLx%LG_>Tf(`8g<~tnkt)BY$JOKIe@nZ`%J|)FKMd0DG#*OMwkUk~Rr#m;UiM8) z1cZ5F#?SyDa-?4=1vnhIaCd&YU>NK1={m{}0Og|L7@TBzGbAGO?~6|49rQO_GiepL z89J}eLTDto#C2>wM|E&&ryZz%BxyNerX)3xW3fq#kcVA-GibvnG8l))W9GmK8HEwb zc;U9-Qn0NDP4M_DBkCQvD`%%JWJ+GJXRSy|DO*6>uM(dnoZrq?m9eyWV$+Ms7R9FE zQpDr>YM|RhDnYr0u+>;+xgK7pJjly?d@)4E*Eh421dHcTWzN+yyF=3#{BNLm+h z`!My?O6(%&@Ry}US%Rw=3z^&_DX`(aDhYjJLYHVi^)s0jIttv(o%fRIl z2H(0yM7lioZA9eMnJVATU^oOgHMt$^U_u8`LNkG4c#H>uBJYOAEFyD_yY@%}L=ot> zL-AWhzw{{1InCoa&ro0ZD)0f}W}fBuH6jcHxwysX0Has7Blo=$d^RpifcixWR31{Z zJEi+|mb%9!?`bL{VCdtm=m;@P11)~S4l0if1|9qb;*Ziwr&*^YD}jpS$_P;^YsH;HN%G;$)+O+@(m}ubW+NRVr1~=$f?T)wv5e98 z2n8H=hWv2~5E@jHxw~HGCK&&gmdYP%1bUtl=DJr&x^K=9-oCF$vhOV+Z#~i;^E;H+ zIj=XKPULI07g}8_wXHByATlv8H&#af10?0m`%NJR>M%6L z>pYz06amMTMFYo?8N`h3BnZScn2<2y{gZlk){Zi&{VNHIrfr25upU37fY7cd|pKA24%M$)aicm}q3yqw5D+8HQ%{)=*I>hq0 z^9p%_8&+jL)mXHCMi|szfFYsF54ps(#t4=a;xR<`YZci7AkGQA3GZ69ou{=*zDd4lKQ zNTj>e+wj*YSs@`_`<@7#qvHRkxr4FW*6)di6$ghTEL zA%H{AtN3>EoK<_78CoTz(64_Nyu<0?ruSd{Jb?5uH}9Ri&cX9H$yP^(6QzP}kqD!V zNC~0=p!m_|X9aqQ+-?F$i$(V_8FYL({iQGF_G*085JqG_W78M{3qoi!+1GE5bU?Ne-6lQ$komsb!R3<0H%aM8RmC*%C9hZeRe zF3t{B*jhg(JGg-!(LCD?90Z;J2LVY-c*+PqosGdhwNCu%+RE=`)H>`y0nhPVPk>E{ z77t8$d8yix;I@()iW9FFR=xfO+r;~rMAL}vE>nWimw095LeSE}z&9V&ms z>uE9WWUv2g-uv+pJN5tr<%zuIR_)EIk~)Sxq#A!RGp=Y^7q!uFsp3K?zf2{YBO1xI zDQ!B8Y!a4*p|qC$gD&Q)QpQuT+n`0=yVz)nF<-y@#W$GE!=&|1=0~dgzpSjDs=|4P z<7qa1QId=Zm_X!_KXzzR#q_y*kuat?z?p)l4wAhjUO_Z?w6MXt+6$d01K2y7OPy!B zfAdSpuQUQqZmuXFFkIZ{c0wb20~1Ix8OX~X1X^BH%enrd zsk1V60n2`p(T(Zn$_($PQYa#PGr;<#2;GckdsdMF%-TQHBY0S#FZD{rUH)g;RRIgn zQcM|+K?fTb1Ak938P78Ex+8W=EfSC{Go~y9!NGnt1Z6bEBspTU;{)~`A%GaGgCYB% zq@t+`dJmdkdV$^+SD0O-i+QhY?+5`t-#EzUM^G`$O~%-4xBzu=r63Tt=`G`F^#WZc z6>(XU+w28w6N$_cm8%?}@rqf`AYvz=DqWh`yHy#+0S2PG3fDn~zaD8D=>gh(K< zuLW3gF8q-AH@m>X@)TUS-Zp==9}Rnh-M?`T&u&xIKenP}KRcZiy~IpUW13pwaQR)f zeyUoxD^m*f_YmrXM%yb!mgjY?F@r{jrmum(*>a|ZCF4nh++$P(e_nPf!#bsk&Odx8 zU!^RX-S*?xnWJ#nFqA?WZjWPI@3}Yx(n}w1Dd4=;rbV@bPr`Ynfzj?IfkAAnDG}gN zD_dk}Q#%!jeDFFsavfN~V(h7pRmCM`-NT|jaznU5s?jwpIUSdl4j)tRyxBY`F73h* zBjtlhMiXGEV~T|$%A_N7gVaN@!dxI7K4YjTul06N z8S%bkO3A%g^nX(Kk>ziWhDxu;;{&(8j=ts9%V?9Qoq zg%nMYEUMV;E%zRq{s*@X<%!;Rv3Tp5HO@AVm*)4)3!E=^hGQE9K$r?DTv%6HD||tb zB5q6?^@+z1RP>(g<5+@x30qWr3Ib%?iTM4G_g8YwOY$c@Bv_f*CTf0_!-K~uc?1Ko zA}}@un2NnJRgBN(TWVVk=eQ+%qYhJKA!;^f3$ws8wm3&x!uD3hanR|lCyUcf4E?7b z3B6(Uy1}{D+lO7FyW?MCQ20u9W>|M(T`$w=)Pmr$+^jG4Z!oT=CWm)+vyJLbIRI*- zuIZYJ3kQ=Sb6rzEDsgVe_h>5Xc>f7uyDF^aXALgTQD{}^`NC{t22$d0CSvV(796h) zpn~h4qRf1&TDG4}M9hzDs$1SuNQaT0AKE54|1?&vs-PzqQS3!|fi5Qv8B_`N2~F%| z32jaYtuS<8FA=#MU5u(s@!&rB*H;JQ_MPvCvjBZYhu&?Ft;D?uSFn}0t)&gB;LOMf zvLynjY#0O9hVZv4A9cPRI$BTIAVq({XdT!Te>8JO?gJg+B4Q&t=bad`I{3-5HdEc+ z3*sGpOxb|0qXm=dm)m*fR<}&Ldyl<8kI!lH!-u)K>CF=k6L~S^r-`C1gbFQ)h+XFU zWREoyxx-PlEqt05aYVeU=vrDxh3ID`HlsGD>&=CXx4-mOBwG7x_T&DA&*?K~i)k5U zX;?a;SugO6=j*{oc@@zXNAK&;gS)WaaOZOGzim?CIIl9TiZ=F?WBV{OL_0c>i5#UkG31X$ z7yaC^D*CECQQ~O99j>(tMI--$6yxI;z9h>$NVrcGRC|4QPa(P2!W2JmfY9YIb4LTdi z-T2*42Im*K-+S{e&ZpaVS6`R4IvL-uxA~JF2sH=+syH<#LZy8&pdMPn_{$~170X)z zMVTZH)r80?&1oF(vbGQnsu0w;Hg0_=C+u~|(XJ=u*ujnwkiYzmW8?YXP*jVS^VK*> z-} zP8HtVFQ%`W0&kcQ!4+FVhPyARK5(DpR&lK#?cck_(}n|C{~da;{ieLOx{}Oe{(*n# zz~j`mFDKCV7AHe%}gb_Sb?U?bYG7`K*%cR!<-=*_mv5P;S7poTn*BUviEZJ zn&pJDOJsj7J$rFs_nM#lvh#C8Y5||;zDRhP*Zuvxh2>c*Ifrl2{ zPTr`pH-F!B`(WeedYPIiEBp7iA_TwcXjx88^oO{~*a@HM$&Lh)mLO{CDO3|;v|pA_ z+(I4h4>AMf0N7ZDNa3aAjALIUnvRs*9|{M5omu|c*Q)2*D{8#!`JRi3@BRs|-mbEn z);qjif5SJESMWlIC3bJASXQ!MqP5W0zTS9+ssk6`q}a45S;NeFw@#$+5HAo|AHaWA zCgRg~;zqUYOzDgPUo#du4kVMsFY(V4&1wS4w(_|-R`;xIB7afRoq|*U?xY7*3h2KT zxqeRbEsRI>qdv0hp3^=2-i%|GYrmfh*sB^ki4CeZzHe@pWkre+jf+E14X=`+#SNb2 z_i=lc4rwr(Y1+y3aj9(E=h>uqDp(QUwCC{hCEV(3RA8{Y$`B5I=miOay0LAfg6vZ$ z>Asj7dx(6BpVf1F`hNEZYHeqbfn4xynlDhT0O1{Ag2Vn zNe05AzQq%7i(0^|%2!vG;Huz4NOv;(JBx=-_X*f-t}C0I2kbtCOe5BH`LtipxJs0ByHuT_GR1+^Wc_>)vnQuXV1)E}@5cB*!z=#XGQ zBDQz!gUTK`lVp1@R2^U+R9LN=qc45d*E98$@)OW2y{-MdQ~8sl$q2r_uhvWXb$-Mt zu)ET-{V0*8y|C$AZH23Lvv-MDhpVgeJ@ypOS?wy~Nh{F3yqx{%WRl$rk3I@s13}c{ z6kJ@vIyoNv0B#qQRg|I*0CR2>n(}7ub_U;TMU@EZXnpQb<4kAtdJ{S4EPngs{HMd? zM!b&a?r2{pYw{lK>T+LGQTi(x(u~|-1?EZhOWEtl>?m+OL&h7Dm3d6^B4#xs>J?z^ zgbb8ut`>c*we`(oLLp8-{I>DBKb@YF4tR>3*tpG=sT-$5Hum+_lL|CxRSWgN(|UJ4 zU7E6BZ&L9g22MfloC!U3^nXu)_jc9Ym{TSspCC+MgL9h;LXmj323UfOx*y+dFD6-lg zVxy+5vY$g%EkZsWk2h%vaNpZPalIYgZoDA(+CIz)`Hp3ta>wH>a2r~{Mq>WHH~+{n z{`Z8C@Ranw#wZDdzF{^rJXb)Bo8}=T-GTi8lF*i2d~kgfy6^(-u={{WgQp8~`p0t! zt@|hbCR@PHUflZ3`@EP9I%ToEP19iCu1Az^V$yl99odwKw|=jgpm(`phKLLDNsp=WE)?TpEPIbC)< zXSjqDT~kCz z{s>7C+Ac5k+`Taez;p~y+*1d}w4fNqkV|8!b^~@<;rF3nIuavZpe8!@coA#Yo>xuV zW(A5>aCn;jjj@sM=Gs4dNbTL>X>hRk^8nN%Ar2zyNtm|Ty!yvOXu%JdVg?CA?wmok zO|iM^2?aDnk1&M&bz7+Vpzn5ICR$1~UuAK3kS9Kg2xC)LQxx7F%-oz!!<1t#fA-paA8-(ij*z}O^tp}$Lw{!tX%PLy-(pU zw#(iatYdE_SD4+?31V}EMxy*4gy!nT)WpuQ417&Sb}EIGj0=Ru>SjP}w@DbGr8NA9 zI0kL#;sZrHxF0S&FnM|xQ=jl5+M(O?x^E^^d)Ku%>2g}@aFMa%>)gui=U>F_g(OHW zFPf6rn3?f)O&;XM*jEj)X46CisAN}dL7!&wdJJx!ia*t;`K18RkxV&e1u3ga4z_bLivMA(M=MW;GYk5aykGz1g)0`({lyvj=lcZAV|{vAYk z@J>{o_GO*%C|yF5hZDo6%>cGbh=tefyS|qfQhiiV9E`ef9T`t?(LJal*KS&fT!gQE zQS7G;9dkTdyS=WSQgz882e}Vtz)ZVGCy27see|9x;r;py6h0h$4v&8}Z=KXnxRCZI zNgSqJI9u);)3rAAV0M>E{Rk06*EosO^U~XNIkY-_OiKrZd0)ag2pGDyaA@3JshOh2n=EHN8d`YaFq!@Zg0tKe6ho=8fB zY5A7{atsmTmo5ZaIfOPAX!;L?C0E|0ZVu`x~LJ>3)K0c7RbMx1Vn#bz-$9Y%49$C9{tL%j73I zgHM%1Kpe;RwMxw2%Fols-|Fsqc6X;auALEqH%E<+ftUO%+SH{ex3PJ7^5bm{Ewl_Y zfUX9Mo829RF>NbtdKJxeQvKt-{JNTSa`!4Du_s|flDCf#^RiJJyRsP{N#HuP0X?j^ z=hN|=q#CNnh19=3shjIMaDsTv_|xmNdM#LX1&3qrV026x>(lc7h;gM7g7O>GaEIb( zN&x^5;WlvM=GCVbs15@7?Fuj#>zf4mGpUR1nF{lad=$PKT5?aG>boDVV7K<8V7n_! zsg5Ac;gc`VMjk)}vlj7dfD6`dQ%Zffg0=-ku$Zt7)stTOv8 ztsp;lFE?22BI6*hAZGv_GF!QLR7OA=lnUs%_&8m7U+_`ao9}W|nc!+GA*)y84Q#vW zX)UuGt%Y=y>#Z?2mCU6Dz=%Oin(-`eVEvhBx1!|K^`j8f{T?YstnM_eXhUu7`W3l& z8t!0aDdpQ(yS^(Jn(f4fRzooqgUzzsdpKL&6=a;e0t2vPmhs>LQ{jx+(nYvsCT4`j zTD;vy3d9vpt)G&B^aoe*E97EPr8%yJnjqcP>U?JEnvF;Ahb|5;<83sE&{lbPdnW!U z8I7>S)Sx5Y3>QrYK6mb73+}V{;x=_V;+>4>GY>$DReGeo(+D!w(C@qr;P>i0lPj4&ufFf+HYIURjPq_ zwGhMMrN1~LPTVk z8d1EauKBZ#o_<{$*GKu!?nhJp#*pD)mT6D~>l zs5@Q3Yjj?z7BusDS>Gr1Ogwe*{97m1Rd_lBoFir`=U)maU024l#RQQH=0wo5E$Ctd zjACI_f+`{LpQ?44A&9$b_5QwOf6(1j=Ug3D_SK-|u=E-z}t3yII^f5RGWezH#p?L5{pG(h1WR{8uh8 zIzZrFB1;AU*gyaG7XWT;f5QVWC*Ega3Zvg!7`a@VV#cP|?CSMLX(pvv(+;@jFAt;u zy@(C6RA9|GvI^5(dN4`oyK0#ZcmaWbsAf9o2y`E?Ac0lWj+}_HfD+shuS+6u5=7HD z0yiAE@;N+k+v)7}x|^>v@4;+w`lT>+oq8tyL$sN^V<;uE;y5{EAurX!iDgbiuL0de-iRl2rm#3(#r&xM`(|9GvjU6l z3?o8fP}fTG`of`-Dr8go;?>FS5S&?}|NWo#&haf1=WXNJuFY<fNs+qP}HJO1|jUpz0KSMzp`bLN=inrqI_Iq2+Mk4s!`h7J2q^N!i9`_1i}&*wvw zpl}x{?4^`yqoOlM_kE~zj{f=&?IfAyFe=T#F+c=&TIndq%po6nVx4NgA}|LW`2n_ z1Jx74)|HkEC%W{9YGjmBc37EXF{=>a+UUZkh&)^As8>wi=y9sG0l*KFH~7l^XS&JK za@h`n`6Qri6B%pf8yx#N{v@OrUE(2XQ`#l`yh@7X0RMXEqTn@Zo?sQkMo~a3b>27d z%2+N0^nFoWS91ew(xIn5mb;&YHPvc_pC@jdduissN7-yEPM_N8aT!tCele8`Qke~FbSZ{ADy>H(5dk}#%GeB+hO=1siw#&A2d8(+)1}hvCZ}L-j zYOn~furWE-r;rHW0r;Iv@M&BqU@(%9>RbKC^*cy(ir7-)LU{NL`ku=!+4QTlekgWh zoJABFx@^}yjxdBdmCx%uf%iGzxC`h8*?kse#R{05gZ@C024w{kg1I9WkOBE=f`_?A zY92~<_XFV1h`~KDbYPVv3Tx`ox`BETW1$<=snz^@x)l!BfG8aEVhiS(N!EwhXNUz) z@eQs#su`#>&Fh~+L306exD@&7NS^2;q~Rhhyqij3I;-DZGZsL`K%f5+vn7 zDjP4IM~o!#1tCN-qsOUX;n#CSA)-%*<5tmhVQM~p%)f)x4yqr3SVq5YUzsQ0{1ktS zZ=)yqbT@^R zD8LQD;_0|EknU<>7LW8vmhzJ1<#=&C?(_HYX8PJ&1!UET!gP+zdf}{0BlF`ytQTsHp^LJ1|5^&jLQlzphR3%8g2=abt@@1v|asgZ_VX7%Fd6 zUUGDl4BGE3{eAnDu0bHg-}C3pWoISG6Y+na);NSpY}93HGu+p=tfb9nU?5$S1RxZO zg{<;e-Jh1R>M*fM+N(MaKMZj{Mj!ks7sV0W#i>*h4gX>A&71dbuotZNsg(kw`_@hi z;NCnv`Ib8k#=j>B%v0xV*XqN@2;6JL@ECToCVv8$ZpJ`2w?0*__LMaG^*50@QUmBE z!R`bb`K^t+d9F)*oZ0gKj0ZLLzlM5Oarr^-2HifvYpw6c_yn?kommGCFl_Ea)mrr6 zypa1)u0OzR=VkukA4Mjk%!iWO-CmEiLMy(XYdIHLQ$pX{RrtmeR@K4IOE$~OBdlRK zCz-5|r0k*%_gDllrd~RbhIh_$5MFjlMew@yf$gc!Ofj#L{@t$`lm1BDj}%4c?^hF< ztD1V%^#X7mv*CG%LS$n+$H7nYSv&*prcRX>;c1OZHKxDyCIiSRz@~8hNl2jOD~Wk5 zZ-!OAJpgJKys9BBrk5qife+c6@&o&j@2OwG5rYt8qw2dPU%FGmHIc9bn^>S~Zx0 zBgiVa7XzcI85Vq9+41L=ETubZ#^t5Wz~A70Kk~>9XGy?h@X4C+LI%ax*yX3FxEQDQ zBPW4|2(1GKm~`h zhV1%fBg&fY=nNeQDKIsgFeDQAp&-(rpb>bbICcQQvH5Y%pp`rTTqQRkn!9gYpv7kx zrEAu?2#cRMY20IPck}vY@8Y+2PG;j4hwby`GH27DGxyO2>ZgZ~g`Ac}A-?1Yi+qkv zEo*isU1EJKJ7OQ>llSt;PYYdv=6a&VIwWZFp)u7tox6s{;{2)e`2M3 z@ADLqSeBSg72)Og>wVwH*Rgij0|-Eiyv6gZuxE!NV!?mpAx_+P$!G<6#)frAz{nbE z-_~2$D>-vBQ(p-<9@u|!#%LO4hj8YT;bJXT&*s+_R=%1tPNa84E}~+MZ*>BS28RyOdM^VaT61YWs+Y_+g3njt zr_woKp>yu~WjJmI>yBq%S){u*T(J%-XKZ{n(t`}&a&tRovEOhXl0 z;;WXZcOLmV)!*sWd|W5sIB)l5M*upC%>?8F9`V#u*9c5a43$N>#VWU{_+X@RkXjCg zr9_CCpVU8pPAZ;1(A7)$nin9gWrp#C($p{eepuK7G$tk5l3t?wSiNYs<(S(aB__);x5-zJ|;=8YuoWC({o_aW4 z@Qljj3PXN#x`Ry8hRRAaT9e1p6Ip4{h9|9-g{p*83NsIC&8&vzv%upfn7OysXia;j zJKUqm>K&_5`NY(CRWzCXl2f9skPGd-`^Uha=Qb`U_9No>5ubgf8utcGmk@jYX)NvZ zJ=WNsoA3?#H`o|1v~2&NQzCc2cFT<_beT}0 z=pqmoBi^PRMiA6tHe(tkXEE&Bb&RX#*_w*Tgc^KtYxVmS*Dc#OufP6-V#EzrYs$!m zbqn|522pgpFD4n4`Ad5fOD7_TdVaw#n9N}M|mF^BR3&vFAww{L z!-D8ekKC;nJ124N7tT3r^7_L49)r+@IETmwCB!9sd7+X1VR%tHSJs0KzL2c~ zyXDk_4qN@p$o$0E?|Qk6dcn+rpZNqz1m>ME3SNCICfrUKoW|1g%ou@sJYhPle}knn zg?@w*^V2*nKE^4mR1*x+gCRd``?Z~mT%35%@ZJ9{MCi7^8hO_>)ir@>4E;*O;GpkA zv*MeOu8uc0kQq!4!eGG0mf;>x>`AiDr9*6;jOCgE?t>XJ4IztnrQ(xkgZ=%5>pfE| zzN0@Zo&*(5QvMGXpb-|(`v#WMQ)z3}=#KIut`Wj0#)gwllFzucRL-$ZEj@IJA+~RB z->R=mSZQ8*=;=4uk9o!Z0JK~Zs>+l?7A-^2@}bbgC*LoF#TmDqf35T4hv8XQ(?b@? zMr5X?k;SZG9n@KA-T(se2Z$dLqEjmm$o3XIXe+kjXPIr|Z*WdX0l{FnPS5aqO3=NS z=T)0Oqu#H2%gL1fY7%lvK{Rh_eC;DoCm%gmmcABvoOSi@Ng&+p0v&_fY>Whz|%b#V^!^={F;KD8W-m+p-KW!qn%-POv*@*UQ2 zfx-TZMle<6bwYDVIgZt;z`v1%oen49u4j&~o_mJEHcQST=?(iAQFksH3ed zn+CN*qGjkrXf2ct=sVP?1YX3Yc~XUn2=dQ^8RAdzpL#fJx~&_|8R3fYM@ za{fn}RER4?Pck5&lWi!~<>8Tt2igI0E)as@)_j4MWj95H8}`r>SsCEIb3@_NrUsU^ zeLNI+4#`bq#UH&TyVS263YnnU#<;4HEBmK@U5U8HnV(Laz-eSBW=M7(dN`6b_gYh` z{2cLotc3Z^_+uK(Yf)?&kD!>6w?4PWRDK;!G9Ec7GJ#VvF62AoezM)FO+j6VdB&3U z8Uy77)b1HJJPR@omW`V+AsMCeKTgdF7*3fUkKRCz!mJ6=yuIbj49u!C64}jrZF&fw zkNJ#5mXCyC+#c1FfyqvsE9K-W#|_?_P}FZaRFgew)#*XVodTyGV$oqWCVN5a{*~N` zriG}73_!H9OHJ7;pMbUe=u5FDNIgYieU1u|(`Lgg|H|{`9Q5+H*u5|^9 zeVMROeyjJx-ZQ`=PLQfW3&Y!YVcqW!9o{#8#Vt46Tc9)S_wqSuhay?V0{eFBa-3W& zmYQ<0dJfFN#;h(GYKp=jts{y7h?LL=@PD#?g47wdgj$@uePhy*s7)e>dd3MG<%$d2 z`HS{{LvCxdn1KpnmMe5P>T6D>7@Au@?=K(=tKF89Q7RnevI7)jiIT@&>e<{n>f=<- zva&~3q0Y)p3ZpW{W6ILW^Hd%i2GhzSbXDH_L#9eRZ@?$O1HFDp1hVJS!`Oj_%SS=z zJ`%tmN~Q0`Y&spqO1@scUSq`6z|y7icR8CXl5exvKI=?A@lB`;Y9a(iYSH$W^39TMLDnvm*D#s_pwWHMF7=3qntp+IN$H2d}9|Jwf z)+-V}?#hTQKTI%Zv=x8-3=f<;EcBhNPTA0Den^-290BAEPls%>c|V06J=x=XOfM9n zN?Rtv7S(MLJ3#?{)A|5XT~Mg4Pbf6u+06dpB`1|xBN13@k!ifKIpDVTLZT$;rlJ8Q zaNA*{xW_(}&VOQ}j(#4RM9)Q8*YwwCjseL0(%f~JNY zZM8rXfK7@mz!tgM@IFC3>c-4QhV>@6_w%##a?z1m*(}Ow+ko7PQFZQ9<_`Q?{@)f| zDUNV9vEvxi9!NfWq&ozqEwYI-p1g`4U4iNT6Ow;zgLmiQL`4Qyl9CR()(=`llnslg zF#js5!bA)=H&vGIeTp0jHSqJJLKr_?Ft16}DB)F2>F=v&Of-v=vWMEfL-*ssy}_-E z{UuL^#)3`-b&O7D?>#55m;&<0H;E^|;q6lpiN?aMi&s$k%oaveoVm+Gxcew$Sgpj2 zv%o!jqsC4VL@j$e(tiC$lIw}l=#FnMcY3^7#AY+5_(g-ltP1f)M9|1SQOQ*5_~T*( zN2Nt5WNbK>nEAM%%Vx{_Z&vk2V5;xc8G(XO>x0FY|C`evA^SD4M^%r^c^z7HzF?L3 zp+r6(=Q+g`5T1?QL9lE_kNDqM>HT4{k7+nxL8B&R{$t?)bBw6VdG zE?UutHnD@aS~+D0_Jl3OTN9}V%$=&3mVyhtd>TDcF-(-Bm2JkdVKydzhMnx?gsgol zX@wG<81P_G2zWF`;!%xPez~aVmd#byldCr!7z8O1*4 zj;-&P*car>&-;8sFU$QlrwrQK;xv!1V|^jofv0lx&-5f zl`uu{T;>6$pj=!AW?LPO4ymsq%yYz^q{%2TANU)SNIMI^KizlrZA}Zqb&Qd;8*1Ug z*{pO3o%s~f9HPGXotO2>&fX`Rtj3g~9tVXs^A8J7Zd07L#p*#KFOi>lD*EBtZE&2% zVQW-+z4a{e zp_E$co-BB6?L0-EK5A0yu+4+$rP=-1H@P*Q8jg@wY&latJgo7A>{s>3l`tH%9nmg} zAWwIoI2v`S+D@tASmnVoV6Z%dF+<g}xw)L%nrnf?xglH~O%{;J7b{ z6>&6`JL52+xIhym8sHFgOL%sdLM80o!zXMcS0W5|1#VQWl*Vi#D}3u!bBjTgp6GJ{ zvvb$IV)&|lvr*>)>#zcyim%JmkOOEjH9_!;Zxra1ZM=ATE!>22mW!5G@GPnfIEBgr z;p14boW`clt^NztXerxy!9616k4+skli~Pr(gK+|9#ae(?th2V{j01=u0!<#%%GQb zy@u_6J2LESl`%VV^}UGD3JWQk`Y)O#uApe$P_-;%c}NF;UKhHiWDL6{uTE>DV`+YL z*53h2Mo$}J%vP{DT~!XJ9`TU{OK$MF1Xcn_{i6xRtdU_U#&B3if;P7}N&!pMiv%lq zqCQ8olx3Xm=BIRZl4pl4i8vVLUTpXnl9O$L)p;kk0>)04Z{3~|DdaWvHoU(t;EYeO z+x!2>(-WtvCh%!fEW3eAn7}dm4?}A&4Og^B3ukD5j)>N&wfsCdcFA#Lp!WKATh(-e zO4UC`<;*7VVVft^4_6$duGJl0DQ$qYK@3iDwsz*UnLIm0LK`28sk%kF(_txB1Tccn zk_J{r>nQa1Rv6UF*i=Rvuo}LIbQQl?2!JtTdJg7gF?bo0{&16d!ffeJgI_unZ2X5u zZIjx`hAqX#5FU9feem1-kVoaYS2b$zt+H4_YvynM;IJ=rG~Zq^#n#g6J8|ME)Fp=c zDIX$Tw-azO*RzQ#jLjt_$8)O{{gWcbkVgG|cc)t}J8?g{YH&9>sb^p4$A<;b^wGpX z!?c;v@bxx1tbDM`-&ZJz&n^AP`<_W7wb<7@>nGKoJP_4wqU4 zj21!}UKsTHNAeCeEv^M_3IO5ZxSm=bhKpdH7)`~-pI@soLBjn!wnw|=VBTRLp^1iw z`;Of;K)-^L-7s+%8(zQ5Bp7=XUfw@HQ^@9M(>fw;Jxyj_BI(DW+pH>Wp_448Rd_J> zoYaN!`_xR%RCw+g_Uqv5yL0I`wO)GNH=YEnA=D^QsvDq|1Y2+GN5iHB2-;L(PsKPY z0y5y#`*SV6ol-Ny|Fu?PpL~ia4dDgDL1O*Usu}Jy_0*`H-9idGLBlc+MyuFJ#dL;- zMBO*4$~(CZkuKTI%k3(~S>ZSJ=94s1p#|v7ic`RSci4B%v#*_Tl5w!HPmkOWPNUw&uK>ZX_CvCd@^t~eqQ!iKTU79%}wF$(zKZyZNf+vJ+{@Zeq9{&v3>-2QTE+-Y2$9eba%JT_ zntUwyxjYOyaasIOd^pBZNckYq*I<%eGG%Gq$g&v-x;?T+Xbw?w;Y?xaGk&w9-r-?Tp6hTT1lWJ-zi|+baQYi=~Q2iz7bU$%!q?>s8mr0*Sx&mVFnOw%23s%ZfWD z+v+|b@HcBTN{@!9^dUtju8YY`pI{bB)omaupOEl5lz-T}O+L^tQR_E2>?w^x$ilCB&`i+O5kK ztJ(D&@a#hG)*X5CiBy)7zupic0)k|(29>f;X`AzD74_l{D% zO0c(^LDV=F^yiyG{zn;GTcdGLmbTYZ_}tICosUcPu4dKfA(*<1iid7kJY3=QVWL!l zzo$UqlzLYyJw{$`-xgSoNdFlZCV1tVk?X$)qJ-IXHt^oQuOXlNI~@?@#i~oQ#H!~q zl}#~h)VTrAoE}lBpO3G1ny@ws;)21DqaXwETv;FIFswcBDbjYMX$p$Wy99B8Jf81j z87JIMXg8{0W^U-tHH+K0c8w%jplZi2i_--9Tj%?1&d z*M4dgW7XZmi_cQ#vJh|wK}w|FUo@L6^_x|FBofb--tkVl&_`SE>L7_G1$1gtiMxW4 zN6V`5OI|xy{{#3I7#gRv-VzG+*5Y9b9j-lf@)d`) zKeTleoh5kwGmT1sr*_WCrV_@gU@vfU9+W;?G3`9$ClU zBGm84pV|5$=14oeA_1aYB=ZF9akWod+dmyHkfD#vy^_ zArclq+x<3i21KPvRi?2212)a}Q(3<4Ys~!le98CI_IlO_!VuE`No?jK zCKw6VOz2qg-|4CFCcjPSXMx3RskY^#wsyu$@$uc@`|D!G@`uUO#gb+UNzQhHJbkfH zO;fX4wO-WmV>fK|>1VzO$J^AMnWrT68h-1{4Hi3CjVd8n16JyKK@$H7p|z_IuMPR= zs3&rO-ciGzCC{+fDY+1={M;YI4JtG7Q#Cf_%Pb*eD6`>0WuHS2KbuRyrXt~v#;Ga6 zZ@d`$FQ&8D$*-Qo`WRD0M<)4&s^RR`<0ffoa3@qO7CJ3c z8nB1hPw!fN?E=e2<`I8@j+ zu+-1b8JAq@#dloK)OV&U-1{-wjU55Ua1)IzG^6ml(GFI6L)2dlO|#jJ1+#K7NbubF ziCO+3xir$r{Ca?Pfj(Q40xBZTI8_o@bXs+tHFatPpCs@D!LtHCyR-~ukDN@;wvVPF zAsue(x_!@wYjb{Y5BMjWugQ|)yU4ZkC9d{Hoyr7LbC$mv>z?hp1g-@hYwsXik3+P>hryxbYws1^`v1Lg^>r{y|4WNfB; zc@!+$n^bp-ED5P`*l>0Gbv#!WFt z&bByNO)7(hXP!lD%hjnUeNs2?#?meLQ?LcDk;2s{;oI#>4y&;*mE z1O<(qwTucFlmSTb_=ry4Ye32mnc&8HU%~lL)LR8VEd$Fp{$KE{7(VwH1|&GkkbVjJ+l{H|RRJUPy)^Y=p|UZJH+W7V#Tjdg~_%#}tdm|x?{z;E$BsE!cT zmcT^d7V~loG|Q0<5RI@tDn_(zg$1fgckF3bLw&#%$`5#6!-F-)Vh>&aUO#u2tETq? z`Er7MqnqQx(z47V(Oopf&KHdNXwwv4zZYc2YJf{!Br-<>PWJ3|AkTr3wL7mJY_oKY zhlYtfxa8L;V|`c7Oe2<^WC@)y+X``WRQI99_6-NL;(qrQu$Qf=NUC9DD%nEAGZ z>0wak_`1{VhC&7t-~x8;Q%BrV^{g7xxp=+j0?yKDy#|Q(*6{x5-Kou>(x0LXx5(&% zA6E2UXm%Lkn1+sgVV@Subh){l_3)9aXP*1|)!=*7|&4NbbACwnB zl;Uk!lUg)%$IK0Ms6VAgYcI<>RwTo~k4DJ_QDF3xt+W-%XM5A)fl08??6Z^u9emv{ zJ=yy_UyDmFF@VZvCPC+Y-qBRC2=E;UpYi%@?VM=~neMVp+>=ul>9y}d4SH|K7nFQO z9Q2b6>FndqFr1PgMsukHcFaT^b{Lm-SN}jb8hS!O_{6C{L6ZwdGlI7DJwW}wsnS)t zJK=7VG7W<$xcT8?F`45FR}CnlRXDbC6hier6>cHWptJ=Qns^}+{0NqFWZ zBNTA~?2fEGyDS*m(F9UY+jw>1)TRvFn6i8m_B`A;nydUBRYox$TjuZbmdd1l zI2k_ic`BP1i4A83BvU24+RTP_TWcNHkA_cP%&FWk0Ysn0IDQW2PHt6R1d5r7c-V|I zQ^CePt~B^ezzxsAocDm^H=V;ob%f}sAH2U|z%Bk_7E12wIh)P2{xag3-md&zAW$`Z zGGYy5F2GN1Nlz-vHs~qLJNdGQK8qNG&SNdVCxg?c5(q>MrEW zybgTMh-wGSv|2T>$fq?;7LSzU!eXsC^EalVhzXi^65`PYVhB&FbKw z;o(8Brb%V!Rq=NkR~PPHB8&>RxZi(yE|TsG(f&3$I>?e9NiH31nXqQe1$IW0?^z1$ z$?~f9&jlE}S+h&~s0sTGw}lh=8ECb)dr#+Yo6H{K{+m;;qwg2&a@^vRhJ$jltMm7h zkp@dBJ}UfsSH0VrU_y^J z=WH{{^_IFk28ns)w!gy|7bL21@$$4c#oAe}(&dSBCiGCX!FWW{^#X_57Wff(o`02b zzLI2%80z`i_n;!Z(lse%l+eaMZAyK-4ox>P5j_H(R$;2dDK3y84#%#>ZqL{qY66MI zPOY;t6cb(2YJc&v(KrpU`8m(ujwnmhab%F#P^vFE)MknNs8;VXW<;ZIRZp!HmcvXx z>EOIiMCGDpm9aPb{YmNI!8$7qo-TnwN+N`N*YRaJTNK2PHsC);OIwcU#jeK&OQcb< zrrcnzHPz2n9xU+hfL@QT;j zVzR7#xxr?Nty})|S4f15&1NNV9?O=%vfV7e-u@VaE96Cxl78J}9w|iVFc|YDTV$CG za0k}qX-7^TQN%L2AFU?jC%sydyQ{tR6wk8I9>;;hg<`$^c}>DC7O>3#vfGy>Vn9P; zzNp<8)IVN1KfMoCX1}2t+&MnrJ-sa!nScS^UOLH7eKngM`(zm%4=$>;=k)riIC0DE zk{is*SZ>xDi5*%r%dQ~XHUf;J&9MmtW>A4{tEPGhN(I5 z??^?JCl-y34PhRtjyJnrb)V&iH%ijM1T3$?Z1GvC9kr2+-dLb^&f)_qk=8fJJW;IJ z&-0^ROj6jDAH9VE_%|+p^gjx@X=czG_ZZLk>(dD&~akKYFLUG1;U=V z2q=ge5DMDMCZEaR?}iw}Aw!qWDjBtnTv$^9rvosx$T9GQ8^6fDO_chX{;7J{Ekp*s z$+%m5{L5#< zEkHM=e<(Zrc;x_^G2yr8d|)ZnZCO0OGXZqwJtrr=+xlfosa`a{m0J(C2$*Mr(?I|g`QfS%N06NK{*G}P)ufP|jkH|DfIQKZ z>flq~dA3DY-AnBij^fADQsJ^oa|qlzS_HTe0qHS-@9pytZ|Jc9M zN-nHJuQR}6oIKK@T%11RNd~voN47aT*(ui~Jzx8hZ^N5>iWbP;)VnEB0`;dzJ#b7# zOcG}ajZTB%ARqfUS5p^g^r|o}_r&kh+vCAE%&xBp8|u7h=|nca6O+X6_GTd=z1ngfwDr(r z#GyL{w~&~K#VKGiw0G~~XVJu0V>W2M_q#~p`-B+cKPP}R>=Ugb~rFb2E}gi&lpy%kM0(Mb`m5d-JtHoxO_*KQ{fjV z^03HooByYo)UzPrK+&8&dxSF;|xKXnP!nUztBks(5CwLFecH6BS95s$0@%6>WmY` zb|)@-!ZL;Na4qhPwqBMepFV62$(v`JR8Z~?qOZ%M#gnJ@yhB7vQbyI}G&f)f#P53Z zap^R)Y0epW4en-iZ2a8&<$vvSxQci~2XF+n3^~y4uXPh$E-wg-Z*TMR-!B&-T!Abn z8_fL-s=kTmhQ3GpVHSGgxEq|!5i;`_8~~1~HiO4mgfc$A?xxxWm=2VB*!(7LI~PxR zh3RmF(vzfF|M;XF@ASHOdI?+!_mwJ^E(}Gio@EU&{rJjg_VU*>*nSD0!c-K{@H(*P z`}`Djyg5W0M%dx^9Uqn*u5b5PzCPIvBkH< z%5+CzvyN+Rj}JocHx0O_7XZEYrNTHHsguj)msoh49~sfpF9WJWDSexp!=3~nE4s8D zJcuhB-VDpLw7u*;p0{d7)~U$<6;Y>|Yw2S{ttp^w{rAYnPyzp6@)lF>Z6QuS$1X@) z3V%LP#2t6?C!{?xk7`bsknA2qgSQpBDjBiI$K@uF`c22B@R7KIT7^Iuo8@^v%2#*M zw<+7ssNLg_vXvq@%ya}v8m#loDQh3dc9x&O(nW7FX7g=A*JcF`E?&h;p^q0tMIj&4 zM0N2N7Px_b66_jOK6b0?Z+6hyHoy8bVm)1RHt!-*d%;^|?b*2RmpatT`tOA@P31Pl zA17a-7%Bw{=UfI(W7?s15C`;-XL)?j&SRA);uhHvlh%sdp@fK7g;-cU*ZnB72;ls~ z&x7^b;FPTQUc=^_3JI}u&v+ornHHrjSKVh+k%oWi{iR0zn(mg4=gA5}7|V8J2QC-Q vYs2|3ZZtS3h(KY|{~!LZNiakd_ytYVm7ecVb*=p0->^R<6vV4Uje`CMO&0;^ diff --git a/packages/dcp-desktop/src-tauri/icons/32x32.png b/packages/dcp-desktop/src-tauri/icons/32x32.png deleted file mode 100644 index e2498be57869eafc0c31a002452371db6d84bdef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1323 zcmV+`1=RY9P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91AfN*P1ONa40RR91AOHXW0IY^$^8f$@l}SWFR9Fe^R$GWwRT%!(+WYL; z=eXydC63wXLyg%*2ug)CD<35=2`DhxBB2!(>ew0h7Y>>;s)MkBKkGKip( zE(mJIjHv~AnQ=TbXP6*Fd6}=~u?=Q8C}q+siIhf$CXaZ-T~4hGVCr zF)b0eKNUFQcmzfs(g8%(+P+I;_Q}CF9=nwl_!ilQ?;lt#7Bz@pnW{_R^cQvRq+G;T-{mP&oB z6b&!@E&;oE{VKJ?bNK2~gzt17J-mR~35}NxzDYE;MHg`B;6Y|Z zxT@XtjCoQOup_0kRJ4C0P5b)a_8+`z(Uq5m1fE(EcefV&gN}oqa)h5lW@6dGZc%x( z+kGxG9E}-1r#$%T$b0w|U~~|Gx$8{8^SWOLe40JGSrio^vRP-|X)oIOv8^G2r&pQz zOzFq-9-p7{FfR;IycDSuaf@NH!@V(^g3g4pKhg*(5&Kk@ZaBWxAFu#(o=ujTeAD$p zrASpKlachZp&EHm_Y~M5zQ$4b{N~u0bR@(fcnE{QS;&XjobcH2KzuR!f$jjIIYQ-t z%fS2kh7ICg>pR>6J{W)x6%-%wHP=&k&5x})XaiK+nl+}U$w8mVaBUo#vId@(r3Xv38JMbEN^z0kC!?H^}qVl=v zLL?BxTygVTxIGxEf{wMcgX6c|yV=>ro8$qHIWu$#qe+LGE2AwaE3aErwyea4km5Pp`!=Y2PAB@gqjW!_y)=y0d_l>%(OI15t5-E6P?SyGm_|gpW zmkIoQ`!+LEY5kC9>=og#>!hNxpLr_#|>oTf$j6 z<7Si@7I2LYI)GF)(W&9lQxY84nH>q)G|aWR1Ogt`I;* za%;W$7fD)>uX84yO{{X!8_g1)gE&n9~n4zW$pn8I3 z=dV$7FoQbk=l}%&Y9N3h)&)TPukshne*pjxAqW6Of0^K4h9La^F9bpKAN{YWVW3hA z08n6|YRbj|1p5}C#LRxWN0K*TEB*x!9w-|qN8c`t(X1$$jkMTveFH&?=zBbQS5Yh& z$yiP;R!B#}UB;+Yd8a|W+{7v)%ei=(OI;r_wGba4M?U)bXJ-)mja$jeW%{k z==+li2S2u(Yp03JA7i*H+j$sx0?#aR(9v0^O~p15XC>&U z)sH+NGu_j%yVu#ut;tpg3$xf0Ss0bwK1?7F=5~>M}ehMQlyAq0f zdScpbrykOHh{fx3fq+_U653M+-c}pAKb+u9`XGd}(d>JuEV3mEaj|AgpRhyw2r zLxDt~MM0g92y=F`&OIbUGNIcOhpB{tqDu;^t+obD=G#;up^k;^7)|sq%*WLt7&gWaq-T^?0d5(*ZL8K?$$~x7_RED7ayD* zUDHKpqIwN1?A5Sb;FoZ7?k)n2ZSdT?x=EYGxJX5aDNe+VSc!Uod>jQ?{0a9TZ`=Ao z&St7j*t$Nw30v4J&eIy)-H8m~eONaoNm2R4x;y(7L$_InMx|4HU+mswZ8}yXep0H^ zo-*c=FhGXLlbpC0f(|L<>oQ_^NWi1dtf{RAU~YhU7ehbl2}a}TPPgZU)wY)FVfakG6nrFTiENk(>sY3svQ|v}%!aH;=n&A^CA)7f)1&!( zxuko`TMB>l^o1QwN3a_8IK-vz#@btm%WfZt>r){BN9 zfVZbMW1CU=aC9!Z&NHlt%MV%y%OFOrXLGa5R9pA&veh8m*2xrGLkbAfUxV(cxf5Hn z`Z+hy(ER?G=?z^uENDC6qxH4xW0Es`kgo6tpR)M@ag#-L1P-T(zJ=R`?Kq9?sXGVP zH9TG*R2V*`Je#a=g>`0d2`cwb>?!VmJB@i9lq8jtY-jC7Q_yI2N4X_Eo|@o9J4c7mVpO=YEConuV;1nhU?Ys4gIKfQ_CUg0pT?SRkPc>^XAYI#_Br zDnj?lG0zlfxYVDz|JI|S?XzS-=m*cgxMn17LFAVz@F6vRTEoA4OIbv3^AdS_L>(|K zJof8g7f#@Feh`IvOXgUAh4j&`@l5AQ6qL>Hoz4ELcB?l6Cz7n1qS%iz`>cwuR&`A( z-l{lbJ^Aqt#i)R89V`=fQcZ{~nwkrTfbLSHEMYJg{oLrUVxog-C>0lIeDHUfhYDdf z2_2oJ@bm!qK*0P(FjM>&^;b-Hnm-v{Eu9P=u$Nh5hO`5jL>`7Pa#9>E*@LsXXg#KH zyNqzgXwIaoI`5@QekWZHnGe3whbs?TpL*{KGL%r0+NKs#J|fn*o2NQJeY(7MrHujH z53nl=z3)C<>jPS1PME=ZCcczd>l42%Lw6wv^5D=e{;soMeOe(SYso95nvLZ@h1oV- zR}m!Peup*Gm6>BW%AGBtYsBJyUgCA7A>)1;D}A2ptjdQps>9E@6uMb?dr$WqF} z&cYINx)krwnVMxSWQ@nJsDk#^=+4$?31v`v1KqVhRpk_>7t+Oz+Mk&k%+7PH7qW?E z_;$s{in}jaX?CwSy?xsPd}yRHR;j4jZ=q5&H(fd!Y{;5Ou5IaJ*km63K~FV=Pa=DK zv3&G`d&J+88I@7`1b2{PI<$D#XJ!P;`VHL4b(fPaIpHxh?)guyXYMSpV3!w3Lx#`V zF8km^3Z}lxC~G;FYZkC_?emlUsE-~kfBt}+{xEKqZD3EWm-Fgip;(>#nsW-L3@ygT z3Lbb~PzklhZD}H6E~#9a!o?Yo5oq@|Ql{yRON!{0#rtjh<11flWl0fTJKF@@|JV(of9=+zJn+Ydu!C;wJrT6Kd3$ zd=)=v7DS=G`Mb>SbuA>MGDD%_5Y0X!etPDzkN0;u?O}-c9HI;!i$#_EVqYUL0~GJSA;+2yt*J9)A&1qqIL5+er`!n4qgF^1omeMtj`z?AChpvF2rFXyCc)8uyh;x6EK#q$lUOYX-b3%a48 ze*nP3;O6({ZJHW|&-Ir~N%E76e}Vzz>BW2HVA{flW}B~Iyj%?HHwKNW?2Vx^q~&L= z;$wr%iKheWvNMcppVVK~2)+wXv!_|g#eGw#FNYvu=9-u)LAKU7my0?T1quN0V2xQ? ze69ScRbz={k}A5L6;PZs$FEI&FJwn<5!2ov^r+ryY1eiCTW?(Zg3J<4VOQMdY%SWT zq{WA--z{G2JXa~@y>o@aZ) zi!T>yCwtMW&YDa$n<1(KmLPp7EFxZ?c{Hsn_fvPc1!!^egwk~plHI)5E0Jz-xGwwZP?uaEDbTJ7OahGE8&uvEjHh;g;j#J!fp~3nA z)>HN#natmdDB26j`kH;>=|BLm36Mgt5#HPb#0KAT{mfvHnL=5$a^~(tv}Ab6>89sj z`jV8RJ>kr7pKsgf6Xgp^C5i4lP)c_-aey%8pK~%LMH&?bN8#-MSrGp{DR4LOs4xP! WR9k=}$BWp1+Xt$yt5&UI8~J~?;f0O> diff --git a/packages/dcp-desktop/src-tauri/icons/Square107x107Logo.png b/packages/dcp-desktop/src-tauri/icons/Square107x107Logo.png deleted file mode 100644 index a34d6a2e90cfffd7fa103d687e8f1e750f7ee43a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7332 zcmb_h)msz}umuqTX^@7cyE`PLJC^PaN$FTpK)Oq$L2~KtE@7AMZjkO=;`)2J_aC_5 z`Ocg(Gv{&MCQ?mB7X2gfM>se*ba^=`^?z#rACW)&tIpkiX#WJ>OV|m|AO|mAZa)_ zQVe-1aZPXdQ$wFDyusGWqqFvnB~xqNIR>^!RHsL23m&2vPNq$X0fK8(Q5~M>_N#&k z|Hw!ZAdl!&I5E1<2WfQTWjju6#uWt+n}W2-;1ClZDEL&c7inOfcpk6zf;b z%hC)ZKX8*&*g`29uKbikiODE-isY>_Y?vmEwk~NVER#DeUBm=BlN$e+zdD%n8-Gdq zcr84q^TvXb4JEu+<|(xtMXv;~3S=K0n%Bs20=b_sb$#d_ylDboN;XrWgp!V+4@*o32UUAJijTqV-JsNjL>*mcAOLEUI_9Pi~FZlAi3l z@=`^!ACGxZ@Rl`jUP7nVwd}hoiqJ#JOh$dZh~UCM*FKjQMFzRd`ELaT-lFIM@f-~3_`Y8y?=$uX6?bziQg45 zGT_3ICH1H!W2In5>W2_cOcvUfQ`h|kn$kPN0a`J ztCyck+u%2_uD4NY@#fh&oe$jB#{%DuKiiBEeD)t26?zOmV;m9MA*N=lOCRAF^+l!v zreJhd!QHG+OI?8q<3cIO((ZRk!z#hloD@f^B=%s8kw_%~Bv4S9*K(qj~b8d5eRS96Cw)9YR4@=`T#w z3jwXRfzcvwmq~^OwJYs&9z95Nq?R#-Kp|i3VCAY@YrxKfDvX0HR3H6V0P^oFb@yQt za#`n(F*u}P(QcO6f~uYHQE6m$QcVp`Z0?K-gFAqUsQal`nRMI4NJh(neQoZ^l^HJ5 z%4;){afSAP8{MrKH-{u6=Sah51^0oORhQqq4TfNVTY-h%C1`DtXMx!_?;y zHcM&EfD>;PM?-3S9pKRBb2r+{iw8+j(rJPw1u>=h32wTK}IE>gaix|lj2;swLlGIqh{84LXL|(#V zzQyOV_14jj5_$!!3t#7HoB1^MyTWLP6%#1$dV*nVN7H*x2SSeRmE#vFKnbZ09NPPOw?1t*)u6!+MEsi)-)a;Odnc2;f(AwoYc-uV7*VN`!F)jd6BHpn=E9oT6S{MG! zBtK&b�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 diff --git a/packages/dcp-desktop/src-tauri/icons/Square142x142Logo.png b/packages/dcp-desktop/src-tauri/icons/Square142x142Logo.png deleted file mode 100644 index c23c4e2baa88f1c48863b2f8da215fb4e85cbcd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11398 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 diff --git a/packages/dcp-desktop/src-tauri/icons/Square150x150Logo.png b/packages/dcp-desktop/src-tauri/icons/Square150x150Logo.png deleted file mode 100644 index 355ebda31665b1b61e4363aeddc0f5f7a14f23cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12454 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 KBHi1`;Xe)D9qRUf4BGX(v^Z4l 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 Z;NO?6xKGF1*f0P9002ovPDHLkV1iYu$|?W= diff --git a/packages/dcp-desktop/src-tauri/icons/Square71x71Logo.png b/packages/dcp-desktop/src-tauri/icons/Square71x71Logo.png deleted file mode 100644 index 4eed0465d4d6645e4117ae9e100a22b069ae7820..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4028 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

;3mr3qo@oA-GIUH12s@o^e)I@HN!ZTdJ7}?yc zl!2M5c~3d?@r24H9oqS>W0d6KwJqIOEapK>2kJqBsaK|GiV+(JU=|lT-k~?|sQCSp zNhN}y82!gq5@wA{hpq!-_A)Q$3rX((*mo+qBPI%14jX>$HIn9i$uPkcGzI=zE9F9v zq^wkkbW5fq0wH$Y$=)u4FP$WQnVx!`46p?AG%KLs#80j;l!vY9QGs&Bjy+YJn>Sy_ z!{DT4ygQ5U??fD4|EXkoG=-RBR{$-x33~!_2K-kSwh@SKVw?U)p2?s0>#N&xmEG^l z=C*RPlZN7Su5YF^pnLb_;_b2KT)>>V8+riH(KX&D7@t@FcHr1a+mx%W$VJR=akSok w<#+8ds+lN2CpcZ~|L92mkA3+kL~ShuFo4lUADgi5@t?m6d8@8~kh2K;e@d*ab^rhX diff --git a/packages/dcp-desktop/src-tauri/icons/StoreLogo.png b/packages/dcp-desktop/src-tauri/icons/StoreLogo.png deleted file mode 100644 index 69416598926a0916a5bfb72dec88e95735feefeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2475 zcmV;c2~_rpP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91GN1zh1ONa40RR91G5`Po0Cmf+s{jBA6-h)vRA>e5SbL0BM;ZU-yzYCK zg~i>7gjNY!LHk&WQnLjUECvNy;wrXCu-K&%K^oiAMAHJ*wpN>nP+Lh01f@;80RzTT zi_*1dTeT!0p(5p37A!2VuY1pH&dm6mvv+X|S@!O3|L7lgva>U1&NttDzwb5QxkTkw z)<9VUWet=yP}V?M17!_-=rq6vBhlg+`C3P0nCrUOo{s-wKE=mKy5NiTVvB^wJW7#i zk`kOGS>!eSX=NAD3fV(5)UjkB_s;aL{`v1y$Mk{AW{M?F!uUy~C{o~{rO{m#yVPrn z*u{0GigTtwFR|__gU(1L_eMg!6o%%`?b{iE4Zf8OWcjV)ex+3F5>uGX}ldH0#-=Bxd|zyZ6`nv%vrJ7N6l z`?J;bb$b}^Izf%DN9!0kK)VEC6#yuKG47a0n4?qN4b0K?JH5^osQ@52j#oAtXJ(Bx z*)dnWa?5SOgwiB>KUK*Z?)U#qGH#8Bm`F$)-eJU#b975j%R>T zQIcw@(t7dp-wLk5wvroI_um?4o=)dj&Ah;mUQ1UxZyFX=>L3pS+R<5{d)B|q{OMgGo|n>8ORT2^XZwa^>RKhf60}>lR3Hv zU<_y<#}fIRcDn&Rv}r4QwUmQ zCB=w7Gz_g~FH--?RT@hjLydDg<&(H8I&>PQhz-3`;vjIfv<*~J;GszRF2I|JH|AxjeY|m_G%YH zM$>_8ni=DpPS*b0Z41@&UzyLpIF(-2(Q)P0Myo@v-q!9E$4U{5a!eN4#%>&hlSpyxDvJ5ASARM4HOOC5IG8A84X{c?fDr0ph4YRXTJ^`ONplc~RMU<&x zpUFDOZ;NBW*v@@t{}5d8UO+}`(|3r1bx_J2jS6fo=#Q9H&i1j(dL@PN#M*2!JM7Rr zD?_uR*nNf~=s;7y3h$TTQsj5eQaQVdc4d+@vCu(h{DRyGm(E*BcC9kl_%Nc1*g9RD z+PY32;lt>UnYxeP5+!JC0JWjU%Hz_@qpGhBebp{J`JEF#v$l-7FT4(425-V*W~2nF zXYE|LA;aKEc|(+KOmFrZtHKg#~zTd0#CefCuldaRwlwXJE~oLoM1%s>Cx?q z{HP;;cXDLn&!<+TTYB%WdMuc$9BVD=su8g@@FgrIoC}taR+6Zr?P2*)&4a!7^fezc z5Y2ePkNHhT#{7{WHi45$hqzksZE+!t2&4jsv42DCmE(OA2BdP z7o1W?-Eo2IRc9;75FEaDOr33=L{EJ3TwlWXUjIOVXojO6;geZ~^}RrS9X%KW0BI7tK2C+eFEX3^jz2(&d~D>#UWz-@y|Eu-bt zn>6V_+K^qV>es5$Owb;cpik%`Qh%z(9a3lkH5mQ#N_Rfhi`{b#O2^ zk{%dwptw4qVaOKgN=FMRYh8tS4da@sczmpV{ZBw#Z3PK4;IC*GAM0%}$zdS<3vs@k zmS*=Aw+?FP(aE4T>rKh$)m451l@q?OE^ED)ddgYEHnd-$e4(9|j~vpki - - - - \ No newline at end of file diff --git a/packages/dcp-desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png b/packages/dcp-desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index bbd4d8d7fc9100cd331debc59ee77430f7c5b37a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2380 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 B?`Z%4 diff --git a/packages/dcp-desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png b/packages/dcp-desktop/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index c6f1ff0757c88ca9f91933ed646da24510e64af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2250 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 bN1p!zq6QD?jMp5{00000NkvXXu0mjfypMaM diff --git a/packages/dcp-desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png b/packages/dcp-desktop/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png deleted file mode 100644 index f3d99a16a8147ff68c6cc658635fe06429ffd1cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2532 zcmVLVi;0uV?@-3rY}fLT1|{Jjiw)M1i#u3A4zLc{VD#KHZiHS z|AN1orZi2e{wQjjHd1l;D7FYy#%0HlAr|NBZM@9X-tzOsS5}UN*3@Fuv{O$*X>`?=j8ea zl{MQA(7!rL!KpK0SQUVNdZTyP*0|0O`n#qS2MmECK-w_4%;8oLIDjc4!I_c%o|B3I zR$05Fjzkx}Gl5dw1}&1M_3!@Qy3+lUHQf)ZYPTIB(P$@qSz?Z->Q+J-ti|Q=LU1B* zJ?99c6xfa*V2-06G%0lq58Q6eI>Jn_bhkQpSw(elGVpyyz$$C&TL^(RbIkMyjnbn; z>9H#%C06;iH%3YHnmJbd7!@K-@j}EB|3gZHUztP1m(c)fXHsH?ufB~U_P#kp{He!y zYLuRqnP%=2Q@(SXT-#ml4OkJ8DRDkD(_(_fuOT*w(b617RpAkHSh$a~1M6TV-Z`!}~9=@LGy8x5D?GTLw zh4*p(Nu=58Dy#U6zTPOZBQD=ADBpP+3d`%0epayVWpKZ^7oy<_h)nd0Ua}gKDr)NQ zi&}{9<FsbbDoQ9>pYz%M2|ESnVN0aHsNOQna zMb+q)Lx$=L%rsw3`p;4Ny9DKLf0I#^tT;GS18g>sH(w0W-}6 z%rx~y2ME&ZSd?X(w;5qNTYP0ELKE7+mBT{hik5r_3(Y|z4eOw0gb4svJZL6hf`A2! z1zHm@LBM)ME9qDZGyxL?te_y#B@|$|_T;SD1=0B+9pKAZD>@^AB@AE)R>hukODoyV zn%!B+aHD}GjI780kodL(RCM0A&!%lfFd|q&=V9qUGb&iZ0EQh%(MTvO(2NY0Fo5Br zAg*3#0?p`P2}Oz6z>*HM=ia+uc(7Cj%wl(H3R)@wq6b)N_^v2m*l?p&Z7v;XyhIku zch(r`2AI~(Hras28x1NoM#9Sabf6h&&e9YxwO4alpy>^k+CD2*n!>*MOg-jmfj0E* zKDylRljjK@dm(Xb%xXO>@46Lbd4y|96lE1xB%c)nEX=sW3kB;)Qo>k1hetW2MAr7K zj#6L#MHs_pCAY3sEW%iGh>fme;aXO{82V~s_^agnYEg3Hk4*OGH7&Ay#W7K`-%(M~ z5n()Gm`}ok~{D_wa}JaK+JbTjF_*jXq>HkOY{mZVez4Erxw^1jHxY7u>7$$8dTa0eI` zV_EV()21sT8_PEw12y)WvZ&SNl;jlc+BKs1K%dYzEuu>`z-Axb%p386o2euh5km49 z2m=^q_W2?{SkV<4xTM$0_`3FnZVw4%7ARK>m zW1^H-bJbhb1x!|y;UrzQ*tU7}wH1cu|dY?dT)=DtvD}swLbr(I^5WmC!&Rwb;%Uhw%Y-VLvjMTJ@j z4c&U{aZ*n8q{}*vMF?ISYjF~(Pz#|EZ&tU*+XNaNyiFD&Fh>*1H5+z zH~u^DRV&;N#hX81s=|M+9j7;7K+}V_EkL9}(6|>K9c3q@hvhBBfwS$+S%yAne)t>3 z3L^}o>m4n>7in=}c9bTcZzLzBm9IcFJgIo|3go=xzZ*OapHL zSXCGZ`AF+8M?mZ@Z_?a=1B5^ly5r5BcxAT^g{3KsYJNYz%3k%iZ&+d-ui8^lPK_4v=!=wR68@fOmTje1-V%KhM8bR^_ct}EW$1V}RQd^! z7Co;H6K9nCNKc8$bxcL#&#<9qVRj7Wryt~;Tb1uTEw5*>RA4MA9>3AX#ZCm0#oC0z zFpeIVTZON_4G4S=98|{3Wx?UhkkbWZwTaY~Dv`y{!e$vv7i<~kLIewUCeZst^hI<| zj`a7mCCq2ZR#~&HgGSl`5aj4W7I?9arffip0X1{?0yk%!Ng$mc9=P4Y5Fl*h1+-Yh zO9@>#WVMtjVF)nxV(_wML@Kb7=CF7RP6j%ua+LH^j)`|aMh+H^Z7y$C5d&H7pMhnj z=@k1h>PCYDJx9|>{Pb4k+uj%@(GI=UBP7)MQ0A}np?A#ruy>HN?TsE#fzdpCuiKv? zC(F)Ij7S8I(i2XLfur6)oTIQhkqJBm2@ey%Nabm_988Ld1ZNV(#i{{AtFCJ-nGek% zx3&-hTY$61&P4Ed1u0e=#Bvi>Fb4fyQ#k;OdmZ6u`HDqyCFn ulFbo7*X6ZGiTLd{N9W)lzYebCgZ>A#E?)0$y^sVC?*j~%p#l1 zA&+BS5$d{FOYL=^Q?TJX((P`n;ggCD+X!RWB!+(`6n7L%B;Smc&=jqC> zx8<$E>gOo;rW(pAo{CeslL7}eQlzz!G`kavCCW#JM$>uUjQ5ak%c1;fD*%~?$;c}w zipQw+&?ajC>r3isKP&Iq^C~Fs=7*?Y`V)vc8%5jC0a9O3+tICforByy7^gK7qp7tI1ta1GsflPoRNX z{&-X1g%F1!dV*I>%SLF{lutl~6#=&!o-%mzad>_?zKc?{^9r>B7VY(4AvW1KJ&^;< zf7j!C6UOuUyvfU`0B|$hV_}$qlh}q++f32Wd9|Jm9|T(cjj(0_Zw}>cU>DECyU90e z6&cIR04_3wKla(g6w_+(=#L_JB}wRHCv-jlJ)3l5>?; zlkc{b-h>f=>@aIRQJ8}Vl*q{dJ>1vsHw2NG&vxT;U z_1}UTUxbI=CuAf!nIS8$qFc!TTv+DioolJ>@HW}Y4QS~OuMkG6GDJ@eAK?Z`Pz*=* zJoC5BRj3NI42m=oma!)&Q|l973@47Si2sD-2+46w(eQqm0I7MeUtmRc~n3Vdn({1^E}Hu+X!A+X=3>Cbmxvv0P-l&PQ_r-BT%ls$ zuILX19w)Wpnl&i!mIFdTVEjYsZmI*$U4z7sHp)#s6lKNj`4v>QbQ6_5@G;rkMF{*3 zc~(4sttcOlgvh^lJ+;++nqV(8C0sK$U|9Wa0yYd4_k`IrcF}7n;L54E`gu{_gfaeo z?^5gGPgE(LO40t5saZ5&$P)sMtukwcl7UR8)+;OrOSELN7bTO@` z^**v=#9t4Ao#ZN;mxe(!fsMbmJrT>^QeB}_?b1N|DnnTWU zGcj2^hf=yu=x;y?ps9%jXXrR8Oi$$^8nf_aa*mmdnrSCBV?N6Bp=9wi?E8VF;|yuk zBXW^3X2Cl0PF^g1K=An2)LOSq8g`jrBw)q(=35#r)C$lec&9AIptllprk&KZ`*pea zQ1ehTeC8hIdQJg&kkwVK$muu>eC~4(cgLMnOR8JPbIMFklj@(=xJq zz335+%M`8yC3o-Ip(>x9d*Z}N@H~eh;+b@h+>bd5C-#}HNBoU)PZm10L(PQvF5nu^ zkLo>fa${zp^zT+dj4D#WW)Z1NzF!1R{9Ijj;RhvXg15~P1sjZ?^ zI4x1ts%aACp|*KIA~mQ|)mMs?kQhTSHW1sfF$Rnmv)<>-&U@~?J>U8N8IO&Do!vXT zch_^})vWLA%su}(=Rfareup~Of?iGs1swu(2++AY1n3Z;b9D&NAwcI^qy&g1(gUkD zZQtsZO7A5_JNZ^$5CmKB))K)}MJaV8AS$VV9=8*Tht8fnbi7i^pPTC!t66@|<{vMS z>RFlTA9^3ZezsaIZ(|@Y3$A76BG-){E$64cIyFB0y;5On1UOO3@`Jz++C~6IunO>W zz6ORie=Oaz;=XF7cpYx>TQ$CIHGSt&qejs5%7_jeFq|7pK9ips**7|T;$JVu(M&mc z#^?v_@!RsXTmL?h?)mFlrL>ZthwZ7%cd4eIrFJ#1&Eh5d{95y>mBCoD>;3UmCRNCe z{%@TKZ6JWYHe7q#w|J}F?RzzTvB3525=Hn-2x4RB`@Uy6vG}e1Lz~u5j=c1+CW58T zZ<@Ii0HP(>aNXPfshrP#lE2r-PMZw@m*6G4A@Ds4eE$ZP3}z<;_DuM4rU(rBS8e); zWjkLq@;)#`>0Hg~(f5@bPu?1fr%o1fAx9gzv;zR&f2ctRbTMEYO}KKT(8{; z&mU9d_abuHz*Q{W^LuV0-8W|fu*vy$uUfvEx0kozq6bLk zAHOn9mXo6N`nSmse#gD~`%w@@wQ70C;Fa6A&N&ppeE)8xx45;ixOd2}6-C^nR_~(T z?Vq63y4&Qv!b^|R#G!9c@$5l?*m9C=k<=EN2;`NDd-(UC&4~bP@4RKfWj+7%N)r_8 z+e|%M_fq$kJIGFC_+C!_BDMZDim$w$a>sr|Q%4`9%J>Pg;u&Lx2MeX3_{r*)5Q1?M zR9k@1f|4Z!euc0Dm%ZiVl-cqDiuZ3OzgiUJTTWd562B|U<-hrTO0L;W*<(MX>@UBM zPs{!KcP#)F5_66P4Q<*H%(F!;U_rS;>LpfOPklT8h?0Xh8u_0m#fXPUs%FnF^5 zAExfBf0ryb#mFrQM_X>10#>-W6aUU~|C{o;-tBi$_vZJIigoes$jgpVPJ(|gQ0`a% zMpMszkBRl75CJ|>Bu&arG?MqL|!gL-$|%|uwkNGypM0^)_U zhaacO!{4O*>7R?T#RcV@Ui)h-g6^W^(9L?MfDl%UKbK(Szf2Pczedxi{)ffYB-!z9 zCW1dNyCM1nfK3msXYr9su}9*ZH1 zxt;2q%sU5WsLkT1`>H!AbIk`?bX`SWF)y)u=n7@Klt1-Sam* zC9)Z!#pxQN-W%>_&VL8lseaxGSrJDNBOp$ekv4VYA*xI~FX9LYr;Ejixd*Wm>%D>r zxrYg{SBo5oFMiKv%g8H?@lNXDk=?z5fQtVo_#UVkO}@$(7q#l>GsVrJLkEzgEzC zz>ZN3Vu^i++;jiI1S-nCI&4dn0I!FfoknJdh@6=a89PaI$}d_Z@?s=Fvv^q6Bp&Qb zh=&(`EDAFm@o|uytE?bhD9HCQ;`hwIf^13AKg5du zVe;6DvfQpY6Jdb}V7?Yy&)k<@V@$-=HyLNDAYx@+O~f}dby+l7F(a1FJfTh9mtpEA z^lqTpg*6s{07?)K&(!G}q~7cAWX`{olT_4B(l5V5)ybC{T;Fadsp0G~=ex_+QO~xI z8fP#0T4(P#J9|%mo5kTP;(2RA1W_h{Mm`YPb;WOrl6AU=Oqif#YFMYHTL{-G5$2Zw;4bF!{#*Wp?fOp`i=!gomH3%>>Kin6-~m$Nk$a&LzzLPBI5P$LDx3t~X4z`7 zO!v!EG@`a>c%t#}W^&N_n$fHh%l zl9LcKH;7|XWDF5OkvJ>n???NX_E)6*U18gt~M)%(@F{gpu z_mZ7nDQgj!1@Ykq=B>8LSP%eCRsL1BDjpL#50f)`$ZsM8!=}yRxWEk9#R&wrx2f*c zYOi<=gzFU?8~LwK^PgL2weVKMs2a{#(AHFxH6MvNny1k3g=tJ9rzJ_RTBU+<0)w{a z0j(ujvWYklhdnG7A9&SPi|Ta9%!kMcyc#pT&8G0@*z?{+#h3R>U{7rRSvXQ10<;q5 z_N8=^26la(ZTb%j*C$q9%MRaD9Ao+^<3D<}#MWZq>X{+GCI}zceV;^H19qhRN>;0& zS|xIvzX%90Lq*y^J{jciF(C#W(?LSMbna>6b$1BRT0rjtMe4tn2$w=W2ie4U;aE=g z=tJyO?c+b;9bnm!+yzclkq>7`0%Tlh1*d5I$*+i`q-^KBV}#&XL+tF4fS+XE*qO>6 z{Q-^se4hzXwLkg3q?9lao#Grq?~R`lyv3JqlPncN8se?;uJAowF?RvyUx57k%^r6m zi~ML?K}xq+L6Iuuh++kTM<4rAqdIP2*S$?LpDsc^f7o&(jr_>!0L0-7XC4;?Dg{{x z88ebI+xF7HE%!*!46pdVAm0T3E=0Z)dE~cu2V5LAR4sgvk%v426evEI*{Veh?sZ@N zUP=t^kW`}N8X5|>S?tV_^VREg2uFSgh+_2g;*AKA$^*-3Efy5`T5<9PMGEAC!}a%C zT&8|yqx7ULG9NpNzehQ?afEln$w#-tpCakSxW}06Sq_kb$Bz~l6Tv@Xa4YYTY?IPHkZNZQV)24b}Mm}M%-5CK89(fxlT z7LWwl>b`*_e!^6^N^%0o{Yps+;P$mOCeBBJCj8%K8nq>!I=NhplhJ>AHOH#=SdyWo7PIdB>F6$8I$l-d>4LYVX=LG~! z7M9;8@*MJ&U<+`T2qrhu=Ue*=_QQiTlE@pXOI{OsM%$x?8Ew@mqsdJPa9N;FxkHf-UrMJQktSnczXS*)d93g2pj788t@M~~?RS!kfE@=S-@ zxdy*K!n;6oKVSr`fLV#%@9VYHYlIdHhJ1kyFv|F`Kxfjh21)8K zs?tQI8eNVkc15TF?Lev3yUFE#fk^5Bh6%6%M!*V~0Xx=U!n%uy01}^xa|Cf*`mOA^ z?)OE5MrOZDhX_WQFH;rEWKj928qJ9$@j3@nNq}}z(KV_Rx32V(%hRB z%d9hv8&))?Z^2Y%m;jr;Wed!JT{DYXgeghsfJ|{$%yEfaBB_q>L~Pl5X^s;m7Xbn& zAwXGR0&EC70M-I`YnIO)F*7QH#h4S;VPb6Isb{~-95vc#&I6})ZG5MWXj;yK=AHoq zU;#{k4UOG^HOn16UL|LCZm>9$@~|clIxe0$K+`AxQ->yev@!KauP$7EUy5ecf>d4L z*?O5or4d=VP`HtO{&z^y;S8y_LD{9gTXP1#!I4xXmyC z7Qh79q;HvF)q_I(rBIfls~kMer=kf?s@}xvDDxz&PxG9g+jQySeCh+peSRjM4H$H{ zyiW21##;WY$wvo~AV4*o7>hRR3S6&`WC|3Yo#>-}u55FcZJa+M806!bcs5{=;T=3{ z2py7uQ3gSUz9l9dtRjYS}Il5R$+VYUN{YmD;dX0Z#)eVx1MUynrfSMcU-sFLyPj<48#m--H zY2zK{d72p}pZRAVL-2Jo?lLr`>v8UwRY~geQzNHO&xruV>{zL%Z}2^y=dCcucFf&o zRJvrbIDCMIc??o~#dQpFMN0o-16NaW)ei3KI?R^S+4CiWEp9;l84PQ}47n?5@VEX> z#^q?Um&C)(op_kWxc*d6LJ4hV1L^ze{U;Qo|SQF|24yLma zaTl2*2XTanD~u?3sF;lIGBG?J_JL7ig1p!5^-}t?{C!Za7}VFd;}3ai%csQZ@n!a0 zT;x6mM4`Y-${s>SK09wNpP=!~*x8f!@&xsKC4_n$Sd%$O4_}li3Wp zGc110R1(Bx6lVEc$K5i!g&;MqOu+mG;c_$7yB_$H^90zWjCHT3zMDS7?M-@GB1#(T zp>V%ENuxjeqD*ZOu@kPdC8Ec6V^qwI-NW3!pJs4`$xOwGjWbc=sqT~$OWcb1h&e|_ zh2tsP!kML!XQ(>y93_@t&j|0=9y4aQaZDz;@&-z8c)J;e!_~_95lNiX~_t&`Ry5(`a$6*w&j2iD-sl+X|J zG#&Edlrgu%lyrMGu!(vzhmdb)b9J?r0j#`XNujZ?%Hf2{#7SKa&oQ1xL2t+fys+~t z`Kf>5!#uw`Z-;qa)I)05&&k4RK{&96&rI3N{^iXqr4tO}HDR5)B;g8JI&4Zp@gm7% zaTGJ&f0ewCw5QLRH{CPfiifMD&^EMWN)>@M#C8x~uoKA#UwQ7((P}9_PK`bbL<(AW zr7y=bAgR-+-MKmh=n$ZDbqLTQK2%0000y# diff --git a/packages/dcp-desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png b/packages/dcp-desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index cece02e65ee0aa3e5b83b564a96a7a4ada774d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4899 zcmYjVXIN89*G=dIkluThZU6xh6zRPR2vQ6sfCAEs(jvWuUV}<8v=9(Nmli-Ev`dj{ zK%}T3MT1mnAA0ZmJl~IV_E~GzUbAP;k9qbani}iSfH*(^0DwkMSJV6|&i{ER$gbXr zd{R3A0K<1ZO*M;!nt)4JoeF9%$dB&mx1GrmF&dH7KRabfnLWQ}gAAPzUwyOx}JG|T?)R86zlOlMx5^ccy)Q_XwkpV!bx7W4f9I2;7c>KCEcsZmSrZ% zd+uZNk};i-*a+tLi4MM;9& zgfred8M_4k208(E9mGm{%+V5V{B9yj>A?&|=xA0;t7z)R9~4?+I<`pNbMaQ-0{w7U z0_i5lWN8NO$5LY|^y#^FGXD0mUd4y-)e&fjX?pp?+#zHriW4C|5JygXA`k`rupQ)j zBa_t>>**}Xkm@OV6A=rFu5O5z-He7&fe<0a73M>4a~o?nq!YC~pKhJqLoQuPcA>Fr zFd`JF-sBXIh%0~S$gU~@f=KPyH~so5f2MWTCWo{QGwf5gi zdPP*rlOja|oss6NW=!W64WSvR3Q^Vwl_{s&hXi00>~004#$_N2Z-fi>AF%0DATC4= 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 WbY}{x3a&1{0D4-+nzibXsQ&|x*(k37 diff --git a/packages/dcp-desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png b/packages/dcp-desktop/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 85300f70646b8837705c0d7f1f1c78e9b6c519bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4862 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 diff --git a/packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png b/packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 3f7938c9789e0df86265be55952bdc98bc5efda2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7796 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 AbN~PV diff --git a/packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png b/packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 8508bc1dd066a1301abc14715e4f2022651099c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7227 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 diff --git a/packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png b/packages/dcp-desktop/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index da4599b33921bcbd222eaa77b636d86ad0ad7e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7728 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 diff --git a/packages/dcp-desktop/src-tauri/icons/android/values/ic_launcher_background.xml b/packages/dcp-desktop/src-tauri/icons/android/values/ic_launcher_background.xml deleted file mode 100644 index ea9c223..0000000 --- a/packages/dcp-desktop/src-tauri/icons/android/values/ic_launcher_background.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #fff - \ No newline at end of file diff --git a/packages/dcp-desktop/src-tauri/icons/icon.icns b/packages/dcp-desktop/src-tauri/icons/icon.icns deleted file mode 100644 index f79a974d31a8ab6d47dce7764b5ca493e6ea93a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1893150 zcmeFYV~{3HurBz%ZM&y!+qP}Hds@@BZQJgip0=lL+qP|6`+ave_MF{&f1Wr$ZrmSP zS(%j)6;%<1r|L-yV_PQx?moVSF%vTY03RBmC@%pIgAD`t$B>c~RsKf{{wq)r|CHqx z4qN{ypp&wMFra!0_w*k_)KpW-Oim6!{ZAbV01UGLfc+ctk6`~J003w{5CHm*2L9{I z2l;>V3PCCel_)P> z2-H5e3>K`QSG18$C@-Q8#4JN(EII(7Z{za@K^jVk88GFBLU-?t?d?H<)Qm(r-L^uEJf3==-QWFr`P%pTf#bZNKBaPcS3L*0yqp-OsL54Uh&4)G4PnD#b0SkHsDrNP%)9f(1 zH9N#B%_IB6&Sz?qPQ)W;SSwB7LtjDMIYI4V!1@FieF_Mp{kSEK1aDdxM|%*L7yyHi z3`p6{p#Z2g$dtx`c`BZL{T2rgcNK?3u)-(^!?n0ObIgPphU0D%*>;!gFBw{KjCDre z%DY$@EE)x;=c{~hnr7Inl60t`qCGV!|35Y+SL3@BRq5nJ&794^; zU;JPEit?xqD!DUgaxKnY38Ssz?n6h``&+f2#>gGsRwp6*cc9VbBe=+g;(jy%ItDjA zl5YUYhhHLzDRs7+=TrScSLaPLS~k_PBY%_jdYJEn zbKC-Qgo_7M;$TVkW%UGCvV!VJMqT*r{u8J(3vP-Tv}K3EE8H-D>@f8~benGkyoSN9 z9G1%(#q6Fr%$EBn^uGSOGAzK+UK+DarED}LW3kTOuaMYPs?I4HtYy zCf{lgny=L-4D zRD@f0f8-E|n=_|V^NDk@U*2^MGHW2bqmS@UGv$^}oyo-1LW5K1e5dT4s-&g@EJ87c z3nmP4i;H4r3IXe!!yNsZ^m3Oa$II*yK7)+B58TbYrOfI9#Sc5CF95^&UIf8=IBU@N zdQ}~>o38CgSpu5PMBomzE!OpBmgHFb4oJU2NbQY-6P72@WjWohHkZ1n1tkxIJRoog z{|AiVjeZmF8aTX1@9nR{tIdYn!o@yr?D;}*i~2|FPX%PueqG#rMemiLADCb*`MD*$ z6cyqZ`q>+ftlA;RWT5soL04F7GOis2bWs$)XoGqppv~&vDx9Tj?2|~Nskw6d7Sg6g zA^HMt=wn6V_y&74|BBpKi&(}K9hN`gJsc(UVDc`u4wo{Si$nz$&Mx~4!lJ>&Z7wan z43aEPGcpV(_6S=@MS5>=vhn&EM0IpRW+%C454o?rcwQdh&}-@8Uy2*U(H|OP-9}7J)tAMSt2w1>x*b80xOQ z5aH&XTT5b6Y1h$ET38|6E5K(=cIgTWW3t}Vljz=Siil`|Vp9>GsN|Cv)D|vWo+}ym zR>q5lk=C_PZqoA3Q4sN=U{0G{FB^X$8FSOc?ny3@y}63h7+FVio*z5GTV?MgMk7Lx zjgpZHH@YC!vBq`sw)hz{qO8;Q+MhkbtKqWMqt9*efy*vbYxHm#^xLN8>kHQW3-h3K z|Kw4BE33}Q_e3tY<{8dBSrSu**XEuKwir5a^RE;Q>3tx^zUQo}fo5jL;*IHCOwv-f;phQ0?7dC}aax~Rcm3Bz#sj9WnOhmq#t&dMskt%Yr`}!bVRB3}lIfrv zwpA6p*^|Uqp5=3n_2{WtkrDB@3m84MM{wx=T*%zkO9lml)cx+@_`=`>%0L zOq*1REO#pMg>^@RZtr~nx;PGmefN$=OqG5FxPA|74t4>3Xz=iKDK3wV-Aw(g;LRQJ zu#L|wv{^AMj6qP+TVsufIl60(PPv8m4(pAc2Xk~h)Z%%|CQtIR!!*_$x*RoTmn{lY z*OmaU&4f>UG7_s@u#5|E!Q0#Ye4;#%8Nzi7bSfA1r-EFAA1~b69vj$->4uM%-zdy3 z8>G+Ev*GD~idqy!#T4}AN?B9|i2GdsXs<7hXeqxoB~Rh4T&a`c@?^P4kwcY842^pv zxlQnh`Wv$g6V7E+_06f`dws+Gpaq;bWozNA7&JA~Ju7Z%fak^*U9baSl8VmD*ij1_ znhmDe@3}+qRx!k@()LG6D|G)#7TqbOOsNg+am{1y{t>gQp-%8mG(q0XxLM_`FB7bA z(vn!JqQ-9xw|J=&=7j@5UF~9XFzuG9=`|L!#E2}m;{l3dmMNtXaePj>*O%HGX!z^( zHqR_CSNp=-*Elzk3%bG&7HSt&irc5;LQ!%L+3@9G@SoR~OIx_oa`bEVu|FQq>VIIa zjJkS_O_+SUQxe53EZeZ>-;*9sIZ$Ls8FRh#iQ&Z}EF?1svok}o(a|&2r`*oTQ-98D zlD0jLgV*KcSlD;^hRSQYSds_k*Y7Z-OB;39_k`n7vHL^CTRd2xa$GJ1NG$R_s zYQF~qdXf+_Dk#Q+b7Ni%{7Nf(A!31oFVT9TW|$)!3%=%80UoD;pt)O}; zcDz1T@NuDkc+ZPOAp6z^4Z3?+pf zc7*}FY~jOBxCSuDWqa?=9+AYHdkYX^@~9HI6Y@5%obJ-?AO?2F=qxcmy52h%D_L?I z0ZvQ?W6BfXJUF-QpPxxYaPjUK1at%UgFqnQf3Tl?6z_a-Av(8^LN7Ytk+Gb?8Tk)tFPb$6rTH}PNzNCn*sp_?yULvAm2EE zFmDLUzZgm>aqv~!PuAw3o64_5Rtjz!Ga)!62aug2CC7!Qli7IGvXQ^03Ds zWT6aeso1X)ZM&b7U$>vLoT^2UfT%L5dB@Sb=5N^<*PlmOc4MvV(IcX0;gm>9guewv z1HwU&!HHr1yBwN4FcVEn^nS@+dP+UI8t9)SkJ&96ha)D`zJXSnvAZ~-iDTXklggnM z>EV``ImJN_G^5C=LSWKFTX6TY3=R{+A1HILK4yuUsJD{PaC=29b{Y6<{mVREWo;=n zp7DRtMx#2*?`;d#4PH)YR*Q^U;b(1}J?(L7CX$}7wvLwLV%%-=pK&>;1pc-*p87Fk zIpGYSgQ_SB!UF%YKlEcjytflXU2BN%y@$Oo&UW(}2>yUNxA;Ru&x#Vph&AkF#Me0V z9Lbh}Z?-S!7d4mL(ygy=l1G?YOdJEYJy}uipC^#mme_-UFC`ioo@_q=5C73Ac=>38B z2EXgIquqOOm`J4ih|yeqRq@=`Je8HF%cv+2rn3=0*{MG9mznDQEn}P36<##h>WG73 z*XplFtpX=xGRsp^~1$$TFJE#kZM|DPUUe_1^Wq z)CAqmw6Q^C3@F*_P;-GJSvMhQ`CP)$Gr|P5`s()Jb+sxR=2@aZjlaoH2mGcg5pxn0 zD~>n?6;XgD8j*wpSOFLwiE=aXDgijr&hU4``@zTupF%kgg|Ymhf{edN_WyLM5|@pq zJFui$HX5c!L+cJ6}JPjSdZI+oXCJ{f>AH>bum5K8Bo-^S4mG@}D zAmGdJJmOs8k`psKkU+MNkRf!@^_l^M4+jvuVG)+Hg1`Wf<2o2 zN>m<@)l2%&%G_vT>_6~M^Dcn*xo5l!BtRaMwf)pw}h$NdYCBT$o!63lucAYL`WB!hxC9uPvfwKS|BRd8Tlbr%dJrz7z8#O5| z|K|CPKR{b)Ls;&{D3Ix2c`UC~tXXYP#gIYKMo-kj*Nt=HkxBKz3E@j2cSBUvSOaqX zi!&%p0wGRfSUWU&%&=B`Ws%?B=T_spKEMp-dZ0E$6rGbUBkG@dH(EUt3x3YsJw9M6 zLukG|WtN=B-m15_n&p9#zg(Tr=@7hZEmvg0i-u(xuxaSBO{XiJ-A>=&stI}+fuOJe zxJ*Lr%MICL65x^EkCT+74d0oRIrsWKgQeob9+f7-jM|9uu~qrz9`Be;5J0LjM8$pm zLXpV@v8-`0>zZC1wvZ9fevZ{V8iytWuMD`0br~vj-X7I&3Kd6KGumTt^W66!z0@fX zWnt#OFGZeAU)8Rft;8N1LX<+hO~AmNp&5_0-*99JQ&@ml776tJ(nnn_j4`u)XeMw* zNbpS%c)p@mf-YL}#%T9_geIu~XFYWme`FAPTSoL?hYODMonXB#9UcO;Y7CYWI7Xkh zoTrB>j2IX%jY%C2b*rIF`-ow8VyQvK1oq+P7|E}%u=i3wwrHNZ#ycse`;UPryDrNs zy(@MzkJvhhHlUVJIoZjSMYctA@35GsHNH+nd zlp=gTJdG=_o?F7(a24MIwZD%rS)Vq{8-FDMWyUfpPryOjgS$h-RFtZ~Q_V5eF-aszZsr6m!kiVfD>5Ksz*SnM4P7JjJl_3TY3k#%#OY6 zh>&36lvrMc2}9n-75il;$YQgn=1HwrA61H4C)<_LO(u6{S!8*wNI9u6gRRpufYp}r z;+|%fAt5t@OL&vWvw)_joYrd`Vt~nj>V}T}YuDNlwHw_E358c*S92 zc{Olc>pxWp3``qN%dZXRtZtZnr-JQ<1DPZdJ)j(Jc3f+tB2b*Z;5!L4k3XJ4oVe~Q z73v>J7Z(=KE^WzT_J2~H6Y`i2)pqytBbgY1yfL+jgd)u{_y|9zhrMh2XQNQ13sYvr zha)U6CC7SPrWWIbmB)$n0VHg6PH;Odo)|{|tmaO?AM1TVzMG#^yNrFET@|z6BWV$w zr=BE$SjH22#~bRhC6AruIQD+uUgO7YvZ)TdRz7>b?~LKQ(!VBY4rMPWOvu!8y&;!m z0MNltW7L4}7}~mAGblj3N6W`&%W-x2k8{3#b-$(eWif8^b|DUq?zIk(!UL_Ts*LEz z`J|^uGb8_(O_~YR3R7buQ5#9PNeK5b=zR4dH1q-Ir43e&xm+Hn$hOB?yv1N4yN6@< zUexEJJl(f3oTPJ)Z`}>p(kPH{N9M6vNM@lPsI|t2MpV48S;VIsOvtu)A@7Um^wWVM zGnw~@y#2>>((!mkfR1)eDI{krPC8EkK;L=JpnJ2cbW2A7Bu%uffbncLRvos~ z+N(cP^9P7CAZ}g!FVR5VH4|Q1-hcwNN%Vd|+dZNu#1hLK*=VeHTcmKWE1$m&wb z`*7>1mu1Cfe}4UgIS4%e8<~o~f91Q7R{lO_F*^Xlklz}4HDdvDahBJZ@=at8A%pAE z@cF7Zn{UwpTqfZz#Mb2+$L<-I&&d0Jxt_$>Z8%XJM<~_L6Cp({fDxcA4T0R(OV)2_ zK0B<{i#M3^2z%|z{rVQ~a-^c)aE^S{TZjCV!>^7sC$Gq9%^=}!EG?+e!ax=+D4-_1 zFiI9+G$>o6>(hGr+I{gbC&ROY|Jn{|Vp04bIs6{hJD>75T`mX|4RxZ;Z^& z!YHOrp|gAokrX&W#%ko7!6!`B!}zI5NJ(R>nZa%>ZoB`&!h)cdhTBnr&Em}Wc950Z z#ph~JwUax|7X-0l0ut>T+W1s6-+*T5olaf>CJ7u?j977ftz!Rvqu8#s{de>K!Jz-3 z*;uS!JVyZ`_!GP+GjsBiN1P(J&tbJCCCbuE6=rCjJsezwe1`vE9}2oROd%aGPPZ}2 z3RgMlw2C~WMTb*{(dAY8w*1+wfj7~`KjFkN?5oA#8J9kzwQ{70!ixF37Y=}b`m>c5 z4Z;XhPiDwQzy^f8xDh)6Z?UHuxLbqJp-=_@9BH8ku28lIb^S3 z(DqyU*HR#VJO#-Ea+I$eZ5fHAN=shY>pX6jEr)OJy7uR3yv5e)`_*r5$gJ?Z%I$}8 zzO7SzHFPl)s6V@^J-1VQ0LlQOojqmzV806*SJ=HJ{+p2g!=xH5NGA8knaocPFP_#{ zb_379WvgEh9EyDqBR3F<8(5>yr2;=vGbvW|wp>@$&+kNsE}X;vl51`UMCVGIz+w!T zpwHAkl1KmAr&O-MCg61WE|%_XJFW9LY8P2uj}Wl;ML!SE8S_EtqelV2`$siN%jOf< zPwdClN&e8TWpHV}prx^W@5R%*hEs13Qw6C-O$KR90byg!0@iH zL4Ax?V{xL{s=ij5z;Rg=eU-5(#coO6>Jx-Z8Rymr|46=wS)9Ic->}J95{gL?Ql5XL zlYZHZV0?DA2Ki6YMM5AsCNNZKq~aZhX3_~oZ)-V`?n&%6x(+!qp0@yM@!STl*pbR2 z9xOVIPAgLT*I_8MPR;(CuO45J7kIOJn$EMpXDL^y!ISr8*rU!x(@VmO8Gz8KihvQo zU0U?xrx-q=J}E#8#AK%y@Vw+Dy$gmLU}032W}f*ZZR5mJi59?USb=CKAUczR&Bm?{o{3_;ih6^w7yhyuKu|luqxV{6hvT=7K%xi z#O`G3|0^~)pJxVf2I`fXuAoUj?ecZK?G3)GTMj$>##)eh{RNsj?{Yd@b&F~_!~#;@E_J<^>0`Jv(=&h0N}zM6%f;!Y;j)X`%6rvoa%9cm zZdM9w`&UrQNy!DgBxSfr3Fs4`$hyC3;RiOugYElnebD_VRwi@9QA-5%Rr8|RlWUq? z*85!eR>pf<*zsDW&IM*cuuxQ>c*t1%?tZlX)GiZkZQ4#6%$AK+s=8lBZu}bS;?JD0 z{`AY1yeT?}NHylbi}Da()fEPP_n2tHLfMj0ErCZHBM6Dxi#@64t8E?c?z<75IM$l@ zCZFEnC5nabaoZTb?Lw%;XN&mJQ*Cs#5g;!qKwDu5!&Okf=IZbh-#n{`qsi|E+~C_S z3jP(XXT8^T>FQ+V&ttBL8%I`D&YB5Zbiv*2#jqcoxWq;zO>zndYzf(dfn< z>$05HFKRp)A0fH`W1gPC4rqXB*d~fpuuGJgZWTi9p)PWN%&J+D>sO-Hdfw*-gKktb zJV=dLhD*F!h5+w`7vr*}LN%JIU2FbS*RIfen=yF>Up<$L3bm=NXugLg(h1nylsz_p zM6saX6qyl7rw%)q*#2imr{(WO8KidC+~4|~I)yrwp(d~yvVUf)EBuwPa?l|@l#>}= zzk&>;e1o}Fi8qZf}GZevwW zY@SKcgx(}6CNM=2!(VmA{Dv8uOg>01-UXiyp3(Fj2IroAiR8sOF4x1c-yq(3QMZHtrdZ;#&W=S^<9o6j&AsK{8ZHgdoGsMxvXshty$qh*OqB`vPN^qx7ey^_gyj8R;mg z{8oEaSEc*idvl{Ji;oEFc?wYS$uHw*GsUL9#4)Glum=CA@o)JZ^T{3ARCa8&iFvtN z4y;A3fb9#+PB!+y?{rEpK`}HD#=xMqGes0!_h955hLq)nip9RoBH^#JeTwU)XdRBU zOe|yKX-r{={60+PK+1px0?RX!nxpNwwmgw{^|i^RL$kST!U@U4+OzK6lubVaZ?U`B ze8{|=Af|8SEj1TX`a8bzn%y6aJ{Q3ZJgKy#1__a+LhP6s_ct-E)TzEpUM|bVD6O#s z=NUk_{qRrfELJztJSozN*}sAma+Io4pe-qhXJu)f6&iFj+cR?+r(*||NybuE(!{nV z32F?RZ&DzDBKuvi9U6Z`a(g`Q6zyRtr%8K4V(FAC%c2FI;a|4h0W7bVVlL+agHW(@Fs0!fG$XcOW%rY;jA- zm;9p-wq>MrJ7jk4pSxF4B8M|xNKSV*6Sb|a#L+F$(J%C+8W_0K_gekNycEt5_aajK zUC&v_{Sgg#Kb1>v=xR3zLx!*SuY+ru&aGBb@^nFw-c$!Wq<69pcid<2wam4PB#CG# zfi#=?qlfA;TCJD2GmA}{@+42M&Ac?4v%@y4g%Pk7MrMmTui&;)qZvfRCUrWRP(1Z% zN%m$RmUXVD1dW=`Q|_8yA0@Q+nwrysCd8j%P!<@gL6`H1Al+X=#foap7n4psJ(eD( zCGKiDiyPEY@Jl3S^`B}em)la9P#8k!bgEii(zKsKo6*PuZlGmX%KeXOy;oI;YtKmD zkF`t^@=o-&mN7YW@QFm?k%R+PhFC&KlW2uE`+_5-sv9YdnfIDSx<2`;_WE`4iu6^vd28-T#@bEm7vLmT zKG2I%D;Od14<)AAtf1-sR6dYiN^I9ZYMNaKy_QW3gyu>zl}Z-6jiOoe0z~VHPKt87 zE)9UV-oeeR1N_0=)0c)F2^6NL$CI;u`t_TAkQ~FrZkt&~gMf>zgfO0C@~n%zpWowu z=n2pHXP_T?OknqdB6Z_b_DjY+&?P#=8@1^{Pr4V%Qv?=iroP+CyD%kF>Bj#8eNnP( zC%XKG?71hDZ`nmjy`Q3yf6hwA*^svTh${nx#xApUbc z1J)d2SIrEa>u>{3o6L84cJoi_1lD%WJt2ZJPT!?JY_z4-pQVm!bn$H5&Bg^At(dpYpP2r{ zPKrc94XiKd_9%H11IEc}9ZX{9<%ki+Jby>HK`pzFicbDD)>CXt z9g_~;Ddg7r@+dz!>?~aV@u4I@>AX{TH{YrXC)({#yWBSlR*S+QP1FZ9IzR{qBG4q1 zqM~E-qbdy&HUFPquD1F5Pq)etH~N;@>=v^Wj>6{rBMsidqd@=?poC@uAQeGY2wl7b zjyMl_)S@Hr!p& zvYJr`T%fjbbxfWtO%|_|c!r^me`O1NJxz`#k=wK>m9zK)d}EyKF3$bnA8>-mvL|Q9 z$V^&{K>1+Kt=1oUh!E&uUqYMv9<#yai|%wM-SjIC_wal>!1D}RdEQ&Nt#!&^ScA=~ zv8mKL+PddXpGth})jmcWixh{ou7JK%yt!+ZoO4=`0pKHhWH?|fnFHsLMSx;}5ejT~ z&ef#xQ7>zME>M+@Y5PQR`H$05w9oX~ovHQY*0#zczV5B?{SkX@A=D96t`DwUC}*02lB4ITKGN zY&<2-Z5Tmzx%M8~=c!C}WX&U%_c0Y;R=N7Uwqzb=lWzzR`<^!*O)0L#UsmIbb-)BF zAg|fLvM4daKy98X=o!rwx8rPCZZc`gnSLZXdUB|@5)*^w=ZPA@t4kx&dzhUe)yofl zdc9DQ0^VW(fkeONhsR{DO-x^QI~8fadieGn$0hyM!RS)0%HgBosW2~;|LK8~T)P}tE422AscaTdbhnU_)LFrUe4 z%4*}+NW*8tou;{ocXbB%%Z?y3b_}IwZ}>3t4=>&Tc7Il2-d-*oaqI2D0APp}?;1M- z`#@r5LdbVqK=U*3JS!DL=4+J=a1O$&c_=91h*az{3rp>fKL=GkvD>p8a(E_`ERuYS z!s#MEWN5R}qP&WWng3uhzRMN&kG%3u?jMRCl$0bkYx} zTm9Va{9(2ib-P5ho^4`=T3;8iAY3=C4xHLSWI(s)S{W?SGfUX)BFuC4&%)XO_AtAe zIz+miwg_neR_Ea(fiLR;2A|KT7=xKH^&YM2@$fw*B5$L(4lyl-^^+| zY3(sveYbpRjXnW6?52mldvZ<6L$oP%ZfQaI`071K%F1dY>-Mt^zJ43$=3R{H)Pk5g z-Rf?>xzF=fw`w=mdIbyI?s4$ZKvp91Yy%$Jgs2>IvdT+$iMR)nPay^53NSrdPsq?2 zPr%&mtOVX$UleD5d%+B9_hh6k_kJL7TIUv&AVf}Bl4u(Jop5lknzvv zPK2uxqv47S4p}M+p&^K?f1XH&OAV&MQoYsZ9dr%EB79rD5VOCc=^Ny!!+Px7kMy1O zbQKDa=(--x{uEYH-sxpd*ayL59m}>a;cX=bY_aFnk7*UyZ+^9uMVEy;=Ymcy^XTxn zKBGA^>!~zl&32O-;i#`9Bh}(iJEjZ%CtmHbgP<65nKq@3aoe+-Qk9?n6`c^z9`E zUH(DVNfB7?v|kVtauM0HZh<2_Xq~^}zTAm%uoz-hF&nz&+dyG1IK*OKdg#Jxz8%-A zjyVr#u{|lO72ANm?1ml>avh1JO%0QxG$kSApDQ*MCSlF85AhEZrBhs4ugxCmUF)DB z^y){W>50sL_WS9X*20)d2#Y#n^U;g?CUSEK0G$PFU(xX&b+X^}G%kt!Av5@>6JqHR z7jU9)()n4kFOcb&f9Zwv%!}8+*hKrrrwbI~9IAuR=mJICS+N>|Cf!R}#2_M`!K}u% z50vXh+aqBNM@^7F*fozA44d}d&rT$a2V|m?#*paiBVZUn?)JwaCeqw*m+QBU{@#HX zIg;ECy|6jI5i_2evP-~Te*h76lyCBzMV)#ci1v>P5r|GY#O%W^?lC1~6b@&EOOque zx5xTnw@m^SHp9a4A=DO{wcA4h%}px}+rM(#|B&3Q@rZx$H7u@hih*$H6tn_`9Zq`t zG|~D($x6{20nW##T(>A+*;>R9m@$_nk{%80W)v^%%Fh;89!9|k_tsMKrp@($wpA3r zF;PXDCe_A`|r&7AyLhM zg0`Z8uAb|U>g&A)xb3F5_q$dix`CPiOoy~PVWX21b{N8g;RydM?u^k9MNqT=cZiIU z8bXUCL^kuF12N$t$CLunIL(&9p)B)|Klz~`c9LM-|CY209mVC7-6k8UTa90;r4(*P zi3@CKjKAI5*uyctp|~+O={_G8XX&m062KK(h)#ekBdqkkdw>JdoL6M1@%W1ezdpsz za|-D6>L6_I7`l%D$DS2MlzcL%IsiF7eAf}q$L|m=>Tjy9Hb>dd-%7CQraoElQNZHv zT*mq%Yh8#s!Y?UfV2UW%ZO8_2g!efCnR1tr50EUV5Y#|7nv$pwFtVdsLy1>CH4) zg%dV|=^1rFaOR9gFTd8mii%D}#Q32e39g@bC#Y5wBCdwgwaB>1vOG?OL0iiSHunr_2KYjY0;tI# zGJzR-u1}0JiqY&(k&PM17bL+oyNW_|1GsSgkqHTqY3=>Au&3%$^%L3Yx=4)*+c8Rn6B7+b|6amy=uj2iqt0fh>;2qyyTxJi8?;$iJ}>$ZX7iH8 zB0D@txC;F#8DV6XSu+{;P!(y@mI0vpK${S(s!ow3iQsh>>9_yY=Nt-INjR}`%$_3s z;tNO%+cWcc?clH+`Y3oO=zP;ge*N!bC;k6OQT`y`1Q-#%*K;-9&i^vD{)0Ql!~y`g z7XQ!Ov44|sfPnwO9n*CzHT&24FUa5l0{(+L_HPdWfcY7=)W7LM|2KE+!Ur;+Of1Fq zIfmhwF@cjYS_CPS(;tqDB#@9Wk}?t+wAf{N(`C_R@_aAS=u=KoJrM;RGl6K@-^4zC zRMzu#bHnHTyQ`-B$}8xi92BmDL+{!}W3kLhUM+|FSk=YN#b7#0gf>7Eqz>#S^Z-gY z8IlZPs^I@|{O>#;bi_cvs0C&qHP>YWrN`rh{_t=!NJ>-0Klcdt(P z2gnZnz^(_0e*IWhrw1XqH4vc>1C(Fk8-(`AqprDs!^77r2ZK((V}*q^m|v!ruX}zHE{9PbAw>AJjV|a}&S8 zevd#}s)Boh7$$?LsRKt*Ci97V4O!5*llG882A-7)UqaMWgLWv86Od_yN^j+m3@_*- zXQ+w%A)p{4Lw~DTGtd}8TNHx*6-MfjFkS?EM7s&!3=a?S-P=w9jlhdilv`Bofmcni}z2y zbeTm%B$gR2>A=UTf9=jv*EIE_fM9Don%(H(M%91C&Il z9%CaR-VeSPkU{3RIL!*M=WEP&gyq;OQz!izNb@qXj?%Rr{rdaagctkI$50Kij=*cr zZ1k-dcC4yR6@;vY)8Y(4sd{ zc-SjUPv3`KF`RY@N$fBU0}$LODRh3%l@SaX)9a_}?adB*C+?@O{=ny^1~T6hBWV4i zBVpkMzngL_&bbMe4m4SCR&Nn-6Z1Xk@^tkcM{X#``Nt4CWH&4OeIaQb@1&s&Io1Th z^0`0OTdC!}#SGP5w~zVY#eD3p2(q$@B_nzzRr`wXT0CQNbfSW5smp7^XlPitDsfJf zZ39L?ks>59BeFNAc*JX{&@qiFAN!Zw!L5c4s+j4TP_XO^1Nf~P=xNwEs&5VIOM+HQ zLbn}Lw`O>2c@qAc;=Sj!Vw3F}E8Tv7h_gT@^MgMN`!W4mP~-V0;` zTtX;*C2$Hieb{UzuB9$*gxH73K&+SAa`tDT6xUb0%dJN1(-~_$xzo9x*&teMv_rG2Afm#`wpOhh0OfH z;sI0=41tKD-B#6SQR`LIhfU2GPg1I4-;3!N%ZLQBF`b!$gjvAO!Tpd*ZhYhHizQf( zV!c75fky}xq@9T1d;-KeD2rl4YUufCiR=DYe3QeTMLuy~VKf6kbt=Vvx=q;*$K7UbxJ>9z*lQf*;@=rcKq(+~%vY6~T{ty`_ z*uZ7lY_gTM{Tz$2Bfx{hmnSPoSJkB~N>)o?!|um5%<`v}i71$;rA}1*MCTzLIv57v zW+ftH?yO{#+Cu!GxV1+s#tWr0I$|6OZlFTyWbsV3VDo>Am~>ryX=4?Vq#0l7#iHr7 z$QqFPtaE{xzIA(Cl(g|F*8QM0&;zN{8>x`bCf?$O+eO-en}g3O6Uizur_XSliABWq zaX*}goW?#i)7ihdBV|0r6~rX}A}x}7*VnN+qdC6d^WHfMKRKiDT&gy}$z{rnQYYU9 ziyq~~@lTu!j$Y;3Cy}->Q_IMJx7zB%il;0)DbDVI$AhU9;>_KDg)VknnjEv=G0S4I z?}Jm2uv(MlO-)Z=mjl4Z#PA|nx|Awp-I3%t2p&2&K49(ZeF5k$oV+6U!RThRGxL^FxvfPl0R3YQzhm;ciy@k9rMI^2J6L?uQyxwVQ zIevM+;GR-su&>Sybod*Squ4FU7-J*UG=(>!DUFE)O>NoPv@()dFtPmyiMT-*bLuI3 zZByCm8I;s4>(bf7ricNOy*+IGJo`=dOAHi*oHs~Gs+W!*KoUrmyj~3!t3%ob8&+^; z+b07Xv3IFyK6zWMn#%mpyt^JZAA6V6#9!W@XBe+sy0wjuqV`~G5^CEC8`Y-bZ#*jU zS6}_Ru#pt;{|v(Q-$B%Ri+Sj=MK{!ed7^@+Gp()9Lr!GOzVEl{C%>+Xv4p?1Dn~9COQR z-_}m`9!3!Hl0q4OhFe{NrUWHyG(;S#8}9Y9qG+BPeG{vDU6yrXd$MrgI;g%zejdSH zlJ>nkXpsH03VQnB`3h5%AGNT`FMR=G7T1zF55?dqQGD0(x>8@CyBIQO-!skSo{mfe zRSGw`01z}qrbOFRW{)(Mw)1F9*QQYE6A)u~1QjzAWWEEmQf?M><0 zHnHHTHH7RnO`5qwJu$Ob^aHFOjZzN~;`$$`RPsX}wc?-{ogvHWEY_qa!B(e>#n=Yz z5QKORR=tZBJC*`xSm$NCRGb=Mqn_J#xw*bN?-#}Ghz9XI28~PUgAr+oJ%5}47baws z0{x1pAE7v7`Vty%e8&WiH_h>^W1BQ&Lw}wYdC1by?6=>JiB?jy8{ZYfd#XyqgfXU-!kS~;qYvPOQAd#VR zAJF4rRWhc)zG$=ECNp-j+g#F~onDsMv!LWAemt2+sqOXJ-~+P}g5$Gp*Lm zPReGarC#wS8b>Jo;2{lvk3v=Uj&hD9Kv1MRP+FrZhYE{M*lDNP;}USO_Zw6oX%$$t zTht2{H(H0hWHeFg&=|S=77e^aMIf>yAzsEmh%i4h9@`MXJSP~>K?TjN9Ys~VLCRqi z9K-2BUhRXNO40$}#~qL(_pX?0Lzb66`rxgp+%h-FPGI032rx>k903j8PyGD zOJzQs`en+R8p_G`vv);-^oC(ykxR+H3?mq+F1o%Jp46$u5uceJJ9YOeda(me(sQ0U zC5iz{OLr)6b>(Q)b+(S#%ihJX6m#7XmIz@Mj)7d4Yu6fQ97>|JF$qhh#$@1`YpyE7 z0)GCS-f!OMwPyO}s*FM!cZk#w!jM*gO1Z>C$?>gj_II(mpTGq)V?6XwgvM7Nn+~5-MPDAXGQlz{*tCbvk!KOi%nFWi2=Y2--z&r4YJ4qN>WoRUlp( z#flmGsK;(%2i4(12CbQm%lgD0adMSoXAfv#DQA4$M=G!_?W7W{7r^+(8yIvIwK#uz zJoEE7u}SUkG=<4BOX|P;w|iXHmuBK|J`TtK70Q(yt%2+p{aarH1m8Xe#WzUCO4sU=sz4X(ps3yd++SX~); zkq7gP$+(6oI6<{l0Lv`Cc#&fbHkMXRmJjK9=^}i-V^G(fnbW#$^GydHxc*=iZS`T& zI)F8+hnAF!)j#V4I!0Zn1||iAQ3C3Z>*A=RCwcmm?V=k_ni);oT#fkYJ(-L9SBJ;t z2coC>F&_r2ea6VB+*T2hkP%3M4XQB$OCvf9CrE{so$~HvaH!+1hk~#wbdYct$kMSj zQm~SsAjXv$eB)w-Un?_CW)oT%7r`^zi zvF)%Ja43gSF{l}D0JL`d2T$9ndh02(a(ivAK3u*yefRnm{$ax#qHD?2KIWtLQ2|vy zd82M*b+8Q#G77~~dlgD)0jtfJ2GI~YL$Kw-RXsEs7Lv{yj;%~}iO#wd2e+~?jUqi8 zVp_)Jcs{ioj4x`7Xi26zS+6+^7Xz<329%MnIT4Q;TMv!iWW~eCh3z%`Obi6Ik&%VF zJZ5_%3*wNM`4dat1SO14Al;hmsOxRIa=$}|j&t>Gjq#*)036K1P;f=D5Cwci7k@^X zr~^O7ekgnh+Rj>y z27(Fe&~H z!4@;CunDeu0(#VDjZ*V7aEu#qM2rCeT`mUy5>~-+E-C4!f7ACa=Sm^mdejxa1wPc1> zT4a^d4zv~nTmc|&Ucf=BuF21KPEUQ~J%^NkcF;D1?VGCBxYi(qZzW2MJcqGFy5nhb$d$eV@|*A^mn%Gx za+KTUy_|*8roG~8%UoMXW9S(hUR(*V4#jk~d_r8ok!(v&$xds#X4m=ac2vb%(FtOh z+~FTUBXM>TXOztPa@??&a+{sbfaF(YLK#t57Zs4WCL0BOhPU0QI9#I#L1-dY6!mj=K> z87FCJ914an#Uc#R8$PDQvQ#;Z2zV;CaOY7*3u>qT` zEH5+DJ7XoSO{1KA*<6GFVmh_~xWqzCeoQ-lYAZ+;Xx_xFwa4WZF~XGVdEo-4GoCFn!Ad9K?eTAv>l1-ETa)|3g67Dgq@jDZ={?&R?GJlh<8* zSN6)6>d^ZRDSxZ8H~n!w@^gXXkF*rQ!ZiCbZIw@op$w2Yo#1ldo`DVF`PV*`ecaM) zR7A z=CTkmQ51-0+p3x0fze)rV+@^XUG9*UG|c0$eCeqSIwECQC3@vYSejKvgM4Ad@R5(- z(Rq(3C-JE!*oof9j~rF{r%XEap;gZf&%fg7_GK^b&l$VsXZCE9UEI);=;qsE2vRP@ zR^pek`h&aXNha(cbQv+4m;uQv0HkOf{j_ zp@m$WF-r1xy7ZV5KT?Kd5=I%pF7X>;xRDK{6qXTao=mk`#Y+jizg-16nrfEQxc5N> z7T`C>kiqi~8Vahyub}Zu#@rCauW|Ff7=CRGaB!w^pa4%u@T*^ZmTEqbng+Zc=q)I0 z!b-X+k@kE1WTGLN_ENx+b+a}2*Fo{n-XK7Iyu&031(@qDCU{bc3FQf*!LmgTheKh~ z2KUAJTAhxL0wOBt#E&-u(F)`A2~?pLC2XES#`+kWboR#5f7M z_r8O3$4{Hq@SFbr;I2i#-Eizn{h-8q=9fO*JvH-H&9>;XI&UOE!)2au@?gR^3Y80H%4_^h zxfx9IU;r`j4L6mDAx^j}m|K&(=<#1Qebiu1&a+YfNzk{m-Z-?=^lfpszai1Eer@H) z7vGtFFUFq}KrNisy}qe;&(3?BI}*F%E<6=ulNm^QWF(?_!VywgYK*8cpu-`|+)#Dd zXkY1*mp|0-D~BJ)p7+K#4zxA3C3j8K)gPXz_m4?7B<7{Fep<4m@Qj>g^n^j0)~1!_ z*ig;{%D@SbQJZUiC;!@I0EvNOv1(~9>QO=?7mO~#rcHHbI9aBe7>fx@tEH%1UOjT; zV>h+m1@cK5%rH!Xt{pJrp8EZE-TUE|j`Zvh9|PI2zWl`>{yzIJFYeko^NPoJPS0GQ zs`r!9qVWQ2qJ(6~%wJX<5@+;>TgU1g=UR zbm;MKOs6w%OSbrLPd6r~`Dw_MmnOKfkfj^Llst`TTA5q8<7Uhh7H!7LcnuC3^BNgT zhlt}>!&jada0bNH*`^J3ZJ;@@x)#DJptP}Y-^ikMhb~*TebKdHGR0P8lcP%?KCE8P}P`c6Incw=?jS8oU zG z;GgOv?a-)OWfGmVpvJ)}Qmw@39VnqEQB%9WbL))cb?-Pd_~CJLN2k=N;zUgXPv8ev zet%2mqIFLV@1I{&{HI{Vd}*12w94eI?gEugP zPa2!YU~yf5bq4{s1|*p+cg{h1!0?xCJ+0=1Onl#BtcLjfQY|2jcr?v6jkVzNR-O19cdGn(5fjz2qCEGhfs)RHLqOr^!&oZhu^|&6b6EuO9ij0ZNC_Nj5`fG$~GnH+Pcy|efNIlaoapk4_7WvzHfL#xJZJ) zTu{?EH_V2fR*iq@3uCzg@)p$Ql_Me!*3X!ACL4i$ZT`U?p> zaA(sW`yLxUy11cyy<|uEjXxmLS{~Gp?U>WXNZ_)8<+=gLK>}MYy3M9pQ2cz`@t$+EZuFSg>?b{m#Ioa{zs7>lPOa)#vQKe<=eElWrd? zfoxlE`aAF1xAc!r`)*$94-fQL&K@0%p5^!ar~nMS_OwbOkcHFWnKX~9ERg)EE2Kl( z1jab{&s7L7Gn#w-1ABH%-g?$y!T%gLr?9QXjH7W9;Jtwri`Se{SRYz-R7vUz7ZBVQuBx^28iFAULB%JT}v#Y@D;!%|qdVLbE+-9X*n;e2yheTX5dE z)d~PHq1-|}Mz2;;ZA8KEM){5P@7Qtv`{~D#+uIW0AqTTIe1O zu7QvMc&=_{`T4Q>4sUwbHtGL7 zs&;IQb2j541{@piAK=}6gM+imQIfEi0B%4vlEAm)Rx@@iAw`RF@ngMsB9LgVpW@HV zyj2xVg43jQ04p9|{9vgVE~X)K+%>$?8#8Hh>=Rg$_jISvK45mwwI|IsUjx4U@$94P zS5!{QZH)e$q7s2dn^eF-nnZTg5SB?(grf>fYLm0{2M|_gxbe&ku0@fG64(vb(v#e; zeVgo!XB{41apG>#E}L-J>N9@yz;($Bi|fkQ$e`^Ya0Dn^NzoZDoh+m(IEt9D0|4xC zH~v`0!{UR9NI0D4kt6RL5XVv*T&yg>1E^6FM`Pw)p7#(&Z{mkZ=>QgbhX#ew@X`>^ zmNC#WHak=_UUOMTD3<4K-TskNd!yf;Iy<*Fajt$W``E@8DkqE%M^C|l)Mj(1Owtyx zwOT_ihCj|!KnAN^oH-1=(M1&r8!4c&O#UT}y#r0t5^rnU!Mo@5L&Gog4M8HuffDe8 z;b#ix75jtx@RE@cyp=V^KpXb#nADttmA}Nt`P=-77st)~o6(Uo=eY6UppcjN2}WfR z8cFJz`51evHc)>hxO@krdy3f2ZIJmZOPGvZJ!Q(pw z8UzW{m@&uEiU{MYVj35TU?w)yhIV3{NlFkV#hS zQ zK;cp1dQfQcpb@@Yz&JOcv0&b~57MF{F8`$i%td%4h_@S$n|I>GchHm80dSy32Xo&q z;F$ntdT0!FhKCtajw4d|myWO;pZ-d9OiO+7-SfjM-m>FJ&$UnceXD+#eCxo<%72D< z7mO+Z2AoRxCq6cBI2+!Ca~5JK|41u03d~4X5seumq7lV&e3&bT%9t<3$&AniA1^@;r#lSX z43rsa!($vhs)(>}IjYah>Pw~f8P91VrYE%nxa^VkM{@b-*HRc-I*pg3B-2IA43tKW zz^w?dd#`g!@~yoy8g4&xxBLM&V<+)X?#)~{w4wTbylXHbfl*^fE@p-w6%bkKj^PTh zDN!{-6%FgAqMAR~7SfqH#*_<(zf+LFML_Em|FF)PsasDuF}mTHeJY2G^HzGwJzxG@ zVIW*OZnq#MDVbCLas(P48m*nVH3UH7ia^eQMI0~UfI|9UVlqO|vfpkH!XSth@WhYY zqC{OL={IJNH|P`hJgFT3hh=!E@~uKH!krtV6#!xQG~{;Rr5!XlXaH8~ln9;>w00+U z?V471>pSO_F95{*`J&_xhF27i%54aqBnlM;_Xea<*1Bc7NHZQ&NY=(6l{2aFN=91d zEzBUGWy(u2ao-6%lJ&Sz*yEkpIxBVCo8Mf$;mCsvhX{EqJ3YI&Wn;0g{25#dKt%Y5 zjChtQn<1q1WU(3vijsLFQQ$HGfs#&#F>0j^u1bM~z|VC4J95RE zafl2!nko!7nSn7GaX$eYU&=>eIq%(=TND2G?f0jCXKE$p)(|3p-dW`vvb~uT@SsP* zm?q^)$(k*|lrROW*y14)DB^wqq&OZ7OjCx&$T?_|w$6g<=R{aeI2;2MshSIl;fmqC zmftw-De{VN?^y|%-zj7j6n1P>@jl*T^2?kVZBX3fst z`PN+v3vPR^dHqj*pE_&fir^E)!6?VObJQLClt7HFGAd10wk{-5tGC0oJIsyoY?@JW$Gnr8BWs4s1 zpI_ibb(cSo{?>*UiboFjhY#w@gP?)Nn2E$1IhbpbVJ)U2#hlqqQ%FODM;_&bF-Xm< z6EV)iIsv1=#1Njo+?#Cjy@t-@5iL_QznXozx9F%N!VerUH|j7LllT1W?X3@11}eXD zOF7CHK|>*NOU5*M87<|kpqObKc1)0>KVS(5j!@+3B((fDa8u@-g2{RK=nTH*e2C#Z zG0zmmRuN8_m7g(v=gdP59m!tJ))+%}-U@(*#*vpLDxxOPFcIUx&&U7)2j(1aa3EaN zzp?bO8=h%=Xx_9n4Rg2c{)cR5@>AJXzs@b$IgyADTr7F3GFu(enq7$C;KDI^wS{oN z*gVowvBzjE9RaLQxWM843+z_)ilfo8%4qoWp@Hzy2kx$W7ATW4?0Q^o@9cK>?#ILvpZ98rMx6CljAIpoM5G;%i0eSN(D`80E&__1aF=R@)XtOI)Y+UidL5PUU_ZD;}cP?Ta^QN9~Se8qk`YIb*B#Dk8`r~m>kArz!ZktMn*LV zp|-HdOvBn0h_uhW0mB2)?*<1eALlOx&6^fA%-JFMbhbTtVYbC@CJi?BupSvF7;`~N zuvJUVM5@OqsH#^JNTfQ63>s9;W@#pKaNroDN12=9=vZtye+ZTJd6j&`uM<6p_~)Y= z%fEj3p8DnFH5tM#C+1FQ+^+7|QC1di2UR_jF&jgtyeVPDrcly_Jxi)Ia1iz_4^UG@PnfsM?@0yyvtD(_v<;^r+ zLn4@n3V;#Dq-_*Qqb;4_i3((#0nVWHxgy|_J3kZ+6o$jEuIgL$UkmXn>s$6L@6ptg z_$oeeb#xN@3OG6GZ9vB0!paa!C0QRhYl*Lz?V-xico{o`Hu`Oh8)@qh+)6=9TC$=- z>tF@}4nc~|PVu{Ym3*~7EO@sDLzPR{FB`e*nP<8u^e^Ggm=V=?9$9%P)t!DrmCs9U zf7N|Ri?WyLQZD-ENfJUl&H=F0h+LSoZZkr{7p|l!#vB*}_pni;yng7LtAEn=Nidjj zf#TZg!n@}eFX)(_y@=nYXOIwRn9OK^1q4K~fta(5l5iO{9RT5Q1_2h=!-L@iBSV!> zUGrG|U4VLL>=(Qv)1LUZ`VN14{u&YK(mR-jxkQ$|c< z@SD;ZV@H{#Q|z1pV%BB8!wN$zofRS z`#1hzny&pJJq!utCif>FE2B4Zq|5t8b-@A@)_I1px|7=62|K7SLzacR7$XHp244=GgeN7|vna2zn3MW9Ab@a&G`kfjcO4R#xlm$C#WTLLa^+BGdfQxpefPpkKl!yh2*4!i% z%-*SyJPli%O}Q9?MKzW5tD~i-y~RU&O~f04REw=LoVn|0Z~M&pJDWNZbGSi>#;C*S zj+92iVaf!R$WWm|QX|GJ!zsj#K{x{a>}G`3z)*jsl`D>rZ{ER3k?OomzFC6_# zrX_hYUjLQh5l-&pA-*O}9&%F5X zng<7efwYqMia|MCQqB9<7YBk{9=|>F1R6;{@j4DyC3k!G$#xcWgX^vhsd$q>&4bF&XQIS=unOlzY+LR7(@P4$8i{JO!K-0o|yo4U-=Pn1{! znkbFk+;+Ze!Si*wQp&&jMUQIE*f+O#_q6)k>KgraF6CPOw$-(9yxKs;R{H+^0C(@#m=KYKFd0Z(+K zqM4s*t~CGK4;TBJDDXSy2XDr{|0}aiewH&htAX`%LmAUfKD=>POA|*{%2*kbM_M-q zS%wt>zaS+|ER0l3qr>4P{r$Nw-SK?;ay~7Xxn1yqY)A4!ID%<xKA&8H3L)eyssYCp#882Elbnfa)dVWgWi4?f_oAlx8d*}8ywPdF!riPav zWxoOFI{ou|Qr8b`2tHmZ!k%d4{6oON%1A6;&0t)fc*GYnX<#hOa5D~PP<(RCPv9Dx zul3foCbF%)>GOK0HQ)c{-SVGl&MeDZcTf788=fuhJGd(NHok>FBt10sN*|$}t{tq> zrOm~va%`dk6`2_PbL}=525t~lDtwk1TBgPhgF%e|OtK&%JqzMwgYRcM{5RBXlm1ZM ztn4k#N478C_3goTcR8W3VBYKC^H}{)<({gRt1FG?Hr?ZygIbG`FeMVBk%OdXye-h> zR2A1wAd$zQ@f&J$CbB)!NiX#M9Y`|K0*8C62)MAlzM&;~(#$+#2Sk2ijgLL~5>%qqpH(*_`N8b= znLEnw-Q&JFXO%y?^St3MR`^{h0z5asv=ztOB$W;P>qKnsE}} zAa3nS&+6)J_@9&a-v90+XAPcq(;w@ez5e#pdqZp1t{gpfcqd44GBNpliI6p zX8PN8`!qc`_sq(tr|-L|gB`2n)lF4H{~@ztaUC%AZ6XIN9*WHMg;)m1!Av|xXI2cP z5iSS91jv{|q3cM_aKMQaTS-l%CU1UQ&podAtM;z!DID$5zUs>U!OD5Ryr=HA@f_cN zVEJSC1)*=$HF`;nGbBVqt_f;+`zI=E@d?sZ ziS>`qU3K;R3H45Z9YXbO(x1+JQ~vbs8TD84`8Q|S!e~?+USIg)Ws4rbkAxgr+XRE% zf@il+NnhO1>^Il;2>_qMqBB4ke^XF->VcHYY6w>l)E3e+rX!F8fHR;2;8OxFr|Af) z_(}78F7yh8;_phMxo_OLwD(prJ#_#4evO@(3sTLAQ_>B7y^Pqf8*>1hr3tf324}Ff zcpTg*K6$HrTudJ9pz1(e%bWh1IxJlE0lj8iOp~4gz2+9=DqfnZ41_-$c((AVwSQ>d zUjGPxE7=QBR@z~{e+671nM;?xKWFPf&h^jdamkqFRTwDIg^^Z5KbV7J5KE2h|oBVNOo4*Ye#|5nhAhmIVqp35? z$%69*ZGoDilvV%)am+5M}fJv_PJFzmoItwLg_c7`TRHUTRL?i*&KFo zZm&#Z`hs+G@~x?+M3V<)C12JG^;G>*dE{l}fZ3Q!dIvKx$Vlpp*O-d<0BUg&0Y|i~ zL-?+2e4a28A&?LLYkBhL&Cp7J^@+;b@SRJq$t)3Ke0p6;fMd2*g?AiT`f}&g%x5*T zQ+pu+%m?1+K=rx7{>lZvysz$NCy~=9ue`?e9Mn%cQ`((2XN7$ z(7^#xaQt{9v^rGXPqaK-_JQg0PAeLDCz=cEUojcylqA`}Tt?cKjXN zG=JXUj@i!o^V2P_ z6}5W|q9-o#96y&IAES(qLxX%ZmwzF6$MQ?F*ODX-uMY`ec(%Uq&SOiLc1+2f#ichD zSVBNT>vm{1E(snQT3`9pb&u39bkaF}pVH}Vy_s(`w0bjZG$3>Wv@3#I5$WI!QwGv>AB}y1ny#U`c4dDn1xsizX2+FzOI}fhd_Sa;$&pxA5 z8alJ@$TTJ2oo@DbN#OAuS2i+!IsjIQ2I7dYA~4-FdBMqpD+S^(jKd#;@p1y)WEnWH zA3j$@>Z;blv%@x0T^bLXya>X_Dia<(~rexf;f5I-eOLzI!S znV9|UC4qS_z^n$?YqKfN~I#68jL(zE(G5n7#zKP+2EdotmL4hf)mp1iH|1gy~9&YxMZObq8(c5qkUQl zjOE9!-Pu-@tLrvR2jL7~F)QFKKN8-(rhmZDVw##0S>Pmhhk;Ny{ z=+(f;TxwuI_ zWvmie!eEGe##6)>b@D^iD@XeB|9ZotEzeM5N6(3-_D%`^IopzaPkp18ks}}%XuB>4 z$PWfYTm}@V23i;cm;VN69D|nbTn(UJrFB2R?W`lq-|U!?zL3U9JHQ_o>#|xIs)p%Ul_Fl?wI|ol#`{&a7(tB22(Y$a|$~d>BB(POGfVb?vwx?~! zt_N^UzpZ9uNS!MH3PlFXWjfW`7^KR$X(u;aeI`F#{>GyZth!{Ww-dI!M2XYqhi_?U zNqn-d+222fn{hN0ttP~b88X$saQSNm`71nuUBp0^F`;kVbFQLP5}XGI!4 zCeU)TpNC!KO&-dScY7cUIep`w9Tq9*A%PRX7xG6$T(dAHOoA?fAC1Mm+h{J!J)t2W5{Fc4rjcna8}#Q?4>?FD(Oafe5}<0hFlH;`T)J*kHh*En0;Y1 zc%U#?`RcVxzJ~3mpRdmKqRiYkg=g0{B|co==M0M{x|aM{{qv?E9~YvGD}WFV0G9+>2?QQ45s*eX2nvPa(V$%UL8X-Yujker zvU1j}KV^IO+2JF2k>_)GyRSvOq36y4&>=9WJ=A}u*-{*A7XnR!Hx6BFpu8^t#~2o> z15pq?=T*FA5Yh5vqMG*Vllx=kv9I`$fjgLBj{M;WaC2~Vm@9vCU5MHw zl>x2E5mPYnmx3aN`c$V|1)v^&g;%K}(ph#Q9i z*8Ii7@Vat&_}`yf(RVRt=lxI2?Um?C{~+6*-kYB&W8kHL+JK%SmXWieHqBW2FBsvD zhH2L$&V+CV41$>?yqWljh;u2s=uU`HAGjy=8b59jR_-mW$$ecKuo( z_=(|QS@+ZZdn~uI>@^n*&boVZ)@*k#`KrK|2rU3JNCzjVmP zHR16?8>8!rqh5|L|B#k5(k{4stS!?-4XN_0~6aU$o=)({G(I5xXPaVk^@`ijO;p zoas&<(6D{;Z>OCze3Gm9Z;i1JVrR*X{BW>cNVp1>B`;Gy3r#U0rg?x_e2oFd7o8Hi zUhO1_$aEqN|G^*15JqdyzWGvZ9uwmUaxy)cAdP)Bn|bO%#UnaqWPX!s#IMXiX{~3} z=vyo0R3RltY!sWyjoAW+SrI_#3pw7I5AH4%D;KX>GkE=C`w6Y%_bSb)t4q8+)0B8? zwjnW_`v^4a8qEVkDwE|8wwUb+(^8g3#5~)D)jsbJpgyhw+@*lIC!iGpt&TSe5#vG_ zbY)%^AjbB>F!FJuu&-1c{^;^mM_-B>68oK5`c|el`_T}eCu5M}Lo3)Art#E3?P7DN z{F)baVQ+?H=>GvfIL$sIBB>=X4k;XMW^h>j*U`kDP4}YPV^%0%^Jhvs zTPiZFBIvcOCgxn)$jbwnOx~Yu9Vipi>VoUf4Aw`%TXBR0j$N2aTR- z=>rNRGa9`v379ty00u?_Ro=trv)~LWPZmeZKN%Vu=JF(oKOO#V=ea_eKqosq6R5?nZd3g;jxBz_eM(esXZV_`e& zBRD>p_1~OK`}=3=lg(JUQy1w-7?Z!83iCKjo-n>Epc{eqUVt-vAmNrE9e{NTX7=a3 zfhz9Q(HS82OC{|e_~+HjkN%S9-I?0^tOKsdPS2i7+oRD+wGqo1sM~@&2Vk}kv+ptu ziO1Ls^Tv6xi_VcqYyb;Jd7?W;sC2fFQMFL%kIL0QqTs%)lGE!is_Lf=%#f(|+BH9?YE??Hns(dXXh>zy1_N}IJpxXqKWLyacJ|j4 zvJ(~`yRN+D{a+aU$@G6E)kF$*L?%*`U){EDx83t~2kbHPm#sa?<7sfz0ed;Xp=aQ< zVUo-nWtY-x+Ovkr8+Ncm87$zO&2cj>@XGn{@qDgyZ6zpOv+#+YN5m1QgLWI-p}Do; zpmf$dHl0l!0Ee(`ipIg&7(Ds>UcY>U+PVDa8XHS~y`1E31~PWWuUIPqIs@YbbV&ef z(@FrB2Bl)jFXcwxzk2ntKiGZ#+Mev3&Oao(Qaj6$*;N4Rr`@Wnh-n5k%`R!?M{JB= z;xIiD&iK3x$KdOp3i#luK^ebYc)OSPE{*y|f4};g&3_Cy^&_S0{O-(~*;ibzvpopB z(TAYrKOxFF=Y#gsoH@k&V{olzhnTfcuw#;3&43~!0L~bHA0GuxtsXgN@W)esE;bYB zBr#2(_HL1;9=`9Y&hBZwH?()B=JUOM2+7?*vKnEV!NIrMLq(uY(0Hgvutj&^wms4Y zCLCTK6!Ya$rChncQYrstB$vDO{%2-B>N>aIetj(+nT9>_p7J5sF|$8b1-tsG#I!^z z&4sdb&pH6i=z0`LXTT*tu5Gz84d5jZN7y5PnrZj}odGWe+)4oZ2KYD;mjk(CzVGmL z>)v|*9w)9lD!X0RZ~Xd1nuac8XNArgux^ zjG9^kM*vi6h72DG#)2S%g2)L_k2EtgZ@2Z*Ub!NG0aBlUj5xx}J-B?w4!+THr4&3K zl*@PG;oa}>;_Q-po}0DaHEZ|X*EY7K>UPQ0C-(IH)SkH2KRcC(W}!9RSZOqHTOM5$ zY#w}J==`hA{$>Rb!0YIq04@WnnEgZiKwwxchC#(k6!ZOy!^+@-b?e@ld*eB!A7`gz z&ZQZl!(1fe8d_;~Tr)idLHm$7*fgDm3ls_cpbO0NzDihvd5(s^hz3hvS@E-GZBTMJ zFDLFjZ{%(MHjP(corE@_As7_ZuhF5gqpkX5EzFs`iPaAj%iXDiDrE;X%IX=03%#ZD zqZ3f)Emu6g^oPTN`ah4(-FVG*FNpaBI^iYGIJ}eu{_s@e3kw>CPxMm_KWXVmo&bf? zc3r9$bzU^IH>w2#Aetp;=$M9uWOPvk)IXG?3_wlOFj&qX_^I;xWJ3nu8rTbu?e{8| z@}CImvg_Z}`od$_({o>`oV&j?wC?e{mtXrwY&Ke~x^S8|FG|-ZhGybgx!229r&r45 z>0UC~l1zr(*vQZdg-wP5_AEsu>>;RNn_%^YC{f)QRm**TBE;JbVG7R#re_*cr&Yb? zeQ>k#T(JG`kr#5`!kvgSyryJ5O@Q?oRhQZuV`5)XLO4UM-zGZ-N1hD0+~wKMSW$W4BDH9Jo%Va?ZQcBYK)a_HO8!z=?`J1AJ(|hHLVO(Y(~}0@buU! z)M(q`=8Z+OBA{ohuIzm#*SGPN>CG19LNUbQ|B%4EX=@sG*r)6JE#2vNaO^qBN}oUj z6>#zclvxCvm|)sX6kI{rv{?xtuS*222vCM)g1MWo1v_RLI2+LOX;!(I_bTP$D4fB{ zuu}dLR{Bq3(f>?PDXdI|!SeMRp6j2r*OS8w7k(b<|CeFGg3qTOd8DYZM7dzq!L^Il!z>7rBje5)W8Cvndf!)q2{w6a$dps5q<{pGy0kF4h zm*jwmf?z)dBishpcP>oAA|A@+suvG#9R1g!%gp-|4)2wSdrn@rV`5I*60a%M!n?2Z zysDprVAf}ly}K8{_5!YdriclA4H(l5fO3#shAHOh>J^wKnt^-xaZqnV?pOJXdfsZv zC)PP$0sNKm;&c4P*GKPq^NGQeO|8i<;Ah0rT*^CjplwheWD9fx)+lOhk*7}TG6IP5 z63`(mi8)z$NvsB7@4&$F01;l?$D=iB912jLZOHoRx=a%s#vJH3e#bC6sfwQ>4#E;{ z<`s**O>fMP4D3F*`>v-B@?Bwkn-Wfj|9EFO;icDY^jfD(^V;z^4?pdZtWR@2kBvmS zS%w>eykyX0i%e$6biU^pRC&3V3oZ|X?D1%l=@@mLeW1g${UgYA2UyNvYBAmz^zaKp z%fgM74=?{&-HpU~H9~TF)0tjVriJ%5wCq9)%otF5CIC*WmFOX4v|AE3eM7%grv5n& zmQF^`UTQ#u#}XuTCaH(VMOXnWF%%Q;96Nx&Y0UiU^}qJMa?CNsN87^mcN$w0J8%X^ zpj}H3Xe?4Qn`asFM(L<8w07hPpn@{yhCbdS;B-&VfzQDuqx=lhpBZBfRF#^ZDD9O$xUw<0z1knVcljmt z&#UlNICZ?eucg|YI){QX0WFYQMGoyiOLQKe(o9~1vaxoIYLu==Oq7SKMq!q){J#vn+-C5kxY`G8)h()5(3? zcetwcsXN+MR`cOg)PMRAnuI;ZrvWuV{UrkJ39F-EUFCYKXD`v`ChfP(-SaQ6vZPzAvg>#p5#i~R1v zt07RRR~$A+0=L~(|KknMmFD-Ysr*kqAC;gOK34)TBOWwCK1bKL_?Xu!0n*miT1?K| zX$WUP)8R^h?A=vR+~B(~@Wr8cp|}@!D^R?6af-XU`{FDVcXuyPio08JFYfN{vgqM| z@y(g<=G>i`bFmkhH`!$J>Utj_<33Dvu4LJE>mY}ejMMA z$F)qm&3zhlzbiYAPt0`9RBU>{VC2jx5QuJ>|mxq(2SR+Gjyz*$=`Soc0Ev)INUZa zK6|&Q05aG2`$5MrJj53Kk!vz@J=#Gqaq2Bhi)uMCziO8iNvfRq>BR^g1~;PmWv1Z< z!q{@o)g?=hk&lOqS)L4ECIFtZqVxEKMO3`CIbFtb%ZL)Or~zSdToN%qDVesDY!Rrv7EqP!TWS1}M09}+B-kINm6)Y@&Go*0yXl3QargyO zp`uo-23LQ&5`5juJAk%f8a>}#-2QKslb6@~dW+Ggk&Y-vVD+KpNWs$B+Kv;&h{pbt^bGSYw)0maTO`F%nZ!z=L)+V@g+pRn-7mtL8a?_5?YzPY?i-5G;z}K zLoK^&TW!pbqs*+qMcAWKqk@R^k*Ggu6uCcc>-tjvglhkI?)f=h>~R4#3I*~E7YA|X zFu>b@2TF&)nBL;R?}{bQMeJH_MT$P2KAyuQG{BO%(q~z#3er!LINr<5e{Urcdk4l@ zo8f#pDwwTK^Al?1Zukk_gfGNi6~GDHEB{&&AG9erJDr<2GS%GU-m`?@KY%HR6eVnJ zX7Q>l!>migG(|3z%qVkr7DzLzp*Lhy*fZ}+q2oXHPFN#M(s}Ux8+*TA z9rH%4%hnZ{Z$BZ}e2moesjQFU;3e-Lq@&r!UX@i~%Oj%UMY;XJ4vRaLX4{#s9{0#F zseB=^u!YKtl9|JD_XN|oZX1@}neO_&UOvUzvEe>i7w)P2nM6Bm>6KkD zsLZ*`*g#s!``x51`6Yy1bU(_t3x>}Y#r6?DVm}zIn zWOg-u`maXIT zaN;Tb$@7;gip@gQFcZq7J7W0ogNS)|TWWYbifmVuT4!u)sl)BbEDpQj=Wtpy7G>xs zV#0dP(Q@Vz`|l@%xIdbNehv@hkg)9McUY}?{m!gh0j2ny9TCb4HQ$)M`8_%O60%(q zy;XM4nAW0GPa?KGv3492&z*$I^KFHa6ssX-&1sjvf{oP|j8pDWJr;<)iR zj&bSLTnaz4PZ;XWX=4<=Xp-28sgzQ+;fz{CKQ)lK!(STUe*h z>t|u{r`yP!j>_0Jla(pbivo9Mg@Aj*r0$jYrKhtBu36kQT{)T)^NEDu@t?AbY9kGY zRl)S;Rdm5bG?SJWU43Dt0OPTG4q`+O7bxik{!L11d`gxpt6`Z+62XFtK-&tHNm#+Y z_g#db?PY?+r^v^1k3px%ngBGX*wprILKx_O-yay?*!JT?PPYtu41Dv3Qf0cgorQ4~ zuTHgHPff~036to{)V}5Q9OsN&>G5Bmpwm*{)p5O+mKgQ@^JpLFR^Xv5!~J%Ky8lS( zX<=8>+HNCs6BXXIP$w?HyvrU@t$M8zZTF0@Y4ZxEIMeervn9(Dhvo?D;TP?rzxC^s zu!D@1+*#SD%D>10EUSDlwtfn46=9Z9jbgTGhd>*syeU|@Tzrm;lhK)-xM>tLXM`4Q z%xCdYbua70+_=pI&2socByLlGV{i^0Ba5}xmo~|_LabxtuEenjQE#LRqc9sY-(Q_q zwJi-Z12s%xbSo+$!dYzeAKLRiOMMaXA!t9XRdVt=SY17%>WeHNo6GVLCk4=<+cu`3_LroCzBPX{p}=Ec zWKkqk3i2Zt*{2kyjijHNcU!p8tVz~zvXcIMuY!Uo@~JsNw!3!Q=Y*65LcWM*%Zy`z ze9yy#BiuM@<(^MnvwUbJ=Gq4{o@*O-VTZTsG+OM_U&z};y9~P?@pcXEDnkTW; zxyx7g1E$`;(ru4P=Xj5zn9uDiu>% zjAVo_J*zH15~n42pTKWibuQ>Xs$Q(rI3w6Cz@-pqGuLHvG#MLx@Qtk(XqTx!xqB>F zMRbyll#}-;EcZWz%>)zRTCg5Qr%f%sC)8;Av+;npN5mhU(q|(5<@-SsOvXr55kiRH z6>ewvp9a}BDS1WB*9;wHs|M0D&=)p_?z=Gw`mz&AxsZaLZ zRr(IAsV5a_Zdb7Wy?N9+nT<^FTuc-26a9aW(ydN{EaVPYzyp7 z*B6X&G<5zRID9S8CV_R7`zckk;eRmIwTdo`!!0TM^-?3!@pF_ut?KjUMyG66!ggdu z-)2%`*S6627c-#ot&yIZaU+xd<7HBCX=I~I0EmRheb;m|PzZm=WGp&z|5%X$ z7Vi0Ky|-Bk@CtqjO3+8%w(qP0`sNpJ28%gc@%o-7!rP+p^8Rv6CZD29Z40yZF#7ip z#xMfcVo`1lmuNQe<15ydgQ_sWUlpUHA78H-w`-7UJ98LTH6FU%R_+8Wp;f5RD(hh9 z1e-5whl0li2wRj94n@C|`KKeQ_T-p-I;3Gi`faJmId&IX@{<>Ui^BH3Sv|yI{H|Uz ztBDL@l$LcGK&Mbo&3uG`Li2Y>nRjd%I!&UJm&ZkttIT)&$vbhdOoO96Ge#co*>2k@ z*S7kfgS4HMnfzm^p7tZLi^F3Y>rGTQ9+g)ZC)^ii#ncuRiqV^SJ&Z847leAAEUDu)=#cDDO^x$MRdjz&3LNe8`WBgcPkYbO|N)_FdA zIXA54MEP*DJ86+Z%2%yjo-RU zBPk3xtSWQmMrv+{tHgWURD9i>F?jtM!}NF2eX z`Vp7>2OU!=7xcHFpABVFSf(Q_qN?_yyL>>c4H_4Txw8Q@VgQnji zuZR00LLr@9GS}5>_!ubDC!JeA!}F?H43Yp=Zms-01{rbBXY$525~n@UZ)V)!Rn-YPgZ@ zkqtJ{l~J{^yY|pculHMfDW1hR>y2OLl}ZZs6p}L;1DXEvxP1LPuEW~tb1hdA1;jY$~L0bQi9NeZQAR2 zFQ1oCkNq5W2y>%VrC6g?bC~~(Gp^LQ0*@SS(P{4Y&o>&dSMp;50jLo$Abc0L+o_M1 z?gXDxHzR5D3r#x&@qk}Fo<-9ScpNY;lmRBLm`+u*>v%Txq#EE#`!}=0IEG87>nzk( zU&Grdu=i=hmCLUAurgRSC2P}meCXq%o4Y5Ux%6oP#}zagv1(7@WRhe&o9bW~zBPmW zl~jSZrq0<;B5gAG(5f77;bSfxn_9S>W{&O)@Cg(Yqqy7@1pCzFdQ5RVp`DY)^LXdu zKD)<2TBcx*YDbCKnlko?OV$(AJcP*_IQ^PRE%3E^%E77}-Xebsv^ot=n=G4fns6p# zBc?jJoc~+ilT%vOAXM$WeuE~|kH!!*$Ex8bzex3q`z z*~T(Kr_+ccv$kkxi?$Y*%e%deCvN-S#J^X=xINoAGWw%hZf0)s3O<{|GX!$>6e=g6 z>BoV?i8&XF$9*ho=wYz%)6_@xv4P8ewQnlT0uLe`lb*oc-kE4SeciXdB<>lSBcaUM zYxmpY+Qwv>WVG(gQ5*5xWs4OfRy}e8bOGvYH^XmpcCFI~F~(9O{A4=<#V^ zXWv63@~f#~Rbfw})Kd7l{R|)`@)0uvyGi*1T1gj#xgwQ0h@W z&X&!;7~P%BsV9?WugA$T6bV%|G^$kUMC{*oB2*r}=6(C}G=62`Awjc5(ERTLn-fr_ zOa!RIPFc=RXc(ufoMbR(3mhDKg#xv`6znqtt+86${5+6S#G9cAgg&ktc3z`Q{z&8609f@bkO>NC-WNk_}=!d0O2 zgz!)1dxD=r6ZdZ$_g|86sd20jXzuURPq|f#uDI`Mu8bFWwxcxb+x+(tN9$Q>hmbZS z?JRWqY2NA@CbR1ECuO5hka!3ZGW~w$&`Kro>u|IR{Ixd9rzYl#Q6@#eq*K*eQlV1TD;)v+fCtQ`XyE-{K}bMf<-ncjP#p zZuG5G3JA3TbA^^ubL?)?SJOP*^XF}iD%-!!k)SN$H{SPgyywjsFe^=)^~3_UN-|jA zEwSFgtHCcI1B(RHxF1^$8>04{tZ_3Ne)JU_c@(nGSEiu-mArU1q$8cFL9(IiKxhyQ zIqkVfMYmIC-u4yYkN$}eXts&QkJK#?0%R?T^g_=28BJ#16{`ef!*FiZJj!e?{+ZUsQu+q~Ru8POzeg|U*(>RbN_b(pE${Rz;;D?E zj*;~fe>f7`NAK&8`A%F)fA~A!-LJL4##)0F(G?_MUdJXWzARV8@$;?$uh877p>jvr z$};0@#zMU$eE5hG@KdZex;=EIIWPgZ#xmao$GT?)#2~7Th!Sa8V1=#F9=_XDQ|)zu z^#vYReZ`()wS}vFuAREdQPFvTc{o75(9U*dZJK8l?<^eW)0d!ss?T6df(#4No7o+3+_vv*>E0_Urg2PPfU$Rf%v&a18Ij%Wv`V8}_<<%5oEx=$F;hmME4dLnrw&#r)aq zK40mt3%X{xJU!glvHPk^#12{FhOhyem;g>&=9Wz+Jl#+nnTK_(s&Gm}I$qSDJR{Cr zycpWEybWb0(XZAllyc@uWWJ^FS|zyY-m$qqR!t#j zc;NksUyE>k?T#H>D?AAmG7|7{m}tiX4ZB=u37CN^9(~!*{`*f_y9ufvA|t-@#=}FI z{l+Sg*wk?{`PUq7@O5InJU(BbV&Y)X65dpRpT?YlOoqMBLzs8$VGDB-ISTWurQDV@ z?%y9EctWg{n=-}yBb{$m&_v)$qKNLXOK1k9$ub@~Skj?ll&zfWw^&I*|rc} zywToHrqp0kNng{bB~uQtJ(6O}TwqIvSGi}(-_X^PQ_5RK*ms~MgxFV4qqWs*B5&Pj zau@G?nY!(L-Vo+vX7AMOl#*PWC=Ukf%whSc39emqF8>97Bt=ZO73bD-rc0&~v=q^L zg(C6Ts9K?Ye<7SDNg^9Z@RvGkmgLYW%S2+isV0|Ed|IjH_rS*!Qf0(gIl7A?%}f`m z(u64^2H5IAd}66ufn7~Af>3;q-%7Y|i86(Zwfvl0uwkBQ>QvH-7$dJ%CElL9#;aJ! z?jVOn_zJPlCn(Un!)L>nN1S$5AmZUe%gl6z1n1Q1a9(y=hkkZnr|HW7-Uv zs&jVLncu!ws&*JMVbC(|~9L?;uw-}d~_-Ibyrt;KPG|5W0 z9|MILg#GmEF%hpwz&ahsY5OPPBODCYgUW?o?d_S<-E)6=))TtkmHiF=-P3HL5di4= z&`xpaquyx$SBA-c=cH0|N~edK3$N5Bsm`R7)wD=#U(cV8Nzz!80NaIExRwPTsiA*_ zZa*-jSef{Sd5$XOa>2yIB=+gg9;UgGC@leye|$@22$>A5~etC@c@03jSW3&@M;5eeGLBppc;Z2r`XL4_-sR5WNAJh7w( zPWWSKP<+G}u74x{G+N?o{Hx+-vj7$NB<*JQ@}8d!$A0y3rtpnj;rJfR*AH-bt@8dZ z=T%{~mN~)QkzwBupYabg_`P74oy3vdnnOFer#~xXe_;oXDK6e)8dO4k`6rfNiYLnH zQITf4V*cSnu}PqdK1g?#yYFytQLkoHdEAJ^mWzwPb@{ZZL?@Ep!nF(M8^9yZVaK1E zVs}yKOMtA@_J(09^_Y;Xm6U8{Z0I6Tbqsi0ZXbiw#`Mo#$MgKKWr*}X zg75%(ACs>|%ZMu0)z)+cmh!G+o?YO3-0WFH@|jwzYmas$IX!rCuci947GL~N5@!)G zuX(06sRja%&GPU*j+Oqh{{&({tAL$4`q`qz)mns}L%09;aY464UInRa;@X%R7OwNJttC#zYPq5A3 zLLAuR!np&Pyml;7-^+`cxU@?1Y4F-jgTWW=am1N~1Z*w=qyDXHXJ4}hzABSG)2;YI zdCE~yiw@ioLF8g|!g>LHbm^g^&WalDLRptZ$-rpNjoV zSyRsYf`r-vVUirw3frCK3ntOb)ryd55ER&)hsVEO{~g^$w#327I)$%HKKRE(aO=D$ z7VI&ok@ZLZnO^Z_Fg%Pc&`hTR1LXOuYbqbV@#wPQKwh}6yLo{d(FsK)piE7QfbKc0 zvWpxPt2Is^&OWITM)v~~ziSgAkv!1nX&4x!(NJ?cJ9Tul+8(11R?jdAy9mc5>%|=B zfNnk0@KN@4Inu8}K4TtLav6j+cMdWPx(YN@!yU-XxH}V6)Is6ga)^~m-%Xt1NOw1k z-Q|mn5ZfXi3xxHsuAKf}OV;vaniu=r*C&eDtP?I!3T-NZ+=hK=fq!f)4i|NpxL-O3 z&hB73$(uTPQMN1u8=T9~2&sohcpqBxHqxpA_Jijcw$9E=)|Ar6+)#n5X}Dm6)>It) z$)Yb2EfiDOtT4wV0`40-p_cx!j9}m-hO`Yr7H3a{{A+FCY)@Ji`PUK-a7h3<-sk+e zfXPo#K|fmYO4$l_{~(3L-K7d5X(b&R<+S9e!EQ|gYJBj1h5G&IYikP0xf#yL$XJ|P zS~tk4TepAd7u9D@iaxd(I*QnS&!?h)+&m2THbTbg_&kaVj%)5bmosraoBBM>m1qku z7dqXR#Q3oWsC`rbaO$7%97Gh9(73ujQ+KvYCRYp^K1_5G!4Ol13sYld2a&h8(86{B(U7gERj}b)B@#O8?u5Zd$z)&ux)tts?!CK+d_m7) z4{qwWqu*ZYBtD&=5g1ut=jFeiFZ^%@HXo}q_0_BRB$gBO9O;Wy;DPI=cQi%B@>Oq# zW1o68aD-JT{q^l?yj6gCN3o0Dcl5G-_K;VY9#<$WQHt%Cck=#5x3h<*z?tyh5`~hP z{?Nsv%zozYZ|RMme(HMb4Hu!x;24n_mTixf+4>m!h z9ZwT4VjLOsn}VAj{Wmb~pNnJm^yyD)%aabJJ0oz|Ml{w(`rx)3dfn3UfnM8^!Cdt; zNu_dgth|l4Oqgk>{*^&gK8=mRcLFeF9h!FTB;|Ea`lXqgo;EM{YgL2G)D-VGQHL2z zX~X@^$>4R}=djx#0l#oLvvIeUpAL@0CuB_pj(4A9_S^a6Qg2y?)JKg-H}~P7S_)hg z4LDyE>DFc4v(LBeE^;{Vzz=qCof!O?c4 z<=Iu7EB(iY{coj~l?S5KLX=vFQVUUPAxbSosf8%D5TzEP)IyY6h*AqtY9UH3M5%=+ zwGgEiqSQi^T8L5$QEDMdEkvn>D76r!7NXQblv;>V3sGtzN-adGg($TUr52*psza1o zh*AqtY9UH3M5%=+wGgEiqSQi^T8L5$QEDMdEkvn>D76r!7NXQblv;>V3sGtzN-adG zg($TUr52*pLX=vFQVUUPAxbSosf8%D5TzEP)IyY6h*AqtY9UH3M5%=+wGgEiqSQi^ zT8L5$QEDMdEkvn>D76r!7NXQblv;>V3sGtzN-adGg($TUr52*pLX=vFQVUUPAxbSo zsf8%D5TzEP)IyY6h*AqtY9UH3M5%=+wGgEiqSQi^T8L5$QEDMdEkvn>D76r!7NXQb zlv;>V3sGtzO6~tOm-heHg8wI_mJ4_Gdc*ZR6_d?&k9LUOj(Z4H*#^ zAJ+hX|M%*d*;@QC_76)5e6L<)Vq$7?T72kx)PmoId70@^!2sAlZPi7E|EV6}INL$ zvmij=8`Q&L5CHHDdV_jC4St_NEx^*4jS~Qsq!*?rFNykr;KMsSjQU+l><0h<{oV@= zK!krUZh$k7?*)|e`^E)Sj1wKc4~Us+d^eMm1JJ+sBLbj8ECKIJ1Auz(2;MsY045g- z0P|i#{pYt_=>Ins8juU~-~IoY5c#40eVK#--^ISE0HIFWk=x46RoD3Tb?)o$m%PmN zKm19W2$GhVooblrg3batm#5k^8Im9 zR3~YjYGFS`enJw%ia#+~zi&Bl&2Y}%e~Y~IwT3IBlB!|BKi9f`T65RQW?S2T+5>ii z$C~$!ZvT9O=@VvCM8Sp>kW~QL3m^vq zy)xSM{1^#be5(pxVjqR@R@cyXUlF{xZ#@HH*jvVe8*lB;R#%kum-Wu2&ZA#JYjW^B zPFNc4YsBt&iZxXNB9R%2H=g<~2lC4+CFHiQt`%?3i^WlIz&vg}9Wi$)Aq(`w$vcfZ zPa3tis!o?#m$%`NO2RCSC=D5F_j~toonj5Yg=2wJ%l1O5sPlHaHkaAem*XAhhqc?w z?$T`PmDXEl-SZX&G4!_M?5Sg>>@*j__O%4h5$hZ`zk$)B3!^sUz3|JMzkx6(t0V?q zmX+>lZs`0Ae6{xfax(Cv6d2|I#yu!%^Rc#BymSk;%-()`+gRyM?wlF$@~Zy9x3*ke zyPl(=NmOQ!hV7MNQtZ{!oK?^q)#2Q2<)g<{`hsT6!$%@l#*D5;;~rg1J+Q50&&pQY zyrQ46!e%BknL%o2bN3k0Ubq(U%x#AIm=Ql=J08Qu71UZgpP>O`kN>c?w-^1oW0DD* zk-=~@Vf~sXD)g0uZOE6CC`KZ~xnMJROQ9SknB%$tJa%be`mwBVEpe-|BAeu#-x0jD zbtAf+Fd(r#raaOU;+{jG>%5<*lqp1pIkKOPP)`RR4jPCCRmAeUk$(Vt8*R)^wBJ9u z$)3MdTJPt?cKRsl9>=0j2SR+PW$vtYGz5Z-<8HVE`dFds9n z16KOC5F4FAO+uw&zdsvRysLa#lM2rrH8nQK1+Fwv+&{P>F6EgT9)^mRn7xqgKmpN% z7Hf`4r=G;Bti-@1r}`EqLkxQ&18nsdM%mEbcrYNe3x->bx~9s3a#fhE(5+)QDiGRw zd=f2xHAMK(IH$tJg2(gKBoqK!TVm5sq`O;!@k_+oYoAg_p=}86k3~@;jFf>_6;-Z0 zR34IyIzsduse&A;i)OB3w@`>M%=fx^voe{9%U%;dXCtS&vd_LwPJiBFnVHYDwMj_v z?NHR`o_g}G^fFezXk{)>cA7VNUB4!ruhhCoR#ryLS-l^g7Z!LHuA7q&iKlR*UEKVK z*#Zcag1{%xORYYaN*sy27@NE0eCoXOYCahW<<)}c?c_9Gtwk=vfbp&7nZ`p47W$J0 zmk4c;>jOs_g{^l0XX6cl2@5?c7 z0k(e6UZZ>buN$MHcm0+IH3Ly_|2pD1?t-I9ve3X>LXXiw8ZS`W$>_cW8GbvSoZjx; z@@bAU_5;JdVV0yemJ8h8{rG`))~R?3txb4g3&M4=7Yf&SD7VeU-*hTqzjCKDIlBwS zH&SxfoU8p!ta){6+izSYGIG{DMGVz{=esez_TumKhmt1c2jz@5x zliux}`|cCJC_B;E)EnjEE%XB>TCMuJKI1j*{<}0kS#P}{^m0=;(+>Mvl9JDy>k0Sg zu}nQ%D^w!_*uFN`skTvVtLK7m7?Q2N<+AYjiJgb8PoAaQbYv^kR_eK?T~`=3H1U** zuTp6CUqVDRQe9HYZAk zX15u8sbmsyXzNHIuf4+a#Ws`_7^k#@9{TIKVg5SQNGn?;q*oXBv;W^dBrgGz5mfZM zCaTQGLra@Ol5PaInkpE1tFrYa+f_OM3+e)RPNCO@C&rQU$z>{gJI-goM79GF?w7tD z<-=M?(8|wEk#F#$md;5LKR2(Ih7S(*_JH5H-OiRYhWJp`KmD|@C zuBSwNXTw1>WH8_vZ|L!7{NYd_>PGg4?8!)XDrPQu=AetI;=E%XBfXd1(kl%Eoe7Xqgg6q1@!-(DMfPt!o$`kD=dwM@DCdDBE%%#+i?Z2Y7cI zPX1*{w(TG8?o+Nm;@n#&pB( z3fVBSKI~otB~Gsw^{L<7qTV&uZU-5l7&+~MRde}^jIL3x6=wQZ1B`r6CHUP(QwKea6{BYtzd$oUDN&COrQr|={Fa9 zvwH-;O`k^#v3jEoq+Y;8meoEh%=(LK&SNP94UPSq!g=d3DVtZ@kM{4lBq>=fo2M!I z)yKPmU(4s)a4YDKv=5XVH4`zE^y%ho<3j5xgARPn7D1(^mXZ$HL}{Y4eiM-_UkwWdHTHLf_cO?~WRpU(aF*Dz za&-$D72N7=)m*p?v&a1;-e_9SiQ+)zJua`D$c5Gr$Eb>2p}pYf*i)HA>{it+N)#ZG}=N-$8 za!7e2#Jx)mS_dC@riwnQX|jF&-Ts?X@`4D4EHRD`%fRk{ zqExZg)-kitM^prNxg0Z4!)Dev7vZ5gMsv8wnKjlqkVP9$mavpkx$!9yhM|>NP-B!> zspsFe*zrHp5aa33A)xXqM;$l}mX5-1jR<~HM5+doZv0Cnga*&Nh(K~&hEqFP*;a89 zVy1nCP@?JDc9RZ3wFn!YbGAiJ|Hp$Zd1L0w8}8&5zFhR~vMl_y#_AUECdUA`pPkYD z!Rk3UOLrhrH^XRy-`v00z1}$$>P6|c8U~k1$M0~)RLFsA%6r>hVb#&har?ZS`DmBM z9C?H$iGu`NMNgcfar_JKqwR{c^Mgfqd<-shjmhSjnhOb-9l2XBSn&|2vrSuQ(UMaX6QrzXIT56@Fp{}<{OM*h zVi4D=<^w@Sy^Yr2jw(c1HKiAi-x=r#(=r$I{_8h{WeCM_V<>IHPF$lVX2_N zcK$*A;4XpuuWCzA!v!8Par<^WN0mC>HVwj8OOkB+{RKll?UT_XG!-k(x1-!7O?Cqc zOtNxs)nc-UWfwvs<_G?58z*@YFVo z0AY#VOO4;-c{Hh>@3lqAd`_l?b<79KAWb1`-+6`ab@t+E0cU+lTPsHlvl$5)f0AB=S8$i-5BUJ4M8WkXgN6?mw1@*3A*GgFwytW(W3>0u7t z%={i3c&&I6`=x`jUWD&X%?L$r!y49MDd=*}_S(g_mnk=KlLnS!ZLSnW_;@xXNM4SUqP#}ADG(V$U-OYITdlz9${sf%`+~A=k z8nD5DjZEB|$jgk`-iAJWD2;KvPlHBB#k(w@*p}RK3)OAAGVe$182|&tg1yf%++6tFgmFEHhGiJ_AHAMdbY=l*dsg5cs~-6r?%F7#jqSrWjd~ z;@UE0dyk@T!;1W3ww&5xijyyOguT;Na{;e(9a+AZc3&MB_uNh@+&-4tzuA*6_%ya# zE2Cs?qcnA8ZhsZbo7U#z5QKsH!%@)QYK}g7xBs>~f-b=N225~zT2=Vk&eeW5FP}rS zR=MCQkQgCEJY4z5P(8AsB0o>!hl%dFW?$=a$K21L7HkjJg??>VsD3;@7NVMQj5DQ( z@|39cEaCLN?3Ohq_@h>(S*5`>iaP`moDZou2Xjy{I4+XB;ucGE9XoML3%cXLB(j zjOpk+u$Zm+qA{}jnIZA_KD?J?7WNooT*)YBy}b@T0A0%X!yc@2)HR5k(|~Qyn?&KZ zzxD~fAc%oFr`iF06C*cv`p`Ac|2FF9G31>5`r}-U+5Y|A^FA|-Ye07E05$uueT7%j zKPfo#w)6Z|{dPaASA+?PCHt4IS0P?kqg&VF=xCgh#)<`OQ7cL+B`|pbbIp7YT$(st zq{=g?M}OWxVz8gfj0}Ij9v446LPi6+hE+2gBO3O4vVD;jtr0nj`eU1jYu(Q)asL@x zL&cQ1ZE(JbI-cIoPeZ;;=w*o6SjB`KHA&^m0qN2GDCLo>6e+RYx1Tiuoe*(M>{rtU!@rsTiF#Q`K+0Yu{h+a&wr80 z1=}opBc4PGkQTt!?GOu%>t4hB6LzR3RuBo9?dKZ(^o{e(E*A4oG&(%zfbHEF%>*cV zWa2{Ep=mt#hZR|-|BPA>Pfk#Qy*~-6+nvO9io(gV2l&L={C=YSsnpN(#fQaX?$G}I z;2(I9M0>x9caDb2{x~~s2v1$aCFz^vq`a$C=wxMX-?pEhwSHedq3e0NDD~9&dNzJf znTmPSgT~=*WdzB!L_7hBj!IDSTbrUaT(P53si6&$wEQ6hev4+ zCTmGcRAh(u6tS(XM+MTBx#`JE`tHfWI9)t(88oA#vDzK&s+!f$7)wBhYq z{0D0m!DrJ}c!V{MPHWZ)2Fh9LPEP?x7Z-0=%WHKzA+1<&|B29V<0;-DO?H`$~@_c6PS2ccCmB&*SzPp;9|n!#hyEp}2ET_wOdt<1btLK|Dy|^PoJmt~U4%W&RhW42qA_tn;{LM$68kL= z&Hy65VC?iO%2c;_(d|yYzk@;ZoyoUr;%K5;VXTxDc4LW#YaD)FPaZ!Q0Pg!h{ z8z3)u%nILGk+ZlK#O{Kx*(M~`=iBR4BsdS-!8K2j{=vb}2!5xT4BNf(OMlgkcA$uX zJEy__D)*?^LW9v#@5b3(@drIGKKAVOtF!pnN+Y_5rp=|2HB#=x>1gFn@0&I$9-!Xt z|CAY+N3Ue5>@+m8+K%eHTlPBdtAD?aap8vscyV$3UhrdvNkEp#AwV0DyuBad{2(MV zeURTC*#0Q#Vh?=9CEe_75j;C(B3-;DjV9H7DlVnBfqB7dW(;S9t?*i!9!fv#kfi;B zfHQt3G`{)y>psO%1JHv?c!Qd>Ylf(sL0D^;S{0Q{u)rUN_f(`3bQwz8qCuN)uWgHR zO1mIFdZ8?Yi*x6DYx(7s@k2c35Z97>l%SKX@;r0&Qt9!-MA))-*hnl7qt$oC3x>2g z?5eU9ONTHl#(swPPyC}Cv~=i#X#BR>!(CoVUYI4t9qE_+Lj-syFwhfEy5{2U^CL37 zMR!pglty%2{=vNBUtu_!49OJ%3?;61tk7M39DgYp!OB1IC^R1)QJkD6zTTX|;M}S4 zuKUmN+;*U#y7nTB8H0B}p%vkL6?*hoqqIwxsW|^QqYJw1^|r5jx;hN>s#pMvDk~$C zdJaXIzYeMU9EO#C2HHk|YI}rr0hz>WLi@i5)-L0W&ACEGRImjPi-tu}362E@HbD`^ z9nVYPZiO}Pmxr=vq$%8&vuAV?4}+SLg4K$G>R^8tZ$I@1!$FAEmA4EU*iKVtGsd7xR+`#9gO zePzYHViS3sP6=Y6Pe+H}sI{d{UcfAOhA-t?3p*9-BfVVuoO?ppRAXC(PoGp>8$B2{ zZ4<^Y5bd>-h2}M`#2iI6lN6EDn9%CEO{^|YqSIt`caDzZ_B<}9AO!Bwf5|kyofB5n zT^>k-lArv~vw!0y=}2&fbq7@LkNo9g7@yDU!hXJ-8&6Por|VBgX=#0L$2PK?YK6`d zn;{*?c|u>WqbF-RJ{yRBiqGgQr@YoHv7!*4q~Kb%GAT{|7$U*@N!m|Ncu7g3{FdG@ z7LClxcCbYpRwyvY9Ji$}-k@}0q^ewPYWh}@r4odgMe`g7kQsSAtqQw@C*7@xTqEVWclkb&0K7!Md2za09F7<0001>py~sCM~=k zw9Gmf9_JdgYEsbQiff#3Ph!8(+FFg&!sv%A6cl3o<$>*gaD+EW8Q||;`;&zffwnwj zISa3t;m&5hi1?BkJ99&%Suq7Kf6?-s6De#Ki$QF&`_KUmwnUe);5o5BQ)r6I>~>Aw ztE}BO=IyPO=`Fzf`c^*!9=^BkeSzbhb>D7|*Bgq9(oZlkxG=6z7eKZb+)xe@wDWb9 zO@{*d=1j3~%X#tD*7GYuuSLa~&(zi=`(p@#KD%i#K07y!0^a9KEI0G6jan@BC0@*R ziKbtUbcZu_aTF)S;K%y6WpnDOM)N}l7#tZrQ0i`=(mT!=82bo?vSt{e7-K5xPn0aq ziMhZR`KE>ZOMm=JP%_a|4|mvjxmlZMi5!y(Pp;#Fn^C@}UusGEugq30x-ozJ8lUWr zOe^%bA;}CH9T*3o6Wuuk<$00gnlT2zx;Ok60BS&$zhR@{$ny?adzBAS{$2!o<0GtG z=!wIJGaW*S`0}I0BdqvvLfX0o=|FV(cPeBIoPTf;{4+=R0WS^M(U`mx);9l?k2J~d zl{k)YU>oKq4}5t5gIo_{8?f7k-ipMFOeD{Ei4gv{3)5c|#GZ#iTkJrOiv;qEKrO!i z2f@Vd-gx(uW-r@+&F&wcx#-|;KmUePxAb~%i#PlTP^}nv3>l~kfX9&BFBJ4>Jo(;D z-b>7KMImby4B5VelQa7c?)cAN|KwvY`9j5fG&mpa9bCTm@abFbzi;iA$LlJD+)mDF z=bR(okVGM*uzF0PW?~vp80pgI3wda^a$&WV1d_`pzOW~3a>Wl{1F#S#9_Fo|;1Qw~ z>xk!(6p@uihGyYVT>MD}EGH^GASnFEHzep2gM8_FglFhOYb2KLz>BMu_`ChYVzDxR z#3K>SIlRJ&#oDh@70V%|?f9gpMLND`M}65k6>SV}Bt_>=QYOj82nhVRv4iIpl)rWe zO)hfrc7an%dF%*6Z_B>r*UUJIa2R;n%AUFSt`ENXY5i_&K?E0y%dg04|{VSfk@;sx|rWkk(8K?_@$B^7F6!h}q=sxZM zxKgO#xX|U1qp!a_8XdS|a^b+G3va&p87B{Yq2fLooI8$OymWMB`PKSNz_04hp|WJF zV3IU1A+@I<`n~3uLlnbSAU!!5c zkPA>kFGk=B%|8MNH}(+$ImTgOV@s@UF-VY$53G=plXZb(1j_?6P{J(WvFFk3x1xg? zt;rZk*6`Rf@iuk>_(+hhsC=xZ@_}Iq9 zM6>afh?(iwuS=~l%05imhXTR%G}3`{(iToz{Tw?^n|sa)7atCCo6-Ls&>evn?YLy- z*Isnv;!l3rvrat82DK>$9s>sAsqq*97vvX?f&R?q;q{I2hF__%YUDzwy5hpf2aNbn zeHULgb;<69**CxDEPcB8_Ph6;zJGJ+<|Fs4|6+et$>}EZNDm5|+1S3yQ644LTqu<} zBNce{c<2YYtE%UVktJzMVHZN$M)j3X<3`@brJ~D&hg2CaB08#MhGkt|=og`>yW;$zpXI8I*h(cfh5C?F6xJ`5^8Zi?sYK+wut{8JVCwD%kMwsfGo)AV`1D1q{a8`@!*whYTYxFzt>n zk1csSrj29I!xn5BW(a)Ti5X8@#|uQxgUksRU5r3Qf2fOR#xr{d^Lwt^`TCh1JKy($ zFJJx}H{JRhlUOf3q<5&3A20u#2>7$j2`6E{RiCCKqXV`zr-Ay=5Ovo+UCHqjSnhDE+m7_`n;>a=Of};gNdb{R5gr{$Q=c#n)>DsKBd!_9F6&) z;GSzHFPmSO|F`4YpZ6;-JhXg67}vHK_`)zy7XV)v9v@SbpZJx9hgVnDPUzJEEf%;a zBQ7o~DK4t6LX*AmWtY#q=+eEjZ$8v}{QqYF3EtJact4L7OaX<@#Smw8v8Ntdjb|)!E|QW(-E6Y(^=AgUI9crRm$6|2xIy?;ZQPka>$J25 zTsswXo)>X*xQ!LhsU(_q&e1bV{?+$I2|Bq2n6|=;+s#Nq)4kef@$h`*q{1KQ$ybBW z930!Oy4YzerDK3eC@HaPI&8rcK61ZDE}1!X7A!F6^zeK97^*RrqQh}Q8f!JPFPM@= z-4M6v-5LihU>Q$x!)eZuPVPH)B$cg07=u2sz*hvEv?qo=ZO$g+TTi;u(g(;+5hsps z`lcKUfBu1m8hhrW9iN8)BjzK2V=;~(Ao`eLgKhp;PkeB#1C#m7#v}nGy*Uo7G(*}B=FsAJwHk#S0r4pM5eKXsutTp6{@uc@Bru_oVRYF7)Uw7SL|ZG0#_1PY zZ3P5YT6g*&Ar>g(u#utdoDVwu8)id@T!Ylq%P!`}9y@Hpo^9j9s)nb1>w?wh9)4UN zB?3-~>A46mVjH+w87vw1MOG}bi9#U1dbTs0&M)HTyd~Z0tiF7WI_JN1=Yur#sT};_+Egjp084o~V zrM+vkF~Ls&_StpPQKch*bm{6>n54ml2Qg7to1k9MjEyTcZ4tmK1K3A5l8q71Qs#-h zO)!HvM43n9!BX<^LuM^cyN18-ROE|(Q^tj(=g@M=FqUObHgrgBghPC(WD?`1mzb_o zO;?*53tP43gDw5fjAIOrH98)d7s0xR6zBv1i{_`DSExdO!L}wv$_X3C7JuP$mm@6= zOFug;4|sFB$gR_+^~o#qusx&9wcSZ*f923za5hXA8K=PURT9r_z~bQa#*-IKj251} z^98#P?)}X#d)D#~zx1V_n2}4hV&L;)AWF;Uy}7Kf2^i>K z!K>i9Sduy`k9JDlMO?+%i>7U2Zq#e$lZ%21kz1o z?IVx4&76vGY_{YT5M78|KkyDb>(y66#B>y7dN^~*;{9`V63iDtVGtPdiiEXOpWFPg z)G%-SLhW_H6DKbRNVm+zXu*va5Mhz8e$`qhMj=rJa2~{YWDcH*MZ(6F`862xf-kVC zcelkO2b@vcE5eYwgvM+0G%oq$yXAwIMlv^}_VHNASVz86bHPg-SqFxl@)fxH#6+(J z9?VDwfAs^}dqARt!8^2I>Of(K2?H>?igw{`cjT z%|CVcER^k)9aV*T(hg=`1b7*k)mM-1J23OTJO0%x{!x^x$A1ERSPau&@&D>cg}F#X#bX{+OnzNSDcBm&TmYjVML0A__(GK}jf$f`=!KIktzgev2Mi!d zV6M#J#R5gV3>ih2c&OQE<%|3zWUZ0Np4c$Z-qg$1=KSkmxw=UQu5;F&$?{_h8{;2y zLG4$e8vDEbg>4t?Ky3EdWrW}f*ub#{f1=2lSp3FC0Nh}wY!GYXd3R{hkt*$DADC>_ zVy(^jV5yma?|fn#pDAc_LY8tRga?ZnpJ&yt-+R}tS)hy@5!yl`{b1{j^c@~DHI8fW zkZ~|HciOXf;{kx}l&=@`ura9fcaLCO_~~nj%)7sM0IKr=hgor~GP9;L*HSUo11si^ zIr)+je*TGpZ7ju@m~mp+200BC=j3>1S8ufE%Bh?7T()q>^Pao-UC65y1CNG*JntTj zOWB?+2445{Eh@6dieEaj({_oj^sed%Pr$41E;#DjqFct?2w+nTS(LAClahFcSR8s6IkD9aR zq@vyGZU~|*8x{jzJ-K?z&xIQt5WLH17$U(W?5wwl@s_=Nt(c?tqJc?buv2TU77NpQ zgj~Gv(pnbC+CpJ_%hK1m%7#4)8Lo+qg}qy>P98QakRj5x*~s55b4dh=)Jq%hwDEAjf`YR%esTnr6W5vW>x}-qM4Is&p2{!7jE*`)t-*f+6n!)!NaHj?bMm$|KN__d$KOGs}%$PYX*FQ z`M)+Ri*td2ss7;h(Yi9p_tB{lF1(bMEEtR_5`%6f>W%d!LWB8*L2vKg=^y^Y3GynAXk(Jl2JTzLK)=ktbgw(ru6_@i+a$W~q2s2x$td%TYK}pW94dq~4 zn1}@MK$9}BVj zm>J(2yET7s-I!~YlEl=Jho!CD%`vvV7rmX601Y(c*s|5nwlky2p_PTw z*=rDf#CEg@?Y=B9=2p9QZ_DTWii;oku$A0HcS8kR4XJi-<~ zP`FTvzW*}DP8xe3VN5Nyvh&fR-{vK*`$Ng6_UbPMuH5y1tj->I&kaw%@0sCR+hX9) zXP_lL~&F_YPEwRj8xUb$C%wKxM>O@UMqUOTKx}sudBfY+K!H=;o zcreq0V$PgD)1Lx8a;3*WePR$<`z?E7r!O`}R9*n9?;ocZGRA2_V`729{E=9Ufko@t1>nR6ouQgw4_pvWfYj2j6<-7qJ+J z9dgi!3TDH#zvcm|{jJgbz_V+!W(yFl<macpfB=k>=0l$kZf(iPD4OH3$T(@m172F|iNR0mjIKV5hxItyo<&OX z^aKOB8|#DdS&TyzyU3vHGXdL5&M!m9m7DtA|7JkOT-ZzQcQ3kpA_KC<-f+%~Wi;m8 z=I0nrNIrscPq-zvIOAEeEvd@C#h+JfDc6EdsZQ1CDzgX2>zYC%#VG4k6L=I`}2R z^mw%Unz{Wu_bt5fxzAkuk(+L+ZxC!$)&8>?s0)D4=H#4}yy-o=jtw`*f8@Wb-&WA0 zk~nP_J68!d%_jR^HMOwK=_26bgR_72;8PF&r$d*Woi7U_+qZvY_XpQ|n=gClfsOZX zuBa#~&n&tWOgHUW+Sq!pZoG#t5ycl3GAwY{rWIQ3eT$yyqjVEatT-Owhqw1~w3Qcq zz@##$x?xCw95g&K3saEr!PFsCm>K!iA3BGTOOPZ2Ze!dkvw zP0;gbe#}*ns6!}t1YohF6HHp5ao~j(bu8v|Lc^~6>jmr)qh>=(0LFeLo_bWafX_5V zmQwl2uo23q+`w!xZN@ReJZ6HZYrZ(p$a*%-)*unLON_jlCs>>tnKT~?r7t}Tsyi)* z&zOhjr<{F00cU+&bn*Eb=YU)-;$;lw+T!_J8XbR|HQ`AcKz=pp`0Ecv1ft~%uuW{N zK6>&&ZpYXoVJ<`6A(=fm(ZA@ro!`H?e8XFw^PIa5Vq2{k_)G>keXE^E3@k65dB<3P zQ?JkdjQPY6<%1$eA=AzuhGQIMrK=AZS5TTOju488{K6=%$%`O8Lg^eamfASd|C;GBJdlbCjE zJjkfUK+d7_v60^Lh#8Bc`oeE{B`jW^zs!wgJo~mW8hdT+6azaNi2lj35pSvjCd84k6m13hOZ$8{h9C$V~ zdFAVT3tFDU$H_)|_Uj6Qn(mJP4fLM}I~(Ug zf3m;%!Nrx)qMrEvQ>rWy&YZprfi@}-Q94){rA6n;rD}mdkMYDD|3GN^6|)y_{@0uK zoY-@=rvGbqUVG{(7fs)CuP$d)$(F5!1y^lLf%G_rx7R{#-N3%0T$*5fVp^P{i;;A{~9(u*8Sl_BKbEc)2i| zOUdE_3lEz1-HKAQ5hGiRg4DHW2-(-kW zCuqPB49_$D88Ufx?vju4YxC6*&OKlI=7oWCMv&auC;Q}&-u9eNfoCLS(s?n*z(E~S zK7ohK=Z{{!w+jIPd6gg8Xs5UiV&lLB%6Q_S9e+HcrG0-#Z@lNpJ8oDwxc}XUp7}t1 zdtl?I_GVz~gegMK7Y6$O+jG|My!eW#FV&v|cDDjEc?vDZROQ1p!>?$Nr~ZL%)pDH_3DGdt$NQv zeKp66uFnH-<9JBJmo*U2dTlU{r0t717H7r9%qHq!hg1B<`PMjXC!dt&8jx)63g2PU zIo`&KumE~Nw>{R|IYa2czF7BlmP~v>0~WTV<{%LP4=0^|9sgk-Ufa$`;)7v@{+DQf z@zbjh4%biK@}c)#`WptT%@dx1x&v_jodV;H(Z)MA^yh$j|8e^(AJ+<=^qP|EmY@Cc z3fKjO!a+e`gAo-({c&$rp9#2f=0*Lr$=h#v*7|cWIa}>#KDzTwr%$ZC?8K)xKQh*Z z38}`!vKVG!5>gzkYX+X2<}W#g-qXZ4jO-Y%x)7;wiyG)?uR2|u~aksInJX{`f){ zgX~zK8kj>mr|rJJ@Zem*j2&@0uMS;uDK%_+!eEDgLJOI#EHO(jZL)DsqyzN$id zRYK|Tl3*FelF-*1hJ#6cqxgZ#CZ9GvJ$TpGU%T|RXOouOJ~sb>mGR_Dj^4NNw)Nw^ z{shI0%!kxD74jH&MUxU28cj)qtdU`-s@TT(dR}4)pM;4{Q-+YOZRyZ>%fNg3{7NhS zY@u#x`O%uOz>|QB1>tx-CS)JwlQ}ZVVHRQ*FXyxxA>U*fld{hd7$S4LGqv~{Uq4p79~#!eN&MBw{?G{ ze-bu(_0D}$yB6MfSDCsSa$XpZ3iMt?s=9Ino%mBsT^N~^e!69TZA!_JW!#?;UO5BD9FUq;$U3lf; z4_*k3H`C3lfLxFxCiz&5y|DPDAp?z$`%$$eK^7jdwRz;4zS!VPy|+K}i>?~ZIE<9=eO-cPfl*(V4`bVF z-&(};H4zs>w+t6PFM15@4 z#ZP`_Sn z+ZSd8wuiTNJKn|ua(I>J1n@8b0!zmLxA3>tKE{`Yzr2Y%Io%3iq3{wr7YE+n#>UW! zWqXfgFB{AwM)sXFDWG7Ncp9r`u@jRo&Hi+()EFNe@uS!L$w5BtoG`~SiTJX2ESB%q zkHwQ%s9M|J2ikZLr3Yj59^$~5#h9i)eBnaC{upGO_&Vh_Y9 zB=sY9YPo<$)-L9RfSZvpR5L!#9%@5BHYp1S-%(Lq_;MbYkqdj7*p2yEz?j&n&*N)C z!rXl0+CCrR=dZl{Bfq%o5&2^WKH!?1W0A{su9iSvo2(sXq45~hhAzv-J_lk+>z5D0>*&n`j zbbRJ^kTvG14Nw|_FrjqmP2R6v`U@qi_75y-1 zUiLMQ#+TlR>F*IR`eDL(Yz!IBqtNf>gI`m|xfJg9OE|@A=cCU)0rz!FW$o0)aOL3> z-+kwMFZl@r*X9YsfKKmf=OY7p>W!)Pym;tJgbt+04uKjAwuG)lXkKtN&!=w%hvaZ~frRkDOTC_=aN- zjy^inTLQW#9RE7k37ZFI~B#0AP$BR4)@5i(R{9V6@Ag-dBvRqYrvIpG-FoYRJOSClh>KEk zM+FrVnCW4_|R~H+MB*;YGQ8RML&M%g-5?3Lf7_*!a!XBoX1Cc zVqyK4mKKK(x7(jCaC(BP9#F{RQ^YPE5+U%f>V-P4P!t0-4ZU;q&jQhe+K;C6g+T|e zn7navcIMZ=`HL5C4)e3OeaDAqe|2N^)QgTiy!M8bQ=8NFnG;?5ZAyKshu5m@-LS_U3|v6`fnVhN_v2eq+&+7RHdLy-@jcacM2^BzA9 zHJdih2?Uea>VWzHIA3iVm?KEs z`8%S(vdPZ=a>WR~_^c#DvU8Ix;-$WYB8GgdV;{tYkG#R4X=<^j?_(=G%VdKeFpk9? z7y5eGSv~COBV_MfQlI1YzYfqhQyjd|N&t4;<_Cwq_B4z+cR2Ud;yhs=vn95t7;4)% zAN3Gnr)`{n64(rUei)!9U)zO~ZK7-6a8h?$Yw0x+*~E8TBwox+p*2?it4;#TN&fv#N;; z2PRPiB&3Kk@UIF4je?aWM*k4U#Y(t-MW`y@KXw0beR*x;M>jTR|H*B4_4((-XSKcZ z%T``FJ2&&=^ScIDP0sa3`uqZmk08xM)-FAZ!F5lJLrt z_x|B5*n~lKkp*YIE(oZ=mwmiem5pr!%N!^7ZE@NjTTa53E&j5Lh>n&y5Ei`*TR!w1 zC9D}4v*ly0HnxjAoTSW|CSK;n81xaSbxL&|Pqxx!HesV}%r9cwmAqLP!B4E1YY1W? zmyW9k8^~V!4p(NjkIbA#%ZUYzdE>^PJEoy<)Tian9UDo7*m|676~gRp2@zx6>@kjU z+r^y7RJz3U$U(x~wE6f0B(pY0&|4nf3q=$4T@PNxw{Ye{zBs!%TFhAov0eC}k9>o_ zmgAOwD|aAuAs|2qQ|khr;)Ol6 zS3Py{ru`Ss|F<2N4yN>eUR(oEP;%N7NxFL4w?(Qw-@~TqTQRd~)>9Q3oC6@r5V&WS zdc9*uR^PSWAARTB@7(bq_-C`d;yEi<&JL&k`L2b@n3OQ7y~Le;D$)VH4Qo<~0T?kNSvq8j^e=Mx&W?Sac@VXS_8-50Ho{ZIq+wx%Gu{G+G z@pe3ve18LIVe50i=bOxRHRFpIL3eySBCZtS=5)eFU_J=U1xH1U03JI_^v*>(E|`1~ z7g!n@%X|Ec53)L#AX9T*!szg<^hlP99Nm8Jp; zGA|Ps99IVo^onLYv(Ot~a{27n%}!0d>l>eO`gv!Y=b!)Y^Y{JCM}Fj0Cr)g9=hB1Y zBYkl(fC(6AXL#cx=IeU8EpHYP(-P!ZV+mwrWdtpZc)wO%7gNI6(|f;?gZmWOzNzsM zR?{K&@yX-hRJmhgniX9gS^Jpa6L*=z-^VxO_*J7ICOB*4){F-RzPZOLz`8dmlV(!=C(oj>*C~$=2tDVb>ENKCQ3T3PTh@ zR|S=XECT2;P|LdEV&So+;onw-C>Io)cwaS5!f0~3*SqB4)R*p>oxA<(zi9Cs_-fHx zM?d?~>HoMs-uQ|mpC13hnNxbfP2MqK${qc-(6{mzWfEOTItFt^2=CyLRUj6{mY&&Bv=O*W#GV4ekfPzjpgtu4p=FF|lDH~UA;RA~ zY*bXn2dHnGeqVkEj3T{x=>w();Tt?;kzX+l;hb zNn^^MAd_US@Z$+HA$qO!OC^!t!}dbRl$bw@NFdav2K+=XR;Du0#t=k?m6zE!mW3Rv@ zqKD@VpmJ??=EWn~f{7p>+vCSYZ_F)t1T)iX7ZWXT0BGa{2vI7|4sZVYu)p$M zw|!*y-GH9$_Od6RxqAMh$$znH|KvB$?e;6G-cYmTpD5{-vFF9Kawn!sS8)al7TzK+wNgZFyKP*)M@9TWoQJ@=HQDXY!JmQ zlt@=j`C&@Npc%2ZdU$8DSf+WfTsE?)29@~n?ZxoSt(U;jlnRe9epl+*+DC^X^nNPmy0E-no0WaomYJr@C! z`oH5BUp4tvbCWyY^UY6Nenq05)!i@OGxw+ck4)ZtRxEO^KW5?O`~ePr6P@qVit&j+3X(L&96 zE>q@#!fp{WtQww1e&S&7H$)IbjLs*J!Sy4LXX6+dBzR8tfd`&n7KfMgWC$(J#YurH z8F&W4zI7s|aq*OW`1?K*v@r~S?KRXpTkdeajmNVWPftzm-0^R|_}TY=F=o{+EC%WV z;2b)hD@P7&4o}a2&n++gguZ^~(X}_f|KP)GYnyLgKSLpMDQXw^e#)yJs@6!z*z!Q>3WN=6gHp3fB6&|@^%foZD*M7d3F@Xjr4o$Ho46N|eW+hla{ z^`a>}+aODurdLknN^adkL<+L^TMV9l_}dqq?Hi7C5|}D$LhgLhB)Ew=IRWfj9^Pw1 zuJIcv#J5f$+LN0PjBS`NV-K{8aoD3kN08iWhkf{#<*rhfmnztj2=cAQ^Xj zNTr{q^Imo~CAL2c!I&eQ7%0Khk8}5&=x)Uzm$jfA=@FdFZ?a`uXu-8f~VOb9*Ou z{Eg2it%+T;Ke4>jJK8;)xrBE~$jShys)7!BE5K2ZBA5$LD-d==tB&h|w7I8Xbz)vE zVAYDoV4^qLb#P+x;wz{B?iIWDzT@Rzbo8mVILn*c^fktB|M1k`Ts*q+HKz`5+_APO zD)jjPO_6_@+$x~&YHTNkCrDdqESEj|X5&{&_~-m2k5^x5l)kR3GKoVImEC=J?G%^* zIjPvSV(tZw5Y3(hgzZ@DiLZSugxX6Tv2apDhY$X4WJE}|ZT{-ZE*@5@&w_)Enp4ZZ zhj{D9FYz&Gz9~mUz|=cF?v9c98C&)(S@TJtJR6ypnbFT#|u`kd99_m$t}bu<)R3n3ex8!0x!Q`#JIdAaQQX!U$blBqF?{Ir>&gz zZx2+8Za@FgUGF_SHT9B{53Rm#<^Iv#WB#L}a#zy*ffhn0X0qt9c*Q3&xTWsJEI(D> z>|Ed*lh}B%lh$4KiHEy%@s+yt$p$VJqkYodHpry`SiZhcYjUs<^F#5Loj;_AUNCWy zARPxd7v6ST+;?jbBeyQF+l8QA$USePN8S<3NjRS_I6!K`&=)W9=(Pv8`oXXq69=`m zLu)LL5L*|Uh@bJA8!E5%%ru1(u{wF~05Tn`jf#=E$&h zQ|9cuNG+^J&H)tXq7nNMulSvT2Jsz;j;oU-_dy?@W|XWy(g$byJIB2pSM2?pPksJ_ z-z~3d7YGA&0dTGz$jRw>sv<%@fFdHY}zdsB#Ww^rwPX4K6*fXXdSc<(aGh z?5m$S-VveC?)Hv5`kO!hyK`^am_PHv6Nk_I>(dVmm$+yWRj&JO-Y&epy0OB=5t-|# zCaHznCfcxIHdeqe1=^#h)Ows-{8fW(AAIJq!8jLZBQREYcK+;G5F2Rpt+$i<+H(Qs zU*d&4{$haW*r$(1Y3N-W`a;gfQyFvqfVBnbTr$%RzXNF4>9d8^Vl{<4n6!qmD5|Gq z$v}G@*pnRm8xW9UVz%3>pE7??kBcmg!E;Xb35+&} zmeST(EW~?u66vhi3QPJK(+Iq0gisP zbBKX&de-T0c*@la?-=P>e*e9T-}9E=-~InR+Voy?!&I|jt3Pm0+M6MT^Ra#P%qK*(vKfKzd$LnalQaN+7*FSc6 z_?yeCtKa*}pV;|(>3vS@UU6vY8NKn;_fOAHeEr1CU`8*BCYUG5Z?ej3A{w*)=u_QN zAPO?`8v#^N`E;MYKu0`i?F>?UJ4OGlkQTQPyjJ-YoXCP6ZG7Wo;FVfK-g2ieg@07( z+qwdbZb)#r{HFu_*FC)tPiAzqfpxuFbHdbb&p?%2j>7a%QVzd%f~VjUkNlVvQ&T39 zJt;en5b$3Y<)JY4m!*P^$HUCeIg`532JK2@LJ5sV`lE}OU4N?IpMV`ME_jgYgn|b} z8J|R)67yGHvhlAvYRn~@laGV4%>XPjt39-&s!d8$iUw=+u_s;z(yYRt9eq9Uu{i7l z0lFmgTVN^C&_}~wP={|o;7;E|<94c)rJ-%w{K3O98hrQzhVobT62|<{n&3#%aXrRF z{BRiUVJx3eJ~{A%1m~7)aF#?=usPV`$1*$99rTwzb^N`(U58(M*KOCI^{)c=Bx>_{ zGY|*=^L8)CFEj(Mz47=n_wL{Qn+pqrJtrO-t{#5y^vyr}M|*$i(ZqT6jZ2s8n40^Y zeU}cdQUP#nPybvla-=7m_ycU`lC_5Kiyl`&(tQlAfs*c*T>Vn z86~pbKQrtJaXi#wJ~5tDzItqKZU}U0G%=wRrC0vLsmcBnx=F1S8!azZiSaHO?wOt)JXIGzmx_q_!AyTb z5EBFLe<^!$;B$>cc_p1gQf{YaOhN{^oLRwf@_~v4)i&r^Ri*IEIfudXCi;QVf=Jdb z4v0s5ARIXC36T+ug_)bfV5~^MFqXeV+`@B2qPHir9W_FlGe$(iN# zFJIprUo+X8*gG{haf248YbGXjMX`I(_l1G(9B_{5+{*KjlUZk1o|*Jes3GRG!`^+& zQWwt(Yq4lxhHmF`E}3E4#Unu2dreh$8wyBU4S?3tzgb)3ToMdBmSF9guIr;ht_^$a z+8n$2WT?3Fp+Um>!aV!N&wj)5eSjG7Y&CX7$%t)|qEPq82K|+XHM0>{h=$aT6ivZm3dO$`>Boh-T$ejuluzVd*cg#KZkr@`qEF# z9C+Z0-@NSF*&9bws*`$orGxD!I`?vQUzR60Mb1xg#fj%QMMZr=V9(xzwhN!A5}^-! zS^AY4G13-iVe#QKE;uMWdf6C&o9n&)@go~YSC`Lx-#hX(}Amg@VD88wAx1e!50iw-jk%(QMPo zPR$o9Y{8_LsPu^?l|$N!fr_%kZpxvjTgZ;Ta(p~G`S99X#yeKN|Lq^z_vtjLT`}-K zW#G`uADG|x)4?V47tMa{XmjTIb2}zqJT*IU$@EU0hWgx#FEY7!7J`>BE`GT%@Tux^ zHTpUsxkb+NfOC^gE_p1c&6*yKMc5`X%jGuwIG^>)Doe+%9_I*gKBL<6%l?+zIxmuC zPkaUOMYGYs6=s+L6yt`+B29djbQ=j&znI&PK{k5E$48y5`LLwRqs3?w0SUQ~)XOWY z=Er5n+MvJs$%p^pUB7;?-U?_epJ)4a%+Is5FYI(*dHvF>uexT(PtWhv|F_pS`{_bp zw6fTnIDG$^AAif8^M6mz)UBuW|ALBd{nE9!9=v+`ReIAmp1S#=AQcN^Xw&Kj1;9lC z4Zj*w@S^=0XG)k^?d2bn_^Y`nkkWTvw$;YB4${&0DfJHV#$s=e<3d=g49=M-z z0F3zl>sSTg^N4!BKXB&M>e7*~yz5t=d`^9^SE*I|92oG4@;TU*$>YetE1&Vei!Qn3 z;$PXbZ(>FZYI`2`&Mc1m#~xn&o;Te&|2h9Lny0S_^2~5`XeA{Ji%g|#=ltVRocqQ z@#xg?;m@ruuYd0^e0;|P_*W|i9t{Iubm;W{gBMMH)o6L*=9&4y*GyeJxxk;Jasytc zm@W$9#8j_+WiNNESoqny`E+g15zf+WI-k|pY4yuGPlT}2K+?c$F}TCV^8gLT zz5}5rjr*9UJzbV+$=Ml)co`El4L3Y^f$ry%|JnpUp6qcEfgK>&`3Y#lFgG~zcFCTT zF)nZEaW4W_x;%N=%T^s-J}?|j^q22B@$(;l_ug;B1a-CZhXJ1y=TEv%j7(pzTb#p( z_x|3M*UUUc|LRxIH9fKP)Z*`{^f&(NM?Ssw9Y6c=op1SE*|_-`tFJ$J$;?mA?cr&w zr*EqO0K^#(7a5@=l$UxJo3P;S!L}k|y{{91kSgB(R|g>#%ODy6kU($0yLxzJnWJSL zaTc~!&&5Vjhx#hxlSf9MSXmx_-#h+b@=^WugCbNb208|w_q@|j9d1m0@6_JOSIq66 zJUFep0z-XWHRmR;UcD&tXNa7)dT_dCiwgow^qi0#KJj{)^P68kLokp>=#kUUr&LJu z6~0y5UhUgWLSF>P%X)cqV|2*LF*<-dUPP9GZTu{fLfKgnNcq&YclHx7V%pmZ?p&m6 zF6tPDUOmM&VhgGZ3^GEWk@fc;`V-&9dyam~J@32pZBDW_=M4j#Th-1%2445<#b3Sh zNjqPxzn|l|=T|53jO+JKJUm)Dc6{|UZ~N$uU;JEBKcp`d`l8V@e&NciroUEy=M|Lz zM;-m{1W-xisjbSWo#Vw5U(wShYCr^xS4$)mN_w`}*lAKB!Zffj)3uCmX`(^t3jypy z>3XF1Z&3}Fj*d5%Pi(&7)aIF6|Jz-=k0(~`ih)PX!1dQZd~p7vUAN5c7<|XfuBoR@ zE%^N7eDh}me8OqNiO<=Ws~+Mwn`6uKqidMiT2~V4#H-=3Z#G<1`=TKQewFSkzr)?)`jcwFU+DJN` zPE02;wjDdsMAJzWwFCte1ToSE1wF{ilVBhsyE*G-tYhWuYK-&C8$VSgK+kH z_nf`geD+yu?S1CUoBpuRQsW%Oo#j)dp^2%1|NWwq<~A+G{qV;q^ z44lH00zaKlEVRd_ishB-`+jR;aQONQPHsIrMC8l72Y&V**t&IU$1OJu{&{C^`ib>@ z_1Dea)B09xR^G;28y5YTx_@?1IkKG{byVz~t~we_x(Ew=^5w*m`F@BIgNIY*9mtUM7NPGSl$KXebrO!Lz z-luPvoVehN+cJc)X6PD7o3sQfICGfH<+IUgk<2Bfk2q`-)jQ{MBWh> zX9;L$Oqv80XZICaGYboU*JyX%cC|k0V~%{0_rOE!fv0cYvuti#|Gyg=A9#KLWMwV) z2*~y1avITaO#N_NJK~SDQ3;L$o&`Jrz0T?(0KWzmC(Ri&gD$Yq)G}hk6&6H7#6tuM z1i)2bcQi^Fb**~g+ryiZSQG{NVHQLxB+Bfm2(#^GMbDIwd6zc?@ zV^yK4prhJZxwbf^yPf~>6&q(B)EDC>gGe6gUqXE8Z@(@V zLfZA0j?zJ9#7Y!Jowj#U(b5wG5+V6XE9}(D^t4@gg)RKhCmwDs1{BGO3dGC?blrA* zZK1Me&G2i-hXz0Yyi?|%D@L8T`i}bC+>_?F*WXvYk5?RO7{llA zN&U$g!$$=o_WTQt_-Wup&nqrX3mKF9Di7Xu(FK)6Bq8Ef2(c` zytni9_E_`$zq@AeyFYDHUa@g*O?P4Fi&Gm)$B-oaE_PCY>c}I&Y0)4zND~20jFVnW zs1@K~q7ih?B|d@&Ndc~ch^(TTpx3Bo2<>rgL2mUX5;E5Y&H|km2cMMMsKE5)Zd@tlN>BSF;xbSCc$*+ODQqHu!~O zmd|L904uW$nEA#hO-&)<>*_WMlLrUhr_Sf)j{Jd9sF%b~~z0rb46d@yv4S+Ge znu>ARf|8IJ^`-3f>UD7<*_+yi@~$HtS)X*%COlp^1qCXYL^k88VhAv>yp;pQ)Nv@L$5l=!gCz&Cj!7QkSz#v|5wiTm82stG*sVygj+Yr%uyTSV6*vwh{J6YBZrNuyu$Sv#lm9Pjl#k-C_EJIR)WlVIcesA$!%2!)_;f~- zQ87_A-0=XOmSBb>IO<@m#BijG2$htOVNkRQEyWOc4At7304egJWS-8EKQum{5QvC8 zUlIs-O#GvJq(_`^fYVp2#+Pk6`pHjxp#k~gu}GjW%_^hvejf7)j4o4x1az4y*tuD9?Z6Y(S~|Dmp@l1j8K zQuW9hi+Kiqig|>0O9Dw6BrMkc8Np~zMVd%LP+K{gX{rqfUPEYPIMAVuQ?uRSRfWQu zqsr&57_a=F^G>S$&Zbj#Xljs`yayh758U|A{a;!r?ETgGUG+b!?$rz+^SDf877TV$ z9MvU!ADo&RMC0^4H2UGm2^GE`cu0W*gWmOU{`=D-7*P~I8Z0&eQhYJ2i^ob#xI~{2 z8upEXL_<7mVh~81muBCp(oWmsx=$21^cW>jE-n+9Kheer67pn?ZV)K+jhBm+@v%1@ zukVo{GcSj455(>}eC>P0Th?lKFVkmq2|R+>3kJamL?;2@j_{&hax%5H@3g*F>0`h4 z%hjWPQs?=b0%L{OOz-P{jk5?IgcCz1-})l!I1MJ95d(j^tbf&~&;6yD|3}cg z+q3ZM>aO-)`B@s~l1TZT{24E{FJ`fW@8ZBfGna-&btJ@K zO;i3YaBzc9qcKO{@DVEzAlFUmRO07L`noT`1=8%4K605=3zo&Rs+mb9PxusJ+A7`9 z$LW5SSR@2BO%p`P84qA^vc2A5_XL*3Kgf`Vu?lt3cPs5~|EjSw8`Got4ZC#SVO+wo z4`Tx#>89x;?w_5T>CSNq+_6o7sZ$6yio=drWKU{c8Y*;Ft?N5=xKR4U%br+2!9+i1 z@sD2|+c`VidiA~?oxOUAzePnFkSIrXViYDzIHFQ&SQH4EiXj;0|0Q_g$Q#Zb*q`AO zAH0F1lIWm8hks5^LbCl(vmh;n4&S5&-{49;6>(JgDJv&Ou6p4at-m_wl!f(>=Oyof zhuQ;Q{`~mgwP)s^x$lnVSN)NTc=-+;WoUzS94t z>3z*#o7vHsukhgkJtCyRp4=0207rG!kN~v-C9n{ri73FFH-f-$(n$6rsiiu6yq2An z{#`Ph&m;f`;du?YCMo1aLHg(MWZxSAoad6E@6#EOW$Q{KE7zC*{peuji|3uvc=_hd z`OQeFfAiHt=z%YOcG)fW?Y!^l)ot}pmlot|az0-tR|I6&$`Q+O9B!Z1YIqQ*nc;BU zu)%|Bk3R4mafb|IO0?$7VCe8aqd!8tc8y@QT+?3P=4c6aDW8#+hjFY$6e9-a%_EH8&~ z59sEkR z!jtTfOC#f@MvhXO?;~gxVg==qDcvO4S#@;ZhUF7|f8YGx`B!Z^ZRVHJnU}l=9!d{< z_x82Bc1&-3(Z0LpKiZy?&*}d5?0`D+*UV=vpJ-gnti%Hz3)Idnr}vXKIBqH)bMa#j z)U5XtC@LX!?cdP}$^$TRm{dqM@znbekgNlSGLHH+u}GSMKrg&dfoJKH4FSSh(ZdHx znv@79jVaKe=Rc$&uf(B=8GYsejB-Zb_&}*LTKTO);o`;K5H2r=PY>if=J44UKh~0Z zv-KH$9H-?`E|LbhBh|#l>^&Q}fvOGxNnq6xBMitV$rJA!+2d z&5lsrMNnxK23D^)`?x1x^eb#bUJkz=$R_}Y-#)pYMZ*&#H_XqpzNdM%12W<+$Q+ZZ z0*hcxc_Ct%OPAf1N0i4_O$~nVdB@HD`u&720et9R``^6x-uD02lK~V0JWFdS)&+Hb z2vq>dOIo8oB^0-v0#x%64Q9(Ws3KpQdNGCdwgG&?rL~g`AT(s_UOnJhB0_lY)T#NU zRc{h(FWXS+n>woU`teHt7tcSf@$!o==C~;@c@O+-J#hWSPi@_F-O$Ce_f-F5ZMUv; zi(M|}u#@M7d(xtooZ3J@!fS90UllNen>q0$nh+?0Bpa;HC}ccpr^0Y+RUuFU%mY-B zXA`WzG^Pz1S~7lXl?9K;-0E58>5W>DipmoPHT?AJ)>OcHZJe#GJx-hcbtoi0h48xgamTD3*wj*o=bG# zS58&>)*dnRftQ}ye!bcb(fcV<(B6G}`PF;3H!o?=NH%gsnFjEXolf>yPh<^iP~r)E zCKQ6mF;-^!3@413QU+lIOuO{7rzZ}Hk#s{Lfo3`kG9P`QinmiltbG%Kj!8hVuFmT^6|gQ|+rZoj!ZErRIyg2Y$vLxc!FFznI^#@cQ=dPMb?mOMN@5 z+gFuc?d0-FpGr@Y0OJJ9);e3|Vp?k8VvTGctpk$`+Wz+`dO3c=FAXM9AzKSS3t-Wf zXIj-fwo6&)6I3u>@Q;n1n9>V|wy?ub3V@S#y)ijtsf}szynv<~N&w^uz!`>V_>;{i`oq8$v~+QOq1dYK>U-7RyW3kjvs_%zpY(;wpmbe1!)xqG zU{s=0?Es-yRxQm6qR9A2W>Ivyo_v*f4HJ>kh9fVvp`n1ZT&+nwS@Hq5goLI5k@5<< zA9;ASE{kj^KXdu;=x5G3x$!s8I&JUKrpXt15Bv;0aNEC({m<#03vaCL)Fgm+-i6b} z#8v)i-;|TuPldKK0~h5IuzeU`H=WkpU?%D~N z(w6k~m?T^{3`UG)n$``8Csz=*v`xiA%}{G9^ZP;q!r>MYGD=9*N<5uTyHH*>G*%cI zdr4sP<>Ax=`2^r_+8aN?mhBV&`o(?w7XHl{!gKQod`BHgA$YSO%-Rl2O&WY)OyU?_ zSu9Mg9(r@Juln~JCwGoMkjgE06{`!K@+)`U)4Gha4om}*e8{QNjngOL5fPY5s1cSfjE)?OPvz+B`vCMqF31Lmnmm0yh+M~h3@hr z3;pYk>wC@c@aPwwb8783H$Q3HkR|7fyayg+58Qsk*#FpfckT7ndpmwzH3OpkF7r>k zRK-rG6*zk?OPo>dM3Pp47b?6ycwr~PQ_O(%gw|i;LxAK6r||MXthJt10A`^Pd3+Nf zZcJ3$INisOeuRrx0;84;vc4ocjMCDD5kus`iEdP9lt`q64ojBw@_{E4zq=pQR| zkJvEu;)$u@k8L_`$J7I<-m! zRS0uN%TmTtIYOJ%VzlVdIMLXG#bgR`l4-eClwhGVqxB@hA3s8{`lK{m=&smMS-WiQ zz`NU>)t`O#8FSCF^n8)`z=Q08tv8PR)$F#`TkF#rmZh?+^M zqrdO-1JfKqn-Lj&)qBrOreay%+*Djm* z^h=)5{iO%$g6r=n*1oZQ*UPqlyLD-6pJHAI4L;Y74heRW;G88V99auMCi6QBi2U?3 zDa2+-^djRbqj1b*7~`o%@p;gw3Kxk|O$Z?Lgh0F&7jl_Q(598rP{_4C0&)t(r$Ms1 z&}tXUI(<7jp|=Sh-S?zrD~3PyyfeC&J?o76DI&{D-UAP+2flXWz<;mZRr{;5?wes? z^y7H)VST+aqS1~jQQ@PO2}u5r!^#Wgvp6^PSmL(kqGG&Os`H=x-h->jSw#3{?4q@7 z7!Y7a)x`rm{RmrKbWqD_BxD7>qmJ8sY#<3lOdT5xPj5p)l9m)K^J|J}YhFQH`h9Yt zI3gh<+zfaz((-bc^gzBd4wD`6V9dDmmZQF3ueQF>X_{J5s5L*unU@aDg!3vbg!PUV zt&f1yUgyTRiPe?U^#Y))FF3jR^rb9W{nqX47Ve#^ymZg@#z*;XfbS^)iN;ukb|BaS zEael=JlqWXY@}#XPKxxBxP%Ld;KkpgO(KOgp6r)?9B>2=OKp?dpa8~76CTOJsswg- zMXpWv9hgTH#Y&+&rY{Xn9aA`ee5mhp=bhR9&rf^&%tWZqmw6BTgdUI|R(H<7b?+V3 z&vyL24!>}pQ}J<0Ad3)0Wd4murs8ojd=%dgr^ajJ#~2>-Zu~h#4L%Mj3m!)hQSxz( zw>UMj5eyM=!mpR@36l_|X|QmnOECu_qEeA8kKvYKjCmK;fe-uOuq1RMlp?fQi_LCn z*}&;Xo&Aa@8lEo>iyr8?#9?7gZp2URfw@}!1M{;AKSwxm?*LEHrg)1%5G>K^d_gu4 z+{INT61Ry~T@RmFQ#f*LuypzJkDq_l0~x@XfXYPw%XjW*{(XC)P|#5`FWf-`(T#5Z zk_s?Xv5h(js&|bamc$cuP?E30QqyCjCBUr0Q^q{Fmm#$dF0CWGXf2@sVa6t{X{YV> zmC7Ii7}6~S`bBx&?yx>Nd~|W;igl$w9IK3d;oLK7uQ~qsZvIh|*cJKm$MnF~ty6RN z?Vf$f!uI-YWxXcA9>yVX6#Uy>mH@b3_@*#|8E=vx0Kc@jok_F*3WASo$q$eAB>`ZD zCi!jEq z*=ctQ<_cy+J(_mi8{e z$|*vkTnoo8gCu7I{2SD(gV&XYS56H5?S&`Iz2g-dyE-?pf8kNY5B=*WUcLM7&U>oU zN-g3|GRY(s?$n{G*8U|4*ck^50xR2v-Qw^BLA=moyX}K!Ngduyj<=5n@-n_?!=KSv z7qphE1#-C$LNKbm0t`7oEjzGGHah())F($39A|-+K}ObI6elhj$VRS+O#x zslmX&vmf)yZ;oZM^Yx+a0q^reYeKI5XYGNDPOtvwBaRsS!+zbvuK>?t+%s*-iuhH? z3E{8>roRYW*9>tk;8LZN5EBaV%%BgOO#W-y5GO zm7DUQOo^pt&E#1&4$0CF9cGafNL#L}8c8C!1p^X4>J<1u09P?hYI~)H*TS|(t zd1I@GFB>_czg*`V9yl*fxa2GrT)0=yH-&Z^#FCQYCpl`y1Lb02NM>9XZNzvFC5O*~ z4jRG36o+1q*4)k(*s1@7am+dR6cv&~5WDcw0HP|9!=$R(89pEpR!jJ_{jEL4Ze#ns z=Wn~_$jf_X=9NR%1L+v?km=7AKZG7=7fP4S>}k(9wh6@;wIae(5^yL+fI4hFFiIEK z<$GaDgfdCc+Slua8`ceRt5**^r>{Nm$%~#efBFNN_rY8H-abFw{tweT^UX}b=4rvXu#Qi1jfl%B*PPf{~|rw zeEA~vfm5COFJuKjG*Q&%Qb$w#Ba^y6;Dmu^kE|H@+;g5-d*8E8s~(+^+UAoB^QWk? z0@UfBpXc<{Kw*Qz!TQ}4Aqw@gUM)gd2=LM{SQlj@JfyoKUhWJ;AmUZif}?+}rHj;r zary_OYI(H3SRNR70hD<;^gZBRcIeH>E%;e`;3a1+d}RGmLl+kNofI6QX=EkFv;7)D z8IeuIDsOm6c8E5LiA}Wuupr5_=L@AhJKDRdjmB%Ye0})iko{=6;KbPrmaiOq|M;59 zxQ=f4iXcZh4u8{Tc_XxD>{x>pJ=>DOaHAV@yeS4GN&uk21)?b&H zJfeDF##lH*2I zqdg%A?Y+}#z6@6`Ht(Ffvr?{}`Rz;A?Utmx9Ks$5*F1y<$;=ym@PXlGIyW zx^?W*`*zJeZ+dsWs$EJ)m5_(nOqsZi_29F6X z6lnZ{H<;-O;vM_V002M$Nkl^a=Z;jsZ zNwMT>S$_!~N9Y;cPARWu90i#MZ#i~g1W{FfZ9MB3eF+4?VKO0j(*>G&K_E2vt4)FjdH{wb*8boxdHH+1I_<@gGO$wz4NDF4BiwkyxJdD}4ZyDdCTLWHvB? z4gKIUxvIK9Y?Qa%2GSSqm%uwOa(RKPpL)+hiFX|gj_Ml=NA({&wtC=y_Ahj9c;*x8 z7vvurQitWmJ@BpDC$~>;ufC;rU#nB7=uP@^%H)^!PP<|Fso|<7FSIB7ky{H=tS~%- zmK3|DB(b&|146ETcIAL)(!dfh6o?!&NK{)US#Frc#6V}sAc?|hK`bgkthfFHrRD{e zaP~mBU?A3@rkEbEK|m9x+Y--MU$IlEJP*RW9NHepCjf`G{~x+`4P`U4wfD@=>b$m& zqR9ag7GW04$TzWvT{lII;)5`B|9e(rwQamRsiSg_MQzSYn+UriETlQ3!)6e zHX4DCtqqzb87|=y4KlNhwRQ_jI^d1A&s<=eWv7&u@nz;E{>%n7)lCD1&fsLBv*M`I zX~Pr!AG_(g)-_LkLhad>1VvsR(LL~;8<$-&zrFdPPE~;zafa`Q*U~fgCWnaK4F8Kt ztkrg`$TtBij+qxbnqqDL70R+Xeb3L-p(Uo@*=fa59+4M^^$uFX(myYuq0NHpjZ`?&t4TO)vt?os z%G;31b{l&Ck!gY^+NwjK(LeKJr!;|(7nDfKsJ%t04L%ibyxwh)HKAXc&=NnF6f71> z)vZAbp9?Ma>0?W)^~J%XD^H)88o1)Q8@r$S)l+MFbg;{9V0n22_rToV`M1p6UH>7M z*zg*Bi(&@~pUONmA{bo2V}(Bg(?a7lBev<~gNiE#e8^}(hC4z}NN~Q&KA~NC{imGOR#|?<(Lmn$|j*8^GNJaiW1njdlxY}tBZqgHSI`Rtw)o)MCcS%flRxoAz@R77J|fJZ%o zm&TGGJe*z7y8;OM0)yQ0)s@j@EBik1qLZtC{c9)h)474ArP%$)o6CPZKht^P?5@t; zx>+tvkj9=;XN71h0dZ!+iH+o88uXJd7XMIy)fp5MP0AwUN%ch#{6ae^Q44vf>usZO zZYJGXmLjEjd&Lv5v=%(1N`iTuV@=ECfNkw`)kg!X3Wa4y7SCC>e&AEjKCAi9&wL!; z7`Ql(HTwP$Shnd>Kx3i)wuL5u#fR7%2%!C$eo< z0Hs@P+hh}wn*^sd*64?rB2NR14n89&^W~xH0d_}Tet~=7O`CR%?3!Njr8P(O{}P|O zC7xNRc;9-|A;5_}BaLH0&dG9-84Xm8IJJm$JrF^hW9RyyzV6xO9UyhR7I^Q@)=kZ! z#&3M&rjgs=U0PoGl-jY?>EgSWPxU`rFV*2VI3*d$mhj$aNJaKpCrTq3p^{=7SsM@; zCJ@kxUjLDr$d=g=R?vHM6CT>2Ly;u-iG@sX^q5tIBCD{{P~o=mZ2@d!h>0g3K!X*| z{iK$O1#0Wnu(i2vM^6k~*O+hq$!BjJx;`ki%*!LD2js}blQu1UZ2VC}FNiqBk>oPv z@RVrTg$!0Z5G*~e%HbuXN5_%4+ZwjzZ4Ar3(b!Sr5EggRgD!y_1O~9{AI@&%64fU}x3($`c3L1D}1tiSw_PaEr?ny#I#5?~nEOKY!nz`nzZE z(M?dzG$<f^?v$PBO}2mAPu+X9lH0;V)1c$C<*MZBSsA7%?~VQL$ohH_q5 zD_lyG;9^@*APKCJB2QRUx1OXXXdqO70i)2Qoer@4nU#W`rWnvW1ePCL-ZZps@Y<*U zO6!V^kE`js3t=8Cd3pHv0AqA(Vg7e(yIRwlsD|HZv+Xmn`N`eFPoZ}t7-ug{q)X~P z=GSX0GuOjOp@%m~Mu=0N1)kr+; z%qo(UO|jvTeY`!U!fq82C96b?t>$nYZp(w;!))L~W=OIK5|yRI35mpoXz?LR99q*v zW-PVl9~5UC0DF5NiM}*F{7ZvNeb*hEDpXb-ResL++WxDb`PA-}OawM>&hHU$&prYc z-}=Jjw;D5zKkv-5v2sK^XXap>fKUD?uMDTN^E0-366!9p<0W_3VRynTRzyT>c(fKR z_Xk_5b;ZKUEsO=;Yu&hVD)GwT2nfxCGhU3sG7zFpMhRd70klniCjnS~zC7VgQ3JXV zAa2^lq2ZB2v;2TB8%u`ds{`BvOLNo#R+WoCP(AS8E7vWwy0v%cd3;A+#F-*c1C&C} z!KjGy(5Fz10nQ;Ti%1WS%die&L(JuvMnGf;RV*ha0j`&H*s}Se;wOWZB0LO_nq~BZp|t!AP~ExS!>$^bxKv7TeL}*knDtBcyP{sWRTc0 zZ=*>=L}CrR6OHLCz}sPro06SU7u#Z+SnDTr{Ai0m>qp?$D?VFherRIwPtYDsmp8#B z8B#8pJT=bK$I+huX8!kgG1i|L|cJF7O~D1Pf^dA!9hy_CMso9F(Enf`UvkXaxx( zrNaIja?D9+SZ;<8)Pxa2R3!soP=T~HVT!n7v-J|QLUCl^0`Pe`G(C_{01i#R|J=2% zIAi&TXZOr~snC*WMHo>WxAQpK;$#4EuM=~T3ml?OD~@d}avXc<8bM2nQX|GN!dft& zO-V1)32w>bPXnWr zMJ917l1$PT#$u0zSRc)xHGPtuIJ~{FMPakgh(aTNWFQ8-x7iJ>P@DOPO5mXtMMjSa z#*5Yj;KC+nH`9d-_lE_cBaENSw@rjER%S_z0n|xd_52jQHBLDA_22h5TtD20L3tB zB}XV*VaeIGNE#t0*pc4Y)9#kG-}js!UVZe{mX|LMY7fX`^73%$flI%#`bvE&_=>Iu zVd9ryBL*F;j_TM_A&E=|Z)z0U5u4Gi;i9=x@5TE+iV}cCa9=r>B3~o%% z!>?M~e_?-R=yRJ-oH-AXOUtLW4u7~&s6OqUyBk;4rY)Bbm-A-8E^iQ2v3=aB&vqpJ zZm==tu*CralGy{ALDr0k-}FvwAuN-?CaAy?GF{Ok`iEBFgiUgzPuW&63zkHb??g=+ox_wMfSr9cOm;xWQBmI^rnID%K0 zlwVRCr05_uxzmMcBC;VSmL1Q?7Y)L>87?jbu+~o#fh`FcQSXwhID`5RQz) z3K6jZT3V>vh9e^3GI}5`Fe57Qm=k$IW^7?m(7^*s6jAeUo5+GmOBf>(`U?Vni%}Og z31*#0Di=CsJz+6^RPo4_kFC6YbhvWE)6Z`F-Pw<8{<73TnU{w_4-D07m(_MPzwDWx z_v)g%d-EbT@4v^1#pGmi8v9>ztmKNgpb8FXEMVN0z~xeaeKeeraX*oV1NwZFs&+`b zu*rK~r%MiqGae_#7_X?tCC5;wCjWtRMLej>jEf*sDD>+bLtpV6)8>nV-UGc|d(buK z3J+Khy!hnW|5$U(z;BgDxG9ibtSG0Vst4641p$q z);T6)NQ1OsmdU!K$Ny?`g~H5C>uc48`kOxS&CzQ`zF)cE)cT2~cHte%Ci~9qU!?;P z4T7?w0zYq0Bj4Gsly6|RZml~^IMjd^Ftn@%>TQJi1=Tv6@GQjv^G0h0jU`DQXE%(4 zH6x+Uqs=`*@aUHbhy;l_QPMgi=O{}m7UhaC?V_O1<~f#_wvBfQEbJ-N+qLdz+O@`e zcTWvmvvo@`?xIL~^3^Y14;=rreXklnX8dm}%k8o{!_BL>MY6k?ViMG3))Mxkm53;&|h%OGk-osdQ>@efaU5IA7b)+GUGoFXbd zwcS~{x^nW+=-{Vbc+$e3J^!@5%h8>cOTRL(b=NArGvL0)?@Zs*p3xfwxjhOCd|EP0 zA)hE?q|9SjW^FR8DWiYlo`vfzcz2&l#HPzhc$i=8aEzO5@)@ z`5E);GFAEd7q16a*P0(~>}ma*EVl=gd}?UPoEk@wH|SqA{d&F#joVNJ94gmMlw2$r z!Y>s{Bmg4HgyEAhV-B5GXBI9M2qwlwovIn9g>+FIHmW9NY4)JDCK_f9n@sC%Aa0mw z@QYiC#oN(qfk)Qw+tE1Fg!$s2_CV~(gQ_xDb})M21t-qDV(o^J4-8Legl6E6LB=V@ zfgVOg3`d5^z&=|*(jd+WWQrZdSw}HTDj=8>T$Lo909R%b!bqhYsvO;LZC`i57aO|K zZRWn#EsbLBO_zOb?DH1BWO3f<^Jn#S2mWYmRe96!N@?lq$yOs2Vv7X(#Y7y91E=l0 zgw0vnihATL>1WXPja0HRLrHqbMYalEl@-hNmP&`#BK5-Zr7zlhLGg$|L4;gp+bI98lH$?ErZevkm=xw?6j<=$!%G0e$~# zVtwUt!vh1K-h9IR?`=9|$4I80^%b{|eEH<(m(SU^yZPI@@9gNrcgS&~vgJK{l~rN@ z&9=pDWh)~P7Td#iL{0)GakiJWN^byGeW@I9+CGCg%VFXrG?^6jt<^!OpY^!EEkJy1 zKYfC{Sotgou%5nzM5b)DJo?rmGCJ`>FL+z>+kMLlon=RrSFJdD;5RDE`#$rzFV#Qw zq_eBP_RMGIk5tibzbK{KYJH?N)4l_HnLXn>b`NPZlBeHzCl+Km6zk??Yd(x#oL!rOcv|~O~&k(mZI zw*_V}6lh6+2R+?GNE5|gE2gzZ6a^4V2YIR+N(L}e3o07Ki#+EKM^|S9s?&wS^uG2N zs)hO+uK4=Mm(9Cm@%+;or}Y(!e>Aqb^6Y+19ALA}u@Nlek^?-X7D?7NFyNB5ID~;` zv1IMw^cJKE0A!|TtFSvUW!r@LmW%uzQbg1(BV?M+mOuwm9f}DZbo)-dX7zpjgT)VDf5qT;O_?ta>mE4% zocVVzKW6wh3xjR#%eZWZJ8SRiPiy%D!++0_AOWJ&=sJE50x#iU+_p#H8jfk)35P?J zeUO&wtRO;1xLgl!48a9wd^2cKeG&q@#UM$8db%$Ls7g%3nL*IUZB=)RaFj2df8ggS~jgTf`s5q)KdJTYJzLC;jd#hQ|wUAD!qsvZAL8BqL7ui^!J%$W4;1 z5j49KIq=d87_v;BY=Jb|S)CSCS_TW`;n=!0Tg6Aa%cAaU%^wiLD(^ge<6y0fiT;o5q2 z;fi`^lb?06Qx$591y<=lJgoOidkqtxmh2 ztyA!P*qeiV0+y(Cu+k(VIaoES2UW{~Yf5qkX~3LRMQ@PmP6xs`s6|3z30Wo&DcJ;o z!*sAr4w`xtnu*4OK4vsM-TFVJLhJWG`n93YBWr2Vy#ecVZQ)JNh1+f3C157YiS5xgXuH&vg+fd3 zov+U~x3z1b`I;~H&2D?l)yp0;`m`4B<>?hUmi9c5 z%t;)C;FHf~$NKVFxlkH@&7XxJv~m@pd_JEeb4?2DZwOagd|BvA6)6JoK@X??9Ai{) zI!ZE2lBjuUo9y5AOffA^5ID}4SR_zlE36rQX=~0@iVNHBebJt))_>F_`Qo7TK-!%L zMOUum5cR<3$8}E|AMbo_`BZ5cJ3K~A8{;&h5M&UG*bI+I0Uz;BvH$=bv8|?Q&4-wb zS5?u*fanW-umr7T2+z%cFf(ZBGJxM)tWl8riAp@~Hg{jET5os%ra4^y8`B=s}gWOB-K^f+VxYq{|q&CL7OVkc}$!0|efXz$y%zfSyeXDK`MA22@$t<%>!Hf`v#z|5ZJcdE74Td(-$ z@MTN1xw=`eQf-wdUN2d(?S=jgI5hBfr-!CA94)=2MOy`xA|(sI`z14)|%OG zF2T%)e&{n9v5mG0dd_m_$t+9KTOtcgwB~oWrn~jdXF8qYmF>Rz)wf?gwkyfZSBIbn z)}6V1)#TADZ!aA?uwFY1e~=sEjEYq6*)S^Y z)rS$f+vl#`_D>Vf3{<{67(EbPb1*dJIu3CUe6;*)r=I)KHOCIWprmiq`#6KhRH%|^ zk|X#YffT&}6|6QJJOd%GDIvTK1y2hk=hXoc^`sEfx#>FDfWgn##I4g3Jov|;2)`If z3|!OZbK(1Tb-MLNv)yKl)_6><=@9PIb5A-Y0Y!k7-uSU>aF6YujFLPnuB)0Z(rd!M4y#!2rU2 zCMwy1JrXRKQ=?(Ri<}cBHW9uaZ`6?hFEXslg22HDbdkmSm;e9-jy^q+flZ~BCIWir zLZQ01wWC-sU8b)*Uoqdg_lB=tyT%`^HAlWUXg%=gr_KJ&$SI?*>F729?;-ZQydd_! zb~QKM(_sI5%^nA&7IfabIFOK@`8w=Cd4yI=n9MyGoGm#RG*B}UKz?u~LcB0@Ak)wt zf{Dn)(Xb%N6M_qRphz+HM}R8W&WnFQ(~O$VNua+|ESF35JEy=3}lpctE zb5K;}N)B}oY(8_(k;8+-H%x69*r0IqSip60f}Wt%!3Lr0TmsA~fF*TDaDruCz~T^4)-h1I;npC@Mz_2qbp0N59qsM&NyrxvSh1rSjs_8OH2v?pxb93dUyfSDg2Nx zzA$sKU!1T4tF4OxTupbI^?_r<&?r3Hg?vEnfKY53n1pE)gN`*ciMGc>TSlmDes31{ zIY?k;t9j5P0mg@33xr0b*+dQ^HKmA!29$Wmyf`%xXw2%^v)24}bFOn~WuSX?ao2sf z-FV}MAGs+L#=IPe9yoI2o~Mi*GxGV$WTnWN8lRbC$FsNikC9z_SK2)QYfYV@TM+2% zltOa!4u(%qdSBy$BJyW@0u^w}wHWi;L6STxv1CcIY$Upx@xslY^jN5!jW$#m8gmjX zut90g;Vsb=fJp!o2BG!RgU+t{U6b9`6K;S1_(-FU4u$GPFJ}!~INLSVu+rtt&^h?ENE*bE{Txdj)M8x(4kGsM4)0RBR z(&o9Kj!fxOFJ4=l+U|u#n(V275V1r?vQqSk6M?cnbcYs!fa&MWW5F2_U^XDpx*c>r zrsL8H#_Pjy#ZtT2ZC2Ia``Xo3we!QmLiZo~2MV8T-21g}-g@g<`OSmsrUO+Tb6$6> zJJ`5+=%~IE^tK1>H0`ytzu9LhgiGwjk_Jv4nY)Fj#a<2y_BMQC^04csPWCz2>_Jp} z-eB2w0OaeGz3OsogWZ-O?kP1#2mum)2nzQ?n`HXGz_e0T%n}9`GkYC21-PRLC^fW|EGpGJ*Ilh@JQcV2bLFKHoBrT)EPjMQ&F5iO$im{ z!i2>nFTq1~4`zJY4wJHA!&#Y%dTg=R2=D|z-~=Zzvc1TscrFAe)0gON2SSr<(~39f zK&a4G)soboPU4ntHd1X=Osj?M5sbcv(PFZ?)&PEF0ulC0Hf+90Q+?j3b{D$M&h53? z+LhzOeOEPB_kZ)&_vTL$(9b{ba@=!f-?i+x(f^<~0J6u5UA`8`KC>bmiK1l+C_9MS zb})~mVC4!NU5nA9tKc|?Cwc*~6WK5Q+TO)!uH_>~9KuIbgwjlNG6owK?Xpz@*%HQl z6hb1JbT5J0!upheMVX(g3(zq!Z!ZiM8b93mlHFIX`%t3DR|mKUw0rXMNb7-(h0j%v zIQ>bNtUYqzg$2EbFC9oYrTFf^lxO4|9y`b=S+Fn3J9HZp07`H~oxmro9pI!f@sfv} zR**%!n?m%e`wAr$r3_BVbL6k8R(di3+mOLvL_%un7__d};Lh%8-qGo_f3N@KD?hSj z%Y{CZZk=gy-s#n|%l&=7H?*R>X<&tbT>HnAbeV&;bi{UHjcT#6sXxGkeYPJH#Go`~ zI}k-F`iufLik5cb;S23af(O~47sLZT^rGeMh_v~^?v2)3*7W2FhIRa#2tHFdow_g4 zW17V@ZuusZ>`3Q9j~w$`p6cjU-OXf!vbRlPpmP$O%W4Y<5$GQS8wG0b}oFmj{3* ze_&5D5DU#c0P=h{LI!j&@+of%peY9SI4)ytmY`|`t@r^`1VXZPi3Kl;rwKAF(F85O zB+a&H#))KO2ocpJ1uxa3fb;!@zTGo_a_2`@{U^)G7YDot)cJXNB=*4hzr15=thoFd z-4AdYA@4|Jt)B;VN3NT$nS^MKdj=ARs1?JU92AOt;LxT&VN$Uuts})i=hOn1NwRE! zfEfIP*trP`QUeQe3__S7w75T@u6GCM)i%|Ig=^}C_8(rob^Hq`+`n90dj8|y_G*1@ z^erQk#be8Q-+G$hAT^4I^kg6~{k$PuI@Q)`R;h6HobeQsk4`o)Bq@WvSc zDwMF*>?|PAi-y2@knzrBdl9H1zq+qm?bMs!Yb2&eR*Jg-*N1vwk81DOWFgmi@nQZkoHcDy_g&inwY)?aSZbWQATKWmz6a6{JMfBf4F|plUa@ieW9!xO-b-$NaG%vY|E$@QR*jDQ^Rjit$+lk6 z%cpns7cn0L1x7pEd5p}d0*{GcR+`AFkq0tVa;mg44M_#^-VtYpw5X8B&_}8Z5KC!b zzz2d6ngsZ!IkE~j2=WqvcC}ENooUWhYmN7nhD-0f{FdQu!t7TzoiaOBEDyeMWO@13 zqZ7r6@_^*Y0R7m8Fa_gK!*&8eFDr7Z)<#D?PUAxio&hn@0!o9eB^d9T1<-${w0wB= z^MI^11-w&znpA){gVsq*PrlpOqYC=Tve3f6v@KY+IU$1W!$|1$qY597cfeTg;`px>>E%YUrMU=}xOL*WFRBwm#Wv*KgFh>ubLL+0p#-uF-uz)AG^J znSbB#vBR(CgV-Hj^hE#bm+cD=su7JwIS@sqeWQhzUTfifDy%%(yPXMv$$}tef)WIW zicn%lq>6d9(ya#JWQGNMpn;1QeC8imU=_(|rWcuTR9J)8$yh;Pw=yyI6&iQW-nR3^ ziN_T#j+12~&dUMp0q^(&C_fi{5PRT-XWjX{W^M4_kFV>z;2$64qg>~mSbgf`MBgXI z*ObS7T3lHjr_e7Yix>+S06>vch+5iFGr7lU!uhO#M4-GrTPV)&ZS8Ip>VGjX(0I?5TUY8!1N)avXVp(CHafpM zy0UNc@Km{?8;_Xugkf5%_$0s0%JP^th6y{o%M&;qD^a?4Qr1Up$Sjl$z-Dp z6Fj6R8m-VLy0rO*yRFd|OL}n8SVw}T?3?5X7o#--r2?C^&IS^6qF*I)aI#l0HY4Oh zpoWXqlIQUN7}?#j!0Q*YGu<g^676~IkY{U6;8tP)sO3e zM{k}vzp`xj(!Q0tl23=zzu8XE4rG_(A2FP&jiZFH*f-Qw3qBg`N}pSjEQHy8ynkay zQ-z)t^xnroDS+?Pk8?#vnjM|Vsi3flY6I#?w*;gGTU4OVif%DfRcZ-g=`R-=_bhyG zV!ZZ*Z~oQ#`!cG0ec*b)`|ZGq&m|ws9{BCe+lKDDYvp&k{iSP;n;LxG#aoJv2c!Q* zXH|cFY<%E-@#i1vwSI!$(IR33^v)Gq~A2?irzp3+hdg_U0Y@!we%2SbysU|snPzI>U8td zeIu=_UiA2PZM*p5i^=_Yd4L|6c+&18CXXKd=HU8)(Uyir0*>9lu1j4_A8T*8?^RXP z1e{V&yFe@N2-q?*?{*RD9FWAqA2b$=0M19H{Yf*MM1)d7umu7{YN@(W_I%T8AsE9s zq9x5U(m0I(fq+SvW$=sv98ht#pww;O*QgII%s%7$mmGD!Cw(L!FF)rVU^nOGVblY! zde-zML*?;{YMsUh?riV1AfXK!Da?WJ{0B`hmT;4is8X<2G}5o0iU`)B;Z6x8U9gD2K*koJ0F_4Im7tvWGJP6R5s_m!UvrJV=4-ZaFK31fv zpKIsCPpv(TY28?GLv3&4>O#AA`FF3MxXYCJqSpg_8(?Pl30I9AJN)!k^fX7{$cSwlD=y@AmU+R8m*Oqs>>m;p87 z%%wI57}#LlBoO_4#sT7%&Ly;4MZRFl{Q-r!J+=8}r*lcYTz}WKUtRfi%UQD6bjpsA zLS^}D2FLn-b9lUTY(*0RAJwys9BpUYEwDD!>6MP~_DM%}Q=Z#uW&^nGrhlC3Oz+7J zs-q*l{k}IFF$hG4wguB^^QVerxCW=&!7qgIFh%LVwW_>|VpV4t4QM~jYI}mtQ zvbxt!@aC~TZ6B$>XAu*M{g~Niuwq89?~xD*Rod=TP1ZWPOt7%Cv9B;!xLS9+f1)rj zfAzPn$ZsIb_QA2|%>J*@$Bh2Fb{`#?_J}=0^>9q}Cr-*`7@rtYmwWi7?;+AZN7ei# zy!RZ7kmseEOd8TITiluG3Kx~2aDq5tzepm(EIXmG6H7%8CsyMLYTEvA976+dN6I!W zd_^A$tyW5%J9fW(=jH4F0Xca&usy(@&CA262Zn|hZf&-jdw4DG%Bi6jkE|NK^t_Yi zRzH|c{P36h-?(#I^F0f?`bPA&bTsY3K4T`Qq};(uG#$N|9I;CIH-RpgN zdVgEww^?7sj0jMI0mll)$}_N!~=uf1*Xo#o2>fzeQI+Oojsv8RLLXVk<6Jzsezt(b4Ech>U{&@58Ujh zHWKh?6b3}nv^Q0^CYY_!cHlf1gHTf>-!MqlgamAisfetSBa&2l@^qGh7XP+eb_@;; z9AmTd#R2aD_F!HfW<7Ax*|RsSUO)O|l0NTx-*H#%rh0qf!pm=&xZfS}53uRQ^G|F1 z-I{fM|L=g#A|S&tt5xrYIpP{dQU|fCC2dHx>Rl#GZGcM$FF45~3|I^n4t+08DDreq zfbs_^P1OE_gapIj!XKCzXf#m)kp>-S6b2n`B81jIeOsWafqi!0+_rY1_2&zP*89Kk z0B1(dIb~tJP9VHtU`6@YhbJqOSYAvx>P5rRO6tq=K)`h*s2i)6Z znqZA>5WOZbm|RMy=o1M{+6E28>;v@`o9Q%f3`qTWAc9#EMcZn;;O;B-4Z>&}?`6Pf zBhRa_-?ZZK85S_qMZ<3JI_VGL(rJd?D!|A~a?O~v5u$ArDuj8Z$y$+5;A&*xj7?*A zyV{-WTwbab-}8-Y`nV2kdUzg5Wpd-T<5wQBYHMZPK);4l^?_WRo}kaw&FnOKTaFQ) z;}iJMh)58y-ha?BJc|q%f#Ve|WCmP7;MxA835sD`d{zx5+}0`m{KFMc3u9s86 ztQNO)^oSe-UqNreTfJfMiK8Qihrhxu@}u^%=)0aqjFv-0DZn z6UqFXA0!jJ+kz3|Zlent#lGVk9Ko(Nr|2W0Euj@U(vj1g@YZS`k{N$Kd_6$$Cv%(vhwi1{OV)(ym;frA83eQ zELVSZ_^!`AA;E-%1{(bp zc%+!rX;fS0fm=8+I3H@;zc`TIKWP<{^0wKNKCLniHh@3)yp^=QohU|k;6oNp+7h8wrJ+K1a6@@;;Ml&4 z3acyEJ?i|{Cysya+@?a|;zwMbI`YvYyYvj;59nliGiK1y*+AU+cuLv{>b}@V-g_+E zr^3S;ZSTe4fe~RUc2d*R%62p(cI;q_NVJlPDD743@eWQHOX@`|gFYgm;ZFm**_0X7 zvIkfIGe1Dy2>Sp>8O>&qJCX8o5PIMd7gz_OPY=0@ZfWl3YOTGX0WhZR{e||b)%_=q z3@y9*d1vf<(N8mQ%a&q$s`Ry2-M6Rl{^kOsbuUKE>ZGLFVzN*@gc_9KJu;(|#GDc$ z)=2}2!x@5fpdggp?0@_ zdAq%QYUtFlp^*>u-MQk%jYsc%(Z-9rnl3Dst8QQM!)tCC{O#s^^US^5G!eMBy|+Cd z+mMV3>oWaxk!(ojIj12FnCZ1p6)U5p8enx4Bp#5}chP-jinAAHT;w!=>SI=5xYQnc zmeOHc^s9NSgj%LsYyM-$1PL@&4UK;L@dV79WVy(OUPRe`3xNn#%~&Yh_P$sO6Ayis zQHljAor2D~vJyK<&B-}nk$!l@xT z)O*97tqxz(6X68jYa*93u|NFBez8Nv?7$=}a5)6PnJuZA(JL#kPQc;n2@7E=J=cx> zod_hE9Vvfi*bn*E7S2T>|jhI2Ot*JVpqdYxx>$iVdB1UYKnZYPIV1opSq+Crf?Y>a~Q=M;RNaRcpf>JF&Y^PJA>J)EZRE=i? zeA8U?k9jduyolIORsa&c)kZfWlY%HX+$n-VPoe*Oxj<`VJ5w7IG=iDb=E6rM;bl7) zcWnpzG}#uqg2wkl*e9YL1H2^KF8I@a18qfV=Hj|Q;H^&!V4i&H8b^I!w^`p_yL_Zj zddt^7HTeAy|L|TOf5E;#E+4h*t-3E>-Qu}?>b`6*tBV#R$lb;@cK4ijg2T*xNKbix z!9raNuMx#QP%*U~gk2oG&`{VH`T^90k*oOP*FrnY-wC4Wy2Xmpj5_k~RUyU!K(UB= z+Au*J8G`roq{#NwD`%hZ)jwT-m*nQ<0QNxI^#@QxF8Yx4Ky|MAVII5UR5&qCz!GB1 zSC`AnR}K8xH?H|lA2|2qAM%#`pIElsHu#3!JFD-U+2fdvxK{iUxJfQ4z->KWOMpsojD<+q1>?;p{dgtxuT)puzJD>HVr=73+{Mf%;cT459 z^@YY$?)zT#!!vicYPvL#iB2~{SxqdGsbP6+KN~?i^_S~_RNRMVG*JS^Dwbr;gtG{> zXj)dRjb%IC*Rjdwh29l+!XgjGtAsgGXM+MPeTm$XEQ7tK31GH?i9c(aj{Zibf3cTC zkTprRgjz5w>R~{}EUcTY@=gq(RNB2)qKfIQM%lmF< z>$z5aOh*UP6}Q<}v zt{c8L^;sD$Y5SLFJbC^sCBEP2AFjM$bh0vD(B%am<7luFF`FCPjJ49KBWJGxVrz6- zOv;u>CI_3<3ZZk$Yx*{>fFK*Do3<}u!=A+Bm54*4cr(2{nZVKyf%X+q8?TYWr?bW0(Y+}P_tr0~ z&(+^@*EP$&E0%|4+3?Ewb(MDE8g*;Geob|bMo9MuU4pwY;&LH9j>2(}63-2QcCWG4 z%K^M&m>cM>J9?Gfqu$rpta@2^my++yDU`KOeFK2Gc)=FKGOzGLzD9D1bJ)lfeQaBz z!e`N_DMhi;QK8OFgo5-*6aQ*BT+6(L$U#>s@xZRyy2nOBi~9UgU#Wkv)6}~o8w)Sp z_Q4~smGrzEz#ixY>H*Y|i#|j>aN&~|{(0@uLr-N;afVhz^Y|R`r)fK<#7lebuFmh> zS9{~9zP|E(i>dj64Zh%U^Uoa}9Qwe@^~DM25Xh1T^&Bb7JE7BqmeY+h4oN)O(qri9 zg43j`IQJ`~7zR(uXAA~D%?yrw#DHd?XtXAeuzi*eGnpvC5Mey0|Dgd+H&E~BENfd| z8R8N_TYy5NT%4Vr(;T3ERbjaO7oYpuh{*7D9%;_Sl0X z7kswfCA!sx_LxTOS;>-4XqW2S4gKCqY3*RAOC3#jVbkiMS}*;zN~Hup5X&E5YV*B? z`ksMOb)Zq{uM91G_uY@uGfa6okUg;94m^;Ga@hyJ2hKlZ*GndjnE0pR<&i(N^buQR z+(^kKjeyfSy+6HY{vUQ!+rNF|)@5q__;Su;7M?t@s{cb1Ys*LKsMo1oPUQT&U*;AN z=gNKzWO2BzH9*QIG2Pm(C1|h~F!y61eg4L#5vjT{pEfbF7_R_WB*kM^g(39ciq#xwbq(@ z!r4ApN5{UExUr zvjS+_s&HnY)uB&mqzyYwYGb3`o6v|m z-4kw_&@XD!3MT-(*(4zy^&4suYV;HSWF^7MJsyQFmjrgyKUS#>yzbkV6n7&hFL@8- zJ@C_ez(M!Z$#RNc)E;=@8FTMg{iu;Q>v?!Gr}HO?l$7h8&)}kr4z{DWwC&s3oSU0# zzWEckj{J2{8F#KNcW zz)Ofv?VF~@Xc;UpT~bsSG&IO)kd7KlgN1S}=rloy!4a71qVHWoV9?jUwR@6~+NxUy zrwzCTtD`%n+AUov&^-b?H84LjT@(D0R;B(wZ~Dg34?Gcg+OQkL5q!`!#u!Z8-UbiEs(b_HbpoM`UYy7mv%J$1*hp$mpmjzL7qhgETc{G z4HSL!sig#Qk`VgRk+$VC*k*LXYTw$HY^PwC>7?Cc*pqC-DD(?%`>^nuyWn_&CA#HjVXKj<1S97WKt?|w8wSu7#B3M&F^bh_U&zaRIhA()8)4eZ~I9- zaN$|C-{>DL|KW;>$_ico=KdZehAh_U)Hli6lL0&~Wq&)L28AF`Yqg=xXfmW|0QFA! zi^hYA2PBXb4J95RG<0Tg&JY;I8hpYTFPP5u$0%vxA(JD2CIOsY&?{6u@bfsOI;q>@ zJ^}8`ZWK$iv(wc^vvhf7sP(Qdd}IC1i&i5v%2V{DMR$DS53gK)+fw$tp7%iB1NZL%Vkj>U^B#ENlV(4%?wHXF zc}gftuu7VX`<@J};?a}gMWtCS6zBGIzTcRyziG>D!ygCsQ?0mp^O2Ls#UP`BS8fI*P*V_Zf);;3psuvlP7=nW7- zXGLZ}h<>Ky`e%~r4d z{^D@&@4on*Fsxs8agC$qYH4C_S z?bT$^265u<<@zkHb1(|o0cUAzi*)=rnJ@aJ9ehqW#pAWlsTSg4dh>$DnqF#7=QnBM z6VxJvHtG_$BNVsZ0~L5^LK-B>6es0+7-SssB~cN!I^j4*?E5ATFQ$O5=W5Zbm9TU6OeNXu|o2yv~Uurw|3Fao_-OTFLnY zTtFN=p3ixpQ&~I(KuOBy!3250>nQ#+K@}8eU!P1Ha)Zwp1<#Bmb(g(pQCc#ZD9I0BanO-XC?J&3t(JUaOLs?W zTkGO2*N*(;r=U$XI1Dr}&_G%R8ri{^;XJ&(Ljt2P|>2y*8psV|W9U zcF5cD=r*{%;8vQwyM6QQj@s{EbL-T7KbtE9f5qwDmzS%#Kb|_WFzHtj!&6*gtY4bf zMOrC45{x-t*+Br7y%RYG-Ji=PuaTUSa|(}Q#{wGZ!{NXaMj55z<_l!sI1_kiC>MC( zd@CfS{p5jY(qKT0^>nnqyXL0^D2G(1FQ>032zZ20Ut7~t0}Hj;R;$zbh+b;?rpaSA zU4Q-c=jzK0_YSm4vw6zJ#nF)$l!x*c4owz@@_M@B!_Azy5s7TKKrK012bU3G#oVXrI2t=6BiPC{d;qu(n-^XlL86aME1et@xNdUN_2t` zL>_c0vaejA^>dY+--QW6fEFx4=PaL7;DW8$dn^?F16d1;n|fOdJ7zDs?c>Y7?fiqo zKm!8}+)D#oYJ+eXXyD>g7M^>=+L3n;Ez`qnwz8_U&2Csw#|5(O1rH7f90nLjanF`c zud&d2Q*pfae>dDPzEiOMhNnNOcKZ0p@ax8x<<1&PuMoy@z*|<{Md)CIFQ9jP2h>0u z48gP6%xO8VfS#?x1Bo#9$@##al)yg2fPl{sE_f;J88CG-A~~cK_iBOaEFPwZhGHmF zKo1DW%Hx3$@xGH@K?4B2dd;v7Zxzzb0SyRREjb{)bGci~eXdvS{Qdaz@3{K<^*=cf z5WC#zdZ|#kTKvVzaQX7;v<6OkgisF50sSZvyWJHxoce&3QjE{`3`9E1m!0h#oj@0f zHl_EzM}WNG%{8zznEovQ5YncR&Lb)vK!AMU)6bcJqNboVU6#qjY`#z(>5CqTC5D>4 z2P1oPm`J9ql_^{`XOzSLzVK8g6p_CuLhVQC+|m9{zPtP4@4xrRJIrlx7-(Rifh7&Z z<-3#|L=IIATz>M#N^#<-8&{q37Wi@!U)vN)SV-Hz5kpk3?bYRy`%-Dus|E;j#R*}A(wq!j_Z zr1>Yq6Q9_8Xsg${tUO$K@$j&5X6HrMYGvH~$juLD42`uRprEEvnpGd_P~a9vYfjHp z%(u5y^MxCl_3kZtQBA$y>UQ+*q(Y~dFBeCPtMjGYQ}Tu4(bdtyL{EE4atw%Iq|*FS zD;1@9l0QVC$Ox{Q%SOPi)?Vs&)jwaG+4R(1A9;v+?;s2`Fwj7z0j`ljI7~Ef(ZhEB z!m4%4-#xZkvm@5OG1#g*hLwqxem1L0`V-zxp&N)eF>8}y@9L4O`Q5$l!hGw>d|~cY zAHI3@k4&(i!?RAWomI}2Upv06bS57ZVg`#X=a#MiDHFDW`z*5#9@+G7kkg8>pTG`0 zBwBJonRsM@mNa>F_Dmiaj5sD(miCGPUNHc{-wq!DPEBW=J}J=^(g47l27$`+JI+YL zFAq`%tp+G)5TNO8M;=In0__v%7iu*P1e(oncS^0d7bjY8{l+&Qvj?$$JUrs@cTSJ> zS6o^gEx)unUOuxpDGI*qsQP&DMughyOx=ut3HlKX`N1pd0YJ(_GU~|yAj=;x>bLZi z2GxQVDk9?V_E0?1fXq#4otNlE%K!tN2~Qc>04&#U^*47G`)}zt+h1;cZ}H2wetEf` z-rs*%bIP`n$z!Ki>Nd&+#gXze3L}N5RF-M`r1na5;+6=kkqddEbrrEbLM~)-Omg)2 zob%#s_4ie4TVHVNHG{Xy?O*Ey=;5e=bh#XkRX_ade9?(Ntd6W%^O+-$8#&vCQz}pg z2!pLS&P0H)?ZiomFwFv4QYB#X*&tZpnfQf0t*!Ni&L4mHnIr#{Tki>@iS|8QeDSuC z{MO~aJu+JO?GVO&NOw#fg0ZEb#xUr;DTyjHC+W8X3X`GS8 z7Crox)`Md~3>`$md&44w3;AtV0vZNH!1O~$E>U{{vy}qRLc`euW9~0nKOwMp5TH$h zxh_u*X!Il+KBAJZH=4P6WB>r}dtp$^4tY`khDY_fgBUF5f&{+PVCaT&41>rOCos zr3qC}xSJXLySwcs2{aIekm;;}v7$7*rIcDi8FI?TY;FLR+W2c{$!e9da zknqd+MHXdK#QB6HFc{INnDe=Mf3~-y@v^VId*pqA`41k~uP+???caJ-xm^C;%5?ei z;tIEg4w0X>LmsUlxNPK;2#8|^D5Ce+>y`A28U*}k@ok&0`uP9K<*r~TI|u^}9QGRU zg>u+y;V@Fb(;qu`@yfMh9~@oIM?hpK=>eI==A0SO31R{msiS?TA7CNyD<*_@r2#E8e@9Z6D22HEbV zJ}P-};+aFTuaZc1M${qxRq#Ge5$~W7c`~OKX{7>g5^zfUp0rA&&fvqTD@M@Z0MB7h zF9^;JdeaHW#NS_5(fmg_d3?)R}S{NhMvUv>6$XM9?dc#dImHs_ly-j!1#kQRSgYt>{a4Grd}EruXz8 zTv@)(%>I*y6QA9@q_m>^SH)%d6I0)T|Iz>!c9u8eixi=uexa1lxAx@nolW(>zU_k} zza#Ng z=P~rmvSe`WbL1J>i08PBd%vw^);&A>i_OK>8}sGXpMB^n6TA1PS$4m#n0wswOGBks zPc6@{Eslyc5{TG>s4&X2qgQ!?Ayq6-BUd;ni(}7*3_%o*E^1acM0C{#D&L|E2Ur3BZQY#r%II$ zw+7<&fFGn-a`325ie!eK^h=F`Y3R!p_Y6LB+6hjnSqHEXGzc*M&1DJi`g4z8xV-{r z8Wq{SrrH{e)VB6!8h6z$yYt%d>w@cl?)c!#8ppS)xwnn2tv)eVk)Hig07*rEOm#&V z;)vnqpfZvXP;-y&e$Ccjedjwz|L8wg@_>4vfkRINTqA>Um}%gdr`69JUs3t^^r}L| zGg>(SS#S4+WIJsvZAh`~=qDU4PSJBJrpCtO9B>OF(EFH9LR&!LN<{ zD_Qp!o_XfXx>9ra4~8bn|8s14p`aTBtde7>U0itcy^deSEIBXA6HyEbg1JRe)J|K- zkO--ONkSZ>mx*;Io_Q;(M^&==+u>6q0rhX^F6NNi$)o{+bpTvx$K~5qNZL99L?Z%y zRZ#h3Wk4V=56JnmIv`#oyM?a4@~U*N+wKWVM1SE^@ks~R=`bh%--);eh;uN5W`}az_Zu`#uHMFB{ z{Fz?*43^dd3UzN0%xXm6RuJ@N9|gcyIJb$*RGc=b-__gQ+TD1`tsfn|&rPI>&3;c) z=gdq^tsZ{w__5UsdVGCRx=*FV9+9YHs+d_=ELTGPtG&D1Z|!RR<(7y2#qZ_TuP65) z3^Z_9Y9PB*4$I0P&XvC8tlE3l96S8n{E&<{hFcCEr;CHbhZtrHj%~H2$9~$tlZM`I zfMtBlD`r$bTwAxDE4JqQz1m#+6Rl43&#(I0#0|pkH(c@f##3_b(yK?Oi)Rjvt8Bh7 zsK5a^RJi-74uF!MF)W-m_q?4$c%5;0BBCm|Ve(pT&M7~!i2Jw~;VJ-&pYwT^4@>e0 z4p6@($4?w`(RIR4&MuaUzf>GA{(O0=Sm|n`oaIyz44OQ{7s#4G zDd}g$AU6?0Iwyy36#&M$+liBK)pZnYC^+g)8XdUYGyrj$ydrg+yeL>iMJ>lS?&`K$ zGmY2v*N*moE;m7$Fwu#ebq{cJ=r zs5p;gFtZK%VL>ykktxe4dgakhE1flq$7yIVpqJw0@{4=gbMp)JcMpwKUbErz!<(|~ z`<{7Zu)D4I0=*OOH>Z{tPONHH=f}OoHx&-YWa5`{+PJ5$5C#xAme7va`DC4(dL;sb zs9z#?n!!)TU|(96_e~l3J2W_ngFt`#v-)VL8orOkEBZ05+QlY~1@Ow9I+`qFrX|ff>6tU@R~$X{fAb@9_;L{#aT{`-v6=21oUxmGlaV4VYnu=z$6ElvfeGNd*m??% z{Q-Gx6x>>`HU6%>y7|UyuG#-1V9z>lZh3!Ct0-c;n2$J+Y41Wcq>x9mBCE(3P%u+ww85}0c*b#pmw!qtDSKcZF;Zge=GU#trUE%|CX6Uav} zkHvg{ctVe{sDFw+x3Hj5+>p0<^t%iB+{mQMFue}>n&_&v!hCbY-5@tNmm6DF(VCrt zzK*FXME(hNW&QW7rNYQ`v7pyz6_=m5a^VMmu`;WbvkVSDdksY6{_Ob;Coj;>LH}eDkTWiDGsjuf(Z&BRs~oQ5JLt4QkuR!pbdn4i&(rhAZRz+ z+9xn~YcJP&bMeTrx7~8{sk>wkLorJs7&zgH$)4|F)2*@9AxW`PZ$~Y{ zRY(PORL@br*K!f-G$QiwhLI3$;pX<8vYx8wwo`X9C+VcX1tS{Z`iF(mVip%LUste_ z=#M=SYrC)%7Y|&*x?p*%R5O+4g)e&e$66r#HSnMi4<=NuEJ}%CJk^QSWm!eOj|XP&X={D~Fg9~)a$DA{r8aV>WW znS{7RF(p=zEeX+ZUSVS~_O>FBU`9Y=eiY|rL&kGkKoK};g*#W%K%idh+}NqN|7Pf< zt3SM9!~PBYWvA^qzEc?b?cw3d^Cp+)NAsG^S~z$kh<^HCaz;pkc?2dbM>}f)pf=Rz zFR%t7mV!CDUMXRqpuj*%e)dRs`QPS@vcS25Q4ZzF30WWbaPV^WvZ%Ot!F6CT0K$0{ zXFz}z7I7w#xkivR!ElTUr;&2P^C#9-=_ z3w9n^9-aO_h0($?i})9 zdgT4~baSnl-u3-P>rb|QVC>W8b3YxHU$FbF!)GjevA%UIK|@jaTOQn@jR^FOJg%B5 zsT$Oe+JJVw>3Agci~16cD&wl@Yk`iPpC&?)R#DI;mg1LbQaM~+$c6gg0iH61a)IvB zNF*ea2@ef8B$#xsD4oV6?&EryX1~y=rtk_e*U3cS^whJMTeu}%U^4AV>-=viX zhl9Iu2GRh<&qy;3ydc^XNE~3N-zF}7vWFnvBfyOWuMF_yz(S+b>2|-;$#q^ky}J65 z{jI7z_QHh=s>_G}rZQ1@sP+hmtweJJYR1i3PBYU<+B0ChbPOfIdgEv#E`SlFjgCX+ ze33lM1ARtI#Pq-n%&1&_6N*O^tNEiz)Q`|*U)uzGb$xQF(`!nOmYiTwwB^!RahQQ2 znW%@#qx*>@39qso#0)rd)o45&MX&W08b&}07Ew{_>w0B%cXzv0pKpDj)UL1J`mZZ* zNn8%vNs{D`eD?f%iw_^WLcyOuL`I9An4m7gtrpJgFKU2O=U?q zQmF7;U&T4K?d`iR+w-v#K1kL*%@z;@5r#%7W?h_ zxz^`2`+dzPzccnJm$0A1WsmP4uf5|hs16rjIyzQd%RoRc#DOQJ+Pb7WmQGVJKif?W z6i7PQ7Fmvz6cvU|!4@iH&Sb~fVVJOCF{lAUJ)p-qQ7;u^M-_A)2vD|X?)Z4oYBhj@ zSW;D*nLo2G#m#^;j5K7Bch_u6X)-D%8V?+JT7bB-w6$6woF2K*n+EgEM!nx`F5Flh zFTL`XTh93^b=fyO<_YsFN0yad-Jh)dVr5z`0k5DM)7<)Vds;?i5;$h_in}^!1}dG= z14$a32zeBe`H!@97-W0#P|-#(v}R3f9h#q+7-rU{1(s;JML}K|F44nM2?myy1O6bL z&4aZdHYgp?F$5Vba+(qPm)2dhX4PsZy})oweP^%M{?ohPJNdWtgDl&DKA*gP6h;5jE0CMEgZMI-)2Vk;W22Rnf*0UDP^LDKaP)GSaOb(XbJY-xZ(Is9ut!#T4-$xm1&oSO5JJ#!$= zl-0?1ixD2nx+K5truaLz%Mrac^kX_H4BxF=0?hIWf^j=QaJg^@?9lv*U}zCC-43w3 zcc!i^uh$UFpx@H~K#CNKQGm|cILIvlKSHSQ4z${ZdVOxTpYQ(d#6wp8#kW5Bs6`cY zuW;(q=Kg1KwEEiN)s@M zoRRtk9lBm>gA6a2bHhM&lOwQd$s3W>c;*402+p;)A(d1j(EyJ2fhpxDSyX|L%MvAI zw6Chi?HUUxtl9@AddpRNCYNh(n}7dgvH5F1c<;(>nE(d>l|X90^1ST)tw#^9S^mBL z@s&~fKo&xks+t@;&R6al6g5u+1f^&XYbT+yG&-RHH2BN#sN1b%oyQ;)fbh~2+MpP; zL6R~Qj|^fSg9!oX*5ZH|;6=m?LQt+3v@9TCqGq6z%O#f}O8THpgr!_zXM1tHSAX)B zHy-^JvJS$5(}3INz_A~2ejsV!qSN;L)tVC~f1@;}OOmBL42CLziSgA+WiX#yvO<6t zgv%b7?1Ay%BCXgG4jZPlOopB05`D@>c?=Rd`cB^bOuN=E^!L;1&yOy%=>B~A#dvO+k^7zel*=reu?EErId`8~ot}RC z=#iC^+H9~?P#wd@OCgem%5$=A=m1I>O#L1C@pRBTr}0X2)(?$mM>jJ`Bk5QoP#g{N zN3CfR%aizI<&n);@*=Ou5~1=?EbBUk`2@-6SpvfuLvgl@mnzyc3 z3E#E&y?m$r+^ttmf5X`h;Nhs}-1ErX)Y#X0Yjsb85wfJAx=3tk?KneMPHU)WJc1j? zmBzjXJL%9B{V-`Eln@mNj)}XyJ=X;ds&e7Qph+o1w2Gjud#RM~Z>euNaX5d**I$2d23w(p!}G``I0yp`SOfLZ$v@n) zy?woW3KzI8PhZuT0Yz*Pv5Gc}zS_Meyj{yUGth$d8V$9+4$o& zE(=&O*DLGspy{K^L(7gFc|kcpbmK*jSlsZ`Q)*{~B%!k^b=qH$d#X?b&RS}g+{mM|WGd4DHdMP*jk#)y>_Rr5c>kG-vBUCQ;t?Q5YQhVl} z3+K1huGNm~2rAVIaHSNt(N9$rOf{ft)FcA+Qkwdw;27Bn&LWz9@ClgESw3?yFUm(d zrc=IDg6WqI@ORc9#{#5KvJ>a*|0O=kp$?#b1YH<-8z0aK}=$aJDu!>LuG;eNhofq8Q>)5o^eGrM`mT+})p*gi3)yfV;WK z180mY%0WL9!$3)A$|6ygHKr?q(cw}ya#B7a%R>?w000v{a)iQx1F`mX0IFdX5a=1S z#F5c-tGh5%ZfMNIr_5P`0?-L@9EC>W zI1L=Klnaqa;|tOp$!DXfH+8{IrWF8Z^~B9}q;O57w8DxR0eV}UKsb|kVf7$Z!cTBFz=Q~``HV9z{Fch{q>C#jO;wtqe zO=sfAeP!maVL-@EOhLRb*w`)N?Tr@gWny6?VTx7>M|CY|O+dwLdr+^;tAfJgq z1-;M8W%&RhldPNTA{yWd+}@y$PGMw4M!j*(z+tRB_SBp)!SeHR)?skj-ycPZA$TwI zv*({Qe`1Q8*I9Y}WPsw}6&F4m6vVP|TkWTBH0onRt@`37eSh%fx+U-tM9RX6`b6~D zL)N}^Y|ZdN5D6M=icDcIV`gV;L7m5*Z- zUOxkMrYz?GCcg+CzW6;E6OStzHGMs=-uixPq46)}iS9pN{lyhqmrB`BIy3A4q5AZY9y#A7Kf0D~5S<%W~; zqyYdr5#&p3FCP3$r~%>b;rGZWbN>Ca^uRXdZ%_(38KNJP+#<+ zklcbms;gQ=k;$f$MLDesn0e;R1E>N7UR=9{*Bq~4QOm7g3=-UN-bdg8t^j+rG zj>g@iz1n%VzG?Y)$?>xaD;~FLP2oY)-z%LsG|uIq&V#y;&XT!O3`X=%eGobZCWMFrgd6MWS0x(k8^pA!aB!Ma?LRlV1INfs1epL&`sL(NbRe z(pZH4YYxH2or{42Kq@C}p;OJ5?^^ue?zgSJOwd6%z#7oyI|u^}{GYgZAO1{;1|!zTBougjmmxW2Io3K(yl$RAi81>>u(n4toW z*@jkU?F&#^Rzbz^f+8)!^0A=d$$W2W#n3~hR!zOC*c|!lg(vU%hw~pjceV^slubGN zgsZAfxuvq}p4~5L?x=rQ&)eG| zqXSD}0ZeFF1`WjK|*3Bn$Qoh&;ukUgMO){peI8(^~6l*=ttp1pwF06MbbeT zd_*f%5N99&+A^dvET`eZ2L=j4_#U@XMl7k3(?}wynYDj9V7sVy2kRa{w^(5B#L(o> z5%qfMpO1gpk0#CTXLJ}ka`?fy(c+j@Nxdz#RO0^NdP?#%bP7=sH?;?W!Z6ma+oHml2cxQ_oF`6>^DVXg|m)gnNB%9U>7kU%}|b^xq}P#E#}L z7-I3F?=s?7TYVFDgK*$Au($CJd|87M9$*@H#?Nh9Q|+z%#PXwt9>LPEOb1J%hH!0MJqKG_wb$$&zd! z3+raYj0u|vp`a=ta&l$`0LIz_U{<14W^ogo-2j|f5m1c#68iB@g05~A)E4xT_Cozt zn{R*GAKMCB!d&hVPrGxvT$;XW=;-k$^eb-LY=%#L9Mt}9M1~*)i(pR`X&-5?lvMK| zrgJABtIi;_beU*e4eN_MP*Ulo5|x6#bPG<1jJ5LzNO0uI+J^xo^h@l5C&?_c&isdT zV#>R6+29V$MRheIQL4M37gskrd&>E|9{%q8nrL`bLFbW!3G~Yq_!U6~zz! z=na#%Qr^!Zta{GOUzbmudS$QNS<;ifo)l`MUE|7A1;g2UWx_%uv9jo*V9=+8f{*ky z>5mH1f`HB1So(lcsM7yV(^*X@kn$;~sOWcOU!rq1a@w(T!@?@1gj>t24s&5 z8L&E{W%5FRSQl&6eCxY+Kd*7k3GYe84^9VA1JM}{U;zWx4{Qybf9gFCpO_rIcEvH3 zH5depjjmYC0M~CsY!N^T7WM&*(;Sz`WIrOSai(z^yFyAo($0Wwz}g6aFT~l~Zpe(V z!tFFKaSOxG+uL%TwoG%glWWvkTbqsMNAjb&_bikbzxKs19$gpr{f5gge_wItu8Y^^ zTb+warJ-lY37lOWD^Kx7LajD115Bmc@@f6o6+&7Zge_iJ=2(Qqw@Wre<&5Q|3V3x_ z4rflqqKpMy-TC1&$sq;K0ma)cuQ;d;+Ka; z8}oO({Wv|OdSJuJmv5}>9y{)u{ISDNmNfE+5qi>tZ2o*bxg1$M>XzIyhD}K11=M(NL ztk*|$KK9#di`~XWg>vOAy@&pSkRQDqR6kJ4m6<HQzE>+>|cB68X0*%fo z^m|$v&*Gv(xtU%}r*z<{qT(nYHr9)xNk4W4)(FgSC7}{K6$*t3WvBd(yQ9fzNE4Y1 zwYKQJ$hzg#_;hKecf*}mPwmP2u9+UB!?H_u zA6;29_TA#D;+R^EuVJd<5;u8aB$u+J7d5BV5*o?Cf?9WxM?J@b0BHdoNiUHXg-5T}+LcySez@$2W2aXZX;G97q7p{@q zSSQlj1D9{rbcpp|Hob-^LV@FO_pH%3TPpuB; zFD;eJ>xRb)Y$1&L=!{4@u#TC;KtRl+I7gJTttjW%&#Aj@zbZR!JRa~M;IqW`MbM%pQ z2zZzvxSD5{PG|Jv&P5&y1D<69rk`m5Cw}2%Ol6s*WWNfRY$A!ivDk05b~mrjEw%GVmYfFL{`-C)1rMzITe(WdxU2GakfTL&7 zjWgR}5vXM;*W22<^~hrJ)Z5;?Y<3^kgXjU$0L?iF0}cF#G;q-qW?nJ9V*IsZQ+i{M zaf2kL_9yeh-D_+4_9wpb<)iMAU4ryJ!#V42 zAF8fhbAq0&f1LJ%ouL(hrxfz#6_ug#2ro9`7fwz7)rOO?k&2ZCL?1YDG55d)hfL5> z&RNna=0Dc~7q66Lc3pAfPLp3+H_8X4{OvwyRXyk!GAOX`Uq@#8z*(1IK)|Ddx&>eg zzb8PCAL`3{`P$;#_bMwU9=GY+Pgrt*XC1Y9xc%7CPnS-ZKHJ_Md2#mP@IA&6$d+F9 zkhDrf8xs$0>PQ`xjtUb`wB!Y7rN|M8(0z!0wQq1nl#}%zArmYzr?g>;hmsQql`HkS zOb$5HqBecDcefUL^PTtQirs&@^PS^g7Usu`O$-k12@#h+XXksW4_)yb-eiUHtb3N_ z8PL-BjI;=;!swQ$E;O}$)IRjBcxs6NLj?`Q`Y9+X6bwvZ$P#Tvd_Mnx*%-=Bd6e^>7Wqx$Mb~6$;&8 zSKJ?+CKWi}5^zd*a5jvA_w3n@(g;fSGQ62$*qBAh?+I!GeLzP}L8}72PBGWe(m=b} z*xhQjK9w(YKGP~TuDR%&CvIE+({2+WtK>N6+>N8v!ch-f+|@g?JXBs+D0QAuC{&g! zK2>5jp>G+e(3k>co;z-D;HO(@(K`-BG?Rw7>|Mt=sZn#397f9hT=idIL z!n&icF0Lq!;UaN93`5-BagO$Is|maprt)cAw^z6qw~W(fW!fmmb%X_3=t#5_Eg6K0 zDQ+0;uZZM;j4Vc29&kWVY&Nq5&*)DNM5xVk?R#2txn}KM`F8IOo8I%YeRNMn{g=ZD zXWzPN{^Zr)Dy$n>o$KfZyy~dW9#aWM+iGZCE=wm`K55wPtvL0TT2$pkNeblwMnQ~p z$j5&I(GX~nlfVp^+*D=_84W=u5A{hZEqYc8oQQN9S)`NjcJP!=`83KtK~!p&C>b7E zu4W}Swr&1HJKwS9(tW50(F3RfH~RtPKVW?bYT*1cYJa)%=;7ZS)gVBA$RX=Uo+tpp zcG%X~1_X`Gj-wdreN$w|w&_2zF6G6W*@_r~Pq2~4ra782;4}4SCxA>Tjmz|MuWb-^ zM-Uk~c~wYdd3wDreA$dCh|+YUhDJ26O|7a#<$=0(_S_d62$S8Q*Ig=9X)P& zr`|oU-z*$CJXSqde)eR&*lfI99vx?e0E?$LyIW8sp~Coagtbg!#cYXX1651^z3|4^ zQ-VMY4lu4@z5LIuRc2}MQ(zAO))knj1@p>)&kPDQ^B0xh94Hhk0OZmq*caxtbaBt~ zwr_vlz26aV@$T1-9=Gh*bJ`He9tcY3i8#xL0#zrsMVgtCcA)scgLeCd!bPu?$#f7d zk?RE0v>K4WfphMFK<_+uO2Niu0u)Rg#C^!r8iyfpdwYAaS8u*WjsE)0@0j|LasLeu zYyZbRPir4D_R->GLEm&>iTpy!0@84alN9%`c} zaZp_S$EsIKY7<|<;2(I{!bwP-L&bYXQxGwpii|?TTP0Eq#4sl67Gi+FV|@%n9ms9o z5-)T9N()T)^=P0rlpEf%=jFSvT>JXSGdLb-4W!07(8Ub+A5t37X1NQm{k=b#SW*7n zi6eC7V`qGA%gV?Rs8eA(I6Ht!aT^II1(ZE-E+!j}VHz@0FyNuf@PJ4M+$_C`OK@2p z+dIsSWC^DaKc(elWzdul8aYTd+R5(=W%me9K3Ap_-`mt$K%=AA=Qb8Q{q~*uDAD!9 z6UDC;y3J3Y{P^zOfB*Ln(nE*;e&FeX?_PiM@R1K)eRRFiJG)UYtQeUrom6V&o=__0 zCuJPR^2N$<-=0;XOHO9$+5;`ATy3R!bdL!+Rdw|w=F+mirH_h3FZnUIdh;Ix2(Kb2 zm)|l-16hx%H*X!Jq8=D@HPLLy*>pr+D75OkH|aCWr~T+hm+r`F_(;u4b0-{ibM=Vo zQHW@Bu6r8^k2{HY8URoa04k1v+C4}xOa}m2ZqtBJa9jr@P4H~dIXsJiG?@O}miyrm ztnpiLQ>W@^??-26?W$fq_o{909sPQg^xyZm@;S3_FP=Q{LM>0xl%COtt4wv$3EjAN z*kh97%42|#1@{xz-`WJvMc`K80$6HY~YHC*Cp8ZtGTo-lZ$& zy0N)f|KiZH>NmOzolj35KR)xxPag3TpWL;)_i;F7%}paCt0zZGQ{%_iXZsIrFLaj` zEBT3hxp15w+B-@f`8fG#y$`ie(XQyS9{(;$5oHY+crxFno|!unELA}R1eW)4=o;E+ zox9Ly%cFMs<@F3%q2KKFTMJs}Zxu_0d5w8?s%|a4%x+fm%h`UhJ3BnoeXQKgV`}r= zqZ)JVVy9pG%N?7a{X4ebsSYPyup~3khS~NL>8MJB_ z7487n5osZeIYsS7)IB|F-w`kl+5fm-zpK33;&$yCQ+a-wUpn;58 zy%fUD1Lp%2x(s^QDTLl3k`9GOEf5XEL0#F{UcE?V1I6|DPi&wiN z4cOMmd>IgkFU#zy9B}3(fa5Gbdbu2g1m`JyEysH>gOOq`Eg||mJFn?)US~ED_PedF zUIx?Iq}S`-P^c6)Rmbz6*fqO#%cCB3;^Kx4_x;`hNxlD|y1Z}0`wFjk#qrgldagWn zbh$ddygIEF;ANViPiY^(M8Bi=`E^P~4^le%9H3&7I9Kn~G=D0#H5h0NkCyJvSKGY2 zocsU)KmbWZK~%Gyes{6o?$uU~F3zr7x4iX~H=WYET=zF#CH-9g;_E6qZ(Uf`m~CHB z$c>(pFIUght&4TtRC>d|Jj zn_Y>hao{?kQg;O62^QdJ591jq(ow+UDil{A@TOAHMi3XVr@id-b@IxNL847KwJt@w zKjk~K{Z4D9`Ok&Y!XIyb>jUR=va2uM`O@OCQ*Y_5pmyj(-Hsair~ZfzTt_OKE(^S~ z1HD;M(%vh;<)O4zf?^;=X5PXFy>LE?O@b(b{-sf{LdQj-lmcaCbiREcF!YoKBa^6P z;mi+Wm8_!&iRvu0Fr`Mpy2v802t)`Q7omMK{Y|Y~kFWF}v+)h97GN?62VMiwf(O2w zK?#Sj1};2n;ez3*>bqC0Ev-mP@HPYLTwLFNT0jPdsQa4_HY<^qYMcriW<`0BK+NWZ zd^iZwfnoC>j(N#>KpO@q{0j8Sj6-2YkNNQrI!&+?7XvXf8Ay)=v}8<)%&3K6K%-@N zupT5p)6=Vf$f;FYy%tuR__PtS-EQb(JGFYJ+i4Vwg*zIx#!b4{zinu``uTdR_Pu<5 zX7Trb|D5?N_Ss;E90wz;*UawS5Bm66qtP8786SSUZf!gk_wt?2%p33Ca``Vy;Z)t>`19|1&+>;)Kety7y`d$o(R)CK4zq@(eT4JC zi}sNIm)hNJk!ZQskMf0#?%>8%I^b?s3Z{*b0wy}a-28~UztFF=Cqb`t&eiv{Zz;~T zes%M^#tzt5`jF{o9Zq@KP36rC>pot7=<=uVswQ=|(1{9i9j&5J5K2q81wst;ZEr7) z_}%>|3l*U+lx0nY@>1Mz_iCK4+Q^!vA;55m{N_OeaJ{Hqh#KQYfLZ#-`P++|GhnwF zjYkU#>cN3o12q2-nt={a7|@7?+v_(izT=3~D0dJJjt1OO4o*>nQVwMeoOk-%Srf}D zS5B^}u45BCPFBW+%bNva>;`=e3t^*!kuU-qL6FJt1}+vN@hApC?R>Hs83WnmXT^Y#rF)l%%pB^yClIF!PzN2#e_16!zcDG8CM;$j^9H}1HsR5hgsMyydW`&Yg`+0a#cMDLss!TmJu+fId#hF>XhUVbL*kj<=899o!x`$5oeYe`Mi^v9A=4s#dfq zlbJJ3VSS-zl;@U~F02lcp%0^^15+iO+EZx=2;xPW1KFi)sZYnmUkxb)_x9CbUXmdb zoLqu)!NQEV06>F7@k@M^o48jk$Pz;os6)WWMNZlpeijQb;^@%p59KOb7v3=Y*44iP z-5?ws4P@Qq;FLBf<&f6E#pmCBTsOD;Z>Cn1E~)C%yX*@nYIcS}lZDYgHp50Bi)MDs zaC_sWiAaEKBf{=PUlo9V%#|bJi3PC{WGbWl_-hnRff$_Z)&#zT!GXaT&4`1yUr}0r zEcqZRrSjGvffOX@0Ie! z@<^##TqYf_)re%3SdZ#S_iCQl};FY7@9y3yC_;E{mdz~67hs_`3erL_O%}?wnSX$EB?1t7l0mYFhU~53}i~$?>XzQKkEfd7)~YeCQj6 zyX{doy*L8hB6REl0ZQj`N&y^EGvS=lz}!d)W|mO-Uzp$%)By&SRt%y{z6a2*T0In*`4r)7^^e%x!OmJh#TY+4sOE6lq3wIc}|pf9dO z8q0tUOOpMZ!Y&db#ra=H{ zm1A1Y{4@iD#x6-dkpMzsc$EMjB!})D0|C~G0OnbwIC^Jh;1C-P@%$7`TIA*zZ`t<~ z2|UVx6& z${{l~LR>4QoA--?Tm4+CG5_tUM?UiOTd&#s)WbtB-2K|2M=twymqvB?(Vih@+;2t@ z3C<#RGzl4zeOrcq zpq3g&?@P4O>jR2-2EQAa`riLjBo+%DQl0yI}OJTfn*bD-K6cc2>g}GwdEvWe7 zM1mJ_3gV?aAnf(*SfV`9s~G!7<3&Tj`|yEXvMT6P#fsy1jn(_g?bzkFG_6K7j2R;w z3Q}Cp$qVJ3`Z8>Y;D@&b*EW1jTv=TZ9`-W8MU_;-{>lu0plbbFd$IrW(p0|W%@Rl)0Vf`%BnVs12*8Di!U7k$65h=mW1XN6c;aH7 zNEtYwQgLUu)+%bP*Gw!7t>3s|wO;Y_zzw}+ouAK5j~>P2nQG3|CQ?`Clm%1EbEI=b z0y?*=4*~N3XaT>EUv2CDLX!yzUMPMdAg_)-iHqR+nWtf_DL|?O zaK}YYmMGht;FuUYKfMxS<#Mld8WQsniC)pzTWs96{K&Dd?E*ds2TcQm0l-01_2E^} zr>`4(=eg(3-`uNLUq5j~`JBqA>;(Ip>{q1=n<$$iE5;@TJEVYJi31VS0Ls9&gXG6P zB~NCbxMY1WPl=acm>KL3fl^~XGW=Aa4xA{0jH0v}1;}j!%4q4COs2BRRbED9N%*J_ zg+k;)!4lUY^|6G22A&F(k>$y*e=!cUvg&c$a;|^p5B_51Jd}fQ@HD`6HwXg_91sm$ zcis5L!tk!A?b@{XnzeM zd0+1zi14t7ZJ2G>T3^;f1JO2UP|D;6hjlFO(Gb$FSPL9<7A1Iu;we@?!Jz?d+LVF3 zQ0u@~47{+dr!RBe?VTTVXBN*t6r4ZxD;$%5MsITX5xS|QSN=*NcIwnyf7Xp-)ZdFp zqyigGSe+kFEd@d^)h9*L7Ku_AGqOk5Xu$MPbM2(o618XcX3yRiDVV$*E9ewBF+4hK~Og8{%nRrldn*hfFQ zruM1Njs0$I$Kr)M?reUmS+i%ufOzg{JE0VoMy3HHVjrP1hU8v9<%G~i%vMKuGG+!3 z+q3Tv*9Q-Rt&dHQ65^ph=jDvgw%-;WpY3vzgUTG0oxP^+^1oW?S0*jpbMKN5%oG$a z6t#S=NAnAsphK&)c*((YmY>#r1i4mKKp#`olBcXcH1N^-zw%{xh87-)6htRqtX-6H zmgWPE(8|kW7RE!PT8gjBGEAHNv$QJXdjwh{kc{LH9rL)D9X@!~DX(W6#U=(bs49xl z-iH%!{N~jY=#Q{r!xi0Lt@TYU|Dz(Q3`+gf1o~OY)+dc>g>zJt1&qukh|s`9Zc^cB zcZnM)HE3kax z0=lqrP#C?~O#~h3XgBAAjH^M;9XNsOAe*R@UFfBtv|1Mi0rC<{N*Sj^v;$0+vWY@T zr85u%4kc1DPVQ6egP}|cO$Ada)gi8D4qT4Cg!5JjB_XwuA4i@TavM}|4+b!RDoD>iB;TXVM;2RPFb5v(_izk`WV+X|3;3NFh(=)~K7fw4|U4^TEX zH{Q{?=bkGzzH@j};_`q$)sGx|R$*%RG|hc8w=ETLn@9>mSNs@o;*3Lif=ESba-Hm6 zt%Rg+XMx_DgHY`YVWz1p5^h^5N`j3@lXF&5g%O0y8cZZeWO#M*I-YLkAV2KAy|hn_G`vmiur2s%ER^5IYR^032cs`ro-aH(Yb%PRaL6 zPkP+!RgL=aYsQzAA2Fo2;>);Thp;}Ju_!+tjK>HWwGW=WVV$r*_9y0+cwoHv$q}Z! zcrMEDtV^-5c{p`r zz4iT9rP+6<(SzCRkUS|fb>6vaGfZuTp?1_2%c=!@l}E)qNMU4yd=x7F-g}@jfmmMb zGt)A?CKoxxKpCYF90rPj6Qxj)zD1Dh6-6z%N+YGl?83ll&v*ZH>wAX&D3@CkEoNp9?876U z|IN{D#i8FQO_#KHq>Wx^i|D9UqS}EDLh~eLIT>1}4@k@Ux&1_^{BirhDwYC4qe$gf z6m=^dbA7?-1a5G5AT+I@ zJkE3@V-G-3B0T*tzlWPDA*Eym>$y5;KumLrZ7L@hkY^L`7l4g zFmYs6oMVdHF+rzbXJ#Wvey$RJwxn3Z$V+x$0x$2)lEgVB7RFFe$Q+Kz%9nhh!I4Pvb zuvRL{#J|K})+ScC+AG>ZMWbih!upT)pz(?IS@3A>Xg9hG&0pI5w(1`$8%=%4gsq*m zFDxE0d`iE-dnf5Hv<2NT)a;ch)izUm^h1yLP>^VSjU>FY(Z=YMPG{v>ze!{9AGH1GgCh_hTSf=#F)kLn|SiB$E3 zBLx#wt}yvFjotdNL4(6V*8mn|5C$4J=o}4YpjRyi^BBum4tNYCh%>Oz*|T~{;lTpWDVPrL&n7bQ_5J|%2&m5bG0?zaAhTtJhv-P~{GrUe zUMTeN4I5lT!E?DiJIjq+M_(O6mm=k~4)&+z>of1m}_-=jrO-pGB_M`4bc4tVW5HgO#@&2 z;`G-)^O^GH&Dn*E@7dP4p*D+Uz*g9N$mB4q3Gr-BY(T=a*zp98qi6o2!4&SzBaH2x zDI#CyxNUp|cNr8Bc1ecG`91SzfPk5W271#9uRj}3@}x<6ID01Z7|h@yUNU-`UHjg@ zHVQI3m*I=qIB|@kXtf$38>#}J)jfR=9GImmDjpn!!_kA+&uI**;7BGCe&&G}j{$~s zk3bK46rUv{wN<_R=UbmF*w3@B*@@g$VHk2zD%WGfpnyag*hfpZ(!bdg51@n%s zBf?330Jxcf417kS%mQd|2Y?}kXzgQ=2pkz&+d6kGZlAwo>%Ts5-|VNF+-F!^lmF%7 zn$Z*dIw{pZlz}F^9%3D24l*>U4v6E;G%L>0P|<#7fc|JZJ9jsU`C0MMJFg;cGu*$K zfFP6Ln%#2FXvx);aS_PhPCmpFOv${gs6oz3_#v+e)%98W@#` zhXIN>28zc9fjMxFUkm~;O#<;_*^{$P-IBQzU(o2>wyA;4bvO0U5Us6t$xtyr@TGg6KK~Pi_PZlf1WyN^f&UA!nXYIaIRA* zOf+U^m-Y&kM`~S_ShEr^;<$h)F-lcjIzbIEM(<8JAuj_=MUv0(q(3eBXf^n*&R1(Y z=P%s({$)2ncc_K&pWpf5+?tVB=7!}S@wjS&Xbg0MIuzU{QFFUXX&0rLm}VrNDcm`% zQZb@;7$E?S5^(0}=Ba}l%B+QlN{nI-PZ5F6WIzlG@<~Vjlt*a6ppG0tLH~9}QHX}9 zlP)V2?3^4t)Ckrsjf?xe?`;38|J*0FgYDq>v(UiOh5fT&HsCSPz<)&p*RMZU518dX zaLOq+ePnp}q-PG7tG`y6ES)_xE%T@6(lH9JqPs=ECVcR{hJ`s~S}p{pR!B;B zF1b;0=H9zA3K8=p<&@<|e3lBxz-(E06<2_<2NWL8029O~*VO|8Ei707)3W2i!z7ie zMSX6xqck{c^I=;rVd-@ix8_T&caN_getUI#bo!pT{_C2};)D6bp1wd(ZBI@vy$hhY ztF7#OO~}G9szLmyT9SsjEK#7AT6jn@9j6hNbS2g6F~34RmtWZ2y0)8ZyV&0th`*GZT6;A)I&9C9W>_go};1Aq)sc7{@_CF|go2f9mIflx0oGx{h@MIx82rZe8T+`DLaQYNO$LPHj1 zQY2;dKu6$I9#RR#TeH-)^V>q z{iO0abF=k}cWvriJ-4;r&^L52OSUxlu%(TG*hU!^45{Jp#Tw~{*}~jmon)&#lP3VUsz(S!Uj_YV-xK_Zb>+ye#5p@K2XSJ{CRh?)Q1ycrMA{558Rk=`!YZMAcq z_WX}})ww^MI-!5s%Wk^i_h%dVi+1iRUEA)Bp3dEdJnuA6=xg_vq;MD++0j**HFV(s zM!$Qd1+lIK_BnJEG#MxAs7+=4MlN5wv-$o~xBi^%?;1a3o&OQf*>Oc>_1GnOJ!KK< zQbS2gbR;#A)I{$KJu)%^Zk=+@`U!1GZhCvdvx=~!d^&__lJU0Q@u8NJA@ zq_`g#;l91e#F(*Z3XUil&yPg$Ze9y7`BT4lIj)UsWbrv5=aNk7;~|ek=7pAv^*zbi8`x(75cB zook$v5oAJy%~{$ut|T@L(}q#S{xIEfz~qu9!EJ;vVu}c#4F&)^E~p5DJ>@!s0iNXw zf#ZfZ{@G_ZW0RdTT)r8I082=YV2V8#!~+`VQKqn-nxq5J5Q6n!TWB5+Op?lmA~hoi zF;g6&lvn&bNO0K_7LOuCSGz3RjrxLg__^Fj=WRzHk^k5iH$0)u-J+j9~j_{nM?@j(*v=t z-s0cBtMQ&(YuEqUwBcyI?&r`9Cth^d%7v+sSNB)wMG$(8B3;A^LrJupjvklMZvvwu zRFP1WVHkAIN#4M6l(!a6om9OFuu^1WK$)5cn6rw;-3UhJW@w?FjTPz=KTqk+Ky z;QrD3pwy&+%P-$CRx9UE``DE$ue)!hVoBN9JUwOhs^MA7QuKp#%bEOxStEE%M zmgR=o&CW(V%pXovc2h^CZH>|~F}Dd5+^D_gE38uF%1oMRpvP#z&$AuU0P(BD(@(@< z+&Cwg#Na>6D?Wyh35zX+{$lzi(+Zi3R7^%){Iw%b83fnAJOCf^5etkig8=Z^KO+d$ zNSXXSLM*vtWQo7iEod*r+@ikmds{!(ephi-;o94;Ipf=eL4gfs`$e+sZGU(8}uTbn2T4k$^A~%k%Doy0_dV52Z4}vJcGEpobfQXa4K+6*G$jF*> zB5;b@wYpExQ$oFJ^U!VvSnBxjk&d|-7#lid{8P%DIiwDjjYusO{8P3p1{?aGd0JpI zhDz_92rlk}&`}0Lf#t|xK@ne^>hn~sQ_7V(olikI2=|``1_OZmPxph8t%2+7^PQ(Z z``qU>{&!=(_Ua2B^LHE9uV269aDH4#H(WE$3q$@%@2G#NG|kjRgkVhVEf_Siui%wSznG9w0L!d)5b1Nm6pJjP^gVsK zYEgJSpx0K;p6>0pn)P0<`J=^N_x-~o-H(jT-?DMz#w+~gyc3`LrHT0`R(`dYEB|tT zxO!y1#L9uDeR`R({eZu0B>7;emjbotnr#s{w6~6w`j5&__;E|LjIb;gaF$*rQVf)I zcJ)%eRCnE0==Hk`#e9A1;@@q5@8~OYx#PTSk;o3Y)7T64JiEDS?4^aFZjN_dNG<#H zzR(cef=RWGXb%D!RB5Y~hDdsW-rYle)nmMXt7q%8)6j{4o}*YAP&ljEn6J6&77>oz zg&SoqA%$CzbSya$(Qog>9aO+VzF;DL?ze%JXj(X@K?{gnVjIVNtp{)TSuwwrFf=BZ7%5FY)^uTSlo zDPGaZmtLM98h&`L!e?kY5+dHZpwBh>i-0Q8!e}s&FYK({p6fOrxpU*Wz6&rpdFS-> zC97^7Ic{i~)(a2;=?NS|UseXS$J-?|DQzX})%2*}9nIHm{g>)*h&*YM?1x?$ea^z_ z;;P~ohSv-oua{q|g0!V{#N(ehY^ex0NyJlRmgrgF0b#6lf`SE97W?o}b`U|RfEO1% z1pWuA-oZ{2y1c2}3#z;dH{kzeZQDMEBP)HGK+?P zIe5x8ce3dpDU~+J9Y}REM&$(%-XiLibNS7)x2`DcdepWzpQ;`)2=|u;)Ix(W(7^qx z0UY?Mvrhch*viUD7?t*HzgL^-eqnL8^Va4}>#B`koV@2hETMQk?)YOK)SPLbQym{Y zO%~_eO1ZSWI+h<;>AdO9 zYYIM4R>;uPV_M~z#m}#OZ0X52zxh-T#*RH@@yNoX%ikY5raTej23!BADupq?Qg$>$ zH7&b5h93FOwH8&so%4Ua?XBa#Mb#ibRD)VCzx<^O8;TDayDZ(9u{ux%bx!_RZE6h( z!16k)K}w@Pujhayhr5!qs&&BARUN=skzVR|5kOKI+bH-(4AW6(Zys8=diBHRw)RdRnkt>Hnag>V;o^9?TA0$7 zESuxZnyP#oG@q3htA@=YZ6jxcW|KS>$dB=^c>{wUa$L!PN)67vFV{3cJ8?A_AOsHTYKqKG1tJ| zh2)QW>Mf6IH+nCu=gXHCCWnqGR76zL5JP|PjiRIk4=yOoWh3JMWA9DiZOf|i-o4lE zPIvpdO*K?cBc(L2Fs6QjO280;pkjc4hQ=pF(5C_ki1>b5nkNPoh4K-kKq$Z{SSCgY z!G|Wm%L}NflF%tgTU2-3bI(2Z^t*fC{~KfOa|*FRnmYH~HSgJL%{iKHj5*f2W6ZVo z+I!0<0JSdYH1D|eb&nV{^E>%^R}Sts=uCB8qy(V(m+;|s%+8Uq8?HV4Hjx%}jln(Z zFTdxvcJbA|jzLK5%=ND^LX@TTVYN2=&uG`}zKuY=0Jv}CUt7-ztgWp4PUlqbho_EI zGk#E7>7uo#D zXxt`QUa!66k~^layzYV{i?=r(rEk5vxHGM{4H~1X+O77kPPf`S(pS;?EpTgLI|MG^mO@C`luU;p1(a(n6G-JI(GLZkt$M9L-B@1#)6Sm87v`qc{=ZZG;liiiegDaAeVMUG-fMIDcYJ7X zV{Y%`E*Vx&X>{9Cy9d+>`N8F7ct~0Dmjmglzj!|6BZDjo^bLgT z%Y)Clex!lr=Ek>9?`lplFKUr5RVic$36dFWiwXC1AG*<>*WHSRjh{O9TeB}Oe(vP` z{%0?IXJc>gSI39+`wHAmQMg@Xi4Jj5h&UUxr~E>5H(nZQ0s=3Bp1~Q}r5F z^8vwkt&k~q4D6BKu39?#=|hJb?_0!v-R{!}_~75C9@NI`2t)*$kNOvD@7{e??{P!E zhrZmlR3?G#e53@U&y6=$=Z8xhOO5vq`lJ80-XFc=LC<=}?YBJjseiAB$!@q|T-|ij zJyTa+xBtjsx&N@`lbwV5X#KvK{f+x8aX)-893Irym9;xlohf}??~J~?tgE{eB+-(E z$#&#FH!g|e>NrST`jHf&Q41OaZn=;2yGP^I{`z2bIOuOw9X%6YRev#D8+@ccTt7Cw zzx9Rb?%>0cp8vq_+;5FcALw6t`@nDg#IC`CT@P6wjGkIeb)G11FKbQp^fbS|$cL}k zqi|5)b*rBOpqI8P{N(K+1NaKMsk)M6MIxt1tK(*8{>+b^_|xlttyn(rJ@c>F|Bd@z zLX9E@p!3^8f>6g&u2b|zde*DIpkMSmz46kcZ<_hVg0YkL7d+_;7d4LTeP8FwUH2#U zJ}HT_o6BN!q3OU9#8QeO=;&yy9S>r{k2vdL4fW^~WT_yh11O4v&e&*xOH&NV0u=Av zL(mv9urN74Idi!;!I7sAmbxtd7$KjizDwi<2n=x~=H~zs%&vigruJ^R!;)W;ZERG{ z_UBIj>grps(gUD%yRRd_5wBYvfo&0ihkxI~_wBoK_bpw1C`AcR>7t|(3Rt8k-caR{ zX+66(&?m=N7Y0ki_3@wdSNeb2>2!Yo_~(~C@!8wr2Ka6^KNY)`!5^q!-pT# zoqb^I&}gH&c;V>ie*M9Cwi@WC`S}6@rFIs;qh=? zZ`}_y9uKX~OU@-1umQhY{7^@1v(Zwk<{IXxIQSJq#8 z_v_|0OTolw;UHPtyWx*?Y=(u8=V$|S)1zMu3kIhhoN`s!lHcSQNNv7pPb-(CX{q$LiEZfA)@rf4p$ZH@rVN_3l25Ksh(=Ll; zS3iE-yWrx{2lrlDJ)FCS%2v9DQl25vD2wudw6CUCV9Vnen==;_uk# z58khe`=RE>+#g&y*SK5H4V?2|GV{PEePUOCJoBL8XzIILt?I$eZs)pow|$_oYpOHS zhb5YNnqQfo4+;2L1Mb3dA;&i#Q|O)dSpZP@N&Z>z{V_t4z7jlrp6zBKK;9l5J3HT) zU%vXxM;~>XBXsQ(@1B`Ia^SqD0f&$;+xJj z_Hvo?Ytthp!d${Ndk#f1diwu!r*Hk%`(1Wje#uv0*W3Fn0`)Th_gUy`!(SYMPrtjl zzU#@0uUX$e_Xa(+uiNEHJMo2dPB6|?QljQ)N3PN}xCUgG*+z3}rr8^hyH`)^#od9y zlD=!EKl=E?p1S%WjqYl-+JAKF(`P^ZfCn8s`<}Np^-TKqY~OLid)t5Ufp6HqYhUL| zJtOcPgVFG+;dJMbRjYkfvp3t}cM+QU;bcBCI35p}KA|8Ul}o*@)VPiBBu;V`izXR@ z6<2|Lw;Tn5Z{?xrE06oD6~Th65Bh77@v*C}n_jvtzpL$@si_NO`$8TOa1G!Jm6nBp zu8v1@!qi0Jg_*sJ+MtRIS19F3qq1RCjLb3Xxp1ltOg((797dFq;#p7?F$Oq6C)Sk4Cnu zBH7#Bm>LhNYi9>j*Y@?;+{Vh_rw%=E&)VsY!Dk-&gyma@!{&T@di<%;M*D+D|Ga-< zZvV#GXK&rVNRBIJzLxuIufKcd>|Zu!mPX_0eHYK(e|@$8ZKI9u!8<=zJ!se7>e{N^ zn(bWBZTI*(V2Z6~&*%Ngy6frEbcY%7uL33Wz^FccQ~795rsc$I1W^3F^Ga6D3hOYIuM!cEShFBI%`9 z;?XNZAb4BJvbLy`gYzqVM9=eJD*ESX^HrUvmrm$;mv>>RZrdXQ^#Wjf9EaMAjKFQT z>_79+r!C#IvC;U2sZLyol2esl{1!mw7=OVJxiT`Bl$CGklcPvU=8=22gP_GgM<0Ff z%(dH+nNy8>sGd-JC_l=^TL;6n(b{GES{sc~_r#%R^gpuxK ze|mkTakRfSI6FGq-RLhKA6BjD5#N}*yyxt=YR%e>(XiQ^oz{~9+K<{*wWm9rYR=8h zG&-$Wedo?4dSLO&)s>BdO0CnaZfEc6a`T$jCDlcHo6X&gPBk^Xw^LR6o&w%KkGYgI z%9Xw;%GIg_RB>M+#w~tl@XWd5kZ_r~C{zOL`a+GAZ8lf;vY<~Mh^_Ac$Y61)$T$3f zK3rex_vU)<-Fjj+TXWYorg;cMO#oof*h;6ldaA$BI=%SxyMOc0ADD3-Yz{tu`SGJ& zt=Bg9cRCc<2t5;5R1_2+76(W}@3mo13fa0Yw8-a#3RZe9s>^PXHS%800Z- z7=ZbBO7fS*XkWMgS6AP0`sS;?fJoi8M+E8x!1g!}wHI3=(C)9kdHHnb$GaDH50ih$ zDx@bWPbNCDjdPF2ltxmGlNDqqDK0%|+%lzN!KV!7n+nKOS`>_Xjb?98)e~=OJZ$aO z57b=M)Ay9?S8(~=mWDo&pl{e45A@L9KtHB4Y#-81_u+;5&U}ez{jj&Oci3n*siNfC z_JH5Y!@Ekqbyw;6cro;8I&RJDQoh}qJ2Z>8@sd;Hwi6{DQmyl5EGgGh(%hUzbKc}x zUzaiMm>)BvCcuhJ?a-+3ga{qom)G|PXe4bHcXpbq zeidwQZ@$1l10t|E;4a#6 zEcqOs|F^_3;=;?x)J_mfj#pa6N3dpKS*LK~vRR}ut-XIUhw&QL=7&AUd zEDS`dxcWc4y53n|yIJe)x^1Hf)C+)ZbTDdHA_BMl$AkAg><5;AZGB(&=i4*NGvrn! zJ*uSg3AZ?-X+X+RBNIB)l5mhA*YOEB7cA93id1B()R6?4)>S+ZD8UUa1N1I}@)kKx zK-_)r>N$T^P+qRJov`7Wi81~81&segNe5l|;AAbkJQL<|3Nj*B$L)74i^3HA*=cSq z;F}UMD+ySdASK<7S$DEQFJ9OqNR)Z&tLKZgiXRV3s^cJh(5xw~7L~$!+Gv5mSGA7k zfB)|Py!kb)(+BrnH#pF}m8CB+a^d@N>wIVz{P2lKuQYmZ ztB%YZ$Y7YP*Ul3@u&8qj({UDJl%io;;Hq|@=JeQZIkqT zwMkym*w?e1y%a@K4Mkr2q4vlE!guSG+v%>OQLuPWE%4A&K?4sv@zP}+*KkSWmN>Sw zw|#uz<@_lfeb&7(Bz_O zg%yeDD&SfqjI@_-++yX6TDUgzScb&s)~oJ9Xd@%McsK&OajnZ(_LSM#3vZ-50>jmn zzP>j2ZJN!b^{ehb>mKOn&6Fr7vdY)nH`nf7y<>E8>4^)!b>Vv_!aKZk`1vOvyHU;l zcKgzqL%!(u1ALRXC_)@VPOd1kK0hg*`C{w~^^6mXL!YpYEhjG{Z8--^pS=!IlvV3n z#rKRXC2;ULvjt)6*kNo8AWaUdxp+u;Xee?HMYrg%x4*?J(6Z0!nIU`@p2CbNY8M_z zSGU4e`r~$g_?o}(cXeQ-ZeN=S=#;8k9f9o^fsejx@9Fik!(UkD6a8G0lRlLYUHD0H zI&)n-m3%as@X5OrLA^+r)8#DU)g*wT($VM`=ylCEwjx0LZ1J~F=canB( z)mVFEC-T|%Ed}wg84C?zA&Z{rj5RlCo)bLLRFf@FW(G?O0@>FDd9KTQ`V?|62-Mf( z`MR1HMl1>#1EPY@@68L4MS*^BMp4rH5^^APTQFJpU{Lov`u+F)qwdFV)lA$DJ?68A zTYILyS3lyS@gZ%qC+`WQFSc^NBR;0Gwy8B)1d=5|7RdT zb(WOP7cC8S(s0N{fg4StNQgY?84m%$ayocni3&G2f*yN`FvPqTKscnQ5hpBors+o@ zs^!&B&R(&*{_5Wd`nKAV0_#>sU|U9D>Mv&AeEP1zAL?uKl!u)ENIK57kd%8>%$&eT zRx}s>Oma$|;=zYb-w6w;cu|0@mvR(&kMn-XA*soc^BK-_#dK@7H%cDIAlkuY<_JBMd$)jt4ZIdpZc4=O7hW;}GUO z@=)=C_w}?9tQB~YWQ2<0k=Kwb`?&u0S!sTpaN?#P?x4>?LI8Lh$Owp55Ow+Pld<>~ zf^uHic`HBU13KJiZt=n)T8yEqgu&Sau4SQLIrP^GmL3k5y+*k0@Zr}^=R{z&e*?RmoO z`-TT*p5K^N$a`iq0c+R^#fPo4ho_s#$NOYSUkJAJ?R$4PaTD8*kd;;Vl_(_I;YBAVjMAyl8kB?%2F{g#ijLQEZ1^x=aEj&^*plg5VP zGX|j3d{Su74TyMq3X#y_{9t*2yc=-*X%EG?$V$fN7Yp$Fa(j3C z=Vo^+dF2Cvq(tXSZAf@rz>iw&KT&4hLBVCB%{d zIZ67CmmNYNj=FU?HN#I)p`fQdBXzY&JDlelaHro0Rx|~hDW^SnI(wP79mUr?r|liF zpdo>S4A=D^Zgu1JD{p$lJ?7P$Z5M%h0kG{3N$t=VN8mFb{roFByYBz!shQ5BRVeS( zoZcckDJhCY;&DdOPPxiCN~w!K$c(u|?m^IDIve^e0kBA4!a`r-Zt6@DUcsNJOWr1n z{nUpKfORSG{8K9S?R{Zep9M?!%Qog9DKkY0mKGk;#fTOV_DXz1+W-tkAJ)a;uZM`j<_no_*9yi##fT=l1@Ic`3q6i1QaL~{jn&_hzv z+yyAd#6)d4NbGzza!}|)GIki?&Qpx(&_$agryfT?hvHC};aR5iqtII%6~x0H50dC? zV!;vL9c4CLJHoksKD_s`J^x0UlXiT6?}s|O=N>XTx$(P=Q;XkzJ{A89U%2?F?w-AWIKFK5am{Jo z@7Jv-6;K}!3aL+ssL@%IVY`Y4TUW~(`G68`X?jF?=PdOxQeQ}Z=?n%Ny7%r`&1K#? zu&oaUyg-S{? zHF(UlT5mVn3(IdZ?5LmV-y zq3VJ5zWa_AxLfd?%HfAi7AWM<&_~uFUgY3MEKuMF9ejGymuJEkj&$N1{&3URZblL8 zkar2fCw}^8sFlU|)Y9qZ%9-yx^IKQn1`ch{zxc!z&;>`Nu)< zL4%`1!10F1Nv*pH8bdNc3{HsXa{|N#ySNh_PEF2qaJ5N1ALy_GHSiEZ%>E{X;6>p~ z(@7>8W8oP~&YJD5|HFyL1j3#TA`owH2)8fuoo4&a)w|ovi`Ui*fC%_@-I6owR!88R zh``6+Jo}FI6KlV+zNGY|GncH!m9tV2cL4ZdK(3Pg8j9}}rK^5q>H8{MpU)SM>p9b% z%lKcwTMJ-H&e+g+F-~3Y>5IDZ<^XS^~swgcx>M54g^>H!s7b^(3M_% z)K7i;AszILt3BT(fG_xIJ-(3_o8ahf0N+J0YI9Rpxf~h3;ZGk?;A-Emc-r6JEx>yq z`Yr)sbsC+O{(5Jv|ASkLf8!~`Zw<2m06+jqL_t)))9UTsb@jfzou{9;apu+MOYy(p znI|6b{~TU>$N2E$y~{fg=s`!8RE!=A0f500539cFXKxX2MU$>%Ooikzis;3d9WGC3VmRenM172+ zhXl?V50V6QA0RS4JZ?ddyscO@24^=K)2nBH{Mb!LZnSpUI7(Y0Q|LQ%{}e5F-qU;h z_2UEGpKe~-J;L`asVP=IK7O7(!y9pSu~RTyZLA9R@5zXv>8FxpCwG=XmiYI zEb_$mhI7PcggWsDA>^#@zBU&04v5s@OyES(RvTn^?f`!RQzo>8)i!K}Yk1+W>=h1% zf|qJGb5A=PCIwnRi4Q_NI z%-q$9oAw+epDE^Z$43BSL5%fhAX( zAwM$M(|d9Ag7%@Rtq2ofP5>{Y@=VeYIxQ*X7-}D4{E{6Tl)u(mtef!6wZ-n(T}t8BPQrN(h+ZPJ@nbaYnS@SRu}bTvL>D6U78X)`FbS z1v+TjayG}?1K}EOSkVA^uIbmW7;1XW(R5?#_R}Ap>3`u-C*SzUvlE=Uvuz`gC&0G# zuXe1Cz+W4I>t1+f|A~$1*Unzld1_CK03HG;x85fwwu@rsZi=w4z6?qBcA?cMv!=$% zW=?XM>y)~kTqA`$|3!j@FJ9VHCXU+S%qj`*l{QJLywq%utVs?<*L(G;&46-sPa-#+ zMSy731mF?}v7+y16ZpX+GBBUo@`b)6^yM+00Ux|hk`faZXA=twc^2n(`WSpG**|8Z z4v-U9!+nntFU@$Idi;SL6ZDu(IHEnipp+YZ&v120kCq%i_T-J5AN-#RT)p4k5hzD@ zdwW@XS4ZHliNJL)98ceMc6j6L6|EndnNvDar6eVBVn+oHMeYv3P(E|w^4$S)qFyeX z(RER^zBblJ20|qJ$fG3oz;b3KO~UscQA?pBcX&__9z*ErkUF7}zBPnoQ`z@|!3?C+ zKJtbRf8$O-@hxa#OI~u!CkDhpwSnrTxQx!M-r735biJ4F%9&|;O1E9d^KxNG(yn^Da(ViMkfIa2_NlKh3^d@qk z^H#j*KHxseNC7WAH4s6@Aukf7i(goQ10C^{6R1qtQJrA)jes=11X7|R3uV#_gizAK zaX+sSYrqTY?$#-tN>9X%eBvk6{c8@?gxZB;& z+P^vie|-e>5ZA?fzWZl72ih;$b#c|BxI0s2BGTCTir>l6#jw(_5|s7^6io@uDb$4g zA3+9l`qN&059tDJy`a087c7{02ce{7r)RF-om8c18FT}Y>nQrhG>>s&v$yf$W2#Z$ z^%ses!Y+Nwx>~4@L4oo9HT~w&V5PC%f6amR+RuOX75n*lrSqoUaKjDNjq@-1hy6k8 zg`ESPCyfqtx_t7n(z6hRy|2@O>v11zg^Rex$>BrjIB{^|5IM@5X8=RQqOhw7N;8gx z8Ssqf1EQ6n?6Np8sH=NC)t{)s!n6?Z2TZUymUbnIz846B5eknlA_A9w|H5OMM|Rybb4hh&n~(J=S@903QZHHE>54CHWwN9_c9V^V zk@L!b3PhZ)Nr}EH3ZYDq2_YJo64swpw_Jf^)pr;yrHvLKE(FFlH*6M6;|R|fO55aM z-!Uk@Y77m(ETf!H;ugvN@Of|s{(S$^sNY^*e^{N=%pZ&&~5r+UY$ zL*Fs#v|rfR+j(qbuG6aYQAxj7!e>D9Ao~zx;fyVv)=DOXGz=$E~$avvd0$zqtAv5BUjP zuiLp30nU%Q)e+b+5qQ8eS1w+iYyMpKK<_zI2b7xmOguSDIgOKDx!)I86m-V1A)z@- zTgW+5OcF9FT$#>!)yWd2OpU1P0uF`S8gkZNg`ZM=I8IG{ND@aL`;Eyr(tl|I)%Q?|L7Y=S!P=&OHYk)6-9G z%}hUQJk$DzT&AjAJ}2axG;UL zSk!jtp{+S$3A}RZ7C*Sf5287e_1y}Wd6B~nd|+z6qlJU|ImyoLCqCa9pZJ!gU;ozn zV}FX%xzsqWb*m$=<05dybC;hq+SR(DbGY~Lj-Cx@ako{8jkf^GWZmIv20|2OuC~dO zBxlp%kvAEmADNJ>%}8n%2u$bvl!plpw;wF19c4&EKNx5m@UbVlvDvFJ&N~1u4epB! zJ$>=&fGaT;2>_1zdM%I6v{yI&pgCB7!@{rb{jUWY%$?jWx?wzX_W1n6#)IxNoBKQ8 zUG3@}Y0fBC3XHE-b^NI9F2Jr{9NuWIc4b6_VYpbkCxRqI^CtMFO%Mn&2Zno1dG@Fi zi%db7<)g?(vWTKgM~ZR$v+f2E+QGA=1TClU?w8U8FHgY<=mcCcD%^&!e4M&rEroa+ z00KU9@(>@E23}xrvO}_yu~twQJ9-Ada}8xl=)IKI{IJnGe*8JhZ@lJasnqQpi-3>i zIp%ZiZXJQYQv|O0;p20s2XjBzJkb5I?w;0FohhmL=dYB!TnK6IpyNgtRf58(F;C1%h>}B z{AIt3qm9PW;4|&v=(lI)2LIvc4ZHrlVC>}m<8_PwkH;52V6Cd2(W_ejxSDEwV{?DE zJKz{|pM@_w;28L5=))a~IEReG#NpyaV}U@7W2CV<99WKr2Oe>5a1c0n!jz8w1rS{; zF$@{&0vHPkfP`kD5H6aWAj$C=#&RwoG>n4}0ZruW7asU3oF^9oj%$DOxMEM=Le?T; z`jq2@R3S&-SkVDHn;GyznJ`*jLnvz6#FA4n6K&XQ^zJzE&h!3*G{3pIzuna*JmLTnHwu&MoMJ&=;SMqfT0N0`usI|VYed8(b|LScPY%iIp!l=) zd_h25I3r&aFubX2j6ex>4mGPfof^e32bmvdvTy8QCmw@>0TBm_my@pL<9w1ozG_F5 zInXHbdON~S$wolnE(;(UK4DgK)dHl+?`YGpKW3PX6yFf2T{gO$`~$)0Zba3os=L=t z%-wb3x-)P8rq2|qdVg+3V9NnMw;Zp%tt0T|Mt~>6-*o(6efwH>>M@Pp;A!pI&K0fc zmYUKc4-N9afx-;1a-A|}a|m5&kMycPCsgt-*_3jjt3gTwe6+oous*q2w7kMZ*8psx zQ-m-?iq+0liUmd@akrK0*haM~{(66@(I20x2BVK}jK+U7J=6H(`D1^6YvZP!Tl9&^ z-k09Kcet|a;&H3}xba5gn%3Ulw-0ApS2SkzzP|3{L`9RNqwhdcv3(%SrKrJHLG;1# z74nv%4&Mx;RIO55Q4h+ z5_%y3Lb#5m2AI*=6JDv$31M#`8G{o^otS~er3B4qDSK|&vpix|5PqA@0>PgYz$IZ8 zf3RyvZL!5d)-i;LDYWH>Sgl3<;Lqnzy=46@SN@WD_2!(604Gn~>Ij^75xC?jcT8{W zpLyh{)%(WYZ0kw=W_5L=+dfe3s-~N|jZA?db^3>O^yWSJm6v|h#|4~3$$uU#5Mr!8 z;v$noOH%jVs@{l&5VG2EG063l39_LdQfsu9h7043{*qGvXGi8v8nj*NvI`@$7a7B{WNT<($7!7RcEBx+PiA1DBkx3Jmt z0^dAqK>^>#n*nb=pu}Rtc2U9{?z2r@-a7`oahxERx&6oWkGPD!cRNKS(_sAr!|++wTz%y9LUT zTz64}e0@dq@_&-w_a}#D9);zfl2@_UW&N<~H`Y}6&+1{s4JGo`_OSWs!E)n|`)mCZ zo$2wZxw*z)RR8nT=N@qOlN;}S-=qCDKNvfq5w;`WJ3hF$Jl~tTs=2RyLHmDOI?;HD z)>KEjv)zXer>l#HGu3o8-EQmZ(=l#zs8sQ6y=$oI7d1&uhe4f+%UKt{2ssA^zK;iG zKMq739!B)awnUX9N`qgD9mBv$rZhvp?2$*jXs{Bbg#~v_0Mi{Y^d~VKw);?|r8CJ4 z=>RE;zF5zDqp%Slf7t0cd_mf(q`4xu8W>(IV9QU2rcof{FZ{rn@R|AO&sc`h2#Q`b zPUg4=ft2aZrhY;4?)9U+qsxyz``cH1!gBTIoQ(kIQ{Cza)DhSc0p+^pQ*~W+%hjK5 zU;fAore}{-_g^`)aiQL?pF4Y|!?kEjcL=&|ZFTLoro`K9b(%e0-L+J!hND4aNLn5> zhl6gb>JNs4fj%nU@9yrL*gexZ)ozXN{Mgaig~s}Aqw(t=F(9k!FSG6zN49yFIN{>+ zZXLJZ^P3B^tEbkxi=#oeGu55y?3+6z z-)eOEJ>rVIM32bW*_fHx&ty*q~^!0A=DIs$bB&a((8qc@+bH;DiI z-<_B~^@-v1;<()zudP?pOViDjs;WkFt?6B}iW*6Qhqk5Yfv9%{T!6XVt{y80id`-wfYAU$ zc7m#k15!j86SzbdpESgkFboJE_fum@05*$_tqnRez&GiGtCtEf2#h7}T}YvdM)+uM zkb*AztOGC+lP_CqP3C6(d}vR0uop7`SE70kL5iA()lCA_UsS#25}!pEZptKcmpC}= zAvT&DdMD=C>EBqn@zUqoA#Lh*ZbyK_UAH;{bp*C~1eA)K&(n{szvorD(mu1^J-g6q zjn~$y#`=ujm91Kxxz<#7S9{NRwspyHG(Mn*3l0tkquzKh+NC!hI(q1<(`Z+1^|-v{ zN0g_=ReNsSstzjQAJiuj)YqFFt`3csimEENK4+k>%$Mm_Lr+SM`RGI^0_DP}?7@|L z6coyY?#NR?BCAj}^c1Cb0&tn6kh|<^!-Q0*RFo)JZb7xWOBgVqMfnN*$V{$K#>0A&vo1KP&%!2YF&9~&Fvra7H`02gzY?}lg9pdv!C}>bliZI;4ed6U zH}*BJ`puAjuEIbabsOz3EPnFf)Y2pGe&qvCribRMymRpyAEMa{WkSeb`g#Z8bVotJQ9`^$67oW#Wku@yUMkSbh}lJ+xjPZLux|s_a1NsPAaELcrwcGS-SLK9W};f znD?Ej4wQ8288wO@7DO#ZV4%pAyPp#G2*@Z@xS}pRlwFI^&w3(KlpgHc0hrc^vSlD^ zY7D5|Oel1MATiK`5a>2Ry-jb?^}7jnOfqW1i9LYu*|PU-bNj5m##>uR6bfNgVxvFvZQ9gy0^k@=))yMn9Q^3oIt5%7 zGL~t;l3Cab$uUG*0rUa`hF*vf(@JZ{<7-Qu6DyBhebW_xVu*UPBO(wd%8r;yJ&8I3 zfA;8B&P@WvqKV~aq- z1{yd4K-lEA10R_*%TyGC$8iB(@^rHFqO0MSMTibzzMqbBuq2B{8VfYNpKdOX<`W$X zCz1gUyyT^gknu5%b!chSLvReOdJD916a*{-Q5?>(j;FPA@gV^XZNR8@2iu6tGj$6B zX6&OqvQa3YSy(Uu;b#RzH68z%Ayd;C+gYrd-Mj92>GJEp@f8-SH#;T*<&@Yl6RIat zN8oRZ!2Tayxumzdd)uxftwXCS9^9qo4N_-i3K#&9PyL=X{3KD_d;ttUiyy_uL+5|! zdT}Z3p0@c`x8=FnoT;@yB4}CcD>u_;15)H_tr?W2U2sZk&F(C^`p`N zmnFzOj{_&<5e^R2@Li5mn_^syfiId1dM*xZFT`vl?1vAm14^?`u62%f_?I@YjRtdc z7!@-@tvej17vH=W2`pMX3m1L-CfF{_6hgrGlQ310DMTri6QTt(fF$mK;X9~-ND-Wj zMao#=V*qnBC96NHV}U^ya)dk~dy8zefI(Km5fBZ;_rg)iI-$%JA0hjnE2?}8Ky3fn zQQQff^fyljW{o=m24d*ge|#SMhHTyN%xGPrZHl-(CK6+(oi(J0}9V zPgu7)0_Rr*I_=JjruMZCsrdMrG%miC_9EG8OXVqqUwy(S^*W_W z*UI3LOhp&TeXgo0nywRMQx_78O9~Q)7u2`g*FnkEcEal<#fk5=4)g8Fm9)Pp9EO+t>al2f=Cg}cvvqktcenS z=sCf_E4I*Lo{kv<X?}lkjBm^T2AEDU=N3#;u1qDBc6L&Qb-gNttSq%*B?6Z zCof$|HA3D)!hlxrMAjezXsaQ~mg9!Q)Y_=^0brU1B;zwKP9bi+sIeYZ45TV0Pd^^Y z(->nWVkz87%Q2KGI|B-)bFSEO9MESff$e@^N?umYlbSm-jm}-CKB1pgc)@aj!Km8~ zia@;p*g*%gp32`Ifs21+?E#~?#v?J~5UJ$y~5=e-6lT6u?0E~%RP6B~wMTHUgt!|^bXZ7yt^up6lyycsYrc}M#VG-c8s#_g_ z^CkjIt?`RHhuZs<4x9S*64wDwUJ1}innXyAAkXU70L71d=tQrbNW83QQAuj-l*<@- zUKC`3t0!LKF__Sh(V{}KAthc&OGf`I{U1{@#uLjJWsf20;k^CgQV|qw8B0I>3AxY( zD`d>Ho?xWI-{j@FLjUU;n8HCvd-u6i&GHgg`Pe~5lSn!5Tp*>xTzIKt8T5UF96TV= z)gFBSeAh%g(;%5|NR8Bt6?|~`_@AhO0o%GRv`A~rGaV|CmW3joZ1Fw|MU(}D_h~|6 zaX^qav^FNP?h27ZX(ZOcY;Y$aHx3O^j@>{;?BcW7pcVYybXLjPm z>N(XB_~Hocf8MFln|!D!+$rXk-})I#WqYJ#IZKR z8@TA0BTR~>ywg#!e~jX6G7x_IWv$Q+eG$MADX`=N07W-g6JNk^kl0OBBn<{ztA3z5qmo_2=c5-oEm@O^OZUs%p=V8{HH0FI#!lRqsN(ZaX&u^#Wk$9@~0mTOx4n z^|$J+|L)Jt?ysiwnRk+CT&+rmKE+QRCBV#wjA^DgHOK8`=#i@Zwt;dsxfdQ!zEcD! znxt|gxG*A5iLjvM4V^`k91hD0-iN%ey#sBI}o%97JEM&0B zKv;a~j$BD0jRhHe8 zKyy(_f8q~dVj0Ep%LRf}u}U%Y3zvmZiZ=xsSwM}a!$Ci0W_;VzIBb|{_rkpADS4s0 zq~oO2^zjk7XgN0e3&%aduqB!o2)Khi`+%GYsbOa=X@Y_r1LVViv@OJSy83`=BQYz$ z?32aKD}1GDv5K!D%9e}I)R7ahh{3wv*H7O_?iN9R z>wk7HcqA&n3ND((uJ0@`Eci?o8y2yHNV_pIgSj%85YjjEU1SnZ0+S+$j1`bl3psl6 zONtH}!y?8^Jmfxp6fuUPm7+=C2L(BmTi{)GDZL&sZL=6s#}R;{S7Jgd4WHBkM}2{_ z3IaLGdFaK$A(TQLfue~hHUTPrppi!fJpREm9A2fmRJOpVF9Em)3wsuwJdLu&Zh>$> zIAPRy*o4K!PN-+`b1Cp00Z(cZ1w?)_ z-nC9Qjxp&{GQknwD+~M)sF-nOZ4)_<=o^&{x6~!;Yg_|HeC?~p$V)Kh1YnFk3G~BK z(2+%7Gg19RE9RQ$9-*&hpAj)&?7dY`T}=})|ySu~25AR>~*Qq-9=k8loQ`2j$x$2r8>F%c=(MgSzpVJt7Wq&9uqks0yh9yl? zT6hgarBBJO9U7AWE1 zybDo!B1fC! ze>esKv+n-Q2@2h} zsLDZFoORoJWrtO-5X0ds%U2FjaXkVom-`-Ur6X;*!0C0u48tOJh?c@p>{(6CyYa-h zz`j)|hAiLSbki3gE6FK6(Bt6s%cH)`o2MJG=$77x>O|1ff->(Unf>uC&cn|GQ~iZi z5tr{Z&tgFOU=E}&nbwTYDQH4Zvnb#hm+WZ00yVdOCx=GFAosCk)`cX`4tmM;aC~=& zXH=>iY^8`n0TD{QZZz~P=Q1#6UhSn^4p=Vu?H5Nhn_@c$=q<@V3)vePlQ)81V`nfE zBC*r;o0pLcHb(8CVERdq>^-77#8^wSfrQL>)7NJ9U+_6s;TL}@N?Hg1ZR0<0=>2cwrNp8 z2l!A@n7q+k<~i8kmgDhaeG2LRjtlQ4Ly&$q1#jQ{QL7o;@J#0#d3hhY!VX|FhAx*V zjUYCD@RXwYl|{RqinTo*M&iR%h@()N!Q#qjO4$4@HHMB|&4w{11igFo#+taxq9?3d z8cB@nO_pLAjrLa~!?hY*KY{(79vnp0_!{MUK>;QW2u^ulUJ~D7MkEfpL&;jE z=RNSwQ0VNu>Ve;*uVVRm&%6Jqzalb;gi$hEXb(iy<2@^whrj`BdVjvBv(#;9thh&h}zao1gB+9iJ&fWtPN1;QJ)?W z?i1s8`9{iA9m&UZe~xqJG5GI|na*JUJ&b87ga=I$TkNo*eEbASnBvprfR+(XDF{}rci zYtlqQh9{8eXDZ}OVLz{I)8ta1de{6t=g;r6AdR9ij$Q1T(xA($Uf9!=5(J4*s0>c* zEe~rWc-d|U!CX`)B&_=F^{*Iku(@HG0Dc?n~213aGnCD_x8Up(ji$JXt2NjAI_2<$QVnKQWA1}Y@EBzh!g zFtscY7W+$aED;bQUP)Otqa(PU+gt*j;Z2B`*=|Y8h*e=m*vHO1H6`i6Wqt=utn2g* zUPLmoQlRY{#i|Gk8|`z38}?Zl5*2?sD!ohClTb~1HO4b6CfpZIyJ+V0*S!ldOgCoA zQmW-E5>}KeYMS>U;CVPa?QyO@=oO}CXFD5l>JI7p3chvIx0t-h*is9e%Qm;76jW|el0o;Y0Xj6hfzQx5AX4id)iCl|d14HKP&*gYwZ7Pc-y*H^v1uGp_v znNSbiA;hd^|nnX;?}N1xBs_?LGcfYd?@{3vX_kdw`-W~ZSc02P06u)*s&E7i zwxlP2=^9LBm(Tw_#lYXqE)ZNVJdcE_P&T|K~>C^L)Hb$@wsLHvI* zgn_XX&Oe8P2@qxD>nk6|7NY}YIx#;K{vgtSG8WSul_E~L;THs6vS+E^A2{LUwgUi= z*tB}iQ-|4#WIF!+LKw_b4U@yr2Z?haypt|h$Nswu)>vF5o8%V)SFc7~Ci z;!0~=M_VaOcRBas{KTB=9_)fPkPgywhr>bjIN+KozN=;c-3R1!KPEfhnTX^pDH0Wv z>|={eBMWAV^8Ch{ZU>_-#$ldxxX=S8U@-K>Wqq_Z8T%j4?3D$pG(-#_C>k77rp9X? zhf&Si&4W*Ok>Ey3Y7KrNNGyTHq`VJg>X_fsT(oT~8ws*@iv^~1xo!&vRx4lHpY9LZ zV?X^8oR{(eMA-htQQG;oFU6i-WiiS{5d{%HN~gr8#Hf+XsPvfw<#S`Py>J9(*%m;& zNg>4U4nJec@2DO3{Z!^KjYT1Aedq#%UttpI#&O%wo_>(X=j;=+N?M%R+Cl@$HQWOu zF{{8oMMhf~!%|$)zYx4`2t6P(dff`mzaHgFP-BWoggBhkx|PSP6I!Fv{w5np`C=TP z?>s6jRI9g@vzrQ2;@uO`WOdbBh8&o?6Om?;&rf!)70&B7^wQz*2t&Ia_=P5tDAhtp z=um^~2byl4RX)12HnQj-sR_M}_g*w3$}y9^Axz5sui%uC--`aSsSdb;5$Xk2_9IxW zTx7=G0ED5P(3=kZg@ytTMa}?e?H?4a%GMvzHXgYKp&;J~rU#*0-n~rOWUgiSv(_Mt zox=(r9McPfG(rM8^2tb)fH(TBIhg_(vq_p78?4o>T=Ezz47QG1In7>>6e{mtR04M% zQ%sAwuXnE8h=xK2_^^i{xYJ(&#)MeK7y>#V&uUB%jfSF)46&Z({yDTtl*3!N|1jCq1gU4)tlegrcpbvmaa&YPU zmqCzZZtF5`NgVgM2v*LyN#_#nFUq%k(??+vi@EPDLW~u6x)w74b8K-bB5y{=g$#r= z!e-ho2mvZbXC)xGK;z0V+`su=sd6athy?pbPo*-fw&>G7r!6VgbS+2cQj(51-+2U6 z0`$@9;a%Y!WQ`wtbvP7_9}V^oJ~b%D*MP9bV3tNrvkC^!6H^FB+j8cp6AcUF*Kl-~ z#&2ipP@3J<2~w~m^5aEEsSc!R6VtFIt0i)FcdNJ30(B0%l$~*s_mweS9b^iANLzZ_ zCGdxiFxUX@yQq!#jb6$4k+zBMJ<&r|cKoXi>y~jkC8@fU{l*5Dcyxbci4qHflNHq? zYEs5yh?&u0VxU#%zSO!NE`{Ee@W2f_rQdAo(EUz^t%;Bqf1~6`ETWJ!PYqH$U-J~2 zlph*u#AA(MKv77}(=jXm?qkx#d zq`io<+h${YsHc_~w=?YJHLRdN)_O3~q?1vvOnL*5-?jb>WaZ?XLN*5_Dznf zMS^dktpp_nB8)KIPFG=Ex9f6)bsuS*ooSNdZYN+C#_g9OQ-hHcf-4!nWLJbn4J5ds z

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%0A9@5OQBjMW_; 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

`wr8 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