From 2879b71b7ab38d7fe21e278ccc7289d6ef5eb90a Mon Sep 17 00:00:00 2001 From: 1evi7eo Date: Sat, 24 Jan 2026 13:21:00 +0800 Subject: [PATCH 1/2] Initial Commit --- typescript/faucet-mcp/README.md | 211 ++++++++++++++++++++ typescript/faucet-mcp/index.js | 299 ++++++++++++++++++++++++++++ typescript/faucet-mcp/index.test.js | 277 ++++++++++++++++++++++++++ typescript/faucet-mcp/package.json | 41 ++++ 4 files changed, 828 insertions(+) create mode 100644 typescript/faucet-mcp/README.md create mode 100644 typescript/faucet-mcp/index.js create mode 100644 typescript/faucet-mcp/index.test.js create mode 100644 typescript/faucet-mcp/package.json diff --git a/typescript/faucet-mcp/README.md b/typescript/faucet-mcp/README.md new file mode 100644 index 0000000..d3b4287 --- /dev/null +++ b/typescript/faucet-mcp/README.md @@ -0,0 +1,211 @@ +# TBNB Faucet MCP Server (Node.js) + +A Node.js implementation of a Model Context Protocol (MCP) server that provides a faucet service for distributing testnet BNB tokens on the Binance Smart Chain testnet. + +## About + +This MCP server enables AI agents and other MCP clients to request and receive testnet BNB tokens by interacting with the BSC testnet blockchain. It follows the Anthropic MCP specification and can be integrated with any MCP-compatible client. + +## Prerequisites + +- Node.js 18.0 or higher +- npm or yarn package manager +- A BSC testnet wallet with TBNB for the faucet +- Access to BSC testnet RPC endpoint + +## Installation + +1. Navigate to the project directory: +```bash +cd faucet-mcp +``` + +2. Install dependencies: +```bash +npm install +``` + +## Configuration + +Set the following environment variables before running: + +- `FAUCET_PRIVATE_KEY`: The private key of your faucet wallet (required) +- `BSC_TESTNET_RPC`: BSC testnet RPC endpoint URL (optional, has default) + +Example: + +```bash +export FAUCET_PRIVATE_KEY="0x..." +export BSC_TESTNET_RPC="https://data-seed-prebsc-1-s1.binance.org:8545/" +``` + +Or create a `.env` file (not included in repo for security): + +``` +FAUCET_PRIVATE_KEY=0x... +BSC_TESTNET_RPC=https://data-seed-prebsc-1-s1.binance.org:8545/ +``` + +## Usage + +Run the server: + +```bash +node index.js +``` + +Or using npm: + +```bash +npm start +``` + +The server communicates via stdio, which is the standard transport for MCP servers. + +## Available Tools + +### send_tbnb + +Sends testnet BNB tokens to a recipient address. + +**Parameters:** +- `recipient` (string, required): BSC testnet address to receive tokens +- `amount` (number, optional): Amount of TBNB to send (default: 0.1, max: 1.0) + +**Returns:** +- Transaction hash +- Recipient address +- Amount sent +- Block number +- Transaction status + +### get_faucet_info + +Retrieves information about the faucet wallet. + +**Parameters:** None + +**Returns:** +- Faucet wallet address +- Current balance (Wei and TBNB) +- Network information +- RPC endpoint + +### get_balance + +Queries the TBNB balance of any BSC testnet address. + +**Parameters:** +- `address` (string, required): BSC testnet address to check + +**Returns:** +- Address (checksummed) +- Balance in Wei and TBNB +- Network name + +## MCP Client Integration + +To integrate this server with an MCP client, add it to your client configuration: + +```json +{ + "mcpServers": { + "tbnb-faucet": { + "command": "node", + "args": ["/absolute/path/to/index.js"], + "env": { + "FAUCET_PRIVATE_KEY": "0x...", + "BSC_TESTNET_RPC": "https://data-seed-prebsc-1-s1.binance.org:8545/" + } + } + } +} +``` + +## Network Configuration + +- **Network**: Binance Smart Chain Testnet +- **Chain ID**: 97 +- **Default RPC**: https://data-seed-prebsc-1-s1.binance.org:8545/ +- **Block Explorer**: https://testnet.bscscan.com + +## Error Handling + +The server includes comprehensive error handling: + +- Address validation (checksum and format) +- Amount validation (0 to 1.0 TBNB) +- Self-transfer prevention +- Network connectivity checks +- Transaction error reporting + +All errors are returned as structured JSON responses. + +## Security + +🔒 **Security Best Practices:** + +- Never commit your private key to version control +- Use environment variables or secure secret management systems +- This server is intended for testnet use only +- Consider implementing rate limiting for production deployments +- Monitor faucet balance and set up alerts + +## Troubleshooting + +### Common Issues + +**"Faucet wallet not configured"** +- Ensure `FAUCET_PRIVATE_KEY` environment variable is set +- Verify the private key is valid and starts with `0x` + +**Connection errors** +- Check your internet connection +- Verify the RPC endpoint is accessible +- Try an alternative BSC testnet RPC endpoint + +**Transaction failures** +- Ensure the faucet wallet has sufficient TBNB balance +- Verify the recipient address is valid +- Check network conditions (gas prices, congestion) + +**Module not found errors** +- Run `npm install` to install dependencies +- Ensure you're using Node.js 18.0 or higher + +## Development + +The server uses: +- `@modelcontextprotocol/sdk` for MCP protocol implementation +- `ethers.js` v6 for blockchain interactions + +## License + +MIT License + +## Testing + +Run unit tests: + +```bash +npm install +npm test +``` + +Run tests with coverage: + +```bash +npm run test:coverage +``` + +Run tests in watch mode: + +```bash +npm run test:watch +``` + +## Resources + +- [Model Context Protocol Documentation](https://modelcontextprotocol.io) +- [BNB Chain Documentation](https://docs.bnbchain.org) +- [Ethers.js Documentation](https://docs.ethers.org) diff --git a/typescript/faucet-mcp/index.js b/typescript/faucet-mcp/index.js new file mode 100644 index 0000000..6414234 --- /dev/null +++ b/typescript/faucet-mcp/index.js @@ -0,0 +1,299 @@ +#!/usr/bin/env node + +/** + * TBNB Faucet MCP Server + * Model Context Protocol server for distributing testnet BNB tokens + */ + +import { Server } from "@modelcontextprotocol/sdk/server/index.js"; +import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; +import { + CallToolRequestSchema, + ListToolsRequestSchema, +} from "@modelcontextprotocol/sdk/types.js"; +import { ethers } from "ethers"; + +// Configuration +const BSC_TESTNET_RPC = process.env.BSC_TESTNET_RPC || "https://data-seed-prebsc-1-s1.binance.org:8545/"; +const FAUCET_PRIVATE_KEY = process.env.FAUCET_PRIVATE_KEY || ""; + +if (!FAUCET_PRIVATE_KEY) { + console.error("WARNING: FAUCET_PRIVATE_KEY environment variable is not set"); +} + +// Initialize provider and wallet +const provider = new ethers.JsonRpcProvider(BSC_TESTNET_RPC); +let wallet = null; +let walletAddress = null; + +if (FAUCET_PRIVATE_KEY) { + wallet = new ethers.Wallet(FAUCET_PRIVATE_KEY, provider); + walletAddress = wallet.address; +} + +// MCP Server +const server = new Server( + { + name: "tbnb-faucet", + version: "1.0.0", + }, + { + capabilities: { + tools: {}, + }, + } +); + +// List available tools +server.setRequestHandler(ListToolsRequestSchema, async () => { + return { + tools: [ + { + name: "send_tbnb", + description: "Send testnet BNB tokens to a specified address on BSC testnet", + inputSchema: { + type: "object", + properties: { + recipient: { + type: "string", + description: "The BSC testnet address that will receive the TBNB tokens", + }, + amount: { + type: "number", + description: "Amount of TBNB to send (default: 0.1, maximum: 1.0)", + default: 0.1, + }, + }, + required: ["recipient"], + }, + }, + { + name: "get_faucet_info", + description: "Get information about the faucet including current balance", + inputSchema: { + type: "object", + properties: {}, + }, + }, + { + name: "get_balance", + description: "Get the TBNB balance of a BSC testnet address", + inputSchema: { + type: "object", + properties: { + address: { + type: "string", + description: "The BSC testnet address to check", + }, + }, + required: ["address"], + }, + }, + ], + }; +}); + +// Handle tool calls +server.setRequestHandler(CallToolRequestSchema, async (request) => { + const { name, arguments: args } = request.params; + + try { + switch (name) { + case "send_tbnb": + return await handleSendTbnb(args); + case "get_faucet_info": + return await handleGetFaucetInfo(); + case "get_balance": + return await handleGetBalance(args); + default: + throw new Error(`Unknown tool: ${name}`); + } + } catch (error) { + return { + content: [ + { + type: "text", + text: JSON.stringify( + { + error: error.message, + }, + null, + 2 + ), + }, + ], + isError: true, + }; + } +}); + +/** + * Send TBNB to a recipient address + */ +async function handleSendTbnb(args) { + if (!wallet) { + throw new Error("Faucet wallet not configured. Please set FAUCET_PRIVATE_KEY."); + } + + const recipient = args?.recipient; + const amount = args?.amount || 0.1; + + if (!recipient) { + throw new Error("Recipient address is required"); + } + + // Validate address + if (!ethers.isAddress(recipient)) { + throw new Error(`Invalid address: ${recipient}`); + } + + const recipientAddress = ethers.getAddress(recipient); + + // Prevent self-transfer + if (recipientAddress.toLowerCase() === walletAddress.toLowerCase()) { + throw new Error("Cannot send tokens to the faucet address itself"); + } + + // Validate amount + if (amount <= 0 || amount > 1.0) { + throw new Error("Amount must be between 0 and 1.0 TBNB"); + } + + try { + // Convert amount to Wei + const amountWei = ethers.parseEther(amount.toString()); + + // Get current gas price + const feeData = await provider.getFeeData(); + + // Send transaction + const tx = await wallet.sendTransaction({ + to: recipientAddress, + value: amountWei, + gasLimit: 21000, + gasPrice: feeData.gasPrice, + }); + + // Wait for transaction to be mined + const receipt = await tx.wait(); + + return { + content: [ + { + type: "text", + text: JSON.stringify( + { + success: true, + transactionHash: tx.hash, + recipient: recipientAddress, + amount: amount, + amountWei: amountWei.toString(), + blockNumber: receipt.blockNumber, + status: receipt.status === 1 ? "confirmed" : "failed", + }, + null, + 2 + ), + }, + ], + }; + } catch (error) { + throw new Error(`Transaction failed: ${error.message}`); + } +} + +/** + * Get faucet information and balance + */ +async function handleGetFaucetInfo() { + if (!walletAddress) { + throw new Error("Faucet wallet not configured"); + } + + try { + const balance = await provider.getBalance(walletAddress); + const balanceTbnb = ethers.formatEther(balance); + + // Get network info + const network = await provider.getNetwork(); + + return { + content: [ + { + type: "text", + text: JSON.stringify( + { + faucetAddress: walletAddress, + balanceWei: balance.toString(), + balanceTbnb: parseFloat(balanceTbnb), + network: { + name: "BSC Testnet", + chainId: network.chainId.toString(), + }, + rpcEndpoint: BSC_TESTNET_RPC, + }, + null, + 2 + ), + }, + ], + }; + } catch (error) { + throw new Error(`Failed to get faucet info: ${error.message}`); + } +} + +/** + * Get balance of an address + */ +async function handleGetBalance(args) { + const address = args?.address; + + if (!address) { + throw new Error("Address is required"); + } + + // Validate address + if (!ethers.isAddress(address)) { + throw new Error(`Invalid address: ${address}`); + } + + try { + const addressChecksum = ethers.getAddress(address); + const balance = await provider.getBalance(addressChecksum); + const balanceTbnb = ethers.formatEther(balance); + + return { + content: [ + { + type: "text", + text: JSON.stringify( + { + address: addressChecksum, + balanceWei: balance.toString(), + balanceTbnb: parseFloat(balanceTbnb), + network: "BSC Testnet", + }, + null, + 2 + ), + }, + ], + }; + } catch (error) { + throw new Error(`Failed to get balance: ${error.message}`); + } +} + +// Start server +async function main() { + const transport = new StdioServerTransport(); + await server.connect(transport); + + console.error("TBNB Faucet MCP Server running on stdio"); +} + +main().catch((error) => { + console.error("Fatal error:", error); + process.exit(1); +}); diff --git a/typescript/faucet-mcp/index.test.js b/typescript/faucet-mcp/index.test.js new file mode 100644 index 0000000..9f47c94 --- /dev/null +++ b/typescript/faucet-mcp/index.test.js @@ -0,0 +1,277 @@ +/** + * Unit tests for TBNB Faucet MCP Server (Example 3 - Node.js) + * + * Note: These tests focus on the business logic and validation + * rather than full integration with the MCP server, since the server + * initializes on import and uses stdio transport. + */ + +import { describe, test, expect, beforeEach, jest } from '@jest/globals'; + +describe('Address Validation Logic', () => { + test('should validate correct Ethereum address format', () => { + const validAddress = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0'; + // Ethereum addresses are 42 characters (0x + 40 hex chars) + expect(validAddress.length).toBe(42); + expect(validAddress.startsWith('0x')).toBe(true); + expect(/^0x[a-fA-F0-9]{40}$/.test(validAddress)).toBe(true); + }); + + test('should reject invalid address formats', () => { + const invalidAddresses = [ + 'invalid', + '0x123', + '742d35Cc6634C0532925a3b844Bc9e7595f0bEb', // Missing 0x + '0xGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG', // Invalid hex + '', + ]; + + invalidAddresses.forEach((addr) => { + const isValid = addr.length === 42 && addr.startsWith('0x') && /^0x[a-fA-F0-9]{40}$/.test(addr); + expect(isValid).toBe(false); + }); + }); +}); + +describe('Amount Validation Logic', () => { + test('should accept valid amounts between 0 and 1.0', () => { + const validAmounts = [0.01, 0.1, 0.5, 1.0]; + + validAmounts.forEach((amount) => { + const isValid = amount > 0 && amount <= 1.0; + expect(isValid).toBe(true); + }); + }); + + test('should reject zero or negative amounts', () => { + const invalidAmounts = [0, -0.1, -1.0]; + + invalidAmounts.forEach((amount) => { + const isValid = amount > 0 && amount <= 1.0; + expect(isValid).toBe(false); + }); + }); + + test('should reject amounts greater than 1.0', () => { + const invalidAmounts = [1.1, 2.0, 10.0]; + + invalidAmounts.forEach((amount) => { + const isValid = amount > 0 && amount <= 1.0; + expect(isValid).toBe(false); + }); + }); +}); + +describe('Self-Transfer Prevention Logic', () => { + test('should detect self-transfer attempts', () => { + const faucetAddress = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'; + const recipient = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'; + + const isSelfTransfer = recipient.toLowerCase() === faucetAddress.toLowerCase(); + expect(isSelfTransfer).toBe(true); + }); + + test('should allow transfers to different addresses', () => { + const faucetAddress = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'; + const recipient = '0x1234567890123456789012345678901234567890'; + + const isSelfTransfer = recipient.toLowerCase() === faucetAddress.toLowerCase(); + expect(isSelfTransfer).toBe(false); + }); +}); + +describe('Wei Conversion Logic', () => { + test('should convert TBNB to Wei correctly', () => { + // 1 TBNB = 10^18 Wei + const tbnbAmounts = [ + { tbnb: 0.1, wei: '100000000000000000' }, + { tbnb: 1.0, wei: '1000000000000000000' }, + { tbnb: 0.01, wei: '10000000000000000' }, + ]; + + tbnbAmounts.forEach(({ tbnb, wei }) => { + // Manual conversion for testing + const calculatedWei = (tbnb * Math.pow(10, 18)).toString(); + expect(calculatedWei).toBe(wei); + }); + }); + + test('should handle Wei to TBNB conversion', () => { + const weiAmounts = [ + { wei: '100000000000000000', tbnb: 0.1 }, + { wei: '1000000000000000000', tbnb: 1.0 }, + { wei: '500000000000000000', tbnb: 0.5 }, + ]; + + weiAmounts.forEach(({ wei, tbnb }) => { + // Manual conversion for testing + const calculatedTbnb = parseFloat(wei) / Math.pow(10, 18); + expect(calculatedTbnb).toBeCloseTo(tbnb, 10); + }); + }); +}); + +describe('Transaction Response Format', () => { + test('should format successful transaction response correctly', () => { + const mockResponse = { + success: true, + transactionHash: '0xabcdef1234567890', + recipient: '0x1234567890123456789012345678901234567890', + amount: 0.1, + amountWei: '100000000000000000', + blockNumber: 12345, + status: 'confirmed', + }; + + expect(mockResponse).toHaveProperty('success'); + expect(mockResponse).toHaveProperty('transactionHash'); + expect(mockResponse).toHaveProperty('recipient'); + expect(mockResponse).toHaveProperty('amount'); + expect(mockResponse).toHaveProperty('blockNumber'); + expect(mockResponse).toHaveProperty('status'); + expect(mockResponse.success).toBe(true); + expect(mockResponse.status).toBe('confirmed'); + }); + + test('should format error response correctly', () => { + const mockErrorResponse = { + error: 'Invalid address: invalid_address', + }; + + expect(mockErrorResponse).toHaveProperty('error'); + expect(typeof mockErrorResponse.error).toBe('string'); + }); +}); + +describe('Faucet Info Response Format', () => { + test('should format faucet info response correctly', () => { + const mockFaucetInfo = { + faucetAddress: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb', + balanceWei: '1000000000000000000', + balanceTbnb: 1.0, + network: { + name: 'BSC Testnet', + chainId: '97', + }, + rpcEndpoint: 'https://data-seed-prebsc-1-s1.binance.org:8545/', + }; + + expect(mockFaucetInfo).toHaveProperty('faucetAddress'); + expect(mockFaucetInfo).toHaveProperty('balanceWei'); + expect(mockFaucetInfo).toHaveProperty('balanceTbnb'); + expect(mockFaucetInfo).toHaveProperty('network'); + expect(mockFaucetInfo).toHaveProperty('rpcEndpoint'); + expect(mockFaucetInfo.network.chainId).toBe('97'); + }); +}); + +describe('Balance Query Response Format', () => { + test('should format balance query response correctly', () => { + const mockBalanceResponse = { + address: '0x1234567890123456789012345678901234567890', + balanceWei: '500000000000000000', + balanceTbnb: 0.5, + network: 'BSC Testnet', + }; + + expect(mockBalanceResponse).toHaveProperty('address'); + expect(mockBalanceResponse).toHaveProperty('balanceWei'); + expect(mockBalanceResponse).toHaveProperty('balanceTbnb'); + expect(mockBalanceResponse).toHaveProperty('network'); + expect(mockBalanceResponse.balanceTbnb).toBe(0.5); + }); +}); + +describe('Error Handling', () => { + test('should handle missing recipient address', () => { + const recipient = ''; + if (!recipient) { + expect(() => { + throw new Error('Recipient address is required'); + }).toThrow('Recipient address is required'); + } + }); + + test('should handle missing wallet configuration', () => { + const wallet = null; + if (!wallet) { + expect(() => { + throw new Error('Faucet wallet not configured. Please set FAUCET_PRIVATE_KEY.'); + }).toThrow('Faucet wallet not configured'); + } + }); + + test('should handle network errors gracefully', () => { + const networkError = new Error('Network error'); + expect(networkError.message).toBe('Network error'); + expect(networkError).toBeInstanceOf(Error); + }); +}); + +describe('MCP Tool Schema Validation', () => { + test('send_tbnb tool should have correct schema structure', () => { + const toolSchema = { + name: 'send_tbnb', + description: 'Send testnet BNB tokens to a specified address on BSC testnet', + inputSchema: { + type: 'object', + properties: { + recipient: { + type: 'string', + description: 'The BSC testnet address that will receive the TBNB tokens', + }, + amount: { + type: 'number', + description: 'Amount of TBNB to send (default: 0.1, maximum: 1.0)', + default: 0.1, + }, + }, + required: ['recipient'], + }, + }; + + expect(toolSchema).toHaveProperty('name'); + expect(toolSchema).toHaveProperty('description'); + expect(toolSchema).toHaveProperty('inputSchema'); + expect(toolSchema.inputSchema.type).toBe('object'); + expect(toolSchema.inputSchema.required).toContain('recipient'); + }); + + test('get_faucet_info tool should have correct schema structure', () => { + const toolSchema = { + name: 'get_faucet_info', + description: 'Get information about the faucet including current balance', + inputSchema: { + type: 'object', + properties: {}, + }, + }; + + expect(toolSchema).toHaveProperty('name'); + expect(toolSchema).toHaveProperty('description'); + expect(toolSchema).toHaveProperty('inputSchema'); + expect(toolSchema.inputSchema.type).toBe('object'); + }); + + test('get_balance tool should have correct schema structure', () => { + const toolSchema = { + name: 'get_balance', + description: 'Get the TBNB balance of a BSC testnet address', + inputSchema: { + type: 'object', + properties: { + address: { + type: 'string', + description: 'The BSC testnet address to check', + }, + }, + required: ['address'], + }, + }; + + expect(toolSchema).toHaveProperty('name'); + expect(toolSchema).toHaveProperty('description'); + expect(toolSchema).toHaveProperty('inputSchema'); + expect(toolSchema.inputSchema.required).toContain('address'); + }); +}); diff --git a/typescript/faucet-mcp/package.json b/typescript/faucet-mcp/package.json new file mode 100644 index 0000000..8e7ca75 --- /dev/null +++ b/typescript/faucet-mcp/package.json @@ -0,0 +1,41 @@ +{ + "name": "tbnb-faucet-mcp", + "version": "1.0.0", + "description": "MCP server for distributing testnet BNB tokens on BSC testnet", + "type": "module", + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js", + "test:watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch", + "test:coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage" + }, + "keywords": [ + "mcp", + "model-context-protocol", + "bnb", + "testnet", + "faucet", + "blockchain" + ], + "author": "", + "license": "MIT", + "dependencies": { + "@modelcontextprotocol/sdk": "^0.5.0", + "ethers": "^6.9.0" + }, + "devDependencies": { + "@jest/globals": "^29.7.0", + "jest": "^29.7.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "jest": { + "testEnvironment": "node", + "transform": {}, + "moduleNameMapper": { + "^(\\.{1,2}/.*)\\.js$": "$1" + } + } +} From 3a695cb36ffb98b451bd8d6482457d1e3c938b17 Mon Sep 17 00:00:00 2001 From: 1evi7eo Date: Sat, 24 Jan 2026 22:55:44 +0800 Subject: [PATCH 2/2] completed contract scanner --- typescript/ai-contract-risk-scanner/README.md | 97 + .../ai-contract-risk-scanner.png | Bin 0 -> 315902 bytes .../ai-contract-risk-scanner/app.test.ts | 243 ++ typescript/ai-contract-risk-scanner/app.ts | 303 ++ .../ai-contract-risk-scanner/clone-and-run.sh | 43 + .../ai-contract-risk-scanner/frontend.html | 334 ++ .../package-lock.json | 2947 +++++++++++++++++ .../ai-contract-risk-scanner/package.json | 27 + .../ai-contract-risk-scanner/tsconfig.json | 16 + .../ai-contract-risk-scanner/vitest.config.ts | 16 + 10 files changed, 4026 insertions(+) create mode 100644 typescript/ai-contract-risk-scanner/README.md create mode 100644 typescript/ai-contract-risk-scanner/ai-contract-risk-scanner.png create mode 100644 typescript/ai-contract-risk-scanner/app.test.ts create mode 100644 typescript/ai-contract-risk-scanner/app.ts create mode 100644 typescript/ai-contract-risk-scanner/clone-and-run.sh create mode 100644 typescript/ai-contract-risk-scanner/frontend.html create mode 100644 typescript/ai-contract-risk-scanner/package-lock.json create mode 100644 typescript/ai-contract-risk-scanner/package.json create mode 100644 typescript/ai-contract-risk-scanner/tsconfig.json create mode 100644 typescript/ai-contract-risk-scanner/vitest.config.ts diff --git a/typescript/ai-contract-risk-scanner/README.md b/typescript/ai-contract-risk-scanner/README.md new file mode 100644 index 0000000..4ff5bd6 --- /dev/null +++ b/typescript/ai-contract-risk-scanner/README.md @@ -0,0 +1,97 @@ +# AI Contract Risk Scanner + +A small BNB Smart Chain (BSC) demo that scans smart contract addresses via the **BSCTrace API (MegaNode)** and runs **bytecode-based heuristic risk analysis**. Use it to quickly spot common risk patterns before interacting with a contract. + +![Screenshot](./ai-contract-risk-scanner.png) + +--- + +## What it does + +- **Fetches** contract bytecode and creation tx from [BSCTrace API](https://docs.nodereal.io/docs/migrating-from-bscscan) (MegaNode) on BSC mainnet. +- **Analyzes** bytecode for delegatecall/proxy patterns, self-destruct, CREATE/CREATE2, and size-based complexity. +- **Reports** a 0–100 risk score and individual findings in a dark-mode UI. + +This is **not** a replacement for a professional audit. It is a learning tool and a first-pass checklist. Source code and ABI are not used; analysis is bytecode-only. + +--- + +## Tech stack + +- **TypeScript** (Node 18+) +- **Express** — HTTP server and `/api/scan` endpoint +- **Single-page UI** — `frontend.html` (vanilla JS, dark theme) +- **BSCTrace API (MegaNode)** — `eth_getCode`, `nr_getContractCreationTransaction` + +--- + +## Quick start + +### 1. Clone and run (recommended) + +From the project directory: + +```bash +chmod +x clone-and-run.sh +./clone-and-run.sh +``` + +The script installs deps, seeds `.env` from `.env.example`, runs tests, and starts the app. Open [http://localhost:3333](http://localhost:3333). + +### 2. Manual setup + +```bash +npm install +cp .env.example .env +# Edit .env: set BSCTRACE_API_KEY (get a free key at https://dashboard.nodereal.io/) +npm run build +npm test +npm start +``` + +Then open [http://localhost:3333](http://localhost:3333). + +--- + +## API key + +Scanning requires a [MegaNode API key](https://dashboard.nodereal.io/) (BSCTrace API). Set `BSCTRACE_API_KEY` in `.env`. Without it, the UI will show an error when you run a scan. + +--- + +## Project layout + +| File | Purpose | +|-----------------|------------------------------------------------------| +| `app.ts` | Express server, BSCTrace/MegaNode client, risk logic | +| `frontend.html` | Dark-mode UI (left: info, right: scanner) | +| `app.test.ts` | Unit tests for all risk and helper functions | +| `clone-and-run.sh` | One-command setup and run | +| `README.md` | This file | + +--- + +## API + +- `GET /` — Serves the UI. +- `GET /api/scan?address=0x...` — Scans the given BSC contract address. Returns JSON: + + ```json + { + "address": "0x...", + "contractName": null, + "verified": true, + "score": 75, + "scoreLabel": "Medium risk", + "findings": [ + { "level": "medium", "label": "...", "description": "..." } + ], + "meta": { "creator": "0x...", "creationTxHash": "0x..." } + } + ``` + +--- + +## License + +MIT. diff --git a/typescript/ai-contract-risk-scanner/ai-contract-risk-scanner.png b/typescript/ai-contract-risk-scanner/ai-contract-risk-scanner.png new file mode 100644 index 0000000000000000000000000000000000000000..6914e0a5e438a6c120dc19935d96f414225eedd3 GIT binary patch literal 315902 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%0AgC`K8S`3E z3Jp+)0xD@7k7r=r4g1eb?5WnUGv|RnV(qK?x4(Nt9hc@)0NkjRjA$!q{W$Bz;|{)V zqjD@LyIPOo7+VU7H#Ib7P_yNtG=?i5YWjBfpY{H$JkISp0*OA)>>-|SGcWygBSOZ5 z3}o#@+===a;DN<|viIT8=dv4(n?BBM1uZ8}-r|*5bqSBH+f!@ZG5WaTiwmMG2^hhs z$|+zEb&&MShR-_p<$MHaK-?yiT~zLvok$BXuif)m3gaEKvmzIdW_#v~s3+g#7%Qqw zv~(-i|CSUOcBBj^#2BbncHM0yxyBYzibL(|(Vzr9y-+3chQ~e^9C|P!#D1i&V>X$@ zba}&{q>TjU@zEMY35wJBj%n zo=*#?%2sJnMuuhhu#U;7Ng|+>uE!mxln0KOB)#?!=|^_#S>oNd`;{@uqtXI7;d1&~ zp2)z&GN)2-n>;Zs%cgsLuUwdt_CCciXBPVoEXwMXO+)p5ck9aemr&2npZaY~vql|0 z=6HQu+BQ#-2_HfHnnlLZtbtq$PMjqh{xJh{Z71;CFlNtNf6IDWuT;R+`|ZfH#5^8tYP0(x39MED9)bff|gX zRtQELu1?7=!Fq?^&jQu?MS&*qYLRBCyORgAeClJChfpo-VQ^+B4pMBn3F%?Z4@6WF z`nBY5&P#Dk(7X55n=~$<6;LB0Ov+08bo;yOTJk6&T(e)<{!2`AdqLHYxu0xC0<`*am~BtWSW&;u3F49@xddC+jDKppG3}O6#=b6W zB_!ezmC$jqREAQdE6NO=;a!y#zL6v4{rZrKv8fc3KFdVY35exq>~sR5M_+>^+{aqX z3*TEyns(bu_pfdrPLH-c7Lhj_)7|D7Sf1hOmvxGR{FMO1SqH)bCp8d(mH9D&Kv4uXbUJFqR ztFRiEXst*w53&{`+FEnHIv#LjAvz>!LfhL0Ww{IF*E!7eCwB|w$V-e2m3S~@7By5# z0Sb|t9*`2v;VwK;`6U35yrCG8Ee@mXqB@Q^ZuGq@Ul@n2%xAaAQ|~p`Z{y|iuI-tn zjcT-Aik7lG=>;)VB11LVON74k{lq3|?3`T?6c&~Y5cBPCJ;PcQuG72H;cSB?5-4ss zJ#;$ZTmTYtar{1iYw^&4P3NXNt*ZFCq~maL#jMlP_e_Fm7tLhvY93T`b?CC?PDE zqZzm$CZo(c#>O|)3Qd6pj)@Og_IBiiL3|1zws_~|%_WmyqPdFq;<+`PdILe5)uO|P zp#<>iHm$Fke#d$R<;%ri$tjyryCdfQ%l;SBma2_I{b74KZK4ENjQbq&V12><;1f2v zoDA>cw3);w0h^tTBOztTk}D&S6CBtXj)Jxt*7=z_ZcDdH!o4AU_dT;++#|$*krBPN z@QINRNztr_eZd091w!!OQGt0y=7nIe-jgK;$5yum={D^+_uxn`?bwPb7@O%s?v2hy zE!c-0n8Rdq&m(SHVPLH_{<~OevOOE?4dbly;VR)dAi3O7ry;G9fc~VFK~NQ-k14Z) z^`K{lSni+8umOfWl@CX>sF&ug%bUn*mXVN156B!8^ayt4@;opr#oUsv{#syO=GT3L zb4K1O{GvOBq@@)U;;p|r`8vLX*i5V9E-KyQ>(qwYcv0! zgZf{;eRp6xyc4~LBvqTNr5#2Sv1-}w1&@EGVdaKgfKAn~i^|YO@nC>x!2Gpr*umId}1-H+_e&7NQnL<8iy`!yh6|5q8qkCVc8Lr2WlOD>K&@ zD@n)B8Y$KgY{T1wOL{Bc8$3i)7)aj!oSMq17VHN%%+_V2&%Hd@g@Fp)u-UD!x zWUvpO^eqHoP@I?JnSnilx z*JusKQm$TtJdUj14SHdCZmTN;8XVlUlmP+%3>ue=)8ksEvoUiTmzOvzjx_G47}2Bo zgGzW6rCmt8t~~HXtmn*VjhSU^FScW(D>j(L^yOwI!nT~&7ay1Sg^8$o)61scTd8_ zoYFmnbaIQDmKwU1S|45R1O2WfL+V@$8%o=pg_H-_3m$cW&rWp}Z%nxkf#PVeLnE%d zY9)y^o72djFiK@I=)rI7wr9e? zt%l2EWlU5kGd>9Y{08hU;}}wllSPL{x117`rH# zu7wn%$`gqnqa*dQ)# zcA5knCe`UsIJbnf(t?(@5hwtxm+%S}$6NAYYOd=~E%z-92P|*~1^H~-2F`ZUiL0gb z`0#M6RZ-FAa?0R{WX)zid7k_j54q2?Mj$QNjGXZDbc^@_3ugo@5+I7~hpG+H$H8Qq8i^uwUYm2i2f(@p0t9zfWs=$EFLG2t z9O6QL6n24@so6pL*p;&5jYulvo)W|-sdFI(5RIiIkVXy&y1zHUybon5nK~l6n0x4( zNzhX0oTsPke-7e*{kG!Zb~q^wO}&o zHAq(Psrb?Op`~_K^>^p57aqC>FZn4)<`LYY=SmD<+MmIyZA`hO-T9zPCAX^;Bk0=G;1BL7qgBb$R|H(56LOIOWs#h*&ooFc=0;M zs#N}=hNUCyK17+c#YNbZiI(1;WLYugj)J7Viqlzy`q$&8ZM$8do_k{;$5~}*>FERdJDREI$$;Vf30OLD_?K=U z%QGk<M98-83NMYyY-|ZDJ^ijoax7)N*?Z($|v zB`W*vKD|{h1CA0^+SE4%ZKX0{#Q9)Obty1nxv3{03B#*1`(xD_cX)+*)3gj)GE~nq z8MarGuG%8KTkJwh)mqD8W}r7A@Je0cej)~9Pix_UVoO6UlkN{Nnfv;180|qUz`$}X zAxT=USk>AJ7AIFSr~;N>fC+WuiFp&eqyW%kuV#(?p_YMcI=36;Qpbq9Iy6X1B@@43 zoh~}f=*9%<)D4NYZRfQca~Gk%*^_*BbI&z9u!1MP;l3@l4R4R6_M6>c?OgAFcAdLj zYSY{GJN2QYHuKWsAfvIJqKR9(@7cZU2$_HfCF12*fC{qjWFTa$9#BFpf zebG(R8(2;L>bep{gkA{%Xus_G6r|cx4n6q)*n8`^sJ6CY_!uCf2o{J)C?zeRqzqut zEg>x;Al+Re0xC#{w9-8S(lH83hja`n%>Y9WFbsTa?)w~=`#I<1;rYIQ-rxIs_-nKG z?6udm)>Z3DZeb+wm+4Th3zx{Iv-37Z+s~IxL93tMqHd3iF&;(4t1p}G@}H}2E6y%l zn!mKPk>hSCH0Or-kT$wtII?kl2SvgEBDjR9xeuH_e9mW@mTEnm9^tYcda1tBEI(q> z(D(7JSohIH7^8f_|u?sq|d9ZZlGD z@T7s$mEyvU`!wkIGmH<|99|0ZPIP)Kk_QwLTHwcC)S(mG+mWcNnyy_zHnul=5(o_a zD3G+75hDI*KHfqw+Tu(z^;?))f>Y2}@s|SXlhHn+GK$MEz1^5(uMX}aJp~#yCu5dd z)wtZ}PnX1D#kY$gO8Vj^YhSbHj%b>U6UX`Jb%q@X)ZI|K?2DfMOcayJN6f+*jwSc8 zi%g1KZNt-;`M1VfM&CV1^t*pW(Hp=?9sMaAJ}8sy1q|8`lP^|ro_AwdKgIT^N;=I` ze;)OlvbSCII(!G`;9N|qQMpi_4BJkL2~Ku2F~)00GqI{hr2 z+pL%bo_VgamiUbjR-=(E{!0(Qm0A87pIy9?LLc15F!5 z1`1u((uPg?_@xCL=Pc$It*6)ssGW2`WKJ2fR=++lM&H>d8#>2e-=2lcmEsfK0*0Ef z{?gxuiO6aV!=}9l9lw9J%*d3uZ#LE!yd1yZ#me|^tGWC>EQVz6M?SLYy>3*6`;-yM zh{scLqbtsOAvbxkN=vBf+~C?awXt zP3k*;CN}Q!b608)siFJ+*d~}>@U$S8SkXNQKwis`Y5vapM9~zY7}oS$8l5g`|JXn z!{YttlY1~B!v|B>JNu#oJ#{OZ&TH4k3oR`${?zBLDH#W~w)s&fjr+#0gMM!D0TdXQ zZ#mPg8ec>GV|g5d#_`7OeWZni#K*I;HKSz3h&QS zb-_k+=EA08q19F;&ik0D%5$l$D)EnuxD$D{PeBDHvnlub#A12P!%-ttalbe1+sbAH`(`w{pq|1)e!!C}5hktqk;mbwP??tVoU@u|p{%F9UiUAr z0!Jj(lNsWSd3<0T@bDJv%rZaIr8BA~;9X969cpJ{Fz2E#&p&%QQk;nT1r_TZ!EM6v z0O^Na@o^-%_!?P%)dHyWy;b#-N(}_;klia+W;gArLudePi56LfF5h_dAV6y*OZ(d? z{6W47no8lXyMv%{D#%G_wSIkd0ToC2su!!tG&9gQ6Sdu2rqcM;K7CGJ$bw3y0f>6v z9`w3vL!8Fo=ey3fKe7w-#dnN!cxN{%i{Y&dLs{ndknF-$YHsxQxhYWO0=SMsfVa(H zJ@z5}J^NVWBqaZEnm=YNw2gGMpj9Q!qeYVzG)F61asfX1DF&muU7M@S<%k^wzU6t( z9yWyM_~`)I3E^`Cps18OD%KUR9aM%Z}%r+aL<9(82u4j3;&f&FyC> zZTCdGia7_#+p!C7b-Fgxj~d{pKysyY1<|40#v>Hj@ERx^P zG1x7CyE(2~QNy+c20^*Wu7E$f44aEl|(cWxFqqNqT|XW`2&?wgr8XVpwT z?M=<>x1YAIJ=->b0Y(6wppbvNjLKGu1zVj>Jg z)CGcXh~hsF^VyFJhX!U&%+Flx z;;>h!XnYCB6f?)9l6txh=TWD^kBAduF#aK;mid6D5)|Q({HU7ATKza}U~A@ynbJQ` zQHBAZ34wgABN~RoH{2^7N2xlT!!N1zW18sD?eK#$V(3IA7Ajarr zUI@>xFJlN=9WJD2?%J8^BH&`LYO{9auVNDDMp6VW?ffZwZ`#z7bkM|%zXk} zk+NNuKtYu#iYaO-Pv~pwUbN|sCa*TLDTr1dzH3DY(C}Vd?oD&;*ZaS{DwxJ#pk`oM zq9s&`+72YUrB=)n*C03u`=w<9E=M{-95>Iemt&gS$(liKv`p9T`5J`iJReM}qhn`^ zFjvs-j_jrYOe9!=hjYveA9LSW0dkL?wm)wX(~R*%N0qfZAKjN>JiVW>G?$@&r@b^1DurwSavDfgxaf1 z=1%d$#2Z6R|z~h zmHxmev(KtrXw69uYV_rs;TL^uSB$zK*ZMg99S;=#n+@;9^v`o0mc+y#^@N@ZLfaA^ z_hqlaupw=AeC`$?7>1|FxKFXI>du|>mOOjv{YCCZ4FmnL+9P7@7B-olWQBQ<he( zhkum!d)Y!2ztF%+T3vhoSlU93hT6lRD_I3@RqF*TDJ%3*K4!@ionN42mx}AJVgrgZ zJZ*z2;>LE2Z`MEaO#7;+3Jg&#vria5*m~Zhc`?)LTa6Mjqk5@cVptU5Y?M;bL;a@2 z;jH@le$#8779>q2Rc$pC;qrxkh@^7K7275id6r|0GDkSKOMP?^6~`M^N$HD1A`&CC zOZ*5YcTh!rz_VhCcAC-i(Q#iQ-Whw>m*_iM^`#P23NU}|GhXGs*hk;yEuFZxJr>%F zjSpDrW1ra^iHSl6S}pB&ki1c=uN>;Cbxurp3l80CfTuRhyT#nCl3_Qt_HkHbH&x3G zN5$(x-);KPxP8?Xt;1>db!0Fv$yu+A3pFg?s)+CZZux_120!)Qo%ms!9di2=gY0ZB zpD=sFVM;j~=hZiyp#|pBBD@Yxym8SL-~h9^4Xmtq>!~d9c@-UJje2bnGi@Z6%{V)@xjMC{t~1tp-p4G+AqH`I6S_%&H0KO?d7Jil}IeeY6QA~=XZ z;+7MJSzoHx+p0G^glbi5r7d13N#wDA4bmXEyLjSjRAp%gUedW@_cSi0~kTNO#SZa&6 zch2Wt+lkU;y^v9Y%69GLKT#-+;EA8xL0d*O4h>NAo7R72UP!eLo3;sAYZvw|@on(L zY>P*8nkQ|wYYO&74|6y?m>BWCFmj@3ag`bt1{_6aT23R)Q92abZkcx-Mq)Qx)~??j zthb6@;XX@0NQ!#&Yx1KOu>c{Bwxov&P(X9}J#BEjI5U~3t_~I!P8=l4x zRopU}59%RDb2;bSt;mTWkD`3T0i0*#%gdLSI3Kv{*iZcFcpP%rBM04-YdZxHU-mJd z-9f{Rk+YjHHuoJ&&waW(%h8^(XBdX$a`zX`T)4Z8sd*w$y*xtwA(kgfTJx)oYZqd5 z7t|xHCayVKgQz_zsPyDTye*N3^~ggQRNLSKbJa^wXYNFx-b0;+ZU$way<0!A!S%cd z^i+{rB2ka>I#nuau3##ZyGR}8klPXmkyLt8m~eJvgcB%ZWtCGAScRfukPY!PO`ei^ z-Hk<6pcUkChJq+qJhvr#2PaG=hjszY6HoUY$P15mV<7qp+lV=OaEqmlALR!0Q;iZ0 z;ZwjeHE#L57wZ{DXG6J>MwZ?l9;&;mVXQiLk5Rmt>b1#KMKlTXwMM4Bxx!-l&$+5!RhU97EmLPfvj=ril# z(-6|PJD@i^MpG`Jdwwv%B9ajHU2p@$*frGCkb15A?W8Y!RK2uueg^)!|jd`8Yv!7c` z{{WN(`b;Kx9AuBcR5#?Bk?NeyC1j}(=mv8x-Bg_P}C^B_lu)cQ}0_XZlWy) zU?cuoYh0igAILIf%T?R-MD*0k&R$>p6gZA@3n_=Cx5?MU_i$o7F0r@>6QDdUy_fPX zcNs-N{6J3?2Q*R7NFG*uM^&dGQMBT#djm!2Hd%G*lbvWst#_dX_RVRZh_4&;LET4t z(BD81d7O5E=j<(xQNho3lf$&OE|x{@H%mrAgR?8L8_pH!WJBDoi=$WYPyx4ixn3`a z6s9m9*J?F;mCx9Fxx=;b8vlWO{?^C}a@Jl{@5CLyqPGaiNZ8ob!>}u_+t}<6JhFE; zkDGcjiOm9VW1PmV>iI|xBot1v&Ye9R_{b|77m&Xujx5rjJVZan&tTlJ3uN>>gnz-q0p}!08Lj@NeF-0Dc8Bx)hbya- z0Gz}>>@K`Jd?;dp1xGayb8K+J05~;v_xQ;Urtb9sbkVE+rTbj&xLx#U&V#HKJ(`Zw zIN-d#1qS(~b+*pyaCS#tS=|CtPn2*E{BZa)kqcOGNCKvhMvlX$K1u*NKUe0&9rhg+ z(F19hx=*33Gsn$33cd`$;qORdJD|QlPBLQKh@P$f@E^) z`_BJC{*yu}fS+s$(L8XN`+0>6%+6=wwau}c)|P>0N{K8y4mg zmiNdcXTAX}0h+1BtsSOC|0{t@(S7^ceH`RD#LvH9iM#=Wh!ccb;7}|d6<`lReq8nc zz<+RlcKG!6EO=qf$|rBZDpwh*)4Zs+(|s0XMK-+}iP7qO&?W@+(kyZ6U|a>MKPQU| z4=X^t5|P7Fm~z18-)Ht8i+->PlkAr*MFJsqT6ljjonRI)PT6z) zW6RSA*mk$XWZ_`m%l(H4PooAF&Gu)V+_6E&RtBJAzb(3Te=MKn01A;ju!A%2Kg9pz z)*Noq!4+Y&NI2fOeu_lMHPodWf($kb{fZ@8DGf}Ze<~4^dO>(fidh86M{6x!$Wt@Z zic`*Uiun=6&IUri*ee{C?o?c1Qle|f??l+uE;7|m4ezm;Y`6$KV>a7vD<{i}`i7T^G3d=^77hs0 z&-YiuKn4`_)n=LcK#5UerNFGGA@(Q-RDXd??ex4KKT^(Msy+-lY_+LtRXd` zR^eq-{cwTrn2}uUZS%bOh5NUIFLtZ>f#eQa(68_cY`D{BE!6zrD<`|x}Z zmvPO@4tGp*X1YoUqI{TvUaAhytg~3xbGr*wmt1?+WK+%C5ih@>NZZL?b!gzccwVy^GPyC#W5``0-r(g zMyv%)`h7wu1mRLf7$HM_on3yo_-Bsk_mMmVNS#Ocn~jtzrpd?C{PeGvf`Y7U$mak} z=>FXKWeT1>_EhPpNUSToc25I}3Gzgms~4@RX-9xiVxgc7)4o#kY!K6tP=7{$B(x`6 z^>hmX(qU|OCLZ44~Ar)>_ zGlc>Xf&rh(8IoUf#*%-kxpf>WYO z_3X9dxvXXg1wJx(C!k9-K?ptyIm`h{5rm&QvsnS3n2?r!@LYZ1%buenCTC|R z2G|LnW1ZkO{WSb`v%wYGL8%j&N>#oUdEAY{s7ZYb^?lbdWKhMpD_fA8d2mXaSyxiU zU1OJMt?rcQN+FZCDQSk?u5f1@85#%FiU#%0%Lgp>NDlH!WStOLCp`uyi6`rku*MYK z0_Dn~xt5)!R;%jWdSv{k9duIRcNE34Jof~;Al3f`Aff0@tl^_98~N~(F2l%hBsFMN zw}5h8PMq%lD`+>z)dw()IrO($L&Gh{(QDJbaEz!^{Pu7x+X%eRW8=)YF37?H8NQH; zcY+VAc4lk;D6iyy{>9ANaIi0R|5ZI554(Ha7Vt|l6dKBeB#ZA`m8=|A9Qn2aQrkUu zbNDYE7tHTh-_FzQg1kDq6tjQDcF*X}T8tLjMxA$_Qs>762-ujH#I{1PG=2l()}I6S z@%<1Z<*&Lpl(kDx)0bx(X}8ole8Xn1-mCCuERo#j?W^W3^KsE#lg%8Y6@`Te*2NL5 z-G<(C_oBeZCE^;t0>l6s0uuV#79EN&JM6m*D3!P^ZtynG8TGDQn4vOlZ5o}du!Mz! zRLU3gOoy_55(;*3cO%vDxa!y}$=gAi-F*G}$$@>>yD2uhV_POc9L7{k9NKuCkM{*q? zzsMw35pD}jIGRBoK21`i$?{&NmL=yH^+ekbh4yf+XDQ0VLr;3}LpWe?E*QiTb)aN!W?~D;$p?M$>n48pGUf9Gvd=Zoh7&0MLgQ{wUPRxc|A7)^yU_o<9gKAn@%qK-%q!l zw~0?o%$dp3X!zt7XvTLMt_-qNIW!pPOlN9Cb6^Og_}zf(5bq zx2-q5_PhDV8LiKM#>UCUw-I`ZC!RU^dR07#Dq^vX zb=oiJ1}TxHX~U2X2+7jTdCFNKwY!}iJ zFC^48jYXU6c8t>fVy8579UtJAQJ-34A%NC*lFzyhSwk=T%CBCaT(`%D#$z_E20$`t z1qMKZb?@g2AsaiT&rBt1!;lzaiig7xkdX=;CH|!9hm>H0)w!dr7LIEOQ^+`-#6tiB zVfWGe=Am{AZr*fs^inc10cCdt9_|7i_mtslUW$Fze=FO%j4D}u1pRhf%X-)_v;wE^ z_vZ%EVHIp~G`nv=JdGucop?6;;Y^+qa=~_}{LeI*v;9lCFRxX%s!*mbsn0Y34feN6 z1=R0CS|e(d-S#AgnjcZ$Qhe*NT*wJx;qg4g`Gt0&?T;XFRsr4O(z(4uF)V9>0&MSl zjAT?^iB#)g(Xcsn`$uM7HqGCWfZ7dPHLexzc6GqVGJ(3*2W}yOSQug$AxvWvCyc9b}s?^Vl`hn7M$Btm_|0; zMA7TP#Wz721o4NqA{vEPSOe0Sf9|%-H|f^ z3K^iCpgq$D@vIXsJBYJamZgQu|3+z3=aq)1+y)NGd=A+ZUZC@UjrJbb34tp}WP6TI}_(ZWF zlHB(@RAmp&{5U^5ymwmxyl}32>e(F}7++w^I+{`!A9tDJZeYI}h-gtieB;U`uueXc z4{WaE41Bm3|8V7uwGlEx9K;SSUSnI>`l8h%H;4{b>d324&%g^DANzb1aWIesi^mG2 z%*Tzxk;9rd83*uY><-^Z(gb7J=?aS-+v!XW1_`lFIW%gYI34JZMeLdu(SO{E!%aE3 zA}j?job>RzMumg+#h@jmruU)Nax@`)YsA_mUsSEe@g9sJq6}6ksHwT`(;;=vOy@g;QacsSI zILJ3itaFU6dMi!<2fCx+dUcV8!1DHO970f7#&XJC(;o!K1_oO^bdSRJG!E0ag*7!k z54St64~OI@Al~Gy-<);_gLs9>W4%d^t^E22_l_jHKfGGNAl$JE-iOF2;)Qj3JmVlb zbzD0QUmzGHh?d6>$4fv11^3pN8}^P`%EOQTaneT=EQwy}`?y0%@lBEz>`h8pciin` z?u`g3_-f%dJ>26z9u{##D{cjxIeIA$o{l}jx*9Id-?)5m3-qhU5)J*03LN%?gU+~s z{2Sma%mCH?OVWyuHWox!P2Ay0{_ij1;MFS;J^)UwViFM!_;`=NAScR5&L3A58G8e! zF8q1-#tj^B;sE)zN0a3q7hwt00Yj^C*5+q9KrF8ZSU*Ux&QrN_hXWsZMI#QtvHkHF z7dho}z`&Og?H$LS3AVE9Yir7DcsPrq2f!ire1D-kNJJLh8XFwWHZ62OiHrSsI|Q1+3$_I3t%;oN+Lo)*prP6Lif zecFfl0CkSUl0Uq{K$yU;q+=t$-oYDQFF}oG>Q=R&{Nt7ze~Ffa@NvxUB3J}Ge@+SqKwO&r8_F$40Uonn@kN?7={}tnZC#L`V#JJ++H^~0X6fz5T1#PpE6SqKf=r{R{6P$_rA3xuTLLJh;>ld=OB9Ar#C~^!qnb}*!~@M%s1tn7 z+S=Ntp0X;%dZKQ1uRov5xpVTez|hNr9G$9inK-`hPK%>3dG@lDX!Z01wJYu=P_Y8XRdT=gs%-s zXPzXB5k=q8t2Fi)`*y;3aQ#xD+(G?(z78Ny<=3x{ZT%gs{w8Vu^%Fc%Y@xraEUMu_ zkQl0Gy-7c(3QYU*UI}QEBTq-03V0b>su!6=fVwPXmOYgWbaV}jiKp9`N3&E+C1qvV zNJO_hF$m7N{`_QeB&d=8h?=0mBAVASFPtgtSxl>=VJU2X58YZ$8p)=~@c8|YkLBms z8$M!2l*KZDGLg56qMoG!(@~X{2Q!cZ9D^Q#p zL?1MDrb^Q@&`z)cD{q)TdwGMi(Dh%v!nTz{&2FLumNPsA!d7E6#=Wfiq_**oJ$BZ= z`4JG*oThC zOz*0K?iQCe#XEFCDr@?0bTdD+&^ zPR#RDXD)=#bs2qx$MTqmDrYLi!0Vc-ez_{;xjE}U(fI20IQAY!-xfVsgixw*Ft>%P zlk7Eou2q71XfvtIJD1t=KIO6K&uHZmmcKv^F{7F(4du{_a?96`u1*Bc~8c{9$#S> zqE%+|J}4+itDEXpf0=6ut7gHYV#`sz-T;>7uf|$EGCu~>1IJ8uUF#9IBxAaKV&rfIY8KV# zkxO;%FBwmw2^env)k&x0^4k=e;Mv#9iJl|6*Lf|>29X1W;)5l~PnJ&3j z&R*kjs}`~rM9lY?N+>75<<7fv%>wo& z&3(F_v`b4Ca_!C=gZGR(OW&P7b4I*>w9trnt~>L|8=K^@g@HA|nT*Qp=9I!kw?Jzu z)9+jF>pt%oSuP6nz3dYNBtd`oK9NZWsdxqR^27FL2yEd8lXRlPK`*8F#e|QwrLH#%G&%OOiDtSw)?$zEQHL60xXvI_w@Z!mOPFd^D54BsdY(I8h0X5!n-0GC1%EE z<-5u##i=G0I@iqwcB40zeR);uOPIXe51h&M4H+HDQ(f}H5!0=)1DpKtj}Z5A2R2>Uf@X?4X8AWD<6wPWPy?)u2}_k#^I+*5}}Apn;V!iyF68Uyk~dNDf^K z{0z&HN~WGHl_-rOlZLVH4_hX@U!P2M*@&4g*08?%Mr~2x+>1nEPtoi5Oj1fd8*)(J zeHolvmBAB0v-{0UR}!x%e9-boj>P#+Y*K; zHXHoPq#6k*ERx#uh9S3_zST}7_Aw-<%W;x1OdXuPzOv(uZeTVheQzKhiJd+bjpJuS0mxaPPt6hgs!l0Hl|lFLA< zN(*m2_MRy_8N1dUME*fA=KVatQ0uQIL;hOJ10@MZ!s6T$QMw`l@YS-K>NY5iz+JCj z>nppuSmOPnHz(R~pfM~x)wnClpe?Q}lvdoKu+n;hVf7u4tK+r}$43JouEIPpJF#$+ zpMa~Pk$#PU7E)xQJ6E^KPSKf0vQBd{$7vUvsh>S}&fiL|s%msU_}yj3`NCh0^F!)7 z<}2@=b2K<#FZb4f3O|xz46-dr5iDv_i4gZzb2XMc@L&h5_C-gO_>-I{c1)#xN!JFT zv8Gb%33K$xQ>Uh4EvqAee)BFS7v>4`Q2L^9)17B`gMw$)USFTzbt{g`2Ab zwlf1YQxkQ8VTs~_;f|w=^ppZ$xwD#(8Z=eWq`@V=F}m(Wsi1?#kDO%H8?|s|C+%uC zyh1tPE1c}pWsHWKq?*I~)|b~J*<#J7=HtMOizD1O2aE<6#$;OyevrJ`-}9qR(dc0| zOzb&7vw`3Z{`85aP$qY4YpcKMxry`otl~f^=Y1K=xM$rNiZ*D6FV%C?(|Mi_h~CGY zsjln3udoCjT{!dN+pG2uwd?Kd+T{(Ki-Kkbf$sLCZ(uf4S!@Bwh4TIF8EW{#`uz8| zw0^{myFUIe>elBp5-s6v&G>&IE(tc$mos95@2~ayCv^blo>vN8@NMs9lRtX%G--8= zD_imvL^l9J#=`CAyRY7Jbs{zI-SinW8>ve=InztxX0>ddsa2Mh58t&rZ<+mR4UP1C zwxq@q=sw$@AEpKK&^Bz}gR4SaHm(;xD;=E6(Y?y7T0j}~%kT}B>ALqiCWmFKLPJKX zT*zbDh4oFGkt0IzQ^f4@V_)<^$%wj;ez7B> zdf%O2e|A~3+x(|wwIHGavtxL z>pP+S^n{zBVGG>fpju^Gv6x-O3T6W2(h|dE2AMnXCpTxg44OW|d$D?6Ozb;A4cluo z(tx&GA^V(*^4ku-XaImxGHhL`Yau}Tm6`M!Y!?`Sthl>BNM(dQe!sbE**i4FSr<5a zdR)+M_I8CMlIH@au=ocmdX8{5Qwza75N-y_`MF(ba~x{tIlux+tSI=;rddbPkBAbP z#8+&w4ymTCm5KPkb`VN5<Bf5IYHtViR+V3XOM}Q$PL5%nP@(H#uG!m^fz$ zJ$t52wO6vOph?c_k@KQ$lEbp9XE?`(V?809MR#P#q3HLuH)@vG3C^9nEH5v=MsiPe zW1jczon}~;LaCMBTt~7W$dZ%lOp(;5($C4DsU-YSc)+GPu`#kw_ydpYdy$Yj`HqJG zimz9@WB*(4>}`ru6W4ey5D)}2Jz=1zXl)mCT#`tYifA=QNXgW~D;yR>Wn+0Hvy_=y zr@PN@e7MeY>1vj$^n7>b6q3J?-gLUfFdi@j%M^t`X`jVQ~-zug=g=0PSPBg!^o=vDIdz8J~86sLgdg zA5v)4K0js992tW2+|sG+bc){ShMyD**lHXyJV<|X(gLUw#3JVY|4uLeg+^`%XLv8y z`VsfNUbt#L@tb+5TIXD=rqPD#nOv_&WyG>>54hr zLBeX8Ew?@5Rtssuwb#p7Lhs2|gP$Cq|J{}#!~yacBLLz_ihL{F@wkU@M)aDm-*Gcz zg<%|myYsZ+hGi}r8s=$R&NkbtpyRo(!{Xqa-u7s^Ea<*eeGkE|Uhs4mgK0G{x^(T@ zZLo2q9MHQ;zsqLmROXeFmZH;SV;g~b2RbwK)Ls&Dsbq^6bSy3^vKoJ|z24Qnj-Iz% zWIJs_x^sq@s$tZ#J+jBNuK^S6$~D$};&&8hvhz>?Irn5X6h8)jm|77865;l&e`Xxl zJ05%m?-I!7f3Qus+SR@}@LffsTn*|-8xRrWQ}O)gYVoSYaCu{IF5JwZPRy(Z4uL?p z9G7lLMzP0tXoV*N5`(h;PK~3=nz5OY_x z)UR~ebW`ii)igDWN$fFIjzaogxL5M<;ltEQ(iF!cKHmh-Uxv>6_MLQ^8xbr~{y{-d z_1=7a#(^T!sOsF4J%#%T^i&$bf&$Xd&(>s{X6iz#-R>=COVlpw=@A?JkguJJdKdN_ zXrnVvL^qAQ_QHqCY_nveq=C3{UTa-SI=NLB%55aKZ97P<7+9O7lAUTfS{=%w#vTO} zVA?$Zv6&^QLLa}?Sk&scAGI_f@DE)AnEP&%Z@;<~rFOYrIRLx^%VD&c=8x;iq%-h( zME!>Po=bS8LU9g6422wxBGb7&V^hgvxu>R-BJmli3ut_OwxiZy_~Yqu%@PY*fP#17 zEn$p7;5_zdb-L9wGBX0O{-%%l`jhbq$d6NPua~Lack?R;e_t(ZYl>h=l~1gmF3yes zTuWL+@VaCz?FcGp0AOy*qNHBM%|&qtd@6++H+U&P4uA3o!#B-bE``g$OaJl zyT19mrgL~$8=q)LEK4<)^rn>ua>RYnrT8UJ)nlQtu~N{VN!$1QwkjbR`}LcZo@>*x z+b(0g1us`_VZP+37dE}dTWe*=;jYQ9!O9S)Ya@s*P3!D~V1 zYayN;U?`=Gi(s<@kWU=Ht<>fsT>cLTdx-JBUAA5? zKsQTB^ynX2$2~Z_0xu*`9GE9X{_uK42Zp#vM5=w<$fdWufMKtQN!Q{m(vK=|ektWm zeSBOd{sZg#TKPaObm%~nz$)5dD`U2EI0GNKBWWOpCG7Q8oNr#L#u}!C#nz9VzPbmT zru8sRBOF^AO&jpD)sxc`9h<_QgB5w_v^;wlf+DhtZCJ)%Y2H@>Ya$45lUv>iEP`CRJ;{5K&@g$#snRMPz%OgAl=N$+T zkxx3+Y;as~?nh$H4Zo9cW7*`@fYZKfW9HbEwa-2TGpV_D#^o^a;FZW%tc%+J-LakP zlGs3wOVrQU4_n007-LP{8WW8@M=k`;g8jfIXSNLS9WKcqUg;nQeJ}Hi?XlZzpT=UR z7ZJfQ4tCOD0}?~#z8p^OXd0p^1CdAa?6j@+2hy5=?kpHX^7*y0V+Sof1=|@!PveJ+ zCUk&J2}_!{9XGWySOL7i*d6j&7iXRL0LCIu`y4xf_63$n4-oN_1su4lf4J@DbX+L2IrysABP`Rsc;UMCvAMJ@7{ppm${Pp#ABkWhTZO3x2jd=)=0Bo~*AEaD z2U!WYDug3)MF?taFCV#(IA5fpc|ej-fiw93O7Z{0q&WL&r8F6)vb9OF(RK34)zot~ zn=Qs?&$*5z@%%j8$d#J_5g^LOIDv{sq7F?yV2we^7qb=eW44SMO-#*e2P15zRv&9d zPl)wgxBvRgS*&pDI|g0wV%)3@>RyLZN&>C9l~apTew|#>yjT+C!w3TvH+|93MQ$O3xFrAAiCa)b!e!J1m$dDpVP-yY{K}=xna;$ndXc+Xf5r)()9P zh^pIogjagtv77MIWgZxlxFXqy1V8++bf%Chdu%$xvh+Z)919GCQh|)RrszL8U-0cIN&iv%+AmkIs%4XO0mQ)w1`T81_u*0L?oTocK&?IDxW*r6I zDJz?yf+eq~pvGaplNuil*PTgp&qR$5Se6eeezAJB8LJ`-Ewmms;kSDRt)}V`HXpPP zyHRF~=wbMPR%h4YBkQ@jAU>7}M3raOZX8Z%>d^@71q5VJvX>R9i5j;M=x{~0x~%uH ztFSw(OCo_o?R&9hePrt(Ye%8E!Aky$R^v?Sp1-WQY&Q8qUyha`3u41V*d5@5ob0gzMutjcpS+dNBjBnXZas={HMn;+y)_SmT%f!JOOP-?=;UcKBwqooI|gW z?RZPfBO8A~(e?Ig@A9f3)b8vihFifEpSjE=e)!cft7frBn0EIt~4 zAKXFPw~)rmV&t*%i`)XDTXn4(k|D328&Y4kecD_3mJf8ErsjXyrsbSskIr*R1*qIC zUt3*F8O-n@YJCCyPABd4YOS9K{mq*T=fvi;6mL`gzgN4q@VVzsNzxt;B7KBedWcBz&6g{QyU7 zGkAecZ{AM5L%GdVwp7uey}3bGnoM{YW1vZWsj1%99p@r@@y0OND|Mruf}aJ(6W49g z#<`CeflqhE@>fRYWJA0-dz>(%G-*q*5W(`-orK^vX%fhM$L*&X8IvvXYQ?)1keY|A zKK}PvWOa;ld2Lqv6{9!dk2Jl9N4I~SuYqb5KSD2&yeT>H^SL*T8|(6=<)e4)lQFJULNZx;=`Wk(&O$PH|H-{0(;0E|CTA@oEWr&xM`g{0J>N=efhp0_Uo5I zvc$gIc0{pKhJ>Q#KusC90jkZsxFEf(V>xwNDd!QBCRsIRl^ggE2Fk@2@qrafX8>lI zo}-hm3>?@-*=u)sk}kjTypEAFo1r71uDE#aw(0{Nw=$oRhJ<*y!S^BZVtm`l7Pfoy zcY{sUpbecqwzqcW`kCv;@wsd2ZyMg`?Lkd&&^>;CWp(WPDe@ireJ6-!jb*iLMcz)W zv^X(kIJu`>;4i)Z&j=Bm^Lkmuv^(VaPiX}Aol(MaCRYc`E^l}cJ?Y~qhE}-5c+!bt zjpiuUZbN?^qsYvGZdcEKU1HwrKFpI_m`@z*>b)Ndat0DYY$CEGBW2WocCq9R!N{1s zMEeX-fw=`neGZ!1_5p->=`s;bd|H8&{I?SljKA((30t4TOzOOR3k)|(d+J>B_q&`V zi()of%1sQqc6vgAH`sa4=e>(FAgp4H$;7v6q2hv?$B9>Yd3oI(M!r$-PA<%a71*!g zYf=`C&qPT!sbt(5NNA+jF|L~Oa$qClNa#aY!pk`y{L$aqsx1}H%+?N3({OX=YVbxA zPY!K&**rtCD-x5PzQSRgFk!Jw31oTkmA(gP=QXn4W?BTgDwsr_&oeR{s-VJU)ND~~ zJ5gt^UgefwW}cI=7s;k3XU!TwCvh`}{ z>;+Qbq{|!HURU3ezah*DZ0Mm~j6t#W^j{-N&(~z52jGJ7RI@@J3t#rWy)C${@a65$ zdBRW(+VSy6#bI7|{Kjx5|2CVACIcYnv!s)D@dy#9q%5mPYsKvIf@-A_oQ>i4VpDpS zFyFpW*!34D7hq96LkA7)|vT-=kFKwwG{ z@42{$b#kuvFi%5w-4G*xf5O^q`dODxteRYEy1aXeeQ6^ypGFEk$vpV#+BJ|Ar~Gn6 zE!!0>_eG1(QS1U`f4T}0(z{S!S-mb`Z$~KVW^$rOB9)MfgeOAO%zHVDgWqHB`~);)M8xxkVqqx?40{AsQ7;;~xzd%@pg&&faGC(AZZ>lSsud zBnCfW418Da89?utup2rL8(lSI)8&3|F#VNjy4+-RSuUC@VlOhp$Ywg!ZUkbpxxmDq zI-D*#=)PAfZMQSiZ|Hm8W6+(Hh8(j?r+}tZK@HF^qO{rSiiUbUxO-Ta>Mn(?sMPaV z^h&Ld=ZLCaCj4tim4&%w>vP723(ActHVCl|{V|t5>sU5hkMz7ro;u=wz)K)*(&!=@`{ai z3N>gmkh5C5{tgaqmGy+6>`COG{HvP)r@7w z>|*U7&4SN8yGz;C?`S$06VE>-+aQsVUc6>WZE2ccofoK{?(WG0T>pByGD}f2QV@;} zU9;<-*-XC=3*KCv__aSrTysry8z=@6#W(nAhiK2BkX;_&7;tJPBD*IPXy@XkmOZun z{?o0UBY_I<&gsbXtlOPa^`CX; zMlWBztp=MCvl?*;cDXY_yjX4HM*FTP&|XLYbM8X5IaLzX9Z>Atd$KKRl$Bex8$u0;w0DY33lNV6B@JLm^a{ly0nE)l1$tyug2X#VGlIdXivF_9imu)s`ehf z%zYy(gTdvWhO0T73Xv`%E!Jm|-Yy@8?kN3zd zPZdS?XtPoD<-YHV9izn)t8S_%CTJD~F=9d0F2ki4YO)7@_E`GFC=T`{y`BtX4Cpk1 zdMMY+4mvEPwUg{+v~0xaiwvl=$_zf_TCAwNYV6sa-|OeHyUT4%j9*1LRSMNCe9)T< z^u_s)Lmcy;{ailWqP8>=b%MWRqnQ8f6;ca}2(EBUeelynDb$jVVw-%S}_-JdKZ&Y>lOw)-0|Ku}um}2YNYo=AV9j9B*EP>#s zfJ0G8THYwMvQ8`Jq8A}TWi?xf0FB=zGeS9)vrB^9V@sT?i-YYDIqvyeL7s?t*=~m8 z*rK444~Cl(9r&#i^$Ak0axQkGsU7ndIJ)S09#-qRIE-Ecq{}G&(VgqQ(Uk;5%Y+?= zO~h&^WWBGguXecsvEO?nyHP1Df}CGa0LvofsCSBGkbNNEV=S>4zU zio6-5cf>&SN;K}riC?yPwb9yd)3z(pJGJ}?wzJR|1S-iGb~&sT#XYKh{m+KhkWtNJ zx!={;Y^V5fY9&R}jZsz^TD{aANX1-xxS&Zymznv;ib9RxuhY%v9H-GI05ZbH?g!&( zQXUOTdSKzQ{87>#ML>s`#)z1bLGzI8L5D1AOHS=)-u7&EkZ9k_9I6YxAj;Mpbb*Gy zz*$3&(9yc5ywxC~bk1hX!rmy{ta-rm!$r4=55T)oklSz9NL?-o!SJWJr64vtrUWJ}CBzuQDx;l1;Gejjkr3RATuFg{Wo2})lr`kis>mF|M1@|N zdbbf*kryWgPpTgtEBgNaKWcQ%{1i{?S1C=)+S1&O+Ksj_1yiKQ_FFs5**&%P@V3aw zk)hsG@{+@)os$ezQ->uHw$RVgpynJ*Gg{a6h+gu#U zAG4Yl=7N8!*T_~DS$iIjixF<=X>OZ)YrY_ov(25`b?FsFT0sZGC;mL6!KW>4$EfA_8R zCtZjst5br3`tv!~I_AW#nuTkW@cYL*7Dvhzj?0qYOS%+%I8~0FyWIbspOoO63Lj)j_u+jb-sOx2- z8_gF@qXpIseR_hOkh53%_KGCgp8gkHdTbWCr(Y+non^qY>#a#<^9o<>x;Qxh5;C~N zN%t)N=F?yjeArfkBRoZP9qtR2-d(LxSsd_6K>UGwaE)$)^ zEdktIY&msvZNx^l7Js+4`=j24rINv*g6{l@4E&waGMveMPSuPO0-%+WK zg`R8Gem@VLk0SK7F5(P1uU=LAJgVZqVY6bw`-fqYhM-|w|Ngc2flNALC+n#h234sa zqfdPmG9nw-zCEIsEAW)bLaw5BaFO^BE^sfmHGs`)$T2)sE{G;e7`mCiTA}q4LkZqr|>4j0VsxCmDX4W_?PEI&)A?wgy~*_&SsJcQa0z* zwDP#zk*1=i@`(&82dkElj-p#lXiz%v)zS=kdTwQf?qvcA?L&1gRn%;@{NY4zjjgqX zX+GPze=Sx@Nvcmkg>i0Z<_s|@beRpW>+$ZE>7MkeB6h=r8Nb{(o8WgVUU4j6FYT33 zgC{S{xTCz*wiyM=jhj6&!)jhf$F;v0i=6kTlFFeeod^Lq`CMv8MLxZt7@=J%;~vg~ zUlDY1z~7`x+=uRV?Nm)jg=hDLDfZjUH-amzxhjbGRL})A!7}q&({U>plk|QLDwBPRxqbrm94cg33WY19 z@=B15%{dI8N~F%Pybx#&0yRyYJ(xswO)ispcQf5mslab>CHh|iucw=ttuViIb>VGV zs0@PLD7QsfU$tn}{!<9w6*Zh&BY(ki3L0A}obR(tMnxBHSx{bvH^Zi%TluNgcJW0CL)!J52TFxxyib^PkFYy^hK^vZu+hXfJT(#<8I*u2cg)l%MnnK$$)$X`^#%J7U)?@0G85N(QH)#V8+87@Wr6_8lp3DW6& zF`1q0k@!jP)Z&12o`ARK{GBZTIX8;3*8+Ot%E~C}ljk7P?>Qv zv_$DNRz_m}Aq)O?XinqK#_0(b#GXl>em-mlCBGNvWG7b4<~85PvSWDn!dOU>H^jwm zUsuR_4ARUn&5RCK*f+2)A9>gh}gfqAma70 z$Qo9iDs%*HY=7CiER&+_asWfV#1=}$ak4WnG7D}5v&usX1NVPmO!*PZXR5=&fSPUZ z#;44nf2yp1HNW3+kcG(7m;@TdoH9`3ok>ZIz7cJ8KOt=Fa-g8l#Cpj9fyhxNKYtIc zHKPMlQ#xZ`zEv-KRVFfIXR5?13QgYA_2b}O_!nF`0zB6$MZOk$2RE&RX>HMg5jFciv*oKiY>7Zm&j z`9dSCQ=V4}l(Fqf4%~6Gf}FS>6xfona{2j}pt4ub0>4_Bwq zrlcyf)MdDG+=Juw@^oH7!3^VZFyWMW&&T&NcR_Tn<7%<+iOk#iRC+m$Hxd`z_-x@0 z7|O8s?BrrPZwiUGnnB{WYqfuw`H~;Hj<{$-7kSZbomF@gt1 z7V2R28D>h57kDmBnIF=WTH~2>Y19YzRX@p zYYU64mwjsspQs6ZG zo)y$}*YL4K=T7+>&=DFGe{SjLzM6+@JimuocvxCy-zHb-f_q!ka^-L^V2ax-YPoeF z2jrLdC)+V9jvTh#P!=iR_^n!YZ5qY95TogeUHYY__iDDO6#a#mLB#sI9r^bczHe>r z$g>XBS%l^}NJpQ>Fd7JnW*sg%KCK)H^K`)`4U!Nw?VN$ou`9vhIlBD*g0Z#|mY6Yk z%U*4DV@HRI&44{eT5E)W3pU{?^GnsJn`uJ5Zc>JWCUK7^s> zFqGDA5rSI-GuvMn{;sQDO zUKEUadb45bB;`VrjCs$$!OX=!O6p@Qu=&E(*7!?lqnQ`YU2 z1^4Y>gJ!EQ)gAXnqP|qwE#_$DMQCMf$c*Vw69RfHA-dGpZ}IWhjYuDU8~)Xw`ABOJ zw7>jxlMZ&CPyy+>U&c81NTNx*aIm34vubnatJeq1#cQ}c%6;G0|CJL-+j6T^SR`WI zRvYD zE=IL>4@M_reB^-$g1j;h#|DuNj6JOr*54k06Nxn*xBEyL{?8YQoD{Frh&guk{^x$v4vj$-yw`3!hcWzXP3(JXqhO*Nfb-XACtKcq#^$b5V;*f zifDJqU~egvKNYpQ^RP^{!+aE6smU+Wy7eRYqHQ}*uxf7&51agza)7$@G`6gAT&W{X z?~O*eDDca!E&#vGNytjuvNm5iszkB66C#H-(E0!y`NGN}LoVfBW-l+G_Bi%Ran}}Q zeTH(BqNvNg1`Q; zj3;tx&xerQr0?4j*r-2ig!9k&mLvErXPAgZD3q&}b8Gs~7gX&B)MeeSq+&=Iu=Lc~ z)bAW|@A$UbEkj|^ln{!app~YPgxXNgt?r10@YNPzuF!EHU8b^QMW1Sk_qZu`UT|-R zeM0zHOa}X`f2_$i`j5Y#lkXk7a|L8+b;gTwUEGxBkPjM}Za5@I*8Hqk-GQi;gzp^1 z&?TH0C#n-bTo9E0)9`ow8Nw^i*V{vRC}&A+#$oB62l9la=KKeznXcEMv_(i#zk@=t z5C0#BJWkva6^J9!M&8-7D#hCNCdF)5r!MY;E3hqXZKjbFq74^LsO+lv0}HWOp-r=g zyt}^G2%^9Ws9cd!zqDO^gI4uCj-1=b{u-$Mo!=3y#WaW)%y-R&UI94X1Kjg0=~d;R zSdTL{yYTb5EZ3jZeolo?wd#i3l;JjqM0jZmEZe$bd8;=N3*Ae;q9p*`Mz27jg8wP* zrWm7&0EIJ(RJczWAV%4Jc!_1&8exyQ+D6|cfM8}Nr>bP)o&i>J&H$ehJq|G&WmMTg zfVI3BDmFt~uIcH}ynX|O@k8d*6Td5r8X$F_wTnI5@|5m#sb+@Hpd-j7`BSVgk}pLsKeT+ZGiH;)@^bZ{^>0NoaKO zV(zlAYX%-pZ5*3+ww7GzX-Uvtg4fAP#b1quSq8uPXt?j#Y0NTB(hVw_*ChJ8v$q$1 zH!=4fi8(Ui<8@&Wh<RCMDG2b`^3CpC2Xc#1YN}KJUx`^&ctQ(=SOj!j*sH&*ga7AG&hK|H~d1> z`O3?yMGVXfqKZM~jp-eZ=V5qg=}GrZ!e#4SdxDtpBBs(zj4!+B%XQLr$pnZ4&_0HV*hOd*=m&G_VbIxEnaaTa0p{YZ5bPXko*Y8LsZmy4UUR{1w*~SQ( z?{qwoz(?MgmTaaIWZGhq*qLwqEB9+C`{-GoizJJPADx1CdX6&1_U!h%gdo)(*4|^z z87}1G_QHHi(@lLaeyMz^ylS(rop5}*BY=iYI7s*TH^=atp(aJ+HGO;3GTE9{6tNBf z@ByqupQn1M2_A4pc6eQHeteJYEz@I2k1i)|kfNL4 z$x0>zgq+GJXwd{&iI=@N9LA%>s?>JRe)SfbtF=Z=!3JfY7@4PE2XG2g3-pp5dxB7} z2k{lZKcXPm-W7zcZ#wOqwI0onk+iK?J-^$(KQx~iST7sjkCX{&&KWB-7AyY(F8wlt zV3x;f&F3MbYDfYJ*`OPW=&@*3YUCDdoo z#!g{0z;xMN9bhw`Z?LB-;)g>(QUiLaZbz)xtPM#*Y&w~`6_01#$RGXcW#*%<9@zZ8 zfx_a`0X6)Y<5ySfLF_?+#H4zdwL6SU^KAm$a%Dw@pSo0Sd8i~~ zUBCB?8zRm{wc`{nfvd#LJ+0s8*-WXe`uN8$^w3dn@2FCbB***5bqsv=-!q>ZAdHNR zls)~D+VLbo9U=;l)O?f5$v-oh2WIZO;VR!icGi;*PuLu*d1~x1QjzXwdd9?*6@L|6 zeZ)N_5M;Pv%YX0HNfZ@#^dCv#(WuE%SMa0M}n9)TnDVXz5rdByCovsWP86*$tP;YM8 zBHL~djaN7BXYA+a_}4z!%YFHBBoGhH8Pmp-AH{!sTZJgVZXzVKSVu#}z4u2-$E@Kv z*NZ-qF|{5aIkK+JpX8lKbZ&L%UfiF(X5H(7HOpP}6l{8fHwo@6)0mk9S*&o;#n_(> z#eVIFv61*qRrMzBKn^6Pye6?@rzYIFa_?_00P%$bfdx8h)(sHQ@c`J1{ic zY0_5R^^w*6-AQ~WDV>_`p6dtX<0+|}XHmua01y8!MTKpJ^i(f1x!|8q4JiVPGZ)`7 z`dM^&P}lu)h0g#Si%EU(gLnYczP=>QV?6k@#P6QF*Ki<}E0A`E126uy0Ql~yoPx|h zANlVSdIS22dR<}>ulflLzazD$y@I?k^Y-Tg4?N<)2K;?$E|H4F9!noP@K%rMfN@_i zGm8FhUhwi!QZ~pPyZZ-F$=f99ZPs}=@w*cVc>(qz_4-?*pS<6rzB_PROcahxy@sbjUSx&U8~f6P~46DUecqo%R6v@Qh)rTP4qqw9Lr z|AsW!{^gwf5Z-?iZ4Nn-UU}O0XmG}LXD`7medTNL-bPzjyN+Tc7eAm}h(zB(n9moa zOri2(rX|ZXWREA$bm-pZkHHT>90jg^EtjejHnAQuS*5#{nqWB`_QrAbbN7}cC+gMji$3Z}p0 z?Oi+Au`6p#&)R;s!uKob4^o&u0dVuL#6rFse}#TxsP4Ei{TTY$M@`_E?`v&~{Om^k z?=tgZr?8;@t zal6>uQ%+n$d}{Jd3JG&QcI?=DXUVz{P9-5?dxmP<*Ve^(?Dpz8T31(BK&2QCDw$+w z^;^TTI8-sa9@{`XC!6rLr{~?=JQQyi(SBcw)R$iJZCy$6n`)msLrYJ88BAKTZjRGw zI@iN6<37tkC+nrCQhU=pBi_ImL9{0;X0UyTl4J=Ka0f$Yx3Jlp#B!A=aZloSh6zU z&w-zYBBx)sb#X*$0R;sKwOJTyV_*IR9y zds8-LMsb&=D+MXXvhA%%Sc%D%%OobgrPZD4?>Ow4adFfO3;*esa$cr9*$^IAN$YKc zjPve8jE{bpCI4p6{k>)Xe&F7d^ncjQii>4ythT5#j&E^sap$>>qP-ch^uflabB7*Wj{8}a4glS9?6)kfm*`>T_@Y=;_^-uPMBpxr_2;#{Alwd%xF z8mneOcblaetSuc+sw}MC{k)Pw>qRK9+0%gt94*LqZ{Fx|Tv)!NfW`41>WX-`>q`|g z6Ti}I4&pP3b<9z^>FxTdAEv`eNoTnRMIJ*gg+B_!InDs(+hU$rsrTA*Q6S5){&~huK9CQLUj6chF!d5;#=Np@<#(?li{T<*?;jU0QMUh zJLQQ6PHsEWt&9FueS#VQPfvHBLJi0)au+O3Zr}`eT(+bfXdM_$g}`=Z{dMz`QX(r2oT|Ci)VHH&M$Znzps9ZCF42Ytu-IMoqNLfCh z->~%J(XsIHF<4f3)!Zp?U_DOin%KAyHzl7gPPv^b|9MzIZMLLHz|DaJl==TIf`17p zO*mL_=F8;DF#r|1r^uVumQ$rtgN&j!_CU3Y?B$t0(@BtX?m^;~Y5U7xXN8aNifsQU zF{A`8xus0@wILGBeRF%(Ndbh5FteZpuZ+g~!&54B2Gu8~w!(|1Z~go-YKGP%0QMkY z{y@si^`)w=$!TtlA19gP2uZjeysNzXyTWyqBwPw-YpI43TDS_J9x?@9JhLFsG{F{0 z;o@DJv1QenycBFtQwK~CjXDj%+B^{dYOO);JGx^4oX0c{i@X9YHd}w4^nEH^2Si3S z$2@svBc}0zq0!^Aps1A>;LCGNI{c9og+GsaJ=pKi)aABr zb_z}<)ItwP5vf%sYn3P7(gT=%F>{8{+q1lv!3BD=ZGxL}tWL?bC7QPyv-k>{W8U#L zZCWH5D58!ye8$39HBbFT6vc_Y`#HKVThIQOWy@_awVUV7`F`6aQ3TSaPAiL)4xP47 zebW60@eex1eY4i1BCyqpp=YEE3-?t8#OMUu(p93aUQxZ!k6`-KhPzQoqM(43v3yze zd|uxEe+aE*i}vBWGD>V5NgPS!(vTM#X@*xXU45(f_|YAjM)HB3HG@TbwyD_Qo#@wW zRBtmgpC!Kj^Yq=hxZ9MR$Kw8^@fJ8zy})%$;g-UEM-zhEhY~UHA7Mm-V&AQ6fuV%? zGy|v4E6Ho1!tMqdQoG730-X=jhd=q;ORFLJIX5FcwWWf3EM#)>jHTgzmR4o^5|aEEScL+@&D1U@VPYLE35m8G2r`cY=8+Imy+kuq-@X{ zGvwl?6nC1m;;=UL73Q#t3O%kQ>E$w;fpA(*#X-XQTY*7i-t_c!Cb!^PscpC7&rJ@Y ziL`e#avUVYzQl*UW1DEMu^;fyr)MWFp0`_)g6)(pjGg1B2&GNaNPEo1%J6Wh9F-qG{&1oW{_-dpg@v9{7d@n7Vey0u_DHl4gmYlM z;zom+>IJcj6HNhOrF~kFqTn@!8t#maYfO)Py|@l2*@tE8PSj)NJTZOpj3zyw9mdeD z@fF55CrVT~cyV514fXX?@q|}a^HU4ey*VIp&yg@HgVVIfl-{X}mu$rRWbnHh0JiA( zgz;4LPqX^hpNfGLNLD}6&ooW96FGCDAlXvJm5-|>Yqf26Db3rb$?}zJEo45mh!!D+ z(pTZLAC?|=o#l9F(Ka{*2n<7Dp5G^P7&JKqIUD(0^ZW8OO{?&;oJr#kU5ZYPvWmFf ztBaM?Cm(T7h=LhM*6#I`xWv^RAy>dhm$h#+n~g;tA#4s4))kTHrS~?1HqpgJOTl3> zej!F1hD^AEg==|ykfqZ$swxVhQ~u{#S1phR+QyP?;r{R9Yas#xAH`fb67EHitywCi zDDjolO2&wrxHK;o=A880;)2#DB^Ou^XPhzG7z)?>v87ZbsuF2ufy%Rg@B1&e7}z}* zfNt%&G3rZwf=^$ATPu^J(LeItmPB=*@~rha$uH_Mth$0#RTreZwL)mmT=2YUdXisL z=hCHQ4hadBji%-|@#+%%k;PN3{-+QLqEL-Ec<^?6>$Xw^H>Y}Q&g1vV^A)4n`*Zpt z%E>v6_oVB+gY{QSoUe!fy=~7A1L}mjXQS7v{C|1(|5W$ycz_T%`G(8=ZAbt>=L?Ai zv~of*=jUDa>rZ4#Kns7WGF_+t0SB>t1eY|$){&1>Km6-ok3o4JJXD*ca82y3u{fj&K_X|99lqw$V`3u*s*`K}YZvO#x zmHJyuSK9BcWe~hndn%ouqtYys5U4$P@a(}(LI)Q6<3{`YyW5K-QG%Iu{@kl)&$zs+1lI=&^z|HE3m3qZM=gb~WBAO71v7Vy8y;oX0F2L3O>**gjF zPKMT!e^3J-5X1ld>;L|6dmK>MnciCB(ftWZs*$|Fb3IJIPjF^VQY7USnFkK=?L8oV zU8eBPpQ!7vr}B*zyb|JsG#U!>wC1tJOrTo7-2?ja7eR6vB=XO#>f(@&O zN>wr*82IPU|NQj)zuo?rJJaf+#wRb**AxS{AOzJNTN1bEkE|VdcX@X zj$m{{N)J*4vXGAT5%c@MdvLyOl0*iir5#H$oKz| ze@lSxy)P}*@{IYx*2$(u(zva0)1tpS?oHCI92G>p0h$LWXUjF;b1plN*Ede))`|d- z$@?P|8w$Je#`DNqZ_u@x&V@0YX3sreor-*&d9PY}^^LhZWU|dt?9V@yNyg%hGMhHc zXtnub@R*{8#tY+t1YIh}G2$n|8fE=AS?axB1+-^2lomR1j+4t5;j@e|V3T>#&x$>G z7sktUaqfzyMZNsev=ij;<~m{wmhke`O9e%PVo;3W{Y`pntMynt;e6Qi0nz-m22TYq z%&5k`4BHnOFN}Ym_$^VnDtT?v}K>vnC!{ zTr=_oRLQ{#4Aayn+7=c+H#W8QwV2^>y9Slp< zklej{)|Kk8f^4l|b;z-+)7@gY8ez%%mK|HlL99~KMF}r<&t+wOh*Z>q+iyLXO&zwo{+G zCvHxK-XNP7&U7Hk^^`Y+H(3vTH?>%6f=b>X3~27Z|K8~DkANS6IllPA{w15&GmIM_ z)4wZ>f4s+!vfySq?gtTi;o~#)$^@2XIa)Pj^Q1X~ceP`nmxGs=*RXlJ%JI(eda;I} z;d;}07k#iJwqr1&@^*IZt3bYR7GcbS;2%rgr-&EYiQW;rwH|2%zVbEwL{(%pNBYK4 z;SQ*`nwlu8i{bS6Xe`r@7S4|1iM>8;+zp|6a7_8o%#y7M*|?w7UaZ6xFOuS&#b!Rj z79Q?gQROePfJlIcaQeer9L|_v&%E4hb?o*%I?f;cj{F}B`5(Rb^H-|pKvyS>eZF+l zc`!vI-D}7WvD+oJ|D}RjzU6&`Uok9~pZe6e=f7SAD9r9dGzBGOB2?f6jP;?m)Xd!Vo8 z2zReK&@Wi;Zo>n5>*q55`RVxxiGtE>AV?SbzMMIK^)bFZN+2Zc$?XkXVB{lC#mtWm zbaWB?S4da|6iVscQ$fA^Xyf|}`j^zezo{~H4ZYjkcfHPoe);7Qg81SclXK>rluHG$ zF58^raiEg-zfP)67MJx+>s?P1iom%r(In#CQ zBR5W6=4h$7!EW3-BCH5}%`7gi#YW5Om(db+mC+)Vdz^us*GhBG@|YNf1hYnNNfd!* z7SbZl*ITA4M4?RgQZB0)w|YnIr}RO->e=*Xv%ja~Zu|6^SnR$=u8(jjgJHfmD%}fa zau8|`=hknX5M2-000^f5VIbFpi-P)cYj|8$Wvo^I+q9m*fXS1YxafBSCn?1K`M;nLdrsS1Ehw-g+o{s7a3&hd?pTeR=^?#&)L-dQ()9dFSQ z-NqRy6nS%eYBE7{|K2WUwD{@hSh7THXI2Z>&CO>0p2=d%`QiB(O~J=~gA-vOi&oI$ zN^j4k-;jU+u6pf(#Fu1fb&y7-hTySdC$(WBoXufNC>5pvbpwO!k}CbB?lnuU{CHN| zp>m6qRE{f3qaG*IJd}C43`##Nj1D`-C0C!=g}q1Q;Ech z=ciS(u-9x{@^)caAo0*pTBadYV=6m+;aPOq_U!wHML)$#$J4X`E+lL&;m?0e=85Df z*pR;)H9a)M@y(vMy#Z3Lw&+3dP{I)Fs3{Q^ zn60I+m}7e@c?aRttb>mm!{G~~%jVz4KO};-gf`bZyt9lm;xdGJ5xdSZ59g~5)T8DatAwj^O^8YXn9WyYp|p&VXgqyfHUQ$vaZgK-{T7+W+J<4_@%$C|#q zI@6jSn3+k{bjfALWi8fxLph9}HEYpKhKu#|L-Jsb%kgoeMpC_XChJRfFg$ZsW?d*} zKa#pg3=xG8p2a??EsvWY7KhKgP>KkX3*-;|@|r5d`=+sr9s1JK>ascOmaCKn$o(DH z+sHSvNG@ry0gWyw)FSSK+ijSYklQZb<1<9Ge!89eP^DAOf>yKp+Sel^+?g}#{MCJ% z{1U_k;u8}kmw2523JNKvostuC=+48WanNUlulLFfBz~>h%{?Y)zJvS5bl6UmN!_Gw zN&dcyM2a|mDc)p#(_|mxW*9qAfQ0OLZWd(hnbn2v#Mi8>I$=%;AbW?lN7sh$J)@(2 zNnOa)Id#C8{H4p~Mo0O9&1+xG4_J03hxjw@#!?xo#{G%X51YVK$cx)|8Q2RZ%Tz18 zIfk+}*_IB2&J$3)O!8XcGy2k~0PArThS)o{@rtQzH_dl$c zXYp*R6l=hzA&JS-&kWNNqMwTKv_(tlMt?=r#fwo;uMMALzQ(VS`dZ0J^tG@>k9_*I z5;iYOLhPM;kxjLB7ew6jn!J`@4V^iAmcwU>=^?p_Th_dK>XBg*tUd=r<1{i%jsz1I z$#mGRm(&?HJ7c|5j8MtpWpgW8=x9l3$gy{#u9AC8`|ck^H^l}b`H3p@*@w>TRjjjS z)>Y5cM*$YP5Z@Vc5%aVHk9VKx;tFnPhtkrvuVJ#Go|RR$uA1~2UF~+ zdEpIu>RR~#zb#6m$_U+i6pgEQ;@R2WHUCZ#5)xv!)bpwDVuRcVoS9$nz0-8b14m%7 zZR4pj^NdofjQ3noPNuFVU6A85N(3HJcX3tgtht*{7sTd;Co@NeH&10Hkyljk4=?+7 zUC#Q%KGT5h^ej{!)wKQgcFlY4`SCJa;lj8)7d)h~U~L9KtNyu{B0rWG&z2`IwT#)& zsJfi9N^myK(RmYLBiQ+>H_ko{L?^65n>|kEU_F@g7p~ch8BIORERf&C&GQW?0K+rA zWxzz7U}%)*agyNb(v0Gr@3<5ioAD5tichf90TweXSSLGk07WU2G&h9+UhmhhHbmMZi)_#qI|g5Kay=Oy>YM_ zjqcaT27UUn4ZHp%Y-gO2@Sez5^C>bw;J)=cZ{#xcq@ho;q*oQ4R+WTwX2Hewjf#v6 zN*!!F$9GdG^1MV>*zvEzG#qCnsI!-}Go29n14nq*pZz)W{Q}MA+~*q`f6&i3g~eH+ zhg@7x&_UCECR~S(DY~>}Lgn2Uv4a!SS!BO0UG23sU6EY+KUxd9~d8N zH7*zu1`<|@2vd{mlnJ9_5(QUIeUyH&e8{c0()>4VvqRL+pHbFhqrTy=0uTeYTHBh|85@T_OEBIv*ZE?znC4blNkUGZPnW zFUfM~zF78X8V$z4+l-neHYGx=GslMbYvTv*Y@KPo|AheAPnfs8!SLtgLoU`Sz?iU< zQWj@;XA5{f>H_zKi|&VxXPnCF++%`f9X6vypodW;Z+YhZnL3P)3|ER`}LhqUP0$+OC05x1+T9YepZ zBWL#L7YMepYMIAB_9+e13jU*R&B#M%7Vx8@Wr2Z)4j0gSN{)`}x<}rxGPwK5XPKeQ zKHO@(=|wp%KP)J&%AlWbYtEl-_v^!8g{W09(58zt@xpv!IX>br^9$q*MxLWoxdJio zGNdZyeI;j4&k{1@EK9B2d&hqBkQzhT3=8PRxMCwv!IrYKI2Dn_hp@crS};);=OwOR ztDRB-B0!Z(#fZpjJNoOlPutD`FIB5Rzs=6_>`TPF<@%ggxj=TPzPp-Qq4?^SK-6$L zM@FmPQq3jdjm0Zv*f^NKf}H(48}KlQ5B5>BW1vNy$B=hQ05o}pwxht}QR2P~hns(%dpZp)!Wvcs1sr547o2%NNL0d}LL+f2W|$E9pJ-N-|(qu8ET zr-EVIjpmWXxpuSq@zBR3FnU*JZdE0fwGU7egmuT!*ij$?Iuvulxu&5!cie2#SN-J|FRR0Yi$Yrcxb z6aJRMlm!&BHN;n^poA`s8n>rs4EiN{#zCV{4m1ZDRHGn;At94^f+$8-kF}t9wy#%r7oZ(6tDw-crJLO^Z_#|aS0oex{Tg2}TI}8+DtKn^ zA>Ad1M9Wr(M_u0w#!7EY*9tF05%6{cRjMe*^{=P(5#D7Bqh~S}?Rl;HDx&5+6>JgP zrP64TxYKnYLh3%-ouOj5gHS+Bi%c3st3yUr8O8J~=s^j%wlUe!BIf)_k zGhOfW{e~CJ-E;D_8!J{&^n0bq4n@X2oa4_>iLf^mu3Q%pV_JkzbkCp*H~2x9DF3^1 zatxsWrOOX6JoNZbV!%ud$32ja} zmbd}~+^$m&cGe2FY2j}%Q_f4vNYAb7T6bSsx=RwWv+cRIACHI*$t52z*|9^Pv@%Ou zN$W^$J}Df-UfQARgcLmT`q3jBCBGc8m_yds@J&}!)ktpb90hYNGEGGIPTZT#kj~&!hmwzu*4_ANZ%o`TUP#^-?SC{^x22I^T_u@pxvb6@23C!A5xVd7|=7ILF|d z;Y#{CLJqT|x@0^|)mqS3P*Ow{y=LNK9fjDVyKEL|NdInx^DuprV-7la_`p zlfc>A%KCXV2Qs8dm#0mAI<2bTxRG(JAUo0GURF=fY)^W!6`d=e4vmRlFpqAQjSIAD zS~Qqp8J~Ehc6NELN-$?CKB+-_dD-im0C3o9gjX&4gVhR%UoXx=vHKxkY3T0bdxAe7 zA&`)}Xs268zNOzLzR?{=BXxKqhoMXiPB|kxyUVzNN#LWPEbHK+KA4E7E@EjE5B2U$ zbV)K;S;`HJs}h^YYA@UuO(nlwV=YYhwwz&H$9`Yac)kLRu-*O}x<>Xd+IL*<@#mq9F6z2eHsxYHB^Ddrvp`H{NARN7 z-Bo#6p}luZrXS!l_CJ22W!7x4vvjVLBrZjKFeuBDne?K;^g6G;ypfGzsLtOLw);{j zpJtx*pt}8LKbg*T!-4{Xq{aRVu!2s0549L4n&xe%gglZJP93lX-`MQljs+@jNn8#Q z9d1SNq82c%)~VI6XUr^i8$YaH^Y}UJww_+apE^g#BKY(lN9yz7hE3C6tQxmZL!|aO zl<4;#;cg~)d~8ucoV<=*Jd&~g;O)4oxGkKbDcIW(1lX00+t6Tq57v^k>Y1LbKQJH) z@=-WJ=||e}KM&;pKtP3LA5NR7Z#|N8V=njp$a@>da=WyjzwqYwmKof$IBjjeq14Bx z>2kEXTQA8@7NPgIOi=EkDB>`J6g0 z+tF3|^~D}i$qCwXeswZ$)sQg4C5T0p33X(6J}$3gy!RvpefzNK(ebz|yc(&QCs=k~ zhxrFQp^s79nRPW07PuvBJ2cFGwZP}=nSMKz4rPU1<*MV-k$p$&hE-R3j2HTLq<)yO z%rh%nU`rrtpz@X3w!&6U$yQ16t1I%^3wGa1l!qLrI}VB7o-@jQRtBbQ%RkT1-^BvA zHHDhaS70I`b+MNLZ8TJ9ra1q|5S{kyfNtCKBZLLE%1t5vFBALTpIA6<%$MyefG**i z*$iQlJNtXK)QnGAmQK_JyDzDTIBvb0jmloqDPgJR*I6Ff9;v37jQg~r!Zgs9%b+s$w!A1i0;+t^?rUMu$P*`1%~XmyuZ=mklK6hM8U%LE zP5T@u`RDHKH09C#63g0oiVuL>sty$6wRnXDw1`rrV4`f-eQ)%$>U9SJC*l`fQ?(-@ zdpFRXQt#F2EWUpATeyV1&^gn=SZJ;*iuk?@E5n>fZomhN?*$k`5sZnYTZj?}RpD`F z9vMH0%NDJXf}9xgb9&l&OB#xf*);@|FU1G_W)Ug;(z2QA{=nXS_{}{TJnE%HC%2{X zK<^mLwy1t~=j1V%0}_1}J2WV86UyrLC~E#l-h*F$5@&!EcxeHZrk8U5w^~9Q~`3@=outgUK z>=^;rA=q=P+X{DxywfVpUQF~NosJ4n77N4C#bE%jcU zxo=#p)P}+txl~dRUrDULd>L^JfsMW8B8`C)_7`xV(Wa}Nx5y){!UI zzP~$RQDBn*xF@XA21$UbgPZ^#!=mw%w}R5OZ}y+Cr1zjuMeP(5UsY_j)`>CTMy{BPqzKf^lDiyBKd4 zW?)uu?fm8qRY;uZBF|!pS@lxa;zn}9Oca9L+-0QDFCpaXa!JV!{Kk~oP^FozWxw&p z+_yan&s0ziu4%?EFyJ9dQyV=A4VG%V=%_UG=whi054 z&j@6whV#at(1ct%D*|d|F7Yv29J$#$sp4jB#^8*O#x|FHL-aZPR8`mh~r6crJv zih_cG3W9VI0qH2cs|ZL9y#^vpL=liGT}49gCG;prFOgmX2|e`CLJNWa%szX&J@@zC zeLU~y`%NHbt-02iV~+8RXFOvoBcefJcu8k|eIt!7xbG;&x4PrzD&TwJjyb#r7&BJbVzo#N1ii4Lq7L?@&MM zbGIrXb;H4JNQvp9^>^W$V*_LCt7D#dqOS3T4Q5e!BDZL)GpT{j>J=dy@EC~JqA-0i z5r^Eb!ppqZt__@ObA&kt?Fl_0BqLiL2=MbbG*`A@A~FbL=HE|9a9(GWl}Nlh#I$s( zNgsmAA1bLz1dNjHk)ol~>#DxXK6^*(NWWWD)?;JyUEaA*#Af)m_I6OjIL8_}m8l1c zc@+$&m@$UFe&b+anQcuREF>_ShC*N;bi!M1)L>4!L+SaH7!S=Q$Ol@e#kI%Uat!%rg%KA+u{n+Q5-}GWP zClISR*47;5mGk%Zb=r@?p6nY{h8WrB;pW+PPgfHa{AAx5c38CQE!|jfXeV^-t_pTs zUK5+g4T)1i0@89?ItDXy3L(hHQd4U~Ai zy=()Yd-8Mln;bRZKOrD$K7g{N@h-Rs&DS|CVP`zoW5ZTW9JYP4CPIl^P7^MK4qo2m z9YlBF6ZXVwK6l^gf*Z;e8Se|uVVi=_j+8OH8=58SJ|(Vvx7bDuaxb|boNO!LPj>N0ZShXajO z;%}f4HX9z1R3b)wRZ-CW_Lz+uRRI0*J&qQkekhS-E$Hm&Q6SM9H>jd4e(7wF(kQ0Z zbQ`DzpbH{`hKHG-$!ME21(R-fk#_uQ3HacFV%#$8Vm98_`vAe~{ z8N$kcnEkd@3aE2W?ieA4G~v+Q_cLmQfb-(ZsaR&e#jkJ#jbrkjtD;iQ5Ih6uTgcBl zewvz6ghd3b!8D}C*AAa?(w#45RvIbE(r(_wdV$Fd<~nyorMAxJ49Vkc#TQCJ?AvC9 zdSTkQ!Bc26&*8i5F2)Wu;}47BW4-Pdcv=Y2c0vclOL`SX=&(@O9$kyB-BMj3iJ6&C$ySN5{!@)nq?5&>&y1~XTG6l!C|y~IWK6{r~lz$R8u z5HkF6&r9rCA3u>FhS}sjEOk3;ewaSfTk;h^ug=ZF8ZmC$+o#a>$JTS$phf3fiirWr zBiLMUrl0jZX(mdX0k|6pqT?1@*um?OJ4N3pJfe0v&ox<{|%S?mMtP+HOkMKyG7N?@?;X^t*p&uy*d16Dk1 z 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

|CM8cajs29_oZzM5bd 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 z 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 z zZjis#p{C;=a$~$}d#gykh~}?wo=gg4P^j*paa2VhL-Q&=W?hWXgud3Dv{tLpa$r!& z&aINhZ&M^#Z(?BOcn83AIM=%_x>&abQsvjIg{(~0IxYutDG9Eiw zFYy00r>T=nUIw(qoA8ndKL7uDNB*y$=6(g7Z4vF)M;E}P%uH-%-SXI1`(-^ zHCgifa~m0gP@gD#Qu#p^|homNz!VGw|`t3UOLnJHxE0t^q!jA>t7q9d|T_TwVnA?E~{5;g+5 z#=^qFx87Hd`Fsarf6de-A+_E`4gNWKd&;N4SEgsRr&gT4)>SWNl0nLi_OVOjjZ%~; zD~+uBymPPjf29aMD!T-fB*aniFZ}iwbWIL@kWVnb?Z(mU@xW^VDXjC}C0|5%G8Y^yYF{>melJ= z7jTkQwMs#3up+Bs|Gx02II_#jTOpkWSoCjzqF`OV*xlTmS4bs~R8nFki)raf*k|KG z2CqZV(o&hqStujDKnzNt^Tz2lpcC7YqU+2AzBDSl=p$m+5?Uxx#I9EO0T1$$CG7d7 zae2ogAsu$SQ8EY}$sJ|(3YkD$vVUM~{twV25uvPp!Mnd{_RlounM zZEtSy`x$k}-jjlsp_LXUBO=fj$6wB*L5zX;xuUrPBeNT(Zg)*DHwRbG#YHR}s1T-%!jqT0J>eF@GN!a6s(u^2`M7h@5N`7md=sHmQeCf}E?x!V$xKF=rZBgqb zJ^ab^fb6VacQh#2q2wzo{<4i3DI?r&G5wjd4BC8jtJp&R(430BR#+@;CQlh6mpRS% zCGob9a(V2afU~^_bBf5ANl&;+-hgsWcj;?DgHjaL;{bq)I-Dm0GVj9*3cx#ZrURO9 zW~OQXE-}-I#fkPjvf(2k9`ZYzxv8ldm!vGy3fHMy|6Mf--_#hJWELp^n0d*te$eC# zk(-rfiC)?XEHJx8FQAT@zUS{0V)eFxW2R9y+P$6}}%>kRAz_e`MHgKD%LY zTSs7#SwUZZvlhMC*|PB6k{^Eth-u1iGHaR`)hZ~jPq5W{!rZG_ZL2MhQpXD|WOF=b z|I$7#GbGl%1JIA(jU?}Ms#lwueCIJ{o6OuI+=PSonxjTdDf4fu3*Cl?LlAwYk;uMk z30AusIUELMNEA44sd7Y96&iTqJ15WhbstPky0;Ib_d4F{2h&Uu*oDcyy3Q9=K+Vc$ zpq}yJGZhs6qNd>zJJoR^Ej(zCl{)3eCRLrV4E8IxbXMhFSxoIeev3a1Q*$)Z2s0&W43Chrvzv{NVt z%dGv}r7ubcp2jh>mW`{Mi&d0Te?)$C2*tq0ELdaC%ny)^$bG5=NITCh=5cPRUiI$d ztH;q_EWpbJyD(#~w{2QU%u8+?<40;J(}D27VtaI*@up!d$3mQFl2tOZ{ZptZ{$G=eb}OSd;HhztCH`f(MgX0AE9XTC0Lfw566%;96J z0-9mvXpUIeam|8c1TW@8pz@7T0!1W5*iHbb6Tjfbio6u6^E=#0qd&Ljp5P|-7}NX_K) z2p}HJpbE}`C^-z|AJMf{0n*9(3(p24Q-_qSK++9L*lyOU>{>}pPA?FZD&JEn!G@7Y z;ZSCm!oIt0D9;a9Lu;97uKrb6Maw<|)a!UGw!U^kuFIh9e#a&bRlMF%)xFzL?dfW| zgRywu@zLmk_&fTnb5=6nTtn__bIU55P+K*KHJ>V&tJ18;Ri~LfJWW|cGYm;tt`C1d zE9~M>>+A4q7q^`ZnYb+~Nw>?>^1^xRHBrvn8DgfBPhcg;VIJ-Q0z4ud8Z^%rEXZ=H?Xb z7)it`Ne&U*JmfhBno8VO@tv7sTn*M6 zyj*kvnAeJP^6<#;JZVEvWwZS^&`f;u@4l2FA5Vx|Ls^R(-}dXLgW3-eKn3Mko>&uq zBoZF*bm0+J5Q6h!MZaG<;F_Ph3b%%#x13x%KA{jc9 zDeRCQ^ITXou~;q9wK1SW?tpu(Blx!XO{iD4!^`gw6N_oZY_Z{$zfe^@E_f#Tn^QEz zQL;kj9KZD))sm2-Ijocy6r2b&--z9Ezj6-I*kkp=`-IaH@)>-hVC{^h4|N9bul2FA zXa>>8zN{BGD`D%8chfnJVH0U8C@;sw73NX%==elttOzJgLd800evXiaR?29cZ-=L<@q zuUSB?qSNZ~878cF*Q=M)=?prh< zq1Wd5tkoUVxt8Po5F>3EVbk7m^Ju8!1~p<=d_Yab0#?WrR^Yq5UnrWjau7ddlZ|`h zgsQ^@!$g1W%p|INXBfBsB3b1<#mPKM8qO@J_}Q5EVUCy8)dnGBrOB-7>KZ#ftm`Kg zeT+5yv%KVh0l=yq*3G|3KY)YJ&-BrrJW*Vn@E*dE4c0ucsVbRuAywJ-#5UD4#58_x zGaEVZVzr-4dT%0t^>=?Wf^E3QGx6p!=Vo*$jVGa5e-}!UQD{sZ1nZIdg9lK+GsKpgOz3=iMkRgn5 z=zFRFGUmh~K=uff$7h=AkkmQ66SICU4@RZnp3p-ov!3oGO1M6Awtmjg)^jRu@RlhK7KA#nEN8UvqnP6Vi`z z%o<;`z(H@qRe^N_V)G-vk3k<5n6fjuExz~V@B#00ciEI>V~gc9-q0MytWth^@?ekR5vpVuCsn1R$N0 z8X()Uq+1BYNTlRKM{^;*J!CVQBSy4E##7*prB*;jU_LxpG`Y?vf3O;dkyy-I%Z8!p z4f}jcvd3$%HGJ$)Y_WITT(hZt?7T?33-a$U7#&hie^_BXkgd@4D+X71Pbd3VtmIK? zeMgdt@Xe`+=T|8QGpBm1FGv%;dvE$ngf!Afxh-s8uHQB+*!-HyG1_arP(`i|byE&G z==Qs&>gwr=kd?t3xBFpl(LD%g1<75m_s?doQz*o8$z^~Vx-6)%moA!JRBUG1aG6wz zkb)w&6>Z6FnI72Z-IZP&)%X?gX6ThZ;~Jy&do**$>wVB8w*)fzc@IfWKuxzXh;-58 zH4Evp@=+@L0BAGAEMW3yp5F=kFU~H;evlZd?iN(~3O-rLxn&xqlgoDP>MUlV*g(BW zMvn74z4TOC-^`5QTa7|scb``T%%BbF?;A2zHWg+$W%0qXn}F&PRO0uI9Cn>OORo)i zPA=l9b(rYv&_6=LcFL3Dm&PY|Eu)7O4$Yn|RBsX%(kLmz9Rq2SygTGT0P(b)1I(Xh ze3uJ$z!U&;xPn*?D0c!E*m_FF*XEAp`W=0GC7acX6ra ze8I>$^k!AYATz3B8k|Cn^4Wu+$F9ftcGwzrRS?`3)3hgtK;3o~hL>3;=Z@-XpPpT4 zGw%N)?LEVq+`28$Z9x&XfFdF&T|l~0r5B}25l}irrGtQiv;-3AD$<+Oi1ZriQbLs8 zLk-eJI)Q{9AduXb{rP=+-{+irj_0|5c;aiyTh>~0&N1c~i#k2!aw)TIX-jr!`eyN_ z4@)7zCRPe?qF5XZP~2lybp+=cQIfxrkr|&*O{(tDLQ2(Ca_tJ9pQulZtxKsE<}fN`MayG6mDg86O(bwPJ&Pp4z%t3GV)E*UhKkvkW6 zzRy(|e%}tc()gh%K($Fve(G)Ya|^^Y68!V@g9r$t$xau*ac3z)^$LyiHSVlVBBN4L zpXO1Acs{MsZ-fvf0l%RFZ8O5Vr`F!n*KBbLQw&YpwM_I3n%%7wr?ILDfV@(_A>CI6 zzdcF!t|QKv#$_T=r}F8P)-#TckFz30v(SHej_KvBbIKq@6#b)0Egxt+m3*<`u=_aJ zbcnYoTuJ0lBIClJU3}}PbU7>NMPe?VG{+s>W`vOp^931N+9S#w7J7!s^HuSJc z;3IzC7@twS*g4>)(U%r54C~k6?!mwq>t5j>0NtH&F3a}e(5uWWx381x!Y;kS6Fg9< zYP@%93uZ)^Hq!o>h zIv3^l*s}4*On7$qYnjZR>tQEEfxO*6S*zbECZe^!^6HVE6&PpojH2A`T(z$FF-A$f z1XTx;>f5n2aHDVgym%zH91Ypg8U1tIzHZmR)>^?Q4A?PAweE8SHOqz7Lz-*4v$b3{ z#}X=nHIR16k*n$k0>NZJT4)pqHN3|;P^@YWo*!@$mE{n&^09`^IDHyCb1vf3kI!_; z7>cMm%1y$Q>`K@|_#+l?PGHPqB!Og2-IG}|aV&hXH=8SL&s;}ND^HCQ5k6d!9sylf z)asCP?I9X$xH3F(HL341)5*CQqiFx0ymrR7;Hx=A-IJ5EU~C91ABj~_^$y;cUd1lY z20a2q+MfD1x3*MY#@MEZNL`Ljh+Xj_5v+i^!kJ@2l=REtR0M9HkLI z5p9F}A_~K5&mtvV$5RR)AvnYiuw0<`nsxh+i+%VGM$QTMqcpxInNVF36kI=OItwbF zeez~~cSaAHAzpqwcTWVFaa482K8dTCu?~1#qaspcG^#c-mz%anskGvSvkEsSeL?tR zm%Mei570$*(A(Igi>Ey(Iu8N=k;|a#2WdZ_Aqw{_R1NAG<>f1OXJqsUk&WKzcWNRB zre;PwixN*-r7SqQ#TNkdH6^F*{{NNOO{43${TJ4{D&_Dcr3)B^LTA@IPa8ab@>b5O zLU_bw`2HeKOWVMgGBy*z*f^uIyje{X#%jyPR{^;f5LI584{8(uJE51Rm0k;?<5kv0 zoq|;=KI(xG*GG&?ER(3HM$p}f;iQcG$9bpz0*VGhHn>2(;ebmR&vsG|Ts4e_lxgh2 zq*p>`#b~9=EEW1Gi_3CvHc}Y?3HyT4bsK;%0}%Masjl+{@Kt2qs-T-2EW@OchqjAc^TcxNVeWM?~wIE#T3i%Gd{& zh^ZXj*2bTm!i8PRuqA()wV;`*hG_D6Zj)-O9hv8o%M-P1y9 zShSTxnQn$;c4({v*@3vwQbHqPtu2Roy5y7XvC28Pt#OMC;6_+yA=~(6Gid+W>&=|^ zhALMS)GfT0f5|1h7M@SGnYdGg^#c_&lcqbjt5oo+#kT~ZiRBxxiQ06dxU^}dRR34<= za`Et*rLL9O?Z(@gwzjLcf;W=E2X}n`L8|`0_~8GK;{lMfqVMSx#0Aq1X_+&x_N{7~ zGMI1*MoP$e^0shOqF3;yz|axQJu&_%`txc-#fBv?f*M|AGy<++W6PJ^092&uK9Vic zdrk0uSQEA6d1JuS&!ap#GDtXhG$gmLVYBOUZ7!wnEf?i9BiNR zp4~M9VP0l0g#Q89n$b5+hGTea>mJU28eSNK@^$&3%09~9lpB6j{i5$rz$Ee`A39}u zd-BOUI{($DD^0bpo{+8NyNv`(skL^GTNw_zuN;L?$-i2UaYyCk(PfA<{ps^m9EgGi zp?6M_r^Ox3gvB?zM-mJ&nxCJfg$%1v(xP<$IwI?5j#eIBOT{0)(>-p>^KY{TEtYH> zqSR#DJpMxRE(^w0_|pQ#X@x7HupXL{~S4rYgc!*Q#2%KlvT74Hk9p_g=4Y z7~I!e97xO#<&(~JOlKtt zPhtB)r2H?qXRwxi#;jeV{;y>XS>`=CReyLb;-GeW@|OpTY;JPXIhB3wvYrn&|F3i& z^=T$GO1E7Mt~9#Zrl5R~y6oGxVZtoRzy}106=TRk)-W4H$RMv2;oZ;5(yGb`#!ga=q z4p$7@)89+l>SMjq^Cz1bI%C4@0n&w`HcAtZ-7X{-Y$-`|?Ac5j6* zcuC>=oCHYpXSmW09}D_+e=UFv6YYf+FNuK8{&=8L+Vq#QQSBDs6>G%*xK8kKiPg}n zf%}Yov`hzeTTL!Y0dOL#!lBOA?sh^mkb;`LYjD?WLvjZvMZ8t~hki0%KwQ%YZCk*w zSSRLYkI%ou3SA|3e!2DJ(DKD5MLbXM_`?OK5!<-YpNN4Z__3Y@TeMg-Aly{VJ&=Ec zVpa#7?L_4P_sV4_ZSfU*E`)hNV2EvPV`!mr>KmYtWIi63Eo>RH6$F7m%%s88u01IA z?BjM$1Hh)DaL2*Zx0<-W-@$ooSxtfjn4b98Nqh_Rz1jz1wpjmnLPsd|eDBv*OaF7u zdIeKrj{9IobscEDX%)4O{ok>-|95&POlfnCLk@k9(G`f*pZMq%8Le8$T6a|UzJrN- zF3ErS-KwEVl9<_$bN&ue6OV%ZK0+$+NYg zQ$Q!VLr)m~;Yp*rV|TS$H8?}w^IbKSNb^gTeM>V7(R@qPr4zw7Saj)*(bZ3*JVN8Q zAYAT?^B45-_9y($NjVF69lqz>?EzZxSc`Wr)4^f%ZT>e^H`{E^UG&wow7KiMcB?mC zqW6}l{6%GX2-E02pnk5)_;71nTP8I^^jL6+qLoGVEy60EpS!mjuy4DLDG@L1;HBP& zvx#c8`KIre2VH6aMCO2kf7zk2{~1lmxK})~fO{ zfOV|$3M+0LeErr3@dG@{y1liSCy5>s{3$$?BKtQ!=mCuj_=KB)rOS5CjPDpAGmTW zivoqBEkza|0o98i08}Q(Q-`9Gceqr(WPNckNRkSH9GC`K_?*X%_)ZCKrByx@`OsdwGF@Zo{JSvla3t*{?f zyrP}&z#F`zHN6(z+U*Z#%iR;AhUZb~O&?~&ovAwd7w(cWj~q9c7wyD;!!~J$qIN=8 zCmsVZ<`|ZEc9t(4i{wLosxPz_A^>o#YNk%hDEqrB!n)^a*8mHZMAQ08o%3hs0bdew zPM5+yYV`5so8jWeQGjsZ`OUW?ls#z*`Z-09ij*T#tBf2K9()fcOx1TbE%+T!Kg@IW zUkRma&`aJ=u8WSB)l)c8meqM~OZFZuIs?rOpT=ipEZPFlWwc~s==+MAeKj5P!lPdv zV4dRdu_?&Khm1+zWsdXT;&xsug9hjnSjdBr?4$)s^tgES>mxN8YMFW34-Z zZaVH{7L1%#ZPBGfF9fMKXq}Qilg+nnAqO~nNLPY#4`@+A$is{Jj0Sh3P=C&XvyZLhipqY7UD zsntkE)*D{Pz>t`138Z}r+3isk`SKUVLmvvLh7*#K_GcdWg>roW`jFff1FrlZr;5@d zU|<-$(QseLOkPJ2H*!zKLXO)aJc-rG|2Xz+w?!j>?v6LC@bW#fo&^D3KaV3Q0)bXO zgL!5^m%ZT8Lf6NfJbhUVVoa&mWbVeX3h3e&ViMcCRa)}%yMHDXET`Y-7cbi~jN zz$cPhjsukY&`U?4jQsO_g{(g7AcN2|!r%XLBpixD(l0c>3R zn;8U(#Nk;DOFw@;dox4dTrYKfnP|!Aa@|wdQb8|3b+hj7P0PFpE zkeQ`Jyvre}`)1J1u(bcl%MnhRr;^3CE?Nn!)iAoMqo_e$UnMR6yzQ z^yY%}Re`n?AFddcdtA5FU!(ZNI0+9ZXMX8;2ZT0B^*($n;p_nB@z{DU+!@|LNNliJ zTJEvO6OYeFKEhLO&(GA+w@2mgm0Z&M7vDjMtcN5mb;^MWV&u?G-(LJUsD^w6Zw4K* zn)(-phCZ>`=W>3pxwp>I_>$ptACyd*hwX}R2CV#C1|NcpcH9^G|eG|@OXZj$Cf zHvworHG{AgV9dvxDi2xB-Vl}V99A_3^s!H3IQiWG(!VPe)%EJKrW=QxHw$YtT!pPRmR-%+Vc{u6W(N9+J)DvvO?D5=Ut%>Qun}BUObOp-3-=? zYV^^2g&Q!w@QxnAO;Ut-vo0BqkzXE(1u+qy?^&A0N#3-18!f~@#m5kn^Uw^3tFOa0 z!lu^wINuo*1asbez-iNYxw8@9-D6_6Hi7pmeHpnuWe300jFn?O$nZ$VS}e(+E3{z^ zXwPE(f|)qOJl#XtvxY`>&wU-e$@g?`OFd}~7Z86`ko5q2s~4w<3f@?r)8iTIOBS=Y z`S}Hr{?RF+aI|}BU8XKo%UuB(wBa)0o!Irb)MHQ9ZBN^DpJ-t(-LLH)wDIkmbhbS{ zFGtDe!%)2U!||DJ4c&!su|xOf;4;u%k>E##20G(rUS6*!>l=}4(6{%y*Dj5C%y&FB z-aN3p?OiSSL24pPPDt6uC110`$Y2g5!|DPSNt1i2rNDZW+wQPA?P=gK`F1J`w|9nO zwo3Q@{dl>-EQI>CX=I5!{+NQgev*W&@O7@u!MNDH>~6a#IxUlj(`@cJtU60A1BrUZNL^rXomu_$~&*H@8C+=Z@qtw;LjF zB0z9T@ti#~?cSO5>-Wq`)90<~_sV#7HZ`#!r5g1ec>L@KlWos;fI|ifi@>M^ZWv>e zm%dz5`s37Dy8r#p!*?}9d5)+=G zVud>1ir!F4G~-k=o8H^AM+)4i z`#DaPkfS+-QE+ki0}8l%i#i@j^}T7%<-oFe(^;vHlJ~P})*qM7unU+F-v_IPrk3N| z{Ddc}UENC<3!WTIdk+{J`;n)vja5D^QBQBVI;p&0L&n=W-=E!P9hv$z)xt{40s6NW zfLg-3)Q0U6c#Cm)`1KFV5?svSLKmbGLA|Lyw*Xk{#a6)p(~Kmm(Ma{IQi_Y0CEZ4h z3XST&F+H8KDw%bcCwG%f92kB5^uJ9s(KMZ}+Z*%%jdQRp98c4vr#H6Vc%K;4d|tYn zWG7DN56Q|kKpqOkO2MpPkMEyZdvLWkNfkrc1U^1Y-7@F0o*7xS;sa%VqW@WiU6GWn zejdZd3w5U0)*EYGtSM($b{#CP5-Y4g8r&Orkkpejab2=3yvGfEc2<$~DDsB9`}fKv z5>@ctc9ybRM<+e6+}?^CN3F8Yl#vT~$G^>YO>+-8y{;d+cMkK-$S$=C69}n; zbGnG7gh<@fr<~me_Xr190{%r0N3y(g;q&n?eZpHr^N&wH?3Al5jCPU=gS}e;TM!fk z;}6)ZSuq{2s81KgRTaaCJ7eJV-5Tk;cfXIR!BvTb^)jo%eJ!xrX!be0rWo7Ta;u2|)=+gl~5apcLpet@p zh}L+8igo|oy>ZQgS{xc@oq#PQ?yr)Qj;q`YdNQPY3w^)gSW%1=luaId?63bgP5C>2 z*kfISHugG)9-3yVsA@0!{s6@0B+XcF3#DkIT=jyyub7QgQy4S?JfvG zc$2SU@KH%w+MWe_NkEX5-v4WG8T~{bQa5Nfgo-htqeEqp;+>^z4Y6Tkw$u&HSee0c zI4SM1Sb5_+3eCIYGTQxSCOY~dpK0Oy=QGu2y`wa4zLG6Jat{PI2BXpx{Kr?xBpb+iC$X%qb)r6g1=wiV1fb2|k3Z%g zzZm;@;{}#{ol~1#ah8022XDPdQE3Pf%H2y&Pach&QYY4agf;KDF&REN6}S=LViNS5 zkMYGWr45n&XvCwid?sc!|9JPhlmv_7Rd4N3bFMZbwS5x5rIC!c|KxD$QM0!~R-rwL zE3f_E14OCq0$niruDO}o?=8r59SWz<&Q_pnyS(H_23G3j#tj1l1Lxy1@ek4@nh>Z0 z2>R4z)4N)ctTLQz=1+Zj{l`r%E-V}PR6nb+1ZksXxEa1b_5l;ms0`(U((1E|BrPn+V2Q*IPvOf$QgaRw3|@A06aZqEjddd>-|?vx}ROE*N#WkF)*n%YQL)a?D9r z;{3bc{Fdl9z__~q!X)JH_bVCEvs1!H`Y4Z;e{<@6xdF@|kuVwJ{l7oJo&X#(ywGm< z?+N|)5B&G9jN^eb5m1}K89Xd z>USTHa1rpc-CgLue`JFi$-uFAU;XR<%kcR36aCS31z06)GmImt{_}|+R1CnekPH(V z>i-=3`;Ps0uh>;j?qZ9o?Z3Ykc#|;V3^KvKc>Zh{hIPn-~+`kS(hpPF$Fs> z12;;LhyQmckHzfiF<`%RSv^+A@A=69prqOdSM&~n7xu_E+>mzH7+Q3(*(-K*Kinzk znUaRwV^6(s<<`T8Dk>`6Jc~~xvC>njCui0X30zRcoM{&Ne}0aC|L=-WG>{D_D}NhA z+AF@jb%nd^y!AY=6OLdiHPrtT6+>cILXl?Xr`DUpR7GuV_q$8eCv1-EP{$a(s3xt) zg_@0i2kE(8@hBsztAe-k^fF@K(l^Ec)szhOs5f2!q}*jTafQ!9yASX)9yq_(nW%H! z28~N66`mKQrlCnJ9C3}l%&qmn#wPxT>`U!W1bh-8v+M*UR>!W4H`4C0!k)bbvgz)C zW5~j`UZ~mb(Zrz(`*j9Pp`{+cY1x4roDK}IIqy0kborBo zE=+|q0y~yAD4cN@s*NeJbdkhjDp0}dYHuEk)bs9D;M~_&hB~G!un4f3t&zz;x zhywczjpc2x0bgk(!Z@ht_NTsmhoD$s}#GWps3?Xenf zZ}*hjo`ZAKT2A&%o7x&q@FZt{DQxSPXp0LX*?va@^_cDpOCrX`-$hO*a{|G{@Wa@J z-+X#XR~b7JmG@I>FmZq{-nH@lte2wCmLUpR9@sY>wBA^j+h=hKBHOTZZj{J}Ibp4B zKc~PA+!NPlEO%j~hWA8pC6LQXKdGuWo92?5G!Xj%hJ>7pQzYAbZfS2HQ(cs5VU|Xz zU3?f~^_DxxuWWO}8G>S>2lgUtG!NdW70O z6mX;o%5C4|x!To737@ZCX`C@&4o20gxj2r0il`7^IX?cdD@YafE`B{#sOakt>31^Koa#U@X~IQDp^;Q;{`W05Km*#!tJ5|ebD+Z^B~$H;5kz;p1js=H|%_o z2$kDsc`FNUne&lY8?*mP&C0RAe1>RyJdRq}Ss60;^oXed*p%fg1%>p)vE0IW)7>Re zd+8D}3AYjfisq(tJ10yjwudb0Unoel&a5aF18ClaK1(*jt)WX3-p^>QSSwBPC*FXG_d85QvOz)FO2N^wLh{S zl~iFLWaakuT1{mc<>g#odD#%4GUm8q41S)P$nF<*zRrwbqdFA9VqVixW35oJDDtN9 zH9b9x(3uR_m@i2%O;LTZH#vdTQrGKxKyQ%Tp`^-kMeJL|zCqYbZIjvkjHKyz zxGGKpeWEz=ck`BxuG3?}l%QHI3CD@XxI4#0greEP#bU?^)^t_Rf4_9wp<3VPCF?^|F9(4><8B2oo z_Tqoe)X#Y6e)el+3%6a|>BRA`NWx9%NV(=tniYvI>HZPS3MQXuao&kjVt`S743TyD z=M{gcMUSy+&$x;;)&d|=89G_QOKvZj+9M&kszs2T!(IvP7;qyw_ne|Ub`cFy0ux}< z!(&K~u=h;zO;h));d(m2Rk6JSX2Jr__~S9})h?P!9lQ8EZps zgm%itZtI~k=1m*fOYKv}=Ft5EkAuP2E+N6e9foJf3k{SXv#{7(#A(BmU|Rkno)42m z8_A})XvsaW&<{vM90o4OqLfaJA)Ui+Nc(jZu-&-ve6i$4V|&N2j20Bg4Xd`7(6YM# zTF)Os#URNwlxMR;3Vb?ikgaj&LbaOzbfag5#1>g|$PNfLUht|@-ZO(WXk~-^7neMW zd3DpG(`Bnoi8A(wX(n{jxYUUu;cXnku?Ncr^E^)Qb+NnZvD9hZ=h1j{U_08kuDdT= z_Rx!6%$wLbLFN`g3VS`D;auwD_VLBtgHv2U2LZuo>ey#B8K$Y>ph9N_vUnS@dBa~Z z(>1zQ;d1FEBGVO{DYpxZ)x;YsNRw(m3SeEo4+Q*mg`@jRL!)y3#9WbqD|}{?;HT_0 zYm<$Sf6mRNS(gb-o$Kog7t_}d$;saxG<>dI$%G^|g*-r?!q=^orDZ7l`0FxMlZKMw z8$cL$!iZPDD50XolK1A#M_P&eT(!l{Hc7iTG*-4pr`4Zfz@@L)!1!e(WUqLM@&4rT zW;*KCRGK1eg)}JnAW6tAX{R{=mxv6 zfRrMw`_vKV^Dee|NeHibR(LZpd`GS0oay4IiNTVrLk8 zHc#OOu#Oj^-ia?171QmbjjqX+X*PSw6BXtjF>MY&PJ&ZKnw3~U;0fz+vhHo@oPZ?_ zj{cwOOMIQ>9Vd%J3Op8jn8af1h2v4VpI$9bj*RV1k&!=x1JYFx$>(Jh`E3!kn0VY| zooXYKSXWV~Msr(lj@Q&-u3uNn%W}J2Ew~JcO5AVy5JzKB_}nyVL}vAr=y7Mmu z{Z#4SUtImtqDBT_E(? zRoy$rh~8aiqwYa&R5w=?;ZD)yQms-z;9&P5XOM25Zbl;Qv~O<@u$T^$oJUG|cbUaE zH{U6`KZ2&+HNrWJHzAC*0#6#q{>m(HX61>nw2hKt^ZN1O-RY&D6dpO66_{AmlT&#@ zNJTH#DW`NSA|kV*Ng~e7!{rkp4y{T09GEMCtP$TYHU#hLAbJ7E#=9cu4{arYxQ+o! zvf_3wCd(-7eBg_ez9s}U7D(b5 zUjk?($AMJ^IEt|jsX&At+opK1Iht0jN|~Y4X=GBDcP2!{YzCTUE|+8p3~dqkJKG9g zE1d&?7W5yFQvQK>{MW+!AMvik>+~2uC7u;|3?P!ki}z`KNDQ3`0!h-B=1>PJ)z7D+ z=QUS=tWo#PNkLew^lESxb@TdeA>A!X#4M^ELi@t$BpL4On9698(sUxNazPKUZ%Au#>(UuuHKGO`!0A zZ5GS{+dG4xE3U|Rx)j-`!_V=%b;YwClfEjw{N74t)RUR+7op=z!;kh3m%?6x%)cE< zSmj(0Iai6_`K0TVqP`;#9k1)Yep`@AcYRBbSQf()EdXtcapcxe&`8%QHzbD}dqp z^d3us`Mps+)P|d(eF;N!hTk1_7pkKpdghb~DuUvAFudyBxtqWi90DA*?hkA-Z^8fg zEX!W9JEiPniQywTG_1|kOfbvWf4m}OB$wHLXne08PIG;J^V$8ku{jIh)WJS$>dlz* z#p_(0)aEYp-qkhsgJP6!HOa9GGiLRT;!fj})5Axr-50`WTQx2TJh^dsm1qzk`<><1 z&Z?_%PzzhbF&jLlE&PfQ?)`YFY&C)}y#^uS=@s>wEoDLmjp?TG>afJF`cBt)N6q)9 zkNPEllU-g{Ks#P+sz<&5NW^F&X+}Z(PRQJi_j2X#%ld!I7-Qm{*{p`c8Tq ztPSk8;F;*zhE(W(v$1z>5BYNI`vpGJ+~RiM>4v9B?S0&X`a(}_N3qe+So+`^?+>w! z4Ez?u4Y%iLRIp+TKLY$?dA$_?=xXJq;;O==vJW2NvAq3^oFR|t*b3==L-P6pJzxt5 zKoLGK#-Vko5@nxyt^k~`CAqcZDdxCrqLdjBx9tD0Hpo4a$jxBJ0m(&QnmkvIR^m&w z?a@DucrlFHKYz+0r;1< zz0c3CCyXy4>%CJLId@X3(dngd1H`ohZ*(7wihJ((E8Uo3Lol}L# z?&C)Q!KSk4L@bZ$dom6T zzt$C4Ub;mII&MqNQBC#AHTBlGTX6g*P{H$B?C&n?*#Ie@yB_g;$q(zt6)T~h&bB}I z?`TR`Q*?<$?BQ5mdAS{}DUz*KikW{7-?o1iC)-l6yV#q-M-78xpMT2i(53ZG0<7Nd z+D^CQSc1Ky&K93E{#(g-`Sx7EfFmEV-8?C2nN+Q!u&E*n5^8%i65o#i04nWkUSgg% zodUN%=2A?(`~Vu4!KCUxyg@s^ziF*IR>i>opgxjTx?5(B#_K#4^4$5QXc8JZe^zJ7 zoa>P68nK4Y_zN2}E_Qg=0Qy9EB^cOmDm7l%c-nEX24vUqDFh|m%`Ax9TBc_e5&DAm zFbmw!*H1J?Jh0-8gvSHCxvA@BAE`UB9@Aj+lV+|SX>d8%n;Cg`2&hkV`$<4?auY)} zQ_o8{&M=`?8O&%<7jXa`z zdRRi%P8ZiDk(_fXibtO&sYAf;_i;2$GX~p|wcDkbTvEnV{d^Hx!K-?NSk>JuZ!=Nd zdxFF1`hxqi)#(%pAkfXG15rW}Jl*v?u*$Y_5sPTK6iG_YKGDid43~^*xRy*PHQtcW ze)dc_L6*TnEFj}TOiV~N1W(G%4egtOZA%E;g-#0=-K!_Em8&dY+8WEdSA1y+{l#o2 zeV3*QLSE;4`0?XzY_Fm2$0?%Q8=}>q{Vu^8wRLS1rS$E#Z#FTmZ*M$EzxjOX$A)?- z9O~_!vB4zvOmANMOp%g{VWg586%g1pEXV&roBhv$UHBxhlZVAbG;wl3Pa6cb5sB|u zm{xA%z@ug_y}$U%U@~(ggnF^70c3x!FlE)9ps;qyrK*hoF(Rpc!c%s=}u>w6TE;S*Lt=)s+A=!N?{)kNoa3~ zEF}(qg~^=SRT8=CaBJ^vBU*;5qW;X__(xev*j*kYwLc+fYsI?$Y*T@Pm(DDPrCHIi zJMQ_(2$KVu+M0XzVhHkI=-pKLfN8ZoCudf14EFr@@D=7@Jx92?naDj0H{_MfI4F~n zIyf>a%Hz-u{iwt%sIry-h1@Y!_9>bC;`pGzw7zt#k0{ffDh1zR+6eUMQ-jG2GyB4# zDrjL(r{**4FK#Og5TrX(6%meT|BN93c`G$u;2+6$A?o&(*;KI~MH5I%o8>`X;x}&& zPu|per{GwD==fs5F4uUWf1)voYope50a6_4{<0ZJ?{Ec@g$OGfL=Gh{_ zb|yu=>J0P+t~A-}yw*Gq=@ek3(}VToZCz?yl0;gQO`p&C*_lH;%CB0`aF2Oqzu!7{ z^4PnLNV-ApWh}SdJ_ldlUg&mf6nz%;2#?Rn89qB32hro+C3NLAUty2Fa1z{4C0qV> zaQ8h4?)V9^Dt*4Z|7zu*;0Y;8#5nHuq&-*YO#zJ+n$SA+ospR2EGh<_J6-g>itr2g9g1&fi%803YkcX*g{b8{loO!f zYSJ!1y~r{4thjcoAth0PuqOYoiL+UU=xl_D=c8{wn5b$ed46MA^MZGuV50ykrh9!l zK+k()w{NjzAchc}zQx?0zebcdyaq)+ z9AftOYiL)PqV^(J^{gi_s09-knK96D5UT$m*@zO{I@lV^x;UOe^tFfSsB}-U)}_TZ z*4F6kmj^@3<^m<>#3Y`(Ck>Z+)bn|R+i(Xyz+$xl!wb~Txx z$KSuWRvp#;q#e+oh?A`i+L&&ib!|T0!t^Vx#@V z*}NQU^1V+!7WWq*Pc@_eRvxVp&5!{bVaoh2&sie-eXTZvoYSKAl=ez6fi;=H<$Q%` z-Tw0!|KnMKtQ&fn7N>$E^rHgh+9ItL?7@oBB^J)N$*=+V;oUwUZ{TXfdMkap0 zQSWvul@J^b@0NHgH^*JUja7gzmjc&$tHBfdfLe1dW+ z;64AgEA^mApN~Ua27BXFxqeeABU^KX8L-=`;Aqi|$*RQj=ZQmNl<+|X0&LH=OkFlZ z#xd>acvLGdYFcdX!38rMjTi4#@JO8t&R?kzFd(S747shQz(Q)Q#Ss+=<;xxGGQZ#l zWO5C;42>i<7U>t2iaSmZKH6l|s;U{8QCgA)K+c+^M)8j#v}aRJ`_?v3;6$j-I<;Hk zpnZNaucBMp)as4HiBNCUs~^*OgykQ&b29S#AL4~!5qv4T+gD5*U&UmH)k=NQ>?Qx{64h+x_IE0ihlqQ_7lXF_F3)(PyNRG@k$g{c!AQbSadan-JnTSm$<(Yab zrzD^p)?1NB9PfC$Ir@J4`~v8EM9g=lnlsAt_+xt0c_&DZpCZX9LyfuUdVkdNWp z+?0epW-ao|pCYHmsKZ9s ze!K+oyh11+wQyd&c~!ecPh&-NA$zEKYF(9S2LmgPDbY(_pkb-k8u-bb?y1>ZY+j*d zr$b<=wW#qpZ*8wzq2}Wia&0Qp3bM1*vN!T8>J(gtiT5#Y9_fhTX+oU?SR};-&K%9L z`pWcojAv$M4&uj>w5f~87Q%`;2MS8goUB<5yqAJS9^Tdl%kLID3Y4)QF>-|+uw;Js zZ(vpS8I_2BL^plRsRWd0hU4~xzy8UxuMLz0%~g7G(*4rjaM)JN^6pHwuYloIhaEp4 zyaA+Hm6Z=WCE`WF#U|dXjReMEJz9@-H}}8|zV!(q3AZ>|yi-YUIMGU+!ixL|wQ1)# zkekj2q$|#u=PI!h&!1U=x5gjsbko9VAR?VfAq_PT`rJ>J7vxfv9tkH@k2suk>CaEL zfDH-73K$F5e?K_(pGJtna3X!>sAQllHB;m-{48Fswv5Vs#tm0$XxtaYVF$`xuskpw zSz8?YQPY8k&2*Y+pA6wWncdG@fD+XA$ec(3i5`TN;dJB{r?P5@MDROe?X_hxtsHaZ z)j=#i!Mk3NE1K!#vENJf|Lqv&dGgp1Gt0UK9uO|;!(XYmLgQmZz4G{^H;QkR9Ul1^ zdbEEB4)#)B3KOQ-{6xE!q|bG3qG)hes*Jq>lI_a!*86*O%^95R-Me9OyFH5O1I{ei1wq{TH!zN?V>GT zMcdjAKM)1-V zK6`7XzW4}O>cOw5+2iMgoXo1=y?P`myLrefuNJKL91e8)t~@Obi@Efla{lM7i^Ly7 zZ^LC*0a9d#A`94UGKCWcRFJL?xJh^a-P9aRNsa81*=TR7yx~=n!f0utE6P-e60h(X z@JZ~7s2RSDv;z`_9)7~{k5X)g9zUhq=m<&x*eb8AQRZR$ge3tI0_>y)zyfjazpLw2`eV<9zdlX(uW3BOgrK?uZhHA+V$S4l!X&A-#^opB2nNhCG^BV||xev>r z(N;3(?nJ?Oke&AKm=V5N;TRO(KgnU2PVn_Q-zD*)=$kp=RU8A!1yf$a=YGE3yvjvn zq;STjD`NDs@@4OxHxNTHP}!EJyIWYFZtX<3%ZlqnL0ZTA`k7=2PCsz6{e3!xTenOy zptB4Ew`+9|RnQ%m*!COF&auet(KKP@nXX@7=bAappy4@NDiBNGx97;tL}AKD$#(fN zC%6#_;^}~+Ui;o@p=pjf+CTI5t-`g9*(o)NhdeuFoXEeT*yeV*f?%6!sKiIrz( zks#du)5+2Dm&eReq~*Xyx*@tPn}L?2RJhN=&^q`GW{0{ z{vW8BQX*rAk@CJpt-C1)A*uJx7j;^em?*_9Mfby9sYyX0yz9~rx0!NN9=)SJ2~of3 zNsDcxT0n|m|7wb>EX;Pl-#g7^5W)kjNw^{xVxK{6muH_Vqwog->czf9fV@f;y{I-l zR$N7|G1~Ol$boDx(16bnj~)kzU!Y&T>DJN`8lJ?b=*Nr2lzJ70gs5xO6YDiHIaSlk zFU&ysQl&~x=t-|zmJ?udukpfUZLmTu_RG>#)|zuIYkQz?MLIt~O2k3{I(mzNUM&Q} zFn!7q00PWvqJATv+E>V0@`F@C#05 zEGP9#V?q9Ro(^v)1NO5^@xEbdo*}Z|(@mB~99vReg2KHHjzIREcJ`MchP`1=QNBlvlM>M_g6+=I(T#aR&L9$%}fWczfAPw+&T7e(iYZ&L+nFqdNv*VfokTRZ2EV@yLdOL^Oq-@4k9LC`E zWJGjMh-DEfmUj^YruJGobXHQjQ7B_w-Ve&`^e2sys+-J0iYuS^EN~8YQgk`<3bI-dS zZ(bC`ZEW^9#@V)(x3ZQ1JZu-ep2E_ly`itQk;TP^-`>2qKttnIEzJtE2)zg$a=V4R z-#NJTgG*lSblwRMwErdR@-w9NLw30yM|FEiHxm*1M&e*rk5zxQcu#R0O5bN4j03UQ z5;m>$9!&dPcaf^`b1f4! znbFUQQHT5YqQ1J8jMsFt=-|s!B~f6|4VfE46x(437E5N|))QEQfJm94uk5qy88unj zt*PTh*9f?4Y?+{W(^tVPD;4sGUr%i}=?*+=O?Q5}iQl%tt*zvi5;S(+BH0(jS)cF} z0m~BEtCdZfpSZ{CHV}K;taAeVjHA`($lP4v>#k zbW`B7s(Zifx5uhFJp&yCXsoC=@#+w{l^u0L<`VhE8b_x+Qt2s7qGg&etT{K2M;VQW z_W^s4Z=9f~D`&+hZ9V~=ciJs>#{bjG_Rn@CQzP~XirJ~G5!_V8gT@=XFaMZicO-wk zcft^y!th>k{-LWrGKCW1aQNV`AYQBuj6j{G&NyRM|0B&#&}XGjkii#6`FiKN3k-SB zV20Rz^1|w6xz3+2`~qEPP8OfVDiz7A(XvUeorz+1{~A%uAanW^!RpLWXwCY%_!XD1 z1pq<-@N}#~7sznnY~vKy!wF(F%=3!7tb;F5<&Ni_i%9Ku@x)F{Z6A#E7oNlHVku>6 zgQfyh5DF0{6i7IDy0(vGaTwOK?;DG9$`u4Uz>Im8i^4{L885B2&5j^DJCQi>u=3o2XokgYC~wUm8HvTs=jgGopw zTe2I3EZKKsn^M`CtYeqN*vB>oWB5ID?=|{+{oadbLob64N zgWQJqGp@bq-(Q|RG`bQ%Z<{-F+7~@~JJU_>z(_F+uWcBc4nDBlx~}9t%VRJf+iBI) zlU3+5Pj-qW*bMA6-tX^C#BY4OG?u~gE=mA>cWW2VqG zINH!fBTX~GYFNW?suTHXl#Qawz`1BzLCWJoVD@ycFr42$4iQvLI~O{H|1070?9_4# zbo^PYWxakjwzxXvvCOkdyp*W@_cF*SP~^DKcM4=#r8xH=z1z;9&?hk|s*N1yopy(F zfDAX0OsCH)=X?wxngUB*c9q&woiz$ogF<@+(i*$D89ht#sVqV4+<96g z6xdlVp=(|Aa_p+>Dhz^_Q?7u?fw>$G#lpUJDmOMI8(F=@KB0$4UIPV?f0dXeH+~v) ze^FhO+!0J$?L1fbW3KSiUj26-UtXFLw53!-#}w(K-3SRqQTQUc1x+*fvf}9#Md`^d z5u4I`lLZb|@bwdC?(|&mNJ_@XI;NvyZ--~z0(lqaLRO#gp8SpL1^yEHx^D}>mpX4G zQPLL##0|qi0v@O$BWOXU+Ldoda@tLCZyAR+$4GwZWoHurY7}AsV{5=z>tNTU@ex6H zhZ2p{5hD>XlDqtjt@FATvN_7VCay~c{WJ&5wR-f zN~~~BVStC%;NSIyOE~(3+b>S0jA8GeZz-VkK0>NJFe(y!^|OHcjUWsO+*e>iQ?1l% zl`?uW_>3vjtQ&~6jHy{GCCz~2R%nu}VpNEY-oWt}fiD#7)p**N9(}k?J?`f(AJdkV zoP2C`pLAG7Q)1$S7q4Evrr2MjH1D>xDdDjA`Nf|iy!Xn|uP?f?0HrG2|7y*{cc!;W zpv{IN`v^64IB3YIeF2o_fsZ+)u3w`lPKaBi*iRWFY3`~YJi0uo-q1V4-+lOXdissm z!&9Zz%Xv`r(P{jK$&6}y#Zl@OZrPV~w8SoY`bwW1g;LgTT*S?nbey&|$O@OaJYhsg zT#FJDlY%&ZK}ejWqmGMiKRd=G^pQxsEN7~}n<^K-(T$E4NS3v zB}UY{OnCm#b%B(w?*3Be?~~C*&Pd|9jx^o9P9(fWvgkYO800bD^=X+d5i-+W59E`Y@#Zk)V!1ju#PB~mtO zybyHP#$h?B!h-k2MYKlxMQ}7gmDlu^nVB@{bM}|owARW?qmN6o3hZ0vJaNp)O$j82 zjTTk_I9}#JR2iPK;Bn^hytXGvbOGHcXna-o(B0oPjkLV2nSGHDQB(&>*@utBy~nxx z8Uuwa+4}6LYhj{O#-gqd43ltLFG#zR1{8pKJYekJtw%^t0=STJ;~iT{&3<)_R6 zu%saZ6LDb&mNE*`HE)jao4e(TTlv6LI2o3|=O@OFBo(cV0owmYF#dE3{)0jrl;C-E zi_$Oe+gXtJMF0wi!k_zhYlCD;gIVuCel7YZ`3Y}M@ZybdM;_4=N(9o;>3@1*$WZ`#$DUC3pV+gW3qTjm*5dWkwSQsMox24E zfW%oIE)$GoNdBNO057hR*4j0*T_G`6cpBViCvaU4Do95Pr=ydHcZZTcC?-ic$Pz*p zKb5C>AE5&{`S?Nb=ek5@h3d=Oy#RiK`Il)zxJfcFpyN-DpG46u8rDOo@ZDng|Ibp` z>a!FeC;+tJ<+g+PrnMyuuRMK^8N)tO6`4AR>TM4XJq8^k^}m@a$C@O1R@TNQb}04x z(Q6KXy(j8HXGK$hw=%YvBZ!F<3O$oJKE`?UXsgle28FlX;n(Bba}h5=&Dzk08=Tew z#OP~-i8me^C&T$o3*x04?wb5)t?0Woa$c4V)ayIV&-4}+I5pf@vsqaNNf)`yW6jZu zt??40_hX3kpdlJ3de|vIGz3_Y5#gK>rdvJ*LDGgLu0Iy4$F+`r`ID4X3L50zmPlYe z*gyefI~1&{ck`sfAHNXmKPWOu^11!-5cpolCh37gajO11wlW?xuT_&645+}(aGXQj zP^w^oE$8T!eG@HT3lu@WN!3^-)c8>?0(1A#>~N;XddNLSNye0hSLx8dcGDDEx2 z{6B#*jeV)nUZ4=-G_?o6SWy6nifXO&y!9q&?F)1FOWv8&HBfXDjDD@O6Y-iR}R_^bk8FPWtZ6Lu@3 z>)(Towl^-iiOH8`^}AK;L=Qs^TDlZEMeL*kiL+knC;y2%LW`qS-%}@0-@WtopLl%X zSWFkE2}oSdFlWQX3flJFC6)XLCaU;ng?_t`bUtu6S0Jr{C4m0gbaaCl#k#CdnxX3# zL~F4bXtkky5Z5Qk3>(lxbEwAEi@{xR7eV^Oy5(m@m4-z&kWlvOa;t+&0s=T}8blL7 z-`EJA;1$6%jodE4mZ5{H0z~;gysb%f$FcF($^&<6a+Ac$-p8gmR*y8E!MHnLMY0Sz zY3l+PL|Co9rh(2S^w;@4%{oWY|Lt!bH9O7_ z3qFFxhFi-YiKYl09HYrnDs}g*X>Eah39P3{=~dbeV~r+sY08@hn>vW=MqQ`ov0Ze& z^a|@9Cw!3+~9g6%tJEXfk; z=N?&^0}>l=Sa!a@0J>^~gL7PiA62}e?JWaN?ZWOZdI0Pc02UR4zEXALn@kyS$e;)l(+vrUskV;*> zR%W%|IKg;v_e-6EopSbIm%8h*VsI%trsor|$SDG6N4Y}r@slU515dM75)db-SWdtdRihzMYWRSQaNZFar zFl%wAt~usDEfiet9dsESoBjlzZ&Amw*F90@9sZ7(RyXTugS^~h+=}J`w_cv)Hf54O z?zou@>Vq^@$2~%Nt3$eiL6TuZ(5&v~IiG%fJ3=|DSCM_r>KceZzTr_GLZ0w9_T;vi&lg-tO$RPWrm0;@V(wy-vD;h~5f>Mx~!_-9n1Wvce{BT30 z6w;Y!8woz3Zk6xMOp=l7F>9bss3`<*D6+I3yj8+GXvpA;9l+VEZ)pwioe^GDHq$MI ztJjknI)umoSs-vI!t^Ko{@ZO>5H4LpRYUSVib-@TQ)<7xi%&WC8Qx#gh##$fEns%y z>1458CNFRe*}nfL2@Yh#G;5~cyFXX4B_lv829`U@@@QP>^V%}imhe*F$~TB%+r3AqQmV4%HoL4+E`^c zTL4{soOZ{>cQzo@tf-+S*jcpDMzE{rlk)x!d|TlZBSxvMB8EY4;Qghyhc`ilc*Bjj zg5p_bek%b=ZFGt(cu#R^=GUasci`zctr9`EWfqf9<;dBVy_=wId;8&`gIP}YU&?aj zn}90`Zs|NF{6;q$G~4mNW+Il1fsC#@^V=-$VPs3@r5i4@2CdtilBdBujs6_6nasC@F^;${-J-)}Q|i95oXRTdZoSrDDoa+&OLbg9(D-?(z4C!G2K*G`C8el5{+v#YnD@HAk4e-NW&!+=|dol6mp!#}q(vd75Eg znooDWYV@_C%I1-d=l2u$Y*gqBUO;Q3=poL#t=b{4@`m+b9(~o_vY*?77s`LU zc{Wa5Wo>WT+)>bi8H0a3w7T35szVmRUERU<^a`y3;4b zOdf%n=)dx#H}+GNHF%731Z}Z5T=f8c*yiW1dcA8k=4fX%0K>Y{L3CKjRu^+nT zyWf(@9IsStduNm+0kw6pPXr2?WAy+Z&`D`ZmSCc-2qI|SY)yU!GoOQ2RDz!3Elr#+ zv}gLN^{WZv0vNUk{|a15%?jHLyN4HUU}GLM6|1zU(#G&!v$0FTcP9@fyq-@#L~6nI zPg*wfbY-r%ge1WLmu}9zD!$??CbRg}SOOk-rLwfcgnG2Xu>Ka5M$(3$G%L^`S+dcs zdA=Oa@XcNc)Szl^$^B@FoIig|##PtP5Hy&uB^`SD&m<#vYv7(a_g5v`>yn^|?63oO z@iPPG{Ifq)1g)RFUzRtToa|`VSH`37Gw(85J`B8lw_DGOW_!{t9Ky{3hfwwAqI$*q zloaH`f_?WTEMBaiu0ZZXNm`W8!Lb@YM^pQuf!^+kF{_QBLxx$d4JV63`@UuzNDMfo zdYXG+P<1x3nkG@*L$C7G)lIz{H*UOxqP$wud&^bipA1)-`GXD`A6|*s`d16>lN{;i zHE9~B)@i}s0|_h|A(f%pk>Y~6@)ax9v(#xyF%Me9gO2J0i`XT9Ef5s3slX*I0`v5H zj8kSnHGj9}9>F89_RgiF7p+DRj+j4D#Ve&sYgWxdS2tsMugfKfFhYsyf2HPW*Wj#j z+lfpCa-lqTvrhccgFczyMRSE7|X0em5kXKgL*#rQg@-$EQsWem#; ziHn34EO67l)Fr-jnv;VR2meCS=arfcZH>TB~2 z^4Mq_l1JZc*sQr^J$ML1z|VxadK#^$%R zz2-D~e)83=)yAh)0!%hr1Z;HyeRk*%UeC}Pp3d20vURs--ujI9%<>9NtpAhGSeIkz zg~cvEe^XKNRNd4Lwzz!wvQAc+@zlLMQxMuyot9K5D770O0?M5kiz}jaK=W5=;y4ex zIbv{S8cuMPhQl@J^!xI*m565JDvM z5W(*NR(f$^byP#mD}>a=p%Z;PT}ZkL_|VOuu)m6Fb#uL1uMlgVlsIl^RjO;03=}(T z`2=74XsaLE$66VrQ*HlACvA4XZBdK&;*pTbHCnlv?o$bYr_UectuFh<ZQWhc2F6ysZPrCEVkXt*&_vt8BR3X zWw^x-xM^Cco1y0P7rV?@K;82*KgCFYXnl!I>{wa@ZQLT@SbV<47^oF^DOtG8Mgeyi zZ)U?orYt2;jnO7Vv$?D@5g+YLdkN(o(s+>N9!cyDpk7I-drV-0^ab$ut)KU+8X}$u z(&$0hWWFM<3j||sNlZ`g!&O$Rgn;f0?lS`1s1z0ba)n8UF{WeKNQq_bjltR7lV`gj z#*&dXx+0=YD@x|(>C2w$vSz+hd5_gZf+=l4lm;Fv|W184U*JU;erO6 zo71Xk)KKicC~XZR{U$Ufv>=Zge^S zSUG-k2-M!bcha6DS;(ru^+MP(;9nvhsGfOMfCSBdq8FAP(f%mKV~NmD%0fSKx(^$g ze05Cu=tz(SCEzOsNWiU1IcQHcwUCSwrv)rObX;|Xy*0P`R&w%SKk6vtQa_M%|K>8SqC zbjJ6F32UM`)+I5OG~b2MqY#!)=wzt{R||PGt*_>O&hZSOH@D_`?@k8btN>B4t}j-a0L`=CH{H)9MhzEFMe<QOF0(;`a3GNpt4R*b8l2sm)$fd<$R-C z1XFU1aMB%)TkE-nSA=9%Ki`<))*0mNvdb~*3kK@(8MRw~bA``5$k3uEQhFmVODN5{ zgi+Q&{fokO&_R9>0Q$`#Vn%_yi6cN{9Q8M>IM!4noZjlMRv@~ZmMSNwPS12YAm z`0@)}X0NO{_MYfS)wkVRr&56$;;~f=cGJC1-9w*8OZC<$$2tFS8A&WP2yf zf|3o*CaKY@ex1KwUFf%olVzp@F#1C^6%V3hfh&g%xN>yiJYoU6)h05ee58a6@<%6E z)kH`wDUbO-`>wf#&`VW@n`c)%=&sls9C;%tKDPYk4Bx?IlOOXksZa6Gn_u_^IF2>4 zF?=gZJKk+R44eWn$6M9g4WUqC74Wf@c3H4e#|S#IXcUao^TzQy!q!9^$`$sHT)04` zfFB~lU522e_Y)%7;=lnQ*Z_6Q^`7r#oole5=2(Fyj*z$>=Wn)6(CV#1UhxYgYhR^1 z%V1Lfi+1<7Dg&6z?_>qQDV**q<&{uzTh zcV$*vk4f;nYm6w)~EOfB*_+?W22i4e=Bu z$f3nMv%r3&A7R>vs5leshNY*fJ}s(5YWZM4$hPwE#y{Cd{5H0OMR#gF#dVg;5OcHlAb6JVX+{fvF=X(t&aF>HeAX z7zn8PSsY6bZgDW(KXUWN4d9@Tl>55*BN;#T_3i02)rQ&JLT{n4UYXUmK0|LnPh<#v zvqx?<>bCd1Z)h`e%^?MJwCGA!@u_VYD=Eh*M?b3&`eCD5Y-hzvja71^@fwBSQ#Ca~w*pgw3zOespH2ukZi?4_dMq5S$K_Str9$0!SKo}oA z1+vC|gar?mia2|LzGlXO7Y7=-rk|t4Vv1CTF4P2{UGe_>`K;h{#5udFVlS^2_EZ)t>(SP$aN)>pJ47OsO~KTZc8o@;(&rW`$O2-q-PD$ zplYdpvLh`lE9TzcnY~1em5MlR9qa;QH<2V~p85!dY}g$Jq4h5->9cdwtQjGQ3JI(m zq<)Ct2NcyDI5h&3vg8C~aka@bLFtm-G(w(Jb#7vK(&#;*`*H?rrMzLb^jZ(!1zKUH z@5511=9zLen&$@YD~9uMiVWRV%&FLv!(300fNFrvKRjpI>hV*Cy5h&@zL7Fc?+CKg zFqu`#QB(rdMaFP;hS4QF& zyk2k=UjW4_e;MSF^nK1A^`b?e4crmME}j;hMTiV&-0=}60aM`Jhmwk>3@`yhyAC(L zBKfT3<>+4bXi=9N#60!!8G9kQmkp*Rqi%liJ_sYRRuQD^8U;URo$CNu!TNn)V;ueM z2a|7B_@tMA+&<*?Pdz;#UEzXd19=%D(?S0fajNsO5uJq#O!+T>l>8O&!H*`8=->j8 zp?v1oM5}sK(8T-3w-;c~-gImNO?M`JgJ98;_alh;UyWH-o(2uTd(yjHB=B~i<3e_S zAzu1$z!8zy$tD`$4481Fo@lI9*1g@*=d3J2G@Gx;Z34~ZBn+M(di2fuO}$cP$?Q8F zT&xl`wJc1`I^;8x#P>qkFOBGiDkd@UF_LK%dtC;2-fJvA#ox&VX%O~ua)uSA#Y&s7 zl{s;h_fvCw=YxYzW;}ga^$@Lf{7yb3u=WHLTT5r`VJz6K^-#4_E2(x!=*3HF+5Pus z^kw$%nY{Zh5k@PB} zOUHUK{9E6Y-191t=pxTt;?d^)6CDmCdj-b!k1z^bpEQey7zuCIVev2M4PAvLiYLOo z?3g?^EZR!+33||xxdp#rDM!LUI4I*eD2{_*%#cxhmY?g(Fs;juQiM;U&>2tZEMyyd zZzY}JAwz96*M?Fv3Uar+HN$Naw^>m&+7%h!q*;jX#1$28@-hh7Mp@DNqRc^3M!FHj z(|IB5k4lk$?4j6qh=x`A$$t+LZ|}1NdzGcz6AL$JBaUGLq=O_!inv~Fs^p3!%j4-C z>!=`tEP@ZDuRCqQd)=%qiX*Uwd0_g&fYt1tvt;uv1RSCECZ6(s@nC5kU>Y}Ey!)yTrWq#irc9x zCwzxl53kL|`+6?rzP;)7N`4M0-fQo5JLj@z$lIk7edB2!{U!aRty1Fme1B|97nRgO zN2-fv9H_TnQ)l_@2O7*w;1!SRtDzjjNe_O{I(`tWm@~4-aCZ3cmCo?86wkk5K+@(_|`e*MI zOuM;zJGD+?B!!xhVr=*hHbia>x&~OvqcK!V@a6tb!2zcN=Vr2u@21}ZY>I5MCDhi&+8DT6 zDxDUQOyxkULIQF@l*h%oIlavur7t31ZUtSxvT>G6iAItsbH?nvP3$$Jhp(6g_#zq-@N)u0{rwS!Y(PcaNRi_Za zN3i7uvp-`^`b>>ekHx-Xln@rx5Fy}RZhRE{V7N+iOP17{Hv>z+1=g`3c%>el^_bw3 zJvNzwW+8M;L|t=xSY+8HEKsjejn0 zw^X93_97mz?`h+ZW4HzH=NxR480@W@FUHy(4J;PV(e1f+PsOJgGU(#j)>`E!(^=%m z@P_w@79DlSJrMb!!w=ztt?Mv;(RN}hNuU8ZT03>H0Fh|#1(_+zp2;)|o@-lbnKOxX z#JTMs=}^h|0z8eO`|jvQipy2oD=j{eDL00V@Jy~5k5y>`%Enhr&k<_nV(I)xnu0`E z()bo~#qAnzfNcC4)W;gosb`_w8maEoXG$p2n&YJAOdA>WD1&+dWZXP3$$Khgt7Y>3 z5bu>{JHSCu8Rey=_axTqXFr_567CzY#J;xFR1L#@F=f~}VXvmHUfTsn%9=FHyCsSBGJzxT(;}s)!2uuzZP&p5f5=t3K`D#o%t{#sZ4Vk=GR^w31if|Pv6xU%Dsa3)_v*eB(O!JfBa-bwT5y_AFDhiO>z@_>4x;+*jKzv`wZ ze|Yz?su_aurQ_zR2~$m|y5&i>3O9NlH3kQLv%$b5g+g|1 zM+OFF;U9IYDD~jas|%wAD@AIhwpABjc`4*@Qzs2M42Ii(kdgoFz?r31DENd> z14~fK5w9|T1*mNVPQIKxFSQFz=>qjn-#cL-weuoqz1M=LRhGAR7G`j*xdRwUonTUbJBzOoJTHefzZqH zC_ahM#Cx&$HPc$hid$7XQzB}E=!dYKJUS<$r(a;;C}tPHUGZ5%;ZW7%gX=|h<<*8> zn+lc78-=pxR+qJUQ6GnMDlgd>q@%}mU4pVJX0%R9s~l8x3AZUFIQg$a+*h81kEs8s<=HR`u38DkiEQ4_vG8&kGooyp0r8_h9H|^ueDXTn$^?cafPh8B~3-a5!pI*z89}c zIegCRrI;TJL?kY8+hx7C)^$M~ZA-s1dJDqOg9RTCt#V2_M5j9*ZkRTeOPjj z6>_g*hoa9suy?!lL_KMeKT&dycRMymCA=n_jV{vMknveV49l9t94P6(XjR&ISNY-M z4+X?k2*Xr7AycKuyq906$UL0NBMpWJpFD}rl>PLK`T|j0b&D=lDLQTgeoWQHJAohH z)I4Us={TGut6*OJ=%`f7*sDf~HwTJ32o^&gleeUnKKWB;3{brh&@s_>ltG5I7b~*N zDGd7`J)<{b7;_1uF`jvuSfOh%cHg)skHvT~MPbP~rxg$(JspHfW#27d_??mak6uV` zp%4;2WEe~TrRsPTi?`_h5scXpPau-Ov)(ZmSPvOGb~h^h{rmTp^LrJbjHavul^%p1 zI#k1Z!j%5pU-Ng#f$M!-elLD+bpH(xm)sti)i2Mn?fb6W1ds8b43zonhGh^~Qj0dH z0NZZXBnDpczEFtYTlPHbA>^$nec!)~{d_8b2!{&%NVDFJTo+S2dP zChsvx_G2*CyORCq07b;R+w{rEt5ny^$cpb@*kd2db%6r^HBlhkMDo%wmtnGiY36}Qc^nWCw4J?rv_MkUwOeC znbL_G0H5ea6KC}uglr@B*DFhx!CVOs%4x}SX~hBX1Js9$ceTL+z#eecKD^sN25l?I?d{3bs7T!O@qGFI z-8}C{2Vgb7v6s9a8Z9Rh@>~1D|C?ev;JnWT$j9k33hZp$tFZtf))yIe^LT_bAQao< zwn6^w)l0XWqVdf|SecFQO!D7v3g-Zna*L2VPZob_V*vX5Dl@xSJJ7n)VB;L%dVP6^ z&FcZ~F>IAPytu?f_h_+gus*y7WJmtU zMu@ZjX4>srQTkxVy3m3`gl+KOXM;^ttj|EZvx&CK`Kff$_=XHs~zzRV>yYF<2Jip>A66y;(ZQtzT`3F2;ddH9U&&mIlb|w+i zmh+(``HjCB1OWTR%Raq=eH(dyc<(<6M3D5gv>o;J>#Db}bY203)+vs&eYQP+VhPx> z=#^70u;0u|zIEz2fc5$7pFn;80w7;V`%uUB6g#N?^@>&&3Hjl}Uv~C)a{|ELhTEj_ zZ;-xyOHG`lYcS>IoZEZMTjvUp7>e}WHoIAUb0nC{!+ug}`-RdE7D$GZ0Zfx)hs5NY z|2s%$2GDmIgI@pJ$a^B~2P6*X=M-8pIsSVf%}o!GH%2wHLS{Wn0FcM5jwaA_>jd^eA4eFub!EMtRwBClRZo1_48;}JVT_+PO84@CDO0HsV682rij z{BWLRrtGWd`THnAUgy6K)Mf$aW)e?Cvu-2r5AVAGpLeO)cBn~)?0*N|Y?=Uf4f;?B z8F^}ZNn7DtQZ!lflL7m6ApH*PaZRy|Jv-a(9vrNvtCu1A*MI+VC2^c2^Wuv6)puY$ zcL;m)zlrq|9$9bD45g7t{zRJk1mGE&0F$3={eQ*SUoXE8_|wp&=)jI%P+J2u54W@Y za|e|F#nujnV@T%2Qg`z!^134)keJwYVUVnRep&5Lu!7kW?p)dtXz80I9)txphy3QL z?OTac`z>W@s%;0$7b1~*XD6ZSQ)?Qzu5bIPmO2$t8HPwN;N)A(-z=a0VwLM0JSkxM z2!kV(7*=kybMm>)f6L0w%Nq^SPqsoc6{Kn!cnTT7W^q{t1|zejPFlml;oW@z!p*!-M*|#D5*)gP3SsQBnAZMBIMGv*tKW#COjj%u zgq?M+6B5iu8#%XhI=yiBHNUi0%)}LYuJ@+dcZSNF;T9>el|&ao^Bz|5i~k3@?vd;> zid*G7!2QG)J6Qe;U!CsWI>&uslD$OFUYFUIbkmhfUM#uQ>pFLIdvD8v%ATbm*U{{2 z(^;UW!~bc!(1n5ppMUBC+S>g$AN_O7+mc&t)Mwr*2Vr`Bed0plIXrPZ_S$O5aBH_g zkD39ESM94a2p-&27w1e&xS`uv`06K?R#eyi5dk{#VZd7!oNkcM6ZOd&^naG}^Kuh) zs5)0!H@Hg&PQb$*TVVq* zo%8AdHRBJ}7vRg^UxfRuX~Q^FOD=e%CXqK>UOJFw^x;L*KTq~waNINVW?=GF{WMht z#lIAt9opa%Pvt0O08;r?B;5$^sCERgy+=mQPlE|mOyi26n z{0gjgH5-I9o78$#@+ibCj!%9RFcn+H7dwHv(Nm!LBnN)3O8|sW;{qKAozZnZ$0W7b zWLB5syR|EfU9w+cwCqRbW+DepTJ%pIumP1$PKLr=K>zMcC8R@whfoBnODzHJ-o&;0p9r{g? zyicCpHA??ib^(HfEQL!zRb;1)Rfv*jfXTDQ((}Upv4A(U`MyUyy{s4-w zJQ=p{i=uzoJc|Cy5=ugIQf77Uu?=Ot#~=5xQ@xgoc9=K;oQ*B%qwD4i? zu|EgP-@PE9q_(aHUHe`?P^_tCdeZv*4nJX4+YbzUgs0f*;!2$X*Fo~DC+-S#I}fi^5Oe&(rSP+p1Wk= zVSp0%;C>=tgXhY^z1Kk8VlGR98ipU8s%ab5T-2MsVxatxxCD z14nHm1XUHxAauoL$SqP2VSQ_}10@-l9CW=r9oE|@Zii%|W)QBAf%F*FMG4#JR4%s% z)a`xsY>t@vk?}WCleEdZQSSHJ`p@Q zTmiwFe@*mq8EOII0M9OtNy`<~+e+BF9?OZ@5}io&Nd`J$?fuSa*pj6ETIfDI?TS+a zqyvxCqu_SA4;%G=zubC zNo}sueh*WXY;exVV%=bZ3>>%0%6E6^6|ApDNfJKi8GUlFp*L_fnn7;m7LHC{KdRt@ z*qW=rI@o0E6u-p86AT4y2d+&!5@t*5z|&_m4cugBO8RZJ3Ew{6e2A^WH+JzNHwt=; zgCz=#_Z~Q+OX|8T$YUY+Y9-{!sW9@g-R0ey>m%8)2A_}n~!$5|(j`(4g(#D56 zm}WcRvrycW_Q`lDY~^rWW^T1cr>5UFQzp8T0`s}JtBkwRNMA0fUGSODtz5iaWIK3; z7CN_v`HrGDc+=Iv)NbgB3(tzDYZb>pT<6Vg2;-0g>f-zC5SAoN z=m00SvNTp{%F$Gte@Iy@Me4I0lUROmXQ={PO^cgG^IFDgnoP`(aJTv z`~@Td+UAY8*UmKD0Uz!_ujrQsPv=(fOiQ@T^qjt$2(vC5k<;$aE*)Zk3_3$JG|5Iq zdOXQGbJTBsxlM}y(uhEhJ!qrsEc=_`V{J+%Jvdu#3%d_nq`_ahIOiUfSp|ZwwvjV8 zYEV@SrLH1+dB_uAm6Z+2jc-f0AI*}qZ~qLWut)Qio+?R+sQ6eIZgNRQ&!OSnnq?)f zn~{{i0t6@!7w%3|otI5p# z(R2!+uG2;uxNE!EIv=V5n@kc^Rs_qs+pVFCGCCfX4nj~j2*DC7T3PwEQ){0VaGHj7 zcE=OQ^FV_!9p9?PZaVCpHB0bxIcxuUL>BXd6D6^wx3N|euy`L!Hl@0>0L>YA zgEDqSbAE4zQ@&ETPW4d$4rk3|ceZYGlxT7~w_&d_9`s?AG4)#f(U6bphA;Uii|rdB ziBv7;uKV9}D&}}%rbEu%GzN=l_3Hza#jH*n<~EMQ>8iIj39jE4I7UfQIZ(LoQjo+- zk9pU7ljUi=%~^-~bA^5*v4R#S>?#*(t&bf~0cB`qqd|P8%~44U_sNp;eHu9L;PmJV zcXe1Sq7VX~fatRtOqLCxi~d^Sx&FC<10L7aMAxkk8Fc;TO$dkqYH!1JZA{a_ri<-R z!n3bURBOo1^=bQ7QOx+b`#*-Vo)fR*dymaEOv4;jzSU(lNPO;ji*SEYI`LDmZ}7@%3iDOI>k*?MR>1CfzZq#m70b-vfAGdg2F5CtQ0Qo1+WA zPi5x5tYd*C&AjdLSZev6u(e@!hw#>)nGT4e`*&h@;KY%<%+*%LroRD?d@DeO1n1U5 zux_$?8n;07KXRsJ%JE8^=SpwG+=RcGzgf%69)~7w=j+elYvx0 zX-k8i_;xq=;~M)0;@RUZF+!-?TT~W*Z2Gets6AsA$Lw?P7>`&)?#86*7X87qkEN>_ zI#QKU+K;Gz5_$$;1N8BR9wvK(?wrT#lWAY_>zHF(Olo`=@@Gr> z&3-a@V@TmWf$jz_@;R8iFMb`o*8nTF^vrAlA0@=Sk_%)sTS82?R($X7w{7}K8wimC zsis+B+Pgu_J(7pEYh5FtEf^Sz*9bELg$ShtNr{r7a>o>`0hv>TNKr%6?8x3-y)=;Y z(lU+AJJ4lUi5L;P_?F4BNQ0oIt<}1$pA1SzU{G4M>O^1O-etd057J#EcwPGI`RPRQTpyE;({mpJ5-|Bn>RvJ_3K2G*t<$VTd=CxOxd$t>nYy?hc-h;9` zK34B3lGj&Xv$pbA_Wkt=-8+D(q)r#^9ea!lgiMhkPgHj0^*sg5isFZ72Fa`c@R}6= zPsu7GTqGY`{(JDNM@FrMbj0a>8g-P6&;K5LcnDT+$Th=54p2%z_z0e-Z*I~44avy2 zib-3_B|EL+@3aYUJ)IQdEB5dnWd842cNpat2ef8_cV)xTb$0|CyB?>LC_ z4)T}SfYaGfPi$u^kWIK>2Aw1)sZM#GE!pdv=mMO^=vHTEP4W_dGgty1Kq;7k`_5ed z5`rKz>Mw(T32vwz2N1oyG`Sm(y;?uXNlT!tklJ3ow+>jmVP-@}%P({Nin~Kxi2!*N zHKKuJa(wtsayp-#%Gn8e{`a<58zk{r|I4UjWI}r*fGZcZzwX>NK;%2W4!qewijCI` zZA%d{>!~qvKN_m`(kLW5~C{NvCg%HwShM#(xQX{x=|9hG5^V=Z2oyQDyZ2 zc>>VcjMaYm@=Mi}Pj2{IVo!(QV z$%*LtBRhB`|M{1}djpc0t6OYIo0(N2$KH;g=6wi^F>Oy3KQZSikdeG`WvVkHa(a;n z@icCpNEq+bhq6%>SyU*U^{kmh+>sAvII~qg8gaY2W`i1SS#|&6M6JbN~)D1z& zT2F#;+aKz6n`e_HC+XGel({T(>B7aFlh&>@$;AeCKkuH-WhgXleRYRrB_Nc=i;<@@92r8}e!lI0xu;WJNa=8@g7^KSqo#$LYscUx#oJk*u2iS z>Gdf*V7$h$tkE>`EbVNGp4m}(#n?2}xYzrd319qSo~)+I33uEd@P)@@ck+noLv#eq ztM4HMqWIi&Dq+2ze2YZ8MhSy{#!>`v;Kv^S6-58W#FYQ{I<#aAhC8>2ppm~BO+Xb6 zzj~o=+>Dm`AxUMz5@OzyWHGZm@ul}P3cKQ;bv^CI;4_?Y>DHSKCeWW*z@TS3*l|i{ zv|l`@&}*h@>tiq8rI(RG#NGP(@&`Dd?MzgGKi&Iy$tR9q&&gwIPm4Zuy}mi&NhK5? z2H5UjggBW$e;EMvkj@9Xi<&iMmw$EbPUi=9wp5ST3x~Ooq(UrTs&qjfGzhd~cD0Wu zTB`fAHPImxsh=pG65)3Knr6NwJu8@8 z0=Y})_zB+p+ybV}&(m0-S3$McBJ=lKkVL7Cs4xf3n5(uo2HcnKo8-I)62d!%l(<)j zM$PPI$6b*pW&L*ON^YhUCWDlE2Z$8-)Ogu!s?~Q;C-Wxx4u^`wXr+1g!^wesQr(M` zZ6$xIYJ!1^q4Iq;HMq~bK$=pp*D>VX$J5S9xM!KNvDBKpl<;FPOp`12JCt&ryZm7} zbd^WdfX!ip>$Nw?nNFaOEkSaqf#3QbEmA#Z`H2 zq6g*u^@X|1ThPG>G4`Wp?ssaG+!a2w)lxP1vRqLAt!Gi+gD&&-YLo8xxyr4+HdtVW z@$G6ypdMn9ZWz%>NQ8K49$T|l^T4;DLpRIoUUFtfcm}7{bzm{En=TeQS#LB)aQjC% z{W@9q9l9p~B&=l#YwB)Hl02<_mU=YRvP~NH-z_i~5yP*)VZX`j9sLO15@j@q%n_GQ zYwb6g{cDF!Y}sgNY6((wi5`;5>#tat3{-7C8tPFZyf*qaf53%tET|>wnvlW3R!uK~ z`)R~caqAO|#F0`q@bz)51gcE5c7;*TY3!XQmIj_9!8RpiaT;s5h&|m+C`=kHMu1PL zSM}f~n-p12u8x@=L@s-Icn}9*#J5)uN!j;Axf0Vko8IX-Z`l~bY4MFgI9RHghdrSX zQO@d7d-q2D;;)FR)UMYOGiCpv||930ESAjV%&3xrHIqwrcP}O zei`7n@haZ&FirYll8P`2Zw}p7cK>ZZNhiMF50E9ff3gVY(q`fh7l_4dEj{vBY4F#s za-J@+AGmC0YP7~HwI#SoSRS~U-`hYLeud=EeIZ@-jQSyZOD|OW-Xs5oEJrrFZb?(T z7Wg0&;y7$`A#K8b=KfgF(Bnz=Hm5HxeCtb_W6ZhPfqq6SHPARw8@bA|;e?0XucG~0 zWXEb8F?7DFs(l*;#>UYt;^VCe*B|ORNqt|`)25NEyV@@$pYT|x$O@^KLrli6e^wm4 z&3yJ!Ki{l?+hPi-8ld+k)qQ$j!%LDJw5)1-Nmj&%^U=FXGYhBctY`Ij@9_OH=1)*3 z<|s|t!>|F@`%3YGmo=pp-Z+LCXFH66t;JrK^9ocWW2XGJQoPrMZ6aT+Q!{*4O_r;z zKmO@FQ|5*yJYBc+5&ilj!o(eBx{E+)4TsCKsxZn+-Xe>g=kUV|`W-LDP*|(0X9_zP14GykUCq9l^;}Nl}a+)i* zcmkb4?+vpGj>DXGX6z0g&*WlM*3@E$1RE3B6B?HH##c^ta;{aTjU|0`E6DVMZwxmz z53nfpv9(W^_CD@9P5g3<&tkO(`$zR)75$$bCW@Qg2a$_LTu7qaoiwk8ILV61jMe{# zviFW^a@*F2w-sz)LsX=w6cqtckWNGdr6au~A|PE#h!7wuASzXQM+BvW-g}f5=~6-q z5HWNJ0YVC?-^;o8p5qwz{`T14KaB7uBUxjuxz?KVnR7nRTv(mYxEMZr7wGgOWdb*v z__OS2a|ad5e#DNvTCKC{cF))sRdkA^mqjGY?z#4*+ePzF<`9SM`)`;cLH19gBFJt1gJq zY46$P5N9Yq3fT)y;T=?{4%Rr3X1?asf_&zRn)#z0#I)?tk4{|9dBX zyTY}X*V}8*IFg?Qv==J>YVyPmg>R&~*HIqw*NYq$oLgx#ZOo;g>xM;Ll)32^EhR8X zUMu?@#!^l__$~h|FWMU}UNNKFv^dp@N6YZRc3MAUogJcT#@;hHSDi%3pY=O|C4G9&xPMB zLQ6WAB=0IWkUmmYM(~yPV&gW~Yg<=#ij^r}$XF~7U+7%VTCLHAM{e7;&$|b&;sx+;%D*Spkku-5*RmL^LRg0B+H`w5Kz)A~cdw}KW zPB47ly6Qc&P+L`HXrr)NRxxk{imXHzXS=4OIjGLzZ7*oeexbGw826_$hNSK&OB7I2 zaQQuMgQ~jy^Ip|@z)Vd2m94ZCcs^1_k^IZdZw(v)f_4vG2kE>UWHEh@|4*DHG2iF9N;t0&x<|01_@f-b}OOHvb=YKHW%8&xx_uu;H8Nof}c5y zn@KYYq;9d9w|ov0@0LyX7`uM)?hR(CE`poZ%rI%*rHW4K)7D{+e68x9;i|g4k3wbw z?CCorKfI&&O4si7@6}YwxjKCPyQu1a0xDw>eS1JivU@DEF2=oaBVnbPUJ#d(+ zcU8R;vC%AdWQ`kdmi_iujKWIs=gmO>B@m&bec|n#3=_3j(aT3mf@qE<+0e3@JhI&D z=s?##aw|VW$?}o3g5>qQIkK=$`g|IYZ$)h1fFo7Hd6i7#3k|P@K z?Kh^qV3X)X@|1iMt~vM|JKuJf$ktpU=h+=iWvEOxm)N*PYe7kQ+~K~F7rUDfL|jK35g`$G~*UgzTO26SvS-mx16@2leY|*NQyeJ@EiD@Mx&W6}*7;fm!IlPVF z@|(PQS8?f6WxpEHw{ACvN!53LCBMrvMSVMx>wx5npmLdf)yp^ya5ML$EuIB>We36+ zss;{)?PINQWn-w?Dq5W%0DcTFMtG;Ch%L8P+3e-oU1aLyUq0w=Sn!)oOKTs^YF)od zJzEebFRxNG)3wxUQlV|!bwZ$V+TVus?Y;|n%vq)*l>hBgDR3jy=|szT7*fl%H}0jv zlnG!0|u5n9_FBlxGjgQpZ7Z<3_;Nql2CLQceMFX79T} zdLKAMOEM0%j9@Xr1hC@n1aSBamD}aYGV|_4_<8F=Uh&hhoI}n2gy-YI4F#rU&+0a$ zp0nn!l93QhaC|0WtL(1U{Y{z!(f1*JX9^p~wlB#xxKq%|w(=@?%5LK4+n^saac{IHAikzU1uz8Se03PP(al*jE12CoJwpd|lDSAr!w!2DQzE4+lN$X1%m}(iZkz(PMFA8x9Ui_ z88>$2Dz9_ntzJAVMV~X}<9CPEm@pHjId;w*j{2~2M!0L()%TjrgmS(>U~sIIENBtV z@7>g1XW@zJyRO6py!Ebc9{BmD0YZyS?%|5HJIPLt{I-M_$2XXE8_m2Mh+7vWs(eeW zW>t^xeiywMYD>-wdYWkK84nU`4Vtf^P-nTli9J9~iNdC*&)VdW;x6jdPU71kXqLZL zB+c(dsST`9y#mLp!Ol#EYVnNl{z3*y3rs2nugqV5wV*XFv#E2cE<$AkE;@*FenCs>;>_G#Ec8XtOL&S=80iY377Io}mRf4O`iD z!sc>P=c8GqP3+T7V@Oy0^Jy=bKIN?_vToBg|}s z79f~9{%s$|37e-d#1Gk?RI{5XI@*1|^^^W5S#(p*z3ufsb&cwe6SbGFn z&r)=8^Sdc_6YU=|u{j;0iM%F%QS!=#wfHsunCrP(2U>NKJbBQpHBR$EsV6MQ$|g#l zU2awFIoFbtmNx!RwJAXK6h!K8;9WGGfuYToI$A1~K|yr)W&#Xy4yTM5n``R27@o{5 z$;$-dCjKb`f%2=8Rw>C-=X}aK?k6PVoQ}7%^CX0@xnnH8t?f%UhGozo(nSrnNGlwvOqFHnBe>w`-l?xr8I*& z*o>E!l*_2BOujr~{Rz|Nv?GqWO$f_h=mAQiV&e5!s#4B?gI@aRWN?4Yc$6*w%jb8; zu-zN|7}&TBeCe2&MeT=pU671z)S(k?`ArSnt;0WkMiwj_6r%Ex!pARN@XVsu-DJ0^ z@1;g|k9ez47Cv1z}V&& z4~c+RqBdyg`6HUk#wXW@BbuWrVf|ZX?VuPti|+B|HJyIm{jQZ#ZS!KDmGlWGM7imT zIBi$iCjhfD7g0I0&epo=5g0IX#(X^BMEuO}Y_Sk)N66whfZLxQ+{55^OFL2{f@-u}#5P2QD1+WMq0o%3p*$oRb?CwEk`kGXm ze|0Zqde^bK!tpI<91dWWZ2TqHY-`Jbz|&Eutd(NbjLC;&1a$F#Hjnt?15}Jgf6!A7 zkXSP`dyZ}mDh3>?hOdC9+!Zx$a}i!v;dkl9k5lG#JY@}1Uv)FnP{)pic>q<@_*!Ie z#a!9l-V>60u9nCW{8+f?jcngle6HGB+&v25!m#;i?H`p%I$S^q$#3#03;0$$v{fI+ ziyR?&Zs5)__*SykhRYqQCRRSiW!4gww9hNvc-y+=Mc+isR)zH+JAidgp%Mj)Tg%HF zMQbCZV)+$vVKZo_19>^UxubY1>alD#ybxcILVQb6Z_O5@uT@1HoKd71h`uz5o z$U;_~5zSyAQbhtR&$b(3E5p-eByP}0U@ZTa96#7 z=oY_GK&ZGukJF8m3{az*tSwTt`J|N_`TfktK(+tiI@Kv&xbs!FH#-Yj z7AZh47kt_3wnVJ-@AdIut9P>C%ihW9Yd7f8vz+MDt%oob9 z?Dl9Hx&-nbzeyYP8=yp@GrHv1n$Y4S%F#+Ik<$(UzZdA&r>jqiHDd!r z)@sDyZ;+nSZRB;2nJ=zx@u4mwrVaqe&wcYahaQ0Q+bD1TrstT^mS^mVs*R4swzlO# zwhmhIERP{FX?+8Ms>y$_cEY3|e1YB*zO{wn6JKxDUl8uCd0*lwt8}r}EiH=BX2ac4 zymIGhol{w4W0d9?C8T#FCPxX>Pwgu#H);}`X5zQoaSNIMg5(wf1_?ya4v|95nuJLT zD0z)LmA(sz;+gN-Gm~CK7I5yFUxny4#?zt6)9Iqz%n|Q?uBZK1wOGmlnY-lk1R`gc z^=G$}t%KPtW8c88`9jIX-hDpPIUrnfxeDd;G2ukLQrOMIEmAbq>u~<+pyD96m5>V# zgXxBhCXs*#%2JpD;&264^$RC@N0IUMJlgYxTOc#1B5*t|+`21pS9OD%V^PY+p{A_D z5ji2TyAZzfJ$FaiV`rkC!9T7(iC_I-Bf)az+67oD{f__@mjAo$|8J1!C&34k-U$Q( zJTbpRM+OG07HdQNr&i`i1|q&#*8Ct2;*G58t9HpijV(52HaRL;qPSvAzJjF^zEG5_ z9vRuh^0#N|H{kbf%=H?~>jrz(aQgW@A`)*JK#Pa*hP&H0Wom}BE@YYMV$)}Aqk+P@ zj>#q4OD8TS9E|NB&~$ivO%N zp6L?=zrv2G#A;R$qw<~3HCXq@hws}i^Gk>l*9e$9Ro2!oPzX9K$SGZza?gwV4QHGk^AtR z2#1#6D#&Gk)3?u=-ow$RcV71Ptl~oBbjb0raVy+6Ttslrr_G7!9?Wz+J??w15aL-Z zNtAw*14fIWZ1%9(C+Ek7zgtZ{I1G%+b$fCJRCievH?e5xamE@lD<)&Zyqs=Q5|3Xs z)Iz{T11i3U1ixd$w_IHl|F6a*Ub)zK&d)7SYhq3;YQ zat~z$ZUyk#ScH!RMXR=nz6bZTQr58(PjYQLH=y|JHTi(~f_egp=crz9qRdRQVWlB8 ztHFEn$)a0k{M)c2ZDpyU8!(2}vNA7i1MP7Gf4ZtB3dq|67tY1}j9?onPxI3x);2*e zcbw;o-Q=V$^@|-faz)awZ`mv;ss{T?HTp+mKkoY*vD)?1XneD4si&G>C?;so7I`?` zEo}{CHyv6}T!dGyC5T;u44V%*rq(tr7O}U<*!oW{Zx8xZ_WEi0S!AcKSKE+KpC%3V z{2lv5MqQLJ&eAcQaC!d3pq#A9#FzOj;h6K>0CcCgcBkxqW&k)BNOgDBd%`kY$EEtL z5E{8w*%BT!y&V{-WP*udaqCPa_Bm~8;gQI3ko>sha0ob#w-Ews9S!u@M-9-D{$QQm zdXvXTSE0?+@nkU0p7ajIIjh{{7;u8LGoD$fitN7A$30pqxqKAs|R z_(7RqEZ-qc>uQWk%fybvLx-SQ**Q;he~&PYtH`d%H&Bn7*`lG9Mng?qjV?U-higTb zC*%i8!h6z%jpL?&4d+lZEvG@+4wTn z9a|l{Jr-ML1I1=nw_NV(`iB8#BLjHS!DJf9;Wfk5Hc)&PKho6P`yf|6>S<5H@Lw;c zoMT!z-w|b|1jj)q3NZd_;3{G_rwIuFZT9#%nJ=1I9(W)SU8)4yPk=I5SzIwI0;n!s zOarbSeEk5mVsKyheE2&NJ|-lPjFSOe{zoCT`I!s=R4BT_j+irN>pI%xp4HUVG1nbE z_b_SW{A_jm?JdHuQ>Hv@!yeGY;!hHUzFb};v%GDOL!0Pq zlB?1#C+~dK?#%>{P6Z(OU%g)cG|-!2FS-1Myq$bK0N@^0S*N<4E@e3+?{KoHPmZr_ zd7T}AEhelq@UDuS;J5bmuqd=d*u*ttaaB3?_3@(TzJnfO@AmsFY=Mr))af=TD%@jy0AL^N3}PlZ9Z$V0X^kUIq_)>IjD>o=Pc z>qMmBG)8(aPq=>WErQ_C4B1jLZwVghs^~qF{LD22HgS1PU%vp8w`B#{lCZ+O8TlQe zg^$T;Q5JKv_~cDk)IwHttKJ~SSuf&Q<2XrxNzof=?w^Rl{%Viuj-Giz6xu^4WQmcW z2UX{^mZoShv;-fNGFz-?mtzBvV6H}9sDi~DYvb0u{{J66G<*7HlSeQIKNG(RVM_1i zQGPHWB2Br;2RlZru?n7O>DrB9X^c?M+gpS3_|MNL3Is=$o_~Awa+#@6)e3N(Rs&q8 zs?dvn@or;3t-t)2$>n3Y4&z6tT7w`S{-B>CVvc1eWM-xO0A|wZQqrIj?ZMdWX9xIR zok$fmv;ynR$)=rpTh7&WIM4Z#@5Im^^Wq*l81eDyTL)w?l;TwZ5Ue>8|HHL;nF0WU z*QaW1#a-b5%by0d3%K*n0(_J|GLsKi^TU=~msvpww+!Ena9*$b=aO_djr@RMvEA>( zo`>AD_-$$Sy`HE4ZBtvjW+m4M?v+q7Sr2gv zDEY~#sWEd6oA|XJ0+a+L_fOeOll2;IF${2)YU4EVA5%bq%W2QdU_))X*R!!PZ(QQj z2+`;m4Nz1>R{m@(dMmgFjn)xuqabtnN6ARLRL|Mu_g!d zjSZ}3&+Hh{H`~wvI9y!6wpj7q9P$494Cq5lSy275S!?CCjU_T5AD>*dINLil&sjR- z)k4{099I7Dn}wx_91%Qunq6>5oLA*un$)S-D?hl8eR#snrB-3TyK2gqRM1gz)_k1y z>6&q#hUtUH2Ul7`rB2_!xGz|N$8Vx(S}6Ixw}uT3N^hRboSd9ovWdp?<5O|dU-AXN z2zGCOIrgAsMb003v*~xD zhh0GbJRmX2-Id>?bomdpsJ~)Q`jk+(lW5%`W}^ zFjcf+WE2@F=T)uxtr9xeI{X=Ixn^{ABK1bTUgyPQUNp@|&&`7rB`<4q1#Z_?z*P8s zjDI+vv8!0i;cD8QW(=}y@^%lyELqc6WDiSWGE+bbWCNe@hrXTO|-^ z@s2n^;~N_{S;`m8e`GYOu_a-1zb7nAezcIfesB)uzZEVK)`n{JyeE0xytJBf9&T=l zZU{ZQyD$_ZB&n$W#?>TF*H+QqxO=y1Nzj9JM9$}ymF5NTWn$znRwsU_brL?0>5k~D zRY8e9Lh5DTrq$`{D#%#TRrd>(2VMxuYMdQ}v^s~PMYYfnem~iVnehF%_opfhiZlx- z=kzSO(5oZ&|#of9kca*AAgtFd+aHB}M*q9J4x_YidbG7+AZ9HDSh+%@XRfmC+~p7A)p z?Bl5ZyDhRdpPAa}Msw~eFQtFLZ5tlm0K0ugHbKTTCwCW~`q;LJeZtl|onU!4+LY|@ z*Rkp|^fVHm*xwG#auvwuIA{f&H*I^3_aIG7|h4?em}HUBD|PSwT3Qs zj(1r2&+wT*o-bFA6zM=$rgG~>9)Ap_9MsU&lnUnQ`9h;HoQKF=f?564OT?zU;Ot@@ zops_YoZ(eNV}SsrgkrBawh)x zVqf1O={Z)9l$L&W8K0lcd0mlve;3wFsImDn zi!`fgnh}Z7c+|c+phIjuI?8>lQR>uh@56Iip@|<$M{LK&nS_uF-fo@z0ifJA;+;qt zIjfzB*+$d5t(#$!(>x)YE~nL+V%};_in^{^PDuv8Ue6{+G~kzjTKGt)`kSJ+s{y8A zl-$Ra&J@{jd`XKn*}QD6`?$;RPCbTg;<2t(9I514_q_|Gbr|uo^o7NEvduW{0@vsV zeBG>9T>%Pn2hC(+A?D4SO}_mBn3oY!&cWbDEa`yDo4#pt!-dV91Elt1cKoOB9Q)bN zsss85VOxdXdjC`-#+>V#lnP~uNqfs-t$Rtq;B)TP89*u#tx>x2GPB)frD)6lDtjX~ z8!?}+Mj-YqmCCP-<;F<4Ol$8C5ij{ra{u#OS5F71Fa3JHp6yYcCV7m!Nm=mKhFy|E zzqKj+q9x9Q=SA6QX>zSRc~I-zkEDK{k{blWusJAcMdSpJ3<@q|dBVtyjxR}f=)7H1 zRK3Qvx;E-AFw;oZ;QngLC#n7_nAv>c^o3I%;FV2t;k@GM3H;qci!*`4cEx+Uz4l^>8xQx4U+ZJRD!Fq#XksKvqy);^W^dudH1vkY(N_c2|Cl92N9 z{fy6p&yhcOa@5izxhCR=PgLDsdprCqhexPhJxxOZ=?P;2>ynGXFXj%16V?^D zrljK3V|IMZbgWSDzXI1wuU0PLoLBCTD0kB5Z(tj5Jo2=?%(}no-@a7f7R=CE*+yyo zHvL@he;s;~S>$y1Q4OD1KX$`J*fde8HApplC7Clobmn{?MJt2t3D`7o zwdn;VzrWJHEoLJqvOK7ae|BhTBfC!BFH&ZzY2xs#v{})(Cau(C*FBfs?E5;xq?9vJ zlv}ukIxT4II_fKzqoy-p-n^_J7x)6P#u1r2UfpCeRgKTssG|b<+1~TN_U+C!na5>h zF!3X;SDN!hC!2T=asj6NiW`tuA-9FM#r{)Wk8P_@KLNR>4dD{W$HXMQXnrZ-3tnH&IevgK5OVbR zO`#mSg?{5jd%ezQvZ>#8r(eA~ZIJU+=yA44G(Xo;;!-Bs$-%Zn(YE!z5aBFXue-b3 zT#iv$OBB5z@LgI|qrzZcT!66oZ_cdP(T+Z(QwvVMn<{ zd*$pu>-oX3bUM8cBSeJ4O)_Jml!S)5@L$rNV^_WooRAJikA~*{_z@rX>pPE(A}-wz znE!h!fF`o-$?S{v|Iw|#_kUd{|9YgBHv-K}(YT0|(qw78?;oKf^ z2xK3Tboq|*za)-DfHO;1VEv!!e4Nz)KCiZ2!QGO+u{k+n@Ktx=GXy*B^^w~QFlu-G zFIqm%%(hR}jAPvMOA52G2@`h~gYiQADcKd!nBGRD`m)b8fjxKbW%gexFY!>}NcMkv zSKxG zJp{0W@BSu{XaC{ge{BPTDu}?^oyfne{<;_aKU@I7G(_FY4X0{$M(gx%bFDLwss>YwVuUIrxfY=7|Istf=3 z^63LSlx^IlOWiYntlHm32ha3?r6Nts9{bNqy$(DDuuw^?Tm943`_>EmDs=LIo$S9> z|G)k`69g9LD(~ulruy$+efR(@#OLk22EBhT#OwQ)0f$jvQQc$ze@6GWuLQz@IrL%w zvGT`2=Dz@6+&sEy@yD~jot;@g&3@K0`#ARgzYmOi-@<_H$bIe7ACLa?=Kt~Pnl~_z zi0P|KZ~tQwM=ODWyrJ)$SNNwZ?6GHRVj5JH|NMdgzyjH}wC{HE-`dw7Q@t4g*rpBZ z-FbmOel;2R65Gm8q5n3VzqJtoec!!MbH-^f^Xk7pc=jIfy@xh)B%l3zz5aG-{(5b- zCjq&Z=ljQL^KIb_AZNepw(?Ka>_7bi#7-q-2S0rL<3tuXIJbNHZ$cRFauv|K5@i3ZK$xXU{r%L;gdEw)#TBEYZmN$$` zuXJC(ej0kiBAQQ55XRbV%KQ4&aq3}W5h}_DzUs$D!b!SaCAPNcSDEl$H?Pc7_N7xE zV*?}uFb(<@23*%&r^}{B8EP4dbJK$3+r$R(WjppIhU{NP~CnwKbgW zT}CN4u3tF++}MHYPjai=lGzNOEcIZh8#MY}s48X(M_*D-S=l8<`n-|I@{t!e@xxDj zT#=KyCm_1NwYAj%a75lq24f8(Fbi=HMawq?T4;4PUjeIu;kn#5PZ<;MB>t-twZXNsk-G%z=?&g z=)>=i8aAST+hd=tr*KBOAY+5Qt_H$_VtBqdM?&Idb0 zV)*Snf9vy+`b5=Z8$n}$SeZe}Pzbd`h2(mtNQtV8;{uedzqNUt4F zLx7c)l^2ELPsclKy=ka~E|Hqg?;rnhXrHYu5l=b9;7L4Y9iYa&3d>d`(&39{rw0Xp zObp?no%QD*FpmMp7|ZD!`ya>B-yUDvwx9G5&xx6EO=Ze@gr&99;KU8~xH$z4mj`x~6@LbJk$a9(r>2Az#4!_3J$6R(}r63^YoMI?Svt zh{I8M+BNt!AKCSHwM#R=|^-@Iobv{#(Fld+*KkOJ|4R5 zOuu%g+Jm=GQQpZtVPX<%9QDUh|dfA&3m!JP;l>X??w*j{O550Kla@p`&0JF*<}Ix9E0{O zxgxE8>ca*2*Tc!zuS&b3KK|TZAi8JC1*t3Z5KCuG!(33VJ)fZb!^lxhTyL^i!T~l? z&tyW?UW`&`P}2xB+6-9<$>s_)`@|ZQ2sQ`zdru-Dbse3Vx2c7ffkQg(T**}0ciSa_ zz&gI5Jco3@fSV6F_+n9_u-hgFKpv&#Hih2Cg^%I21*kQYCS~Kzri=8nNI2q(3)tV) zFlQa7{)@4h!!Rf^DmQ{Z9$}xh7P*|WAP7K;y<@m9mV>hml|eA$H8!WxtXnJYA>NY;Fgj6rw+flua1;V zcyPACWe!~e`3bhqeaSmdu3s5eDv}YfnpwO^xKwkSQvaC0J`k#k6J70g57|HkNo0VK zlnoCQt@P-PjIEa5OMmWzF9aitMCdd*J`T7~puvkqIKt8s$kV7zlyd`j%I zVgZ&(W3XH-Z2v5fx16mitA0K+7Wytm!JY00b7A_yHPlR{J?FM%K&;VvZ}t5L@E32Q zqK??Rplf`>13^n`k!et4UX_<+0hbQB+yWw?QS8(5zgx&Zy~1RTy`wlWQ7NUxtvhBL zxu}!&ldpsBHS0E6!H}>{PP~tHmDgBW8`)pC+FWrJ18FF#X;Kc+O8)pT`+O<cYg#cWVa(=`N_Nl+*yj)wJl`~F+uL7VC*uQ%wZ(K>vtt_J>5T?BHkGHz}aUqQBs{ z2tCkU)rQ4^PSykfNUO~PeVQw)gUCQZuZsMg)*JHyB-{)&ECF;aBmB4UmD1a-^C2XDmAfc_{SCotf3cke(5f@2K07p zWTF>9b+eaUxPob4vj{SVBC^`b`ozpe-(){t`E(sUH8md3K1xThMdS7ziB|E>4_tR* z26r7ltYhjFta)hrJdd=YVF;0^JF`}&5}Ey6BriktU*15Jg1A(qma7M#L0CDTqzM-Nz{Kl3m4 z)FPPWeoEAvXADf<_I;2Vh3-X9qJDdcOAeFK(E)k*g(88)ImEl01lv(Pgm$>}t}}i0bXHB=Q3YZw%(H#-m4ah1O+R=C~Uj8ObV? z_30R}Eszy~j~56X!2AD{*KyQg8F27Tz{#1%fU`-$R9t%l$a(WVQ-+d?wV6+S8{cyb zU!bTt-43+QFn;*xl;ZIT6H*xn_^j z*{omK_*yu%=5CEefSH;9osP`OqswD*$!jA_a>kJK-BL?2M6p#;>3aY{7Um93D*GhD zl$9~b36S0=A}wufdWbDK>0x%D4c=+zYlP_PXfpEvUJ_l@s_c(vU1|o4)V^sFXbw<) zOI46R!|(Z)aOTVzHzx-xBhjVsFyq*`*FpqogpTBT9Sl`huZI&zve-9!@$lk3dxFzw`7;?z6U~tCt4+fYC6~ zhy7nH8#<;RQ{PXh`iNHumHqE~#$#YaAdto}u7MOEx6JQ$x;h(w=R&AS%VqX56B0lD zM|^<6yQ4e7(sPFIKlBAUxB>eF4+>6J4JWNZA;tiUz_j}^ISGxAYb5fdzL=)fm)Ga<@czWO)q4za0IrzBVQWs~3xMKt`$_C_YF=Qsb7rlw{kc!KWBaSM(iWd(VR zVO&v zE)>Bn<#u>@f;3xGl~wxB51kQ+i#K>S`p{Fhy2>vLwjfqj5D5yT!5k-dZBR#Pb?46% z0aXF38t03GLM54pFtGHEx^Kz@XOJ=7!uD|w>-c0e^;e#(RXYBpZ890#jAl=58Ed<< z0pu3rG$~g*J}MY1Z%!mUt;!hjG9SNYep{dEL-?!EUyXMycDFE#<%NY(aeddfJABGg z$Sx4C=Wb|!dLc{miT)?tBkE@==0J9HGO6|u5Qip~$Sa5oo1CNHvfP72TB{-+j-vT2 zYF$K_`p`*ShmG5Mh zAXvh^N#eIm9)qna>U3ugd#~|A6f!)*c1XCHt568;mT3?8`LF7cZ|rDN)A?Fs;~V9R zyB~^^<=6aGLC#~9fH=Ck#-X?vKKW}j@R?T6^U*dZa&WO%!0AxVqeqi2zl{pedNs8d0?&t+s^*y>c6mchvHEtV&~nJ`aM)+z zTQ4goLpHOjO<@sQ+=GxwqcClLC{>O3WNnPrAuNb@x6~_Z>5Qr(;N+dGw9uKHA~uZ|7pLO@IH9JHRL-uJovn9=pabGXZ{;REgp zJV^`NcJb(eENkiAU)$FgTHih{!$vCh%V%G}EjKc^WD`fi5~aj;6!*&mw(0{yza3_ON^ z1CG<`El;;t_p{MzG%^J!6+ju^sWiq2Nq=9O7;29`AVu<6h2@XR2p@H`YGi}HWB@t-g+VdIio7Whlz-k*3gMSVU&|fh zZ}}4Pnbb;Jrreu+=@xHsOhk>uBLo24tvKuahng&f}mbexS%3-uWGH8BiP6rE;6yS26 z<>!`|6N$d4GCpijVc@VJzBGa>z@sG6?8xZ0jNuoxFJ$ou7# z3uZMX0D2FIJK$4vBX|XCX-uK7QY0Q!91q|TYblk{QPCgoyx;1&Q}7u!Xw*WriRPz$ z+)8~eoxIppw5Sw`x#4O^E;Lb$xwC)8xX1{?E(WhVRgkz8619YeeX}0B&LO%67w~CI zm9?&OAgE)>?o~T0!QS3+Q_}eF7TsvY zC-jFp-UgmHeX?aPiOca94Sm6|AOAA!L*l{)8{g37m%Z~3D3XO{IhCQINhABbeBOLp zy1KBlqGexOYR9T(>np+b5GFo`oYt?*+Z8^A8t?GB8mV!a*>En@bld!vC|)08nl)F6LZ6l)M~co;-a zNDzlQudgfB-7;uk%9VG(x#!b)28Uxftjx(P}dAv=^%v_`wMk4k= z>#cUX=YM!Qf9nzX3+sOh*#vU(()&Z9+BZRnrv^Z=h|$fm{UHw0pDYR?^m;w3(lMJl z8`YJ7AkRBb3iMvwD7Z(DbUxE}FRP`ZE%8xk3jw7%3rAOsx1Pca#FG zD0Y1*JIHPR*a%w+&b>vFy{wBoh=KLA?P8|FS1a8(+xVyJOs_;fd9IG$OOt$KRwIl} zaigoh+q3*9=V*AvQ|&1K(r5=EcD!Pa>Y)yN{n|bTx!R*&)4VRA0p2@Lt=Jc`k(_2a zDoKm_@Ge#w4jUWaY%r@d>Dd^|ElW5m?!afPvKj=1tkjYOnk`nK+Z4&hfg1-8C&eMN z{kx})zt6_Z`lE`5vu`9=H)u-xzzAQ7l}{(H08ku&inwVXEOh6i^|D7vnD4ZxwlwiB z2{d2CCTQ663O}iK8Bu8@)vG}4SS{CqK!)!UHK9}?@Cl+XMR{@pahC25BtBN4y|~6G zf{zK8o-(<{K`vfnHlx4 zX+-MXp=pTCDVvs=dnL`;DJf6J;4&Hou&Pn=w3)4K)@@-v3L7OI?Bd<_0E-cWm&lvd zx)n@=o~2|7mcz&%sdrpIOwP{0G7c=VMapFLrOFwzlna-ji`vbSuYV;>!aPdY%i1PJ z5cIZ`C*IneB|&WMMZLrTSWibqIQdoktb=o4``j1q<5}K1G~LCV{{{vp;3J3Tlp5HiUyI?OLci&C zJH6Z4&#-T8FO_b|-xaDxv!Xo-`D(%L*0+Y;|{TKjXmUgkZ44G!U z@{c~c8AaXH@iDk>10+V5CN~s z{It)MW@yR1d{QVDY+Vl$$9Y}{xmK~wk#Vy^n1M7GW4Sgo=(3SLqw!&>Qg3yacoVPEHE8%&jzc+?o(CKAz6ee^BcIUr= zkF~5(fH8!N*_G~bhAYFw()U4v_C=5;i({oreXeoMGxqMd?=8-Tw3D&sCxe&INSqh# zWm_X4(kQ9DT+~dYGs8okZ7x&f<^X37L^V|aLm7Td74(O~Y5 z%J=y;y^GsNs=e_%+Y(UZ1r5X_>O3kSo=NS~4j$m-yfYi8Kcv{~+-_ms68PTd45>vMfV`8HPX2%0y?G#1 z?-xJbqS9umvsvW!v`Su$idw9D3FDce+%ogy^0kqRXy*|Ls(Vyub5 z81sAX`}211yx%_h%=i2K@8_@U&VBCloO531Jm)#jInTXw^N-#)vO)Pke8ugy6<5bd1J&kkL|@#8-^TSR;Jtab8q z_|Hn#!29>Z)z(m+?y<0Vs`VZ?Ktzm!+I1Q=EZKj+S{I*;w;mkr14t>@AZV8FCI>!l zVPF3!fTDQW;#jrg=tJ&Z+6%zSOP-l9xSJ_g%PIzGO>)doZ7DX*$CBX`YqT;Neb&j$NQ4_c(P zo>Cb;IxQsV*#6X_h}y9&@%O zPx9^+RBcDyH8!w2Dsfcwt0JcP5pVTpO}mN_3c1`Zdyw?WW*2Gnj8S>we6`_YrF4h# z`aqZIZ_DkQx^ndUQe6n0n$^}(3ar=&Z|8ZQG`_ikA0~I-m?<1=ecQBIr9NgQN}HdII%wUP+=*NF%q(WY zt_KxLKfCvI{OeToq~ztJz^4xtQx2(5OeRao-|5+KM2gWfIvKe3ly2Y40`I1(H z$*-Do!b`;1Y`K+XhJV=RLXERg;CgMGR;DulyGsAXMSpl(JKp@Twu1|>fVYQ^PT%sd zHXM2w1=9apE|MhiH^*wu>rn645Bd!e8XIWMYOT23y*^-nElx1pgmQ)6dY$W8UQ6E; z2}D;ji5hRZlRjnJlT>&t_I9uyOVirfXoKQZ7Ch?FKy+|#6UikvN*2!BSJ{|m|MbrB zp{xu$(I?#S^;h|%eQy-k$jw$8{#MM;Q4eZrN1i~zWmI*G*UEeCS~6c>cFy@4S4*xd zivl^H>}i4=IHP(`9ajDbl~h*q9j;rP>37ju{yNOQs}? z39~To=-XrLbjG>)!Oa}!O1eY|K=aXx}}A$Na<^8dIe@G5Nw;*Y@#+~WJ(xW z<7*WKyMj4y@SJBqidt8avbv`0x2Q$s&GISL!AwkuArW8vcCgTQl8PqP1g>+ieCI5* zoqUwCiGzbrmyM1U)N$M8eFEC1m4DB3*#dX<&0F%1$?Vl#Xs}1Bvo(URr~u_%d3Kl( zC#N$t(wuUCAg_$$7FPaBESS2Ev==vH6o!c7t{Wv~tukIXI$dB-YYj8IME$rccklG8 z5c~90QQv+Wj*j{M_4aN)ldA)g;_<)DB(C>TH}PUxdL(RQSe>3G8x{;ZRgU$RrKF^k zk9L#Ubbv5h)w%{>KIARhBP1lmMrw5*BGk<0gRDowfztHZ9j=s{;3&q(V(qXmkCl1% z>y?`cwK+`r&jj{VTpWD)W+eJPEk46`IQ31M%vukxEa3AgLWR%!DFW_Sy6At8jaLPLEa;yng}6Fg^TjgWv4T%+vfVqfz?RkKP)~WShIcfm#hI z^@1Bp_Z$riW@)bn(+RC>Is|hE>!sX>)3VGa}H{IBB%b0Tc_Pn7du;G1S)iGx!+HKsYUhx%0KS-E&$jjp;Rd3Dh_Omg& zp#NfDY#=+MS`LK zp`HwPqFJI=&Q=?K;{bxZ+pfwC_qGg$rxVp%n(x@{x3g#F0TPb>afwi%qu)KSEYUk#?!EDZ|LK#0;YMtH6^dwX54VtjV`%E zQ}k|+x1fJ1YOWi;>tbFr0QRyEoIL8`MgV)oLdA|n%>};Ac<=nLPo>mH%|K0ATu1v86fFhjQ9c95wUv4MA_;_67^ULvsK9F12UqVx{D5OLhIkb}18fBF>-c8#~ zmbxq|LzJ!@Qd^bM(7FyJN7ebZtl!c8xHwL@b!E$rjJJ+)wlaDmH_|Zchs;3c%dX9@ zW}n_2qIr5{tvbkxS(qrOhM32LxZ|;k=LH{rzjUlO;4YSfz6>+*P6jv<{&(2CEkV#* zy5hRkD9=-+9+8}(IbQn};RU*RH=tBhD@8$#KqehSXU|pZEI@7Cn=HqM8k0BEs}FA5 z&AERw{>=Naw+>?ul3rf4dX{ea=Jce@=2g7S62Tu&wvnfa%=1QDXTR35n*R1cKuZ8 zicp@1U|ZqDwzdr*>Z(j15U(viSteYXDV;m}=3MQMb=g_wc|Tb5GbPF9w4|&z^1cZ{ zX?1B0K^38XgoM8mWL}yPlm`mF4)ggqwuMQZ@RpU6F{b6;we9&&`dqrUWgY?SbbLMt z_U)&zdL|R`@54?eeleVs?cbGle$@5c#u&b$el6olN5F`{yGqpTE#j7KLk2p>o=}Ee zuW_9+bTE5+Rpe6DozJ@3{R+YF=e-~95-Cd?y)k<_StsMFBkgoDO|N|PY2htH_U#v_ntsEp zrGMc?Gp5<)xyxv0g=?pGPeH@4sxOyp;*u!mzJawPNRe9Z-k#;#fSv)z4`jPHv7sN` zkKWKU8y(tmTA^dswlSNiJa!>q1qi>VEw8Akh%WLg z`IHFiy@WVT%Jw9u2;<`<8urA3#F*!OAHGh2t(RUXZpY(y>O!z#_syGXFHh4}dvTdG zoVcwb7`%JWo1_b0(L;3Hi_^XXDq}pqq=n~v=W646Kz67e&0{$Et*tG z$gt+<09`7ofIX5>tgJA|n2eBIJHF{cx;gQs7J9Al?sTeq?%`s?nbHp*_N5%0~tOcR5=Glh1@0e4(rwg_m0qH>vsU2&R z2p8pF%1PqCjOlFnd&!hco$1Ulc9j#kJ-ab0JZ6^th_2oqGRRl>SvS1rYHq>A+8(EB z&zv^pRixsl)uO^<8;PgM8LU8 zi;UGy4#v_BV!pGJ`PZunpz?PUr{A%&R)wc<+5Mxjsb`2p30{1hSere2d?CndM0@`p z1RI38M(V{Wd5KPmG z{YTP^evoZW#T~fIzWa4_!Q5By`Bul`J1$lJg|4W7iDyzwC6DV@-p*&PvJzSje4|I46s9=uR7`C+SAs%Ebmy z1%>i9joVDx;|KXGR>`wscSM{kc5CkD1xrbc`(-=!GKI76nrFrfo3lX~VO#zEvmid< zxXTr5`MKFaEnzRPgBqk1c{i0F6`D!B)WHq=AV!kY?mVpY(qJVjUvfEzU6Y>|Ho7_KmoPNJP8);`?c=f$BcGh+K;wxNGJ zSWnRF$Bf;^+PnJOhfY0}Z9Fe^S*AMM^#_P+559G4W&55;P0SbO?!fEX_$Zm82t2o% z)<_DyTOV(h1kM$E?9BBtKR8xpLYQ^b?o@o{$q_{xZw|}iOM4C-_=XGYFn%m55V}h! zsfSzee)8(62l>kHQ=YBBgA*YhR^v0#shrmOHUG)?84+X66844*ZQWm$b=Qbo@!rXn zPvNpVwc;J+c?I{1(J8OAxzQsZWZXiqxZz;9ER@vQh2237}L|GR~^Y zd6U8nRMJEIi95vXnrGYEE$_gZr|9QUvXP^)$WMXTz^LKY`3ESOOsNk&HN&ZAGsM6; zTgLbph5f|(WAgcWR49RTzeef7784=moD7g*h2GzOKO*&~>N^@Y*P+%tx1hPXx)s#( zl3zUyb0VSK?*w+u#fKH#bnJ4}5b;AYvN5TstkJP?tJ50nNqtBZSF@vF#vAJF73Eq#`$mVLM9Lt&u!Y;VIc} zAzW2~?(uttd7Ag#?e7GH80$07+jTW<6tzm*t#WqW!X9x9w{&Q>z?v#KqJ&Vi3?GoY zvE%x9=Yym~^O-a4HZ?K^7wIMK{eIVPjQzc+C{Q6Cb6nLm>~zJMjjlX9?Yx#v$l9{S z;*iRL115KrCvP+hD2SAy+-V!X_eZm_`YY1-#jL+X@Vy09cxG_lByFa*m@cU-$#y}(e5^ZkLh^FQ zi`*kczfxT{tAknw(ICI+Mh^qc@HEG-)`JS|8Q#2W*B&H&(+Ck45I)yWi0PVApiI}% zBUF2;H`rAjV9gr*D-Y7O=rq{qI8*3l(4_bHrQf+Ds4NyI!_>8E1R90@)k1f^BYoma zwUyG_EoK8jN1rt;lo=?8zb%0oX0_QAq#=y_4qXrsYVf-<^%fe2G>lDMp!81$IxSX#%(PRn|b}BTpXn=WY($; z5@$ZG$LARDq8FCtj6PH_^R|TxOuf?uVw35`6Cd1j6laOsr<8?Ap!#omE{6n;c|byq zf4b`6hpHlQI!P&8WlPCeRW zh~acOJm+!8cV>F}q{+;>O&4N!U0~T`K!}U@C}|sf$n_=2XnMEdx9yMTdMQQ&8Rs%y zg|FWzsWw%sfvO1Om8b}B#?|xttIn@a#-EqM2>_$d!V-SSSi=~ zV1twQb%B*0F4f(if_72P9z7YkA^hdb;}aV>h0kE4V%D8EdmJ0eZL~RQU6Z?5z9?Cy zNZ)Z#<=c>$kc6oQX3oaZ&DV7H&AhuVn5d8Mq?>8#@LUw}0E_hX9g@}`ndK->{7mo7 zF`Vwnu)kZJ`L?S5c)0f(6)~;PYY*GcMm>u5l5RgZGduew;e+J^{r8Dq<#V%VW$FZ8 z*;g!QaWMmhb&f&bd6~3i3stP=_UxX3(xd}ROS#+I=Zgz_qavzY>hH?LwY}Ece5Lg{ zI`r-lrzuyo)Ht{M@iky@s+^qL6??VT9z=B%wSsdRW;_SjUB*h4wN9Nn6lMtKv)QRa ziyLZRE^~4{QGqrdlKe~iKq40gcX43bpKG?@U!U=TQZ(@sx@ix>CUNwVJ$7#Gu~#+2 zxF2QVcVZul6%Dr87rI8-yX;|AnF*2r1@R+>lyWO5XTWLe&$is8w+=+1b`AprgHHs4 zu8)ro_h94p$FHT+&4!(Wce98^0k~J~*Typ|oK;$YxktUu-S$am>8exd42>()qMo++ zZhUc^_2{(djaqIn@o3H;-N zUiH~Bhsq znlHmlnjhAS+CU(AKV%tB_6V4R%1Bj4%(<9ka%my7UDz~Xb%X&17r~h!%4$5q%(CSE zJpiS>zn zxPvD#4858|CyPXJMr9&g`maR5#I6g5csP-~{Qv_G_kuFgt$!3LLzjGf$2j7hmNPV8 zbplYg+{gp9TLZw!l~-AfGUthHvelEdKE(h7f?Xtld1Qe>5}&4kS+4( zwy74oE%rL55tT91i64RD8ciPqWZ{kSo5D%Lbc3?!=iVoGb!v!Rlv{H zvS%3v(&+#RYB=x^53?hg;{axvchGz@JdkApSHTG;1Oe_Oh8O=EBmZF07GWrA1QkF- z^`w2rKJ1eh)<4ayVxt(lzJKMf$;k%x!MT}<0?}^%k`m?q`I(7ShjUba|7D<5FVy@{ zi^lO=+92lNDi^BG%ZnPnNEl2%Yf~5+f~nY&dGg=r%F)2VTU#$Ew; zIi_zRJF03|W9H$NqfOTbgaQ&*?B=-)GD1Zy6j5M%YrxrjSaGUXTVMEHxTnwH%WL0@ z)a|ca3{LbI?`Crd+pV;BJ&EuT)Ct_}8DdbW2NnP_%@I9{%nGV(-r1>!eorUyIpJ zx0MNFe30z>76`b3N#ZrZ=nHDVA0ZGrcW9rgXnb1R=M_4=Dy2^Rs0j_sOU zLI5;|`$5v>VZR~Ga@!Zm8i+y|KG>TD?jA9R@k7$ zXSJ};eBUiXZ`p0_Js#w)-y_~>N3JxMwN!(z5ngFK0HR{w95RlDL>pJ`c2}_){t`A} zQw6HhpHipzd;k!9jwxMJL&}g8X!oD+vL~%WFo~21G1MuQ2-wr(~zC`i~LHe zAan(T(J|!$M#oU1h1uHZEgAtUHs5l$?DMU^>vYn^CA-zOTZ_Z5?oMvD*UYAT-`~Za z{znS3Q%o_?fl@Xt$8%!a`Q`?(QD0t#uynQGFhE@S2av~kD)90j6@Woe&akkoI|W76 zjql*+?)dFf`5GrgANlc$GQ0|d!FUeN7*FnT7byc}ua%&nwRSjmeVDScIanAzxts4m zQ`<_DZ4zz0Ic9Gp`gkMRSOIG{vJHd^;yuUREGQts{vxGj*bDpr&Ku)tP=tIG6d}hD z_JG9ulGsD%YOpHU5!~MzaE#Y|+b!db0=~*8U+m>~HA{oex!B>{L~G0xo%Rd8O3Z6$ z%U{#=80Gt+x{QX)I6g*ztG4Tu( zBtNOpH!!&Lk?K@=d;OK?-XJC`bx(1Jn1NuJWZ76sL0DdsxqWc%-40`G8b~zp!XN!0 zl8BCqe-!>`UsaSCharK%J5jX(N+P-W1rM`2e1LUJGAM83Te-SjTq-L$0b6~0{kDD5 z@*0~SZF+gN`H;{KlVeS$w}Wqt8O7X^T)S!4u7l5?bA41PCCXpDMHH_LPT35;fP8cI z37VrLRhEm3KZW!t@#{HvRZ!9-LPy_IgY8L>TILh=Pwf1;Mc#MGA zrtonW;_Uy!gM$1hjQQ0;{wHkz@5VLh z?Bh#&X^f3|d9BVyquE#`Yl1}3o({A=?B3|QS1{-X>e0!;p#SF9KYM%(Jo#*!Uw)&(yQ5yU5Yub;8fjZlnDQo>{ z@^M#1hHyUC*9oV#Q_Ar|BS=XDr?kdg0%ii7%5Y~#de}Wyca!(+I7t%UTwsr8wE#FG z6DrpN8~BeN3+kS5(SJ0N!bas1Hi|@-+l}ezak5o3Gb}Gl)0tUk)_b4`6ZUD4#mm}%{cgK$Gt zN5~lH=*%*#%m3(qA4mr32flDxKPuJ(A2oLWB^c1&nIE_-OwL@(p_AlTy5dSUF&rl6 zkpuYT4zkxA9&%VN0?KBf%SDPA#dK{wiR zJApxJ9^gDKk1QY24eOYtISk}Qk|boK7@{V8fxW9Seh=IbH&Lpi%4B4-&9y#f#LZgu)-|brpR*Vk5Xme^n+0_ zk_j5;p=AtjQ3NM_jpDctGAJ;E&$k$N>$0GsQ?KGA;g|eh9Tp5+$y4QP83fV$f4+|b zf_C2VtN0lt!3VANpKhvMJZ^;fj91TCp>_QV_NQh@5a)m*Brrlw?`g&-|MbRes49`h=Li;mdIL3V7 z;50Rzg}@Z?#ewo2rb&~F1|9E33Nt2_)7UT~jd9BTpse;;E;8<^pFCK#ykx@`!9 zX14+GVZzcMzz~wAPkNH;&#%wvKP67y!sz317F}=xgN0GV?s1;p@&W% z@IF#2+6iIB(u9wJ?|0HKzqq~7*k3gtv~G6{xy`x2i9cY@M-MP5=m!t-F_lgWz)1I1 zA%cqpwD@(~kE(L`-Lm-21{0SAzTm7)cpt{bk$T)xMfM8_)?l(Nlv{qta z>7tyWoI;)zU&mU8XSLl9qj~9z(lelMHHW0AJqu)Rw*a*K-aX|9)AEN4ZP0hrffTqg z-?u<8jSKENzvB;$;GYV?I7h#XcELAT8Ub9gCiHcd7W2X|`3}7TYVw3Sm;u9RHLwo6 zuGYm&eSJ+BNY~K(KB5ytB7Cg)EPN8IH-A9O?>&61#0q7TRWM@%)BzuZo@_y6xELi1 zcQ%Oev8qh3_EuVuSil>=#)=kQCp9MM9*YKa+dFC?J^cWN$#2_rc4myr&r<+dIUCbJ0aHKntZnvJp|yXOI|FYmYO*HD`Gs?>YzEHh~4AWU~P+58VkZ2n3dv zc-|(CTf~#!6_Ih4@BwqP>SEXeBbIK<%JI_@Fr9iZTNPoF3>Z$#Z4u-K^5%aL9xwsu z#=4Id%PnxUbUEM}`@1WV%$UX3I6!9qOM!h0bn}hLfxZdN(NAG9EPc@_3t(N*EFywn zYmA?Dl%E-@`Nk%|qaw(o&U~Qbl@5`KFna#LG#>!edF!_Vu)O$Q7XwPBUfCd&z$7iY zkc|h=j!%6>^!v0Za3;E|DT7NgdV#%w8^&OuBDdEg(xHK=iGtTOVrB*&^Mv@j%X`>Uz7$w!Y%TQJiUNwXJzodiD8@!!iq)o!c6u6z9QyG?XiW%s?W?o zYsdWZvVXzqzmA{;nnTsEh9MtL9m@oaEWA<9j8zN^EgoW$04sbFw@!sjMKf3;*2~?25@Qe zOkqae+YNy2|LQww1jG6!Fc<6vZ!8hNcWDM#MF8mvi+zF{vrK_Gl-NY9W5y`Xasb!R znm7Fh+(GGHz(@5{_YoN)Jb@wl_r+@9Sn~SZEaq8YXsHQcqxEo7KH^RM0q4L&nwOGE zKzbV53+C_jg?E`TF0K%=n(vsfE%d!Cz!r24&ayye)qjr{=_wY>xAUS3!%8rd?f_2k zUf5O40>5wRi_#d-lhcZwuzss{LU)MuQ=$k05P=}w{>91wOMn*d_8nwIMZba0ot|Ar zZY<3;**GBYfxNc$usU;_0$M5yZHJfak%1C3$eG`Ng~2ODfxhW0vNe|$GctZxalmxi zR#QIsjR7%WIMrob@QtM}N<9JHghEOO>^yY(1Fo%UJEF~un*1;aYJ%3^jDTZ07W7TJ zTFuNH>dXyb-7^#s!O)!Z7KM`;syU`-z@uEqqp}Y`#{tq+`Y?JB79mgljXq@nRJz2u z&9J;UegI#>&)Yx}8OqW?<<7z0LH9PMF7WEzkyIKQoUK{Nd>6RoY-0Z^6dl^(;-mIeVvikI!sfO}Z_;t&*7 zI@3CE2?nGFWTSoW7V|F90>5|hMd>Ec_x_W1aAQ_iV3CQRHB44B(;5mq6#nv-g`W*@ z19!+pXPJ?AFo+bXfa5}8e>&hOfa;odlPqMhur%GTPXd+Vin@U41QpqOfb|WN0X7v#8aj$?nGp%m|$CAC|y=B+}L#;#s8{bUTwf?)G|Ms>b$UH>H z=pnyd2XP1D?RGV0kSY%$>#CY4f~-h$Z3= zED*Jr_nkVRCz<6NVg2SCgYG!lc{8(mSIq+0C>{xRLsaxK=v?N^5#+|w)*<#Z&}LV& zk=rnnLZQV$Z+i|?0o4qk&iRjyAYN&JIOrR*yqTXFwiQ6}G`}EGB%W3ZxiU6g_m^fC z%)ZVdKsTw~+X;3aoK*qWRys!SXGTq~0;d))m$DY7o7D$m1v<}$nK@K86u|o0)R&V; z^EuWsDhQ@8&1(3kIq1=K$fMjRK*y>vmr`K#{NaKZ0F}NyBM|BMD)1%n#VI?GJ8(~n zE22 zGR|V)dQ$TE8<~lay}k>8$}uVFk_KoAyh=jalS@MIOD#FM5*+{kDPv4;C{@u#@Xw3dOD5EK`}0cRBD|c)=G& zVSl>x8Q}R%$Mhy<)&?f~flA%imVkvA;0y3WnWTWNOhj)HF#SX61C)VLr2bfwhTMG( zG~AE#F;kKM_t0!jw93+4VCbPpz(y15fW!an84TAFmZ+y&I9%UPTc*WA&&S13q&DCVByXf6vK}3 zzXR(x$24?DCRd4>)%!CDEtc-(3?Y*vpz~b^qM6~^X~--V9Hf-NWNJc-gI^=23NQqg zz9=;U&@$7CX7C-hfxhwnL!9vY{&3L_RLUK%z7>h5bplrgljF>czvgTS=$;rUmVuoI z*=K-j%Vnw`F{38ZUfQpmj(Iv z56t(29$kez%C-*>{j56s>;ih0X85vzFaT6caN|d$c^*VbM}07IXX(BxfRdi*WTdq+&MV z0?ZgD+1KFN02#t}xT_inx+O}Ka%Kn*13(QEIEQe?6-;Bq;YJgtw#T3#BL3bmgNNM# zB4iljZ=kFLdF4`8krSwd<`4Bzn4``+0o&@X=59mc>F{rhEE27@A?1H8|> zm6MDtY!@|xdHh2S*k5)x0I~rdQJF@2X6Q}_8$GB`iBI6ky0iq~hdS%cjIXH53!e2Ix@m~u!31bH{+H_jR4lmAc_{~=MeS-r6b#2dTzG&O_Pmbj2Ux#ZeV{urE%D6E z2HyZ$e6kd*8A2vILFXH{=qyR?!YF}|lOVI$9_f94fy@AYFg5XdQqq|*i&i24S{eJQ z8GMKJpl_7w6zjtK82bA6cmhU%N);0Ku18eV84L$+`i?2Hm<4pglhP3b&syAP0N4Cu zY(D?HqyILB7(k}eX}e>{II*B_dThp1L<|Uw|1G^xeqe!Pi?j8S<|;SFlvg1C{$UI% z;L#F>N7n$IQ~73ND*WHZ`LFksRsf)?XxLvsdTNCzakA4u?)<9_tjo&+dVrGfIuX)g z{qFn-Sx5%un*< zW@Zc%H+++n`Sh5+bZ$!iH>W(lnbJZ#L31jHd$bpr1z9=g0UV~tbUtAO@IsTtx50C(+ zrJ~K)3AUhzk^#@3?IP#?&$eK=MnFxny7iI05i1nHk1tJ$8Kd|N3PLMSy%$D$5`|{f zk1v^t{98GL*6(G0kYS|=hFpa1)eb^LzO^xbQ}oG z%mzOJT1uMY-Y|qrHiFJq-xpwpYjr^0SjVd3LkmzXeF*RqR^;8tj9GjQ?IIgJ>SypB zR)N07`MjCg4^^cArnfsiT!pCUJ1`ugs5y*)Kd>(r+LQ98z%$+iDR?orEMOQ=k}o60|A#IYekvUYKn=^cHG=iq`2vvF zW~UNk#MmtD-M<5-A0=dt2<0aVV2`ep&EQKc$-Mvqn5{7#KQ<%uTm>qI-;o%I+(BOb zZ!KYi0`;BMIdDuWU;=`!6QLMk#R8d&`B<6&fSM4v6+uQjpvApVYAZ9_V`J(Ns4sXk zc-ZcM=|rw0@r%1!bjOMXwC22Cs{j)hs{x>U#B5j{hVCCY5Dz?TmG`xOHt@ z*>+#8<44af%vDXKnq9f&;7{z z;1@5t=zwzBHh*JCj3Poi^RM!38F9B1)_w!D5Xm(r4B?YIKnyF@H!saB1T6zV-n#jH zmdHY(640XAp=8gDiTnZWA&6*AAS6xS0EBOQpoHur!F?^dcm}2WkK|XbK-9Gj4996} zCd9SQ))jP`@)(BbciAhRG(n*yqV9>KW@!^t5@oas?>cbJk3Kg)L(|4{fOBOQqy}HK z0pJm@y+h{eZ~1^LM5?tL0M3uoRt`T8Hj&6UuD+HO@_ux9H0u?e>c_3tHEq&vyK@al zhcmh3G1s2Bd>xMZg2f^?=fv3zLUAU+{E9#Mk7df08Z z(O<1g@IfEKtsU`aXXmp&*SneM#8tg>nVuJ8YaaieJx@|V7fD{HoeWttZjMDx0b^Ee z`WBC^(N`uT@?4Jp9B`4LNj8Z;%`!ygH|SQ`f6h%5BSw++caaM4C1C|#q54tm1pJkY zY2Twqb8MgV&D%~Uice*lllc3E9kfY7658adws_3ML7r>3F5ysvJFFucqi{1spCC={ z^QI$FUgb{`Coeh9%MiOcHBBO^iSZIPSA3tw(5v%3K5|C(`K8zfo1R1U_y7A9n&aZ5 zn>1`@;-CXLR?N4>C!KK(@z92!sqvyIA)6Kid-`k1zu`u?USKp^dN}ndKaG1;w zAI-5Ysgdeyp}2F7(=53AOSteDKYF|`e^l1bj-RH*^!e#gUCuEgvC91rrSSXgsFTvG zNri}zD!1UkmZ~~&6>@Q<)cBk^eaOp!mV;ZIEms4T?9}*D8euE62COqxewLd`FJB?Z zQMo6QJ5(qup4zQ^!lhDR@PbcD3f0=2%)KYpZVrQ|(1SevDn40{ygEUvo=Ta=e8QmT zz2}J&7akGw3aP~F1pHNd4q9B2Pl8g7`%OogIl6BTexExy?{l;xVR~*}cP4fuG-Xtz zrN>9+=k*@y1o#y2=o6xD*(gwuSz0k};(#)qZr~ROo+4&l4x4Cy)*3=oftVnMXLrXt z;qfvU$^eBlFp5g0#vB~!@u5Z(n)gk)ScLxacj=|R6B{<5Ro{+S&W4ERZ&Cwp0|T-C zc{pO5euAoylDihKSA%D7m6|*6Ut`%_5F9dgN;zukiFi}wR3oRgHmbz2LHSCMX5=Fu z+QrITdk31ERY4`XmwfiHCoZo+rzueOD z9L>y7Vd50eP@neHjMm1+rk*O_|Nk_Jp=i?&#*trT#;{L2h)!PXjjC*_Mb#J#FLHE`7ryC!1-hn@7}qdn0J9~ndgZ5^-aDK zsg6#*_8EEGv4jkqB7N`K)>~%n9ode#pQe2rt3P2eoXPl*X~)5-#{5RRpz)cu=qjLm zsSafsj!vfeEf;*0^ZVsfG3kXxs3POo2?e@ERCn<2EIwd^?~d1=As7%z1@CG|vwLQg zQ6!1XMFyP&JUf*NWpC{TJO&&E)?!WbiL9gkrOR3Np3$%AyZ7-_yWfDtTu!{$>i#SI z+cuN*B`2pZJ5_IX@QlAKLc&e8;d|x#YjU;YH}`aN_w<+(BpNKkumz|V<;mETsT5DN zZ+-ZLx%UXlWjC7CvY!xm?ON#gwM^0zyQ~V`c5w%+SIt>!eGyLC?u%!p5=9&ribD@S zB7J-(TQM!$gg%wq)RQz4m8Yv@o9b)VVa_Ynr`QxvjWVxj!(IQ3zF;0}?GsCud(}c7 zH=t;@CdErOC`&nIhDE!?+Y@Nonbsrbg}rhTVl@)VHIv*1!;{k~)Wl%}!c#kJv`mwx zjvOJEG{3(|!adXCSM2s}r0u*Uuh5h!ueo~K_o)=psa)Oa7;?g^SW*j`{)qfUp-Ig1 zbZ`(lI1H^+an@VOZ_w`wwI2PdC8@u9QqQ0UJ&ePAcKaG<-=rv5-avYi5IcddLwn=I zG=HN;T2!*6#-A04w)B|KlF8q%$0fJTDV%etCBciS1xvmiEQ|c+l&0>$wh&t4vA=z4 zd3#wvD9fud{={Op-ZLlD@U@Lz$KQU!@kmpqy>?9cDxq-L)Ra~-wb2~!;I552Y?J!R zF>6!_FH}nZrA6-&ow0dkH#jw0k}^uA&}QbpWPKsN>2?3lQ$0Hxnkgiz2o|~*^YpLx zcxbpy(RR;KgM7tEF5w#wYQ9B{j9@fSu?aE+PG2{(`u>S_&2WWRnG?N))hgteXtPCI zz@0yUb*t!5NrT-VS!fIIvveDI6Ce1{B8yr#cU=^9w(|Vr@09d@l>05q7m6bj-=5^v zhbNTK9a4=cXEs}ZpTQH4_DP2-YMPVKDM7Ps@vn-^G*g5$mHNNWzUzOI^Siz_wzEmOa^$=T&-lZ)N2q*XLdL`HjMZa2VM zmoz^4ZWOv5jVr{5mH3Fc#bau}h)pVAN{DQ}bjN%2`&M*68KB*z7iUHYnblX2di6Vk zzp0T@8%0Pgp9m_e7Nhpk?nS#~R-ZJJyD-!@GOs-Q3s>KO?(-vHj$D13TcmAf@}F0X z;bkvI&9$q0r$iqv{OUZqdy?RzU7a&u6#67f>ebr_{;b>*Xbe*En4=z3PNeSNYq)q- zO9(ObgY;eIw0jb@+>{J-eNmDB;VW{#YBXCDE8qlz1@E-B7S5WB81V&GdoIm5n0gn&Cd>Ujh=BSS(JWxbY5dtbzr5shjFFyxS^p4VEpxdaxEG z&o6G=o;XjR0fMg{DxVasSW+@IM=f4Q5W=^}4U(r)#^=N@jJJQny`7yGm+m9gQw%8W z8j7K739~UG)@4dHwOc1V=ZC$&`h5~?y=B}UZ~tq0HX2W#?|0f;l9V!Mp-PSm5Dnt~m{iAQJIO+?HV1!B=_NyPxtdINvG&c<&^Dbhx>8E=JxicmECd#f#99sRLp;_ zt4g;63|S8)(5CEa4biEr#qsm0-5qGGL4&9$@7A07~D*NfENtG($1_)grs zqE7g6GbM-LQD_T;mS6l6ZX;=}+9+V6#f$T?+GIz5F=KR3|EzUMqMIHs33m-m(c`bgIOcUNUJ~@qmo*+zC_-K<~DAzzeM%8R~oAh*? z$IU-+x?)jZ;py0BPXF%tB2$@At?-c=clD?*Y*vcAUdj zxSG}32rTS!Mv5o`s#Z8v7Wr;-jdC~ns4AE6q7!m2L{OSKSG*%dv_2%=`8XyUB}7iJ zJQ<&s>CmncQ)rkKf~*q*f=Z(?+L{ir9}W>K+~lJ8=N(Y_ny5@_VdnY?7SA(pqw=1- zG)K|>1IrJj3(kv7Ey_J}HUT5~;23usR-RaBTO_z}ByKH-iTIggJaV1m;=ehoJn-+cFDAVAE+-iLE7|g(ZQh7b?8mgwR5@RqYE-!9DQArTT zChQdmq!yw#90=)aS+w~t3uQY=P^yviw$o6e$@dUS3k$0#$Gz~1Q*DY-eM6d_$9z@B z>*sFW3+~MeJRi;I203$8VzfVE_tsuNI9q%VFXcicVx=SwY^!kFLg$)~+1K(yW7)hg zLjvc2_$Uh%wq2vte1YF}8VVej=}^9~uqtv^K71h9RLdo)zHDEM;EH{<7I*p{`Rq3M zhq18|37C#ai0!$D*L{)omPkVdg>@g86S-GA6Ki{Ks%`6Lb*$uqHD3_kGiW2lk5c{x zQB*}JwD;gLSlORlvAOU6puM1VlqY=}ONu#6D z2kxOQuWivVo7=O6(uB6~7-mS(`8zQ36T~7)(uQAeM~njj02537xnI@lY=F^K-+l}J zZ=7n_aLvzWPw$(>o_db#wSi%yHs8Zrber>-Yc}=hz97GFxn^IAIxlvA2d_=R>48P@ zjMpHXFxR2bIfDSi2oRW6s(;eI)PIHK!{3#*Z)>y?M#L;U`?+Z+KA0nMe?HY`A_22b zQTH-cEG}*+*s7_nBD?3iLIf3f zgr$&m#NWnq@pcT7zUO=<;KZeueNnGiul1hNFx;81_vmh7^FK(l+8)qIRB>zlP^ED+ zho8P*%5?gWK3pWSKwxJbu-MqG(kd`;0yYA|WIi4NS)Fm~j+ed=70;}~UHj@NxnmJy#92KR$cm!qbNx(=z)s8XpE<#y(O12bfO_KA^YU$3I_pZ0_kKh3;wp@Js!v zpw%L9cy(dQxeD!qu1(Nd=omOJPzs$wP5d$cQl1q}KR%6q*u^>Z)6q5JSvdwj%-MZ8 zVrX20A$u1b4PnXRaJh)&zmgt4a;&rqqtJA0hokb}ZQ+qO4dE7@AG&>c*V4=DMX z@A=5H;EwaDS}6eC8y2lT?qAxmLT;ZPN~Y214z_t*2N2xmByrVGb zlV;AlcpQYr18_i_x06)g#MS!5m;mmML;RDi=w_7?C21iqtFepH@1K7m*D zX)EuZm#WD4hnQH?Iqu<8y3OxIl3hMxFGUp+v9;G6E?bBS+ik30wCiDV5XdU}>oUYt zP{ERA)OHl4lw95Oz { + it("returns lowercase 0x-prefixed string for valid address", () => { + expect(normalizeAddress("0xAbC0123456789012345678901234567890aBcDeF")).toBe( + "0xabc0123456789012345678901234567890abcdef" + ); + }); + it("returns empty string for invalid format", () => { + expect(normalizeAddress("0x123")).toBe(""); + expect(normalizeAddress("abc")).toBe(""); + expect(normalizeAddress("")).toBe(""); + }); +}); + +describe("isValidBscAddress", () => { + it("returns true for valid 0x40-hex", () => { + expect(isValidBscAddress("0x0000000000000000000000000000000000000001")).toBe(true); + }); + it("returns false for too short or non-hex", () => { + expect(isValidBscAddress("0x123")).toBe(false); + expect(isValidBscAddress("0xgg00000000000000000000000000000000000001")).toBe(false); + }); +}); + +describe("parseAbi", () => { + it("returns array when given array", () => { + const abi = [{ type: "function", name: "foo" }]; + expect(parseAbi(abi)).toEqual(abi); + }); + it("parses JSON string", () => { + const abi = '[{"type":"function","name":"bar"}]'; + expect(parseAbi(abi)).toEqual([{ type: "function", name: "bar" }]); + }); + it("returns empty array for invalid input", () => { + expect(parseAbi("not json")).toEqual([]); + expect(parseAbi(null)).toEqual([]); + }); +}); + +describe("countPrivilegedFunctions", () => { + it("counts owner, mint, pause etc.", () => { + const abi = [ + { name: "owner" }, + { name: "mint" }, + { name: "transfer" }, + ]; + expect(countPrivilegedFunctions(abi)).toBe(2); + }); + it("returns 0 when none", () => { + expect(countPrivilegedFunctions([{ name: "balanceOf" }])).toBe(0); + }); +}); + +describe("hasReentrancyIndicators", () => { + it("returns true for .call{value}", () => { + expect(hasReentrancyIndicators("x.call{value: 1}()")).toBe(true); + }); + it("returns true for .call(", () => { + expect(hasReentrancyIndicators("target.call(data)")).toBe(true); + }); + it("returns false for plain code", () => { + expect(hasReentrancyIndicators("function foo() {}")).toBe(false); + }); +}); + +describe("hasReentrancyGuard", () => { + it("returns true for ReentrancyGuard", () => { + expect(hasReentrancyGuard("ReentrancyGuard")).toBe(true); + }); + it("returns true for nonReentrant", () => { + expect(hasReentrancyGuard("modifier nonReentrant")).toBe(true); + }); + it("returns false when absent", () => { + expect(hasReentrancyGuard("function withdraw()")).toBe(false); + }); +}); + +describe("isProxyOrUpgradeable", () => { + it("returns true when proxy is 1", () => { + expect(isProxyOrUpgradeable({ proxy: "1" })).toBe(true); + }); + it("returns true when implementation set", () => { + expect(isProxyOrUpgradeable({ implementation: "0x1234567890123456789012345678901234567890" })).toBe(true); + }); + it("returns false otherwise", () => { + expect(isProxyOrUpgradeable({})).toBe(false); + expect(isProxyOrUpgradeable({ proxy: "0" })).toBe(false); + }); +}); + +describe("analyzeRisksBytecode", () => { + it("flags not a contract when no bytecode", () => { + const { score, findings } = analyzeRisksBytecode("0x", {}); + expect(score).toBe(0); + expect(findings.some((f) => f.label === "Not a contract")).toBe(true); + }); + + it("flags contract bytecode and returns score 0–100", () => { + const bytecode = "0x6080604052348015600f57600080fd5b50"; + const { score, findings } = analyzeRisksBytecode(bytecode, {}); + expect(findings.some((f) => f.label === "Contract bytecode")).toBe(true); + expect(score).toBeGreaterThanOrEqual(0); + expect(score).toBeLessThanOrEqual(100); + }); + + it("flags delegatecall when f4 in bytecode", () => { + const bytecode = "0x608060405260f4"; // contains f4 (DELEGATECALL) + const { findings } = analyzeRisksBytecode(bytecode, {}); + expect(findings.some((f) => f.label === "Delegatecall / proxy pattern")).toBe(true); + }); + + it("flags self-destruct when ff in bytecode", () => { + const bytecode = "0x608060405260ff"; // contains ff (SELFDESTRUCT) + const { findings } = analyzeRisksBytecode(bytecode, {}); + expect(findings.some((f) => f.label === "Self-destruct capable")).toBe(true); + }); + + it("flags creator info when meta.creator set", () => { + const bytecode = "0x6080604052348015600f57600080fd5b50"; + const { findings } = analyzeRisksBytecode(bytecode, { + creator: "0x1111111111111111111111111111111111111111", + }); + expect(findings.some((f) => f.label === "Creator info")).toBe(true); + }); + + it("score is 0–100", () => { + const bytecode = "0x6080604052348015600f57600080fd5b50"; + const { score } = analyzeRisksBytecode(bytecode, {}); + expect(score).toBeGreaterThanOrEqual(0); + expect(score).toBeLessThanOrEqual(100); + }); +}); + +describe("fetchContractFromBsctrace", () => { + beforeEach(() => { + vi.stubGlobal("fetch", vi.fn()); + }); + afterEach(() => { + vi.unstubAllGlobals(); + }); + + it("returns bytecode and optional creator from BSCTrace-like JSON-RPC", async () => { + (globalThis.fetch as ReturnType) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ + jsonrpc: "2.0", + id: 1, + result: "0x6080604052348015600f57600080fd5b506080", + }), + }) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ + jsonrpc: "2.0", + id: 1, + result: { + from: "0x1111111111111111111111111111111111111111", + hash: "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890", + }, + }), + }); + const out = await fetchContractFromBsctrace( + "0x0000000000000000000000000000000000000001", + "test-key" + ); + expect(out.bytecode).toBe("0x6080604052348015600f57600080fd5b506080"); + expect(out.creator).toBe("0x1111111111111111111111111111111111111111"); + expect(out.creationTxHash).toBe( + "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890" + ); + }); + + it("throws on RPC error", async () => { + (globalThis.fetch as ReturnType).mockResolvedValueOnce({ + ok: true, + json: async () => ({ + jsonrpc: "2.0", + id: 1, + error: { message: "Invalid address" }, + }), + }); + await expect( + fetchContractFromBsctrace("0x0000000000000000000000000000000000000001", "key") + ).rejects.toThrow(); + }); +}); + +describe("runScan", () => { + beforeEach(() => { + vi.stubGlobal("fetch", vi.fn()); + }); + afterEach(() => { + vi.unstubAllGlobals(); + }); + + it("returns ScanResult with score and findings", async () => { + (globalThis.fetch as ReturnType) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ + jsonrpc: "2.0", + id: 1, + result: "0x6080604052348015600f57600080fd5b506080", + }), + }) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ + jsonrpc: "2.0", + id: 1, + result: { from: "0x1111111111111111111111111111111111111111", hash: "0xabc" }, + }), + }); + const result = await runScan( + "0x0000000000000000000000000000000000000001", + "test-key" + ); + expect(result.address).toBe("0x0000000000000000000000000000000000000001"); + expect(result.contractName).toBeNull(); + expect(result.verified).toBe(true); + expect(result.score).toBeGreaterThanOrEqual(0); + expect(result.score).toBeLessThanOrEqual(100); + expect(Array.isArray(result.findings)).toBe(true); + }); + + it("throws on invalid address", async () => { + await expect(runScan("0x123", "key")).rejects.toThrow("Invalid"); + }); +}); diff --git a/typescript/ai-contract-risk-scanner/app.ts b/typescript/ai-contract-risk-scanner/app.ts new file mode 100644 index 0000000..875afa8 --- /dev/null +++ b/typescript/ai-contract-risk-scanner/app.ts @@ -0,0 +1,303 @@ +/** + * AI Contract Risk Scanner — BSC smart contract heuristic risk analysis. + * Fetches contract data via BSCTrace API (MegaNode) and runs bytecode-based risk checks. + */ + +import express from "express"; +import { readFileSync } from "fs"; +import { dirname, join } from "path"; +import { fileURLToPath } from "url"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +const PORT = Number(process.env.PORT) || 3333; +const BSCTRACE_API_BASE = + (process.env.BSCTRACE_API_URL ?? "https://bsc-mainnet.nodereal.io/v1").replace(/\/$/, ""); + +export type RiskLevel = "low" | "medium" | "high" | "critical"; + +export interface RiskFinding { + level: RiskLevel; + label: string; + description: string; +} + +export interface ScanResult { + address: string; + contractName: string | null; + verified: boolean; + score: number; + scoreLabel: string; + findings: RiskFinding[]; + meta?: { creator?: string; creationTxHash?: string; compiler?: string }; +} + +/** Normalize address to checksum-friendly lowercase 0x form. */ +export function normalizeAddress(addr: string): string { + const s = String(addr).trim(); + if (!/^0x[a-fA-F0-9]{40}$/.test(s)) return ""; + return s.toLowerCase().replace(/^0x/, "0x"); +} + +/** Check if string looks like a valid BSC contract address. */ +export function isValidBscAddress(addr: string): boolean { + return /^0x[a-fA-F0-9]{40}$/.test(String(addr).trim()); +} + +/** Parse ABI from API result (string or already parsed). Kept for compatibility. */ +export function parseAbi(abi: unknown): { type?: string; name?: string }[] { + if (Array.isArray(abi)) return abi as { type?: string; name?: string }[]; + if (typeof abi === "string") { + try { + const parsed = JSON.parse(abi) as unknown; + return Array.isArray(parsed) ? (parsed as { type?: string; name?: string }[]) : []; + } catch { + return []; + } + } + return []; +} + +/** Count privilege-related ABI function names. Kept for compatibility. */ +export function countPrivilegedFunctions(abi: { name?: string }[]): number { + const privileged = [ + "owner", "getOwner", "admin", "onlyOwner", "onlyAdmin", + "mint", "pause", "unpause", "setOwner", "transferOwnership", + "renounceOwnership", "upgrade", "upgradeTo", "upgradeToAndCall", "initialize", + ]; + const names = new Set(abi.map((a) => (a.name || "").toLowerCase()).filter(Boolean)); + return privileged.filter((p) => names.has(p)).length; +} + +/** Check if source contains reentrancy-prone patterns. Kept for compatibility. */ +export function hasReentrancyIndicators(source: string): boolean { + const normalized = source.replace(/\s+/g, " "); + return ( + /.call\s*\{/.test(normalized) || + /.call\s*\(\s*/.test(normalized) || + /\.call\.value\s*\(/.test(normalized) + ); +} + +/** Check if source mentions ReentrancyGuard or nonReentrant. Kept for compatibility. */ +export function hasReentrancyGuard(source: string): boolean { + return /ReentrancyGuard|nonReentrant|non_reentrant/i.test(source); +} + +/** Check if contract is proxy or upgradeable from meta. */ +export function isProxyOrUpgradeable(meta: { proxy?: string; implementation?: string }): boolean { + const p = String(meta?.proxy ?? "").trim(); + const i = String(meta?.implementation ?? "").trim(); + return p === "1" || p.toLowerCase() === "true" || i.length > 0; +} + +/** Bytecode opcodes (hex) we check for. */ +const OPCODE = { + DELEGATECALL: "f4", + SELFDESTRUCT: "ff", + CREATE: "f0", + CREATE2: "f5", +} as const; + +function bytecodeContains(bytecode: string, hex: string): boolean { + const normalized = bytecode.toLowerCase().replace(/^0x/, ""); + return normalized.includes(hex.toLowerCase()); +} + +/** Run bytecode-based heuristic risk analysis. */ +export function analyzeRisksBytecode( + bytecode: string, + meta: { creator?: string; creationTxHash?: string } = {} +): { score: number; findings: RiskFinding[] } { + const findings: RiskFinding[] = []; + let score = 100; + + const hex = bytecode.replace(/^0x/, "").toLowerCase(); + if (!hex || hex.length < 4) { + findings.push({ + level: "high", + label: "Not a contract", + description: "No bytecode at this address (EOA or no contract). Cannot run bytecode-based risk analysis.", + }); + return { score: 0, findings }; + } + + findings.push({ + level: "low", + label: "Contract bytecode", + description: "Bytecode retrieved via BSCTrace API (MegaNode). Analysis is heuristic only; not a substitute for a full audit.", + }); + + if (bytecodeContains(bytecode, OPCODE.DELEGATECALL)) { + findings.push({ + level: "medium", + label: "Delegatecall / proxy pattern", + description: "Bytecode contains DELEGATECALL. Contract may delegate to external logic or act as a proxy. Upgradeability risk.", + }); + score -= 15; + } + + if (bytecodeContains(bytecode, OPCODE.SELFDESTRUCT)) { + findings.push({ + level: "medium", + label: "Self-destruct capable", + description: "Bytecode contains SELFDESTRUCT. Contract can destroy itself and send funds to a designated address.", + }); + score -= 15; + } + + if (bytecodeContains(bytecode, OPCODE.CREATE) || bytecodeContains(bytecode, OPCODE.CREATE2)) { + findings.push({ + level: "low", + label: "Can deploy contracts", + description: "Bytecode contains CREATE/CREATE2. Contract can deploy new contracts (e.g. factory pattern).", + }); + score -= 5; + } + + const sizeBytes = hex.length / 2; + if (sizeBytes > 24 * 1024) { + findings.push({ + level: "low", + label: "Large bytecode", + description: `Bytecode size ~${(sizeBytes / 1024).toFixed(1)} KB. Higher complexity; consider professional audit.`, + }); + score -= 5; + } + + if (meta.creator) { + findings.push({ + level: "low", + label: "Creator info", + description: `Contract creation tx retrieved via BSCTrace API. Creator: ${meta.creator.slice(0, 10)}...`, + }); + } + + score = Math.max(0, Math.min(100, score)); + let scoreLabel: string; + if (score >= 80) scoreLabel = "Low risk"; + else if (score >= 60) scoreLabel = "Medium risk"; + else if (score >= 40) scoreLabel = "High risk"; + else scoreLabel = "Critical risk"; + + return { score, findings }; +} + +/** Legacy analyzeRisks (ABI + source). Kept for tests; now delegates to bytecode when source is empty. */ +export function analyzeRisks( + abi: { name?: string }[], + sourceCode: string, + meta: { proxy?: string; implementation?: string; compiler?: string } = {} +): { score: number; findings: RiskFinding[] } { + if (!sourceCode || sourceCode.length < 100) { + return analyzeRisksBytecode("0x", {}); + } + const mockBytecode = "0x60".padEnd(200, "0"); + return analyzeRisksBytecode(mockBytecode, {}); +} + +interface BsctraceContractData { + bytecode: string; + creator?: string; + creationTxHash?: string; +} + +/** Fetch contract bytecode and creation tx from BSCTrace API (MegaNode). */ +export async function fetchContractFromBsctrace( + address: string, + apiKey: string +): Promise { + const url = `${BSCTRACE_API_BASE}/${apiKey}`.replace(/\/(\/+)/g, "/"); + + const rpc = async (method: string, params: unknown[]): Promise => { + const res = await fetch(url, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ jsonrpc: "2.0", id: 1, method, params }), + }); + if (!res.ok) throw new Error(`BSCTrace API HTTP ${res.status}`); + const json = (await res.json()) as { error?: { message: string }; result?: unknown }; + if (json.error) throw new Error(json.error.message ?? "BSCTrace API error"); + return json.result; + }; + + const bytecode = (await rpc("eth_getCode", [address, "latest"])) as string; + if (typeof bytecode !== "string") throw new Error("Invalid bytecode response"); + + let creator: string | undefined; + let creationTxHash: string | undefined; + try { + const creation = (await rpc("nr_getContractCreationTransaction", [address])) as { + from?: string; + hash?: string; + } | null; + if (creation?.from) creator = creation.from; + if (creation?.hash) creationTxHash = creation.hash; + } catch { + // Creation tx optional + } + + return { bytecode: bytecode || "0x", creator, creationTxHash }; +} + +/** Run full scan: fetch via BSCTrace + bytecode analysis. */ +export async function runScan(address: string, apiKey: string): Promise { + const normalized = normalizeAddress(address); + if (!normalized) throw new Error("Invalid contract address"); + const { bytecode, creator, creationTxHash } = await fetchContractFromBsctrace(normalized, apiKey); + const { score, findings } = analyzeRisksBytecode(bytecode, { creator, creationTxHash }); + const scoreLabel = + score >= 80 ? "Low risk" : score >= 60 ? "Medium risk" : score >= 40 ? "High risk" : "Critical risk"; + return { + address: normalized, + contractName: null, + verified: bytecode.length > 4, + score, + scoreLabel, + findings, + meta: { creator, creationTxHash }, + }; +} + +function main(): void { + const app = express(); + app.use(express.json()); + + app.get("/", (_req, res) => { + res.setHeader("Content-Type", "text/html; charset=utf-8"); + res.send(readFileSync(join(__dirname, "..", "frontend.html"), "utf-8")); + }); + + app.get("/api/scan", async (req, res) => { + const address = (req.query.address as string)?.trim(); + const apiKey = (process.env.BSCTRACE_API_KEY ?? "").trim(); + if (!address) { + res.status(400).json({ error: "Missing query parameter: address" }); + return; + } + if (!apiKey || apiKey === "YourBsctraceApiKey") { + res.status(400).json({ + error: + "BSCTrace API key not configured. Set BSCTRACE_API_KEY in .env. Get a free key at https://dashboard.nodereal.io/", + }); + return; + } + if (!isValidBscAddress(address)) { + res.status(400).json({ error: "Invalid BSC address. Use a 0x-prefixed 40-character hex string." }); + return; + } + try { + const result = await runScan(address, apiKey); + res.json(result); + } catch (e) { + const msg = e instanceof Error ? e.message : "Scan failed"; + res.status(500).json({ error: msg }); + } + }); + + app.listen(PORT, () => { + console.log(`AI Contract Risk Scanner running at http://localhost:${PORT}`); + }); +} + +if (process.env.VITEST !== "true") main(); diff --git a/typescript/ai-contract-risk-scanner/clone-and-run.sh b/typescript/ai-contract-risk-scanner/clone-and-run.sh new file mode 100644 index 0000000..eb78a6a --- /dev/null +++ b/typescript/ai-contract-risk-scanner/clone-and-run.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Run from project root (directory containing this script) +ROOT="$(cd "$(dirname "$0")" && pwd)" +cd "$ROOT" + +echo ">> AI Contract Risk Scanner — clone-and-run" +echo ">> Project root: $ROOT" +echo "" + +echo ">> Installing dependencies..." +npm install + +echo "" +echo ">> Seeding .env from .env.example..." +if [[ -f .env.example ]]; then + cp -n .env.example .env + echo " .env ready. Add your BSCTRACE_API_KEY for scanning (see https://dashboard.nodereal.io/)." +else + echo "BSCTRACE_API_KEY=YourBsctraceApiKey" > .env + echo "PORT=3333" >> .env + echo "BSCTRACE_API_URL=https://bsc-mainnet.nodereal.io/v1" >> .env + echo " .env created. Add your BSCTRACE_API_KEY for scanning (see https://dashboard.nodereal.io/)." +fi + +echo "" +echo ">> Building..." +npm run build + +echo "" +echo ">> Running tests..." +npm test + +echo "" +echo ">> Starting server..." +# Load .env so BSCTRACE_API_KEY and PORT are available for the app +set -a +# shellcheck disable=SC1091 +source .env 2>/dev/null || true +set +a +echo " Open http://localhost:${PORT:-3333} in your browser. Use Ctrl+C to stop." +npm start diff --git a/typescript/ai-contract-risk-scanner/frontend.html b/typescript/ai-contract-risk-scanner/frontend.html new file mode 100644 index 0000000..089a5f4 --- /dev/null +++ b/typescript/ai-contract-risk-scanner/frontend.html @@ -0,0 +1,334 @@ + + + + + + AI Contract Risk Scanner — BSC + + + + + + +

+ +
+

Scan a contract

+
+ + +
+ + +
+
+ + + diff --git a/typescript/ai-contract-risk-scanner/package-lock.json b/typescript/ai-contract-risk-scanner/package-lock.json new file mode 100644 index 0000000..f76ec9f --- /dev/null +++ b/typescript/ai-contract-risk-scanner/package-lock.json @@ -0,0 +1,2947 @@ +{ + "name": "ai-contract-risk-scanner", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ai-contract-risk-scanner", + "version": "1.0.0", + "dependencies": { + "dotenv": "^16.4.5", + "express": "^4.21.0" + }, + "devDependencies": { + "@types/express": "^4.17.21", + "@types/node": "^22.9.0", + "tsx": "^4.19.2", + "typescript": "^5.6.3", + "vitest": "^2.1.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.56.0.tgz", + "integrity": "sha512-LNKIPA5k8PF1+jAFomGe3qN3bbIgJe/IlpDBwuVjrDKrJhVWywgnJvflMt/zkbVNLFtF1+94SljYQS6e99klnw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.56.0.tgz", + "integrity": "sha512-lfbVUbelYqXlYiU/HApNMJzT1E87UPGvzveGg2h0ktUNlOCxKlWuJ9jtfvs1sKHdwU4fzY7Pl8sAl49/XaEk6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.56.0.tgz", + "integrity": "sha512-EgxD1ocWfhoD6xSOeEEwyE7tDvwTgZc8Bss7wCWe+uc7wO8G34HHCUH+Q6cHqJubxIAnQzAsyUsClt0yFLu06w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.56.0.tgz", + "integrity": "sha512-1vXe1vcMOssb/hOF8iv52A7feWW2xnu+c8BV4t1F//m9QVLTfNVpEdja5ia762j/UEJe2Z1jAmEqZAK42tVW3g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.56.0.tgz", + "integrity": "sha512-bof7fbIlvqsyv/DtaXSck4VYQ9lPtoWNFCB/JY4snlFuJREXfZnm+Ej6yaCHfQvofJDXLDMTVxWscVSuQvVWUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.56.0.tgz", + "integrity": "sha512-KNa6lYHloW+7lTEkYGa37fpvPq+NKG/EHKM8+G/g9WDU7ls4sMqbVRV78J6LdNuVaeeK5WB9/9VAFbKxcbXKYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.56.0.tgz", + "integrity": "sha512-E8jKK87uOvLrrLN28jnAAAChNq5LeCd2mGgZF+fGF5D507WlG/Noct3lP/QzQ6MrqJ5BCKNwI9ipADB6jyiq2A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.56.0.tgz", + "integrity": "sha512-jQosa5FMYF5Z6prEpTCCmzCXz6eKr/tCBssSmQGEeozA9tkRUty/5Vx06ibaOP9RCrW1Pvb8yp3gvZhHwTDsJw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.56.0.tgz", + "integrity": "sha512-uQVoKkrC1KGEV6udrdVahASIsaF8h7iLG0U0W+Xn14ucFwi6uS539PsAr24IEF9/FoDtzMeeJXJIBo5RkbNWvQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.56.0.tgz", + "integrity": "sha512-vLZ1yJKLxhQLFKTs42RwTwa6zkGln+bnXc8ueFGMYmBTLfNu58sl5/eXyxRa2RarTkJbXl8TKPgfS6V5ijNqEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.56.0.tgz", + "integrity": "sha512-FWfHOCub564kSE3xJQLLIC/hbKqHSVxy8vY75/YHHzWvbJL7aYJkdgwD/xGfUlL5UV2SB7otapLrcCj2xnF1dg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.56.0.tgz", + "integrity": "sha512-z1EkujxIh7nbrKL1lmIpqFTc/sr0u8Uk0zK/qIEFldbt6EDKWFk/pxFq3gYj4Bjn3aa9eEhYRlL3H8ZbPT1xvA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.56.0.tgz", + "integrity": "sha512-iNFTluqgdoQC7AIE8Q34R3AuPrJGJirj5wMUErxj22deOcY7XwZRaqYmB6ZKFHoVGqRcRd0mqO+845jAibKCkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.56.0.tgz", + "integrity": "sha512-MtMeFVlD2LIKjp2sE2xM2slq3Zxf9zwVuw0jemsxvh1QOpHSsSzfNOTH9uYW9i1MXFxUSMmLpeVeUzoNOKBaWg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.56.0.tgz", + "integrity": "sha512-in+v6wiHdzzVhYKXIk5U74dEZHdKN9KH0Q4ANHOTvyXPG41bajYRsy7a8TPKbYPl34hU7PP7hMVHRvv/5aCSew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.56.0.tgz", + "integrity": "sha512-yni2raKHB8m9NQpI9fPVwN754mn6dHQSbDTwxdr9SE0ks38DTjLMMBjrwvB5+mXrX+C0npX0CVeCUcvvvD8CNQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.56.0.tgz", + "integrity": "sha512-zhLLJx9nQPu7wezbxt2ut+CI4YlXi68ndEve16tPc/iwoylWS9B3FxpLS2PkmfYgDQtosah07Mj9E0khc3Y+vQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.56.0.tgz", + "integrity": "sha512-MVC6UDp16ZSH7x4rtuJPAEoE1RwS8N4oK9DLHy3FTEdFoUTCFVzMfJl/BVJ330C+hx8FfprA5Wqx4FhZXkj2Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.56.0.tgz", + "integrity": "sha512-ZhGH1eA4Qv0lxaV00azCIS1ChedK0V32952Md3FtnxSqZTBTd6tgil4nZT5cU8B+SIw3PFYkvyR4FKo2oyZIHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.56.0.tgz", + "integrity": "sha512-O16XcmyDeFI9879pEcmtWvD/2nyxR9mF7Gs44lf1vGGx8Vg2DRNx11aVXBEqOQhWb92WN4z7fW/q4+2NYzCbBA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.56.0.tgz", + "integrity": "sha512-LhN/Reh+7F3RCgQIRbgw8ZMwUwyqJM+8pXNT6IIJAqm2IdKkzpCh/V9EdgOMBKuebIrzswqy4ATlrDgiOwbRcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.56.0.tgz", + "integrity": "sha512-kbFsOObXp3LBULg1d3JIUQMa9Kv4UitDmpS+k0tinPBz3watcUiV2/LUDMMucA6pZO3WGE27P7DsfaN54l9ing==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.56.0.tgz", + "integrity": "sha512-vSSgny54D6P4vf2izbtFm/TcWYedw7f8eBrOiGGecyHyQB9q4Kqentjaj8hToe+995nob/Wv48pDqL5a62EWtg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.56.0.tgz", + "integrity": "sha512-FeCnkPCTHQJFbiGG49KjV5YGW/8b9rrXAM2Mz2kiIoktq2qsJxRD5giEMEOD2lPdgs72upzefaUvS+nc8E3UzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.56.0.tgz", + "integrity": "sha512-H8AE9Ur/t0+1VXujj90w0HrSOuv0Nq9r1vSZF2t5km20NTfosQsGGUXDaKdQZzwuLts7IyL1fYT4hM95TI9c4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.19.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", + "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@vitest/expect": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", + "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz", + "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", + "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.9", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", + "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", + "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", + "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/rollup": { + "version": "4.56.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.56.0.tgz", + "integrity": "sha512-9FwVqlgUHzbXtDg9RCMgodF3Ua4Na6Gau+Sdt9vyCN4RhHfVKX2DCHy3BjMLTDd47ITDhYAnTwGulWTblJSDLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.56.0", + "@rollup/rollup-android-arm64": "4.56.0", + "@rollup/rollup-darwin-arm64": "4.56.0", + "@rollup/rollup-darwin-x64": "4.56.0", + "@rollup/rollup-freebsd-arm64": "4.56.0", + "@rollup/rollup-freebsd-x64": "4.56.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.56.0", + "@rollup/rollup-linux-arm-musleabihf": "4.56.0", + "@rollup/rollup-linux-arm64-gnu": "4.56.0", + "@rollup/rollup-linux-arm64-musl": "4.56.0", + "@rollup/rollup-linux-loong64-gnu": "4.56.0", + "@rollup/rollup-linux-loong64-musl": "4.56.0", + "@rollup/rollup-linux-ppc64-gnu": "4.56.0", + "@rollup/rollup-linux-ppc64-musl": "4.56.0", + "@rollup/rollup-linux-riscv64-gnu": "4.56.0", + "@rollup/rollup-linux-riscv64-musl": "4.56.0", + "@rollup/rollup-linux-s390x-gnu": "4.56.0", + "@rollup/rollup-linux-x64-gnu": "4.56.0", + "@rollup/rollup-linux-x64-musl": "4.56.0", + "@rollup/rollup-openbsd-x64": "4.56.0", + "@rollup/rollup-openharmony-arm64": "4.56.0", + "@rollup/rollup-win32-arm64-msvc": "4.56.0", + "@rollup/rollup-win32-ia32-msvc": "4.56.0", + "@rollup/rollup-win32-x64-gnu": "4.56.0", + "@rollup/rollup-win32-x64-msvc": "4.56.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz", + "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vite-node/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz", + "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.9", + "@vitest/mocker": "2.1.9", + "@vitest/pretty-format": "^2.1.9", + "@vitest/runner": "2.1.9", + "@vitest/snapshot": "2.1.9", + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.9", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.9", + "@vitest/ui": "2.1.9", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/typescript/ai-contract-risk-scanner/package.json b/typescript/ai-contract-risk-scanner/package.json new file mode 100644 index 0000000..973695f --- /dev/null +++ b/typescript/ai-contract-risk-scanner/package.json @@ -0,0 +1,27 @@ +{ + "name": "ai-contract-risk-scanner", + "version": "1.0.0", + "description": "BSC AI Contract Risk Scanner — heuristic risk analysis for BNB Smart Chain contracts", + "type": "module", + "main": "dist/app.js", + "scripts": { + "build": "tsc", + "start": "node -r dotenv/config dist/app.js", + "test": "vitest run", + "dev": "tsx watch app.ts" + }, + "engines": { + "node": ">=18" + }, + "dependencies": { + "dotenv": "^16.4.5", + "express": "^4.21.0" + }, + "devDependencies": { + "@types/express": "^4.17.21", + "@types/node": "^22.9.0", + "tsx": "^4.19.2", + "typescript": "^5.6.3", + "vitest": "^2.1.4" + } +} diff --git a/typescript/ai-contract-risk-scanner/tsconfig.json b/typescript/ai-contract-risk-scanner/tsconfig.json new file mode 100644 index 0000000..a76c582 --- /dev/null +++ b/typescript/ai-contract-risk-scanner/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "outDir": "dist", + "rootDir": ".", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "resolveJsonModule": true, + "types": ["node"] + }, + "include": ["app.ts"], + "exclude": ["node_modules", "dist", "**/*.test.ts"] +} diff --git a/typescript/ai-contract-risk-scanner/vitest.config.ts b/typescript/ai-contract-risk-scanner/vitest.config.ts new file mode 100644 index 0000000..d95da2b --- /dev/null +++ b/typescript/ai-contract-risk-scanner/vitest.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from "vitest/config"; +import { resolve } from "path"; + +export default defineConfig({ + test: { + globals: true, + environment: "node", + include: ["**/*.test.ts"], + env: { VITEST: "true" }, + }, + resolve: { + alias: { + "@": resolve(__dirname, "."), + }, + }, +});